Polyphase Game Engine
Loading...
Searching...
No Matches
TableDatum.h
Go to the documentation of this file.
1#pragma once
2
3#include "Datum.h"
4
5class Object;
6
7class TableDatum : public Datum
8{
9public:
10
11 TableDatum();
13
14 TableDatum(const char* key, int32_t value);
15 TableDatum(const char* key, float value);
16 TableDatum(const char* key, bool value);
17 TableDatum(const char* key, const char* value);
18 TableDatum(const char* key, const std::string& value);
19 TableDatum(const char* key, glm::vec2 value);
20 TableDatum(const char* key, glm::vec3 value);
21 TableDatum(const char* key, glm::vec4 value);
22 TableDatum(const char* key, Asset* value);
23 TableDatum(const char* key, uint32_t value);
24 TableDatum(const char* key, Object* value);
25 TableDatum(const char* key, const ScriptFunc& value);
26 //TableDatum(const char* key, const TableDatum& value);
27
28 TableDatum(int32_t key, int32_t value);
29 TableDatum(int32_t key, float value);
30 TableDatum(int32_t key, bool value);
31 TableDatum(int32_t key, const char* value);
32 TableDatum(int32_t key, const std::string& value);
33 TableDatum(int32_t key, glm::vec2 value);
34 TableDatum(int32_t key, glm::vec3 value);
35 TableDatum(int32_t key, glm::vec4 value);
36 TableDatum(int32_t key, Asset* value);
37 TableDatum(int32_t key, uint32_t value);
38 TableDatum(int32_t key, Object* value);
39 TableDatum(int32_t key, const ScriptFunc& value);
40 //TableDatum(int32_t key, const TableDatum& value);
41
42 TableDatum(const TableDatum& src);
43 TableDatum& operator=(const TableDatum& src);
44
45 virtual void ReadStream(Stream& stream, uint32_t version, bool net, bool external) override;
46 virtual void WriteStream(Stream& stream, bool net) const override;
47 virtual uint32_t GetSerializationSize(bool net) const override;
48 virtual bool IsTableDatum() const override;
49 virtual void DeepCopy(const Datum& src, bool forceInternalStorage) override;
50
51 const char* GetStringKey() const;
52 int32_t GetIntegerKey() const;
53 bool IsStringKey() const;
54 bool IsIntegerKey() const;
55
56 void SetStringKey(const char* stringKey);
57 void SetIntegerKey(int32_t integerKey);
58
59public:
60
61 // Only string and integer keys are supported for now.
62 // Theortically... you could use a Datum as key so you could support any type.
63 // But let's not go crazy and allocate unnecessary data.
64 // I think realistically, most of the time strings or integers are used as keys,
65 // but I'm not really a Lua programmer.
66 std::string mStringKey;
67 int32_t mIntegerKey = 0;
68};
69
Definition Asset.h:113
Definition Datum.h:164
Definition Object.h:13
Definition ScriptFunc.h:10
Definition Stream.h:21
Definition TableDatum.h:8
virtual uint32_t GetSerializationSize(bool net) const override
Definition TableDatum.cpp:202
TableDatum()
Definition TableDatum.cpp:5
virtual void ReadStream(Stream &stream, uint32_t version, bool net, bool external) override
Definition TableDatum.cpp:188
TableDatum & operator=(const TableDatum &src)
Definition TableDatum.cpp:178
~TableDatum()
Definition TableDatum.cpp:10
const char * GetStringKey() const
Definition TableDatum.cpp:226
bool IsIntegerKey() const
Definition TableDatum.cpp:241
int32_t GetIntegerKey() const
Definition TableDatum.cpp:231
virtual void DeepCopy(const Datum &src, bool forceInternalStorage) override
Definition TableDatum.cpp:214
void SetIntegerKey(int32_t integerKey)
Definition TableDatum.cpp:259
virtual void WriteStream(Stream &stream, bool net) const override
Definition TableDatum.cpp:195
bool IsStringKey() const
Definition TableDatum.cpp:236
void SetStringKey(const char *stringKey)
Definition TableDatum.cpp:246
int32_t mIntegerKey
Definition TableDatum.h:67
std::string mStringKey
Definition TableDatum.h:66
virtual bool IsTableDatum() const override
Definition TableDatum.cpp:209