DIFF

class SerializerSource

Serializer Managed

All members, including inherited

Serialization general interface. Serializer API works with: - primitive types: int, float, string, bool, vector - dynamic containers: array, set, map - static arrays - complex types: classes

NoteSerializer provides deep serialization (it serialize class memebers and their members etc). To avoid serialization of certain class variable, use NonSerialized attribute. \par usage:
class MyData
{
	int m_id;
	autoptr map<string, float> m_values;

	[NonSerialized()]
	string m_dbg; // I don't want to serialize this variable
}

void Serialize(Serializer s)
{
	int statArray[4] = {6,9,2,3};
	array<int> dynArray = {8,5,6,4};
	autoptr MyData data = new MyData();

	data.m_id = 965;
	data.m_values = map<string, float>;
	data.m_values.Insert("value1", 5.98);
	data.m_values.Insert("value2", 4.36);

	s.Write(10);
	s.Write("Hello");
	s.Write(statArray);
	s.Write(dynArray);
	s.Write(data);
}

void Deserialize(Serializer s)
{
	int statArray[4];
	array<int> dynArray;
	MyData data;
	int someInt;
	string someString;

	s.Read(someInt);
	s.Read(someString);
	s.Read(statArray);
	s.Read(dynArray);
	s.Read(data);
}

Constructors 2

protected void Serializer()
protected void ~Serializer()

Methods 4

proto bool Write(void value_out)
proto native bool CanWrite()
proto native bool CanRead()