Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
|
Serialization interface; see serialization overview. More...
#include <ISerializer.h>
Public Member Functions | |
virtual | ~ISerializer () |
void | NumberU8 (const char *name, uint8_t value, uint8_t lower, uint8_t upper) |
Serialize a number, which must be lower <= value <= upper. More... | |
void | NumberI8 (const char *name, int8_t value, int8_t lower, int8_t upper) |
void | NumberU16 (const char *name, uint16_t value, uint16_t lower, uint16_t upper) |
Serialize a number, which must be lower <= value <= upper. More... | |
void | NumberI16 (const char *name, int16_t value, int16_t lower, int16_t upper) |
Serialize a number, which must be lower <= value <= upper. More... | |
void | NumberU32 (const char *name, uint32_t value, uint32_t lower, uint32_t upper) |
Serialize a number, which must be lower <= value <= upper. More... | |
void | NumberI32 (const char *name, int32_t value, int32_t lower, int32_t upper) |
Serialize a number, which must be lower <= value <= upper. More... | |
void | NumberU8_Unbounded (const char *name, uint8_t value) |
Serialize a number. More... | |
void | NumberI8_Unbounded (const char *name, int8_t value) |
Serialize a number. More... | |
void | NumberU16_Unbounded (const char *name, uint16_t value) |
Serialize a number. More... | |
void | NumberI16_Unbounded (const char *name, int16_t value) |
Serialize a number. More... | |
void | NumberU32_Unbounded (const char *name, uint32_t value) |
Serialize a number. More... | |
void | NumberI32_Unbounded (const char *name, int32_t value) |
Serialize a number. More... | |
void | NumberFloat_Unbounded (const char *name, float value) |
Serialize a number. More... | |
void | NumberDouble_Unbounded (const char *name, double value) |
Serialize a number. More... | |
void | NumberFixed_Unbounded (const char *name, fixed value) |
Serialize a number. More... | |
void | Bool (const char *name, bool value) |
Serialize a boolean. More... | |
void | StringASCII (const char *name, const std::string &value, uint32_t minlength, uint32_t maxlength) |
Serialize an ASCII string. More... | |
void | String (const char *name, const std::wstring &value, uint32_t minlength, uint32_t maxlength) |
Serialize a Unicode string. More... | |
void | ScriptVal (const char *name, JS::MutableHandleValue value) |
Serialize a JS::MutableHandleValue. More... | |
void | RawBytes (const char *name, const u8 *data, size_t len) |
Serialize a stream of bytes. More... | |
virtual bool | IsDebug () const |
Returns true if the serializer is being used in debug mode. More... | |
virtual std::ostream & | GetStream ()=0 |
Returns a stream which can be used to serialize data directly. More... | |
Protected Member Functions | |
virtual void | PutNumber (const char *name, uint8_t value)=0 |
virtual void | PutNumber (const char *name, int8_t value)=0 |
virtual void | PutNumber (const char *name, uint16_t value)=0 |
virtual void | PutNumber (const char *name, int16_t value)=0 |
virtual void | PutNumber (const char *name, uint32_t value)=0 |
virtual void | PutNumber (const char *name, int32_t value)=0 |
virtual void | PutNumber (const char *name, float value)=0 |
virtual void | PutNumber (const char *name, double value)=0 |
virtual void | PutNumber (const char *name, fixed value)=0 |
virtual void | PutBool (const char *name, bool value)=0 |
virtual void | PutString (const char *name, const std::string &value)=0 |
virtual void | PutScriptVal (const char *name, JS::MutableHandleValue value)=0 |
virtual void | PutRaw (const char *name, const u8 *data, size_t len)=0 |
Serialization interface; see serialization overview.
|
virtual |
|
inline |
Serialize a boolean.
|
pure virtual |
Returns a stream which can be used to serialize data directly.
(This is particularly useful for chaining multiple serializers together.)
Implemented in CBinarySerializer< T >, CBinarySerializer< CBufferBinarySerializerImpl >, CBinarySerializer< CHashSerializerImpl >, CBinarySerializer< CLengthBinarySerializerImpl >, CBinarySerializer< CStdSerializerImpl >, CDebugSerializer, and CStdSerializer.
|
virtual |
Returns true if the serializer is being used in debug mode.
Components should serialize non-critical data (e.g. data that is unchanged from the template) only if this is true. (It must still only be used for synchronised, deterministic data.)
Reimplemented in CDebugSerializer.
|
inline |
Serialize a number.
PSERROR_Serialize | for any errors |
name | informative name for debug output |
value | value to serialize |
|
inline |
Serialize a number.
PSERROR_Serialize | for any errors |
name | informative name for debug output |
value | value to serialize |
|
inline |
Serialize a number.
PSERROR_Serialize | for any errors |
name | informative name for debug output |
value | value to serialize |
Serialize a number, which must be lower <= value <= upper.
The same bounds must be used when deserializing the number. This should be used in preference to the Unbounded functions, to detect erroneous or malicious values that might cause problems when used.
PSERROR_Serialize_OutOfBounds | if value is out of bounds |
PSERROR_Serialize | for any other errors |
name | informative name for debug output |
value | value to serialize |
lower | inclusive lower bound |
upper | inclusive upper bound |
|
inline |
Serialize a number.
PSERROR_Serialize | for any errors |
name | informative name for debug output |
value | value to serialize |
void ISerializer::NumberI32 | ( | const char * | name, |
int32_t | value, | ||
int32_t | lower, | ||
int32_t | upper | ||
) |
Serialize a number, which must be lower <= value <= upper.
The same bounds must be used when deserializing the number. This should be used in preference to the Unbounded functions, to detect erroneous or malicious values that might cause problems when used.
PSERROR_Serialize_OutOfBounds | if value is out of bounds |
PSERROR_Serialize | for any other errors |
name | informative name for debug output |
value | value to serialize |
lower | inclusive lower bound |
upper | inclusive upper bound |
|
inline |
Serialize a number.
PSERROR_Serialize | for any errors |
name | informative name for debug output |
value | value to serialize |
|
inline |
Serialize a number.
PSERROR_Serialize | for any errors |
name | informative name for debug output |
value | value to serialize |
Serialize a number, which must be lower <= value <= upper.
The same bounds must be used when deserializing the number. This should be used in preference to the Unbounded functions, to detect erroneous or malicious values that might cause problems when used.
PSERROR_Serialize_OutOfBounds | if value is out of bounds |
PSERROR_Serialize | for any other errors |
name | informative name for debug output |
value | value to serialize |
lower | inclusive lower bound |
upper | inclusive upper bound |
|
inline |
Serialize a number.
PSERROR_Serialize | for any errors |
name | informative name for debug output |
value | value to serialize |
Serialize a number, which must be lower <= value <= upper.
The same bounds must be used when deserializing the number. This should be used in preference to the Unbounded functions, to detect erroneous or malicious values that might cause problems when used.
PSERROR_Serialize_OutOfBounds | if value is out of bounds |
PSERROR_Serialize | for any other errors |
name | informative name for debug output |
value | value to serialize |
lower | inclusive lower bound |
upper | inclusive upper bound |
|
inline |
Serialize a number.
PSERROR_Serialize | for any errors |
name | informative name for debug output |
value | value to serialize |
Serialize a number, which must be lower <= value <= upper.
The same bounds must be used when deserializing the number. This should be used in preference to the Unbounded functions, to detect erroneous or malicious values that might cause problems when used.
PSERROR_Serialize_OutOfBounds | if value is out of bounds |
PSERROR_Serialize | for any other errors |
name | informative name for debug output |
value | value to serialize |
lower | inclusive lower bound |
upper | inclusive upper bound |
|
inline |
Serialize a number.
PSERROR_Serialize | for any errors |
name | informative name for debug output |
value | value to serialize |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
void ISerializer::RawBytes | ( | const char * | name, |
const u8 * | data, | ||
size_t | len | ||
) |
Serialize a stream of bytes.
It is the caller's responsibility to deal with portability (padding, endianness, etc); the typed serialize methods should usually be used instead of this.
void ISerializer::ScriptVal | ( | const char * | name, |
JS::MutableHandleValue | value | ||
) |
Serialize a JS::MutableHandleValue.
The value must not contain any unserializable values (like functions). NOTE: We have to use a mutable handle because JS_Stringify requires that for unknown reasons.
void ISerializer::String | ( | const char * | name, |
const std::wstring & | value, | ||
uint32_t | minlength, | ||
uint32_t | maxlength | ||
) |
Serialize a Unicode string.
Characters must be in the range U+0000..U+D7FF, U+E000..U+FDCF, U+FDF0..U+FFFD (inclusive). The string must be between minlength .. maxlength (inclusive) characters.
void ISerializer::StringASCII | ( | const char * | name, |
const std::string & | value, | ||
uint32_t | minlength, | ||
uint32_t | maxlength | ||
) |
Serialize an ASCII string.
Characters must be in the range U+0001 .. U+00FF (inclusive). The string must be between minlength .. maxlength (inclusive) characters.