Interface class for all serializers to derive from. More...
#include <ISerializer.h>
Inherited by AzNetworking::DeltaSerializerApply, AzNetworking::DeltaSerializerCreate, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
Classes | |
struct | SerializeHelper |
struct | SerializeHelper< false, false > |
struct | SerializeHelper< true, false > |
struct | SerializeHelper< true, true > |
Public Member Functions | |
virtual bool | IsValid () const |
void | Invalidate () |
Mark the serializer as invalid. | |
virtual SerializerMode | GetSerializerMode () const =0 |
virtual bool | Serialize (bool &value, const char *name)=0 |
bool | Serialize (char &value, const char *name, uint8_t minValue=AZStd::numeric_limits< uint8_t >::min(), uint8_t maxValue=AZStd::numeric_limits< uint8_t >::max()) |
virtual bool | Serialize (int8_t &value, const char *name, int8_t minValue=AZStd::numeric_limits< int8_t >::min(), int8_t maxValue=AZStd::numeric_limits< int8_t >::max())=0 |
virtual bool | Serialize (int16_t &value, const char *name, int16_t minValue=AZStd::numeric_limits< int16_t >::min(), int16_t maxValue=AZStd::numeric_limits< int16_t >::max())=0 |
virtual bool | Serialize (int32_t &value, const char *name, int32_t minValue=AZStd::numeric_limits< int32_t >::min(), int32_t maxValue=AZStd::numeric_limits< int32_t >::max())=0 |
virtual bool | Serialize (long &value, const char *name, long minValue=AZStd::numeric_limits< long >::min(), long maxValue=AZStd::numeric_limits< long >::max())=0 |
virtual bool | Serialize (AZ::s64 &value, const char *name, AZ::s64 minValue=AZStd::numeric_limits< AZ::s64 >::min(), AZ::s64 maxValue=AZStd::numeric_limits< AZ::s64 >::max())=0 |
virtual bool | Serialize (uint8_t &value, const char *name, uint8_t minValue=AZStd::numeric_limits< uint8_t >::min(), uint8_t maxValue=AZStd::numeric_limits< uint8_t >::max())=0 |
virtual bool | Serialize (uint16_t &value, const char *name, uint16_t minValue=AZStd::numeric_limits< uint16_t >::min(), uint16_t maxValue=AZStd::numeric_limits< uint16_t >::max())=0 |
virtual bool | Serialize (uint32_t &value, const char *name, uint32_t minValue=AZStd::numeric_limits< uint32_t >::min(), uint32_t maxValue=AZStd::numeric_limits< uint32_t >::max())=0 |
virtual bool | Serialize (unsigned long &value, const char *name, unsigned long minValue=AZStd::numeric_limits< unsigned long >::min(), unsigned long maxValue=AZStd::numeric_limits< uint64_t >::max())=0 |
virtual bool | Serialize (AZ::u64 &value, const char *name, AZ::u64 minValue=AZStd::numeric_limits< AZ::u64 >::min(), AZ::u64 maxValue=AZStd::numeric_limits< AZ::u64 >::max())=0 |
virtual bool | Serialize (float &value, const char *name, float minValue=AZStd::numeric_limits< float >::min(), float maxValue=AZStd::numeric_limits< float >::max())=0 |
virtual bool | Serialize (double &value, const char *name, double minValue=AZStd::numeric_limits< double >::min(), double maxValue=AZStd::numeric_limits< double >::max())=0 |
virtual bool | SerializeBytes (uint8_t *buffer, uint32_t bufferCapacity, bool isString, uint32_t &outSize, const char *name)=0 |
template<typename TYPE > | |
bool | Serialize (TYPE &value, const char *name) |
virtual bool | BeginObject (const char *name)=0 |
virtual bool | EndObject (const char *name)=0 |
virtual const uint8_t * | GetBuffer () const =0 |
virtual uint32_t | GetCapacity () const =0 |
virtual uint32_t | GetSize () const =0 |
virtual void | ClearTrackedChangesFlag ()=0 |
virtual bool | GetTrackedChangesFlag () const =0 |
Protected Attributes | |
bool | m_serializerValid = true |
Interface class for all serializers to derive from.
ISerializer defines an abstract interface for visiting an object hierarchy and performing operations upon that hierarchy, typically reading from or writing data to the object hierarchy for reasons of persistence or network transmission.
While the most common types of serializers are provided by the AzNetworking framework, users can implement custom serializers and perform complex operations on any serializable structures. A few types native to AzNetworking, many of which relate to packets, demonstrate this.
Provided serializers include NetworkInputSerializer for writing an object model into a bytestream, NetworkOutputSerializer for writing to an object model, TrackChangesSerializer which is used to efficiently serialize objects without incurring significant copy or comparison overhead, and HashSerializer which can be used to generate a hash of all visited data which is important for automated desync detection.
|
pure virtual |
Begins serializing an object.
name | string name of the object |
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
pure virtual |
This is a helper for network serialization. It clears the track changes flag internal to some serializers
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
pure virtual |
Ends serializing an object.
name | string name of the object |
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
pure virtual |
Returns a pointer to the internal serialization buffer.
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
pure virtual |
Returns the total capacity serialization buffer in bytes.
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
pure virtual |
Returns an enum the represents the serializer mode. returns WriteToObject if the serializer is writing values to the objects it visits, otherwise returns ReadFromObject
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
pure virtual |
Returns the size of the data contained in the serialization buffer in bytes.
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
pure virtual |
This is a helper for network serialization. It allows the owner of the serializer to query whether or not the serializer modified the state of an object during serialization
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
inlinevirtual |
Returns true if the serializer is valid and in a consistent state.
|
pure virtual |
Serialize a signed 64-bit integer (long long).
value | signed 64-bit integer input value to serialize |
name | string name of the value being serialized |
minValue | the minimum value expected during serialization |
maxValue | the maximum value expected during serialization |
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
pure virtual |
Serialize an unsigned 64-bit integer (unsigned long long).
value | unsigned 64-bit integer input value to serialize |
name | string name of the value being serialized |
minValue | the minimum value expected during serialization |
maxValue | the maximum value expected during serialization |
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
pure virtual |
Serialize a boolean.
value | boolean input value to serialize |
name | string name of the value being serialized |
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
inline |
Serialize a character.
value | character input value to serialize |
name | string name of the value being serialized |
minValue | the minimum value expected during serialization |
maxValue | the maximum value expected during serialization |
|
pure virtual |
Serialize a 64-bit floating point number.
value | 64-bit floating point input value to serialize |
name | string name of the value being serialized |
minValue | the minimum value expected during serialization |
maxValue | the maximum value expected during serialization |
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
pure virtual |
Serialize a 32-bit floating point number.
value | 32-bit floating point input value to serialize |
name | string name of the value being serialized |
minValue | the minimum value expected during serialization |
maxValue | the maximum value expected during serialization |
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
pure virtual |
Serialize a signed short.
value | signed short input value to serialize |
name | string name of the value being serialized |
minValue | the minimum value expected during serialization |
maxValue | the maximum value expected during serialization |
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
pure virtual |
Serialize a signed integer.
value | signed integer input value to serialize |
name | string name of the value being serialized |
minValue | the minimum value expected during serialization |
maxValue | the maximum value expected during serialization |
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
pure virtual |
Serialize a signed byte.
value | signed byte input value to serialize |
name | string name of the value being serialized |
minValue | the minimum value expected during serialization |
maxValue | the maximum value expected during serialization |
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
pure virtual |
Serialize a signed long integer.
value | signed long integer input value to serialize |
name | string name of the value being serialized |
minValue | the minimum value expected during serialization |
maxValue | the maximum value expected during serialization |
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
inline |
Serialize interface for deducing whether or not TYPE is an enum or an object.
value | object instance to serialize |
name | string name of the object |
|
pure virtual |
Serialize an unsigned short.
value | unsigned integer short value to serialize |
name | string name of the value being serialized |
minValue | the minimum value expected during serialization |
maxValue | the maximum value expected during serialization |
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
pure virtual |
Serialize an unsigned integer.
value | unsigned integer input value to serialize |
name | string name of the value being serialized |
minValue | the minimum value expected during serialization |
maxValue | the maximum value expected during serialization |
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
pure virtual |
Serialize an unsigned byte.
value | unsigned byte input value to serialize |
name | string name of the value being serialized |
minValue | the minimum value expected during serialization |
maxValue | the maximum value expected during serialization |
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
pure virtual |
Serialize an unsigned long integer.
value | unsigned long integer input value to serialize |
name | string name of the value being serialized |
minValue | the minimum value expected during serialization |
maxValue | the maximum value expected during serialization |
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.
|
pure virtual |
Serialize a raw set of bytes.
buffer | buffer to serialize |
bufferCapacity | size of the buffer |
isString | true if the data being serialized is a string |
outSize | bytes serialized |
name | string name of the object |
Implemented in AzNetworking::DeltaSerializerCreate, AzNetworking::DeltaSerializerApply, AzNetworking::HashSerializer, AzNetworking::NetworkInputSerializer, AzNetworking::NetworkOutputSerializer, and AzNetworking::StringifySerializer.