Nameless Engine
|
#include <UnorderedMapFieldSerializer.h>
Public Member Functions | |
virtual bool | isFieldTypeSupported (const rfk::Field *pField) override |
virtual std::optional< Error > | serializeField (toml::value *pTomlData, Serializable *pFieldOwner, const rfk::Field *pField, const std::string &sSectionName, const std::string &sEntityId, size_t &iSubEntityId, Serializable *pOriginalObject=nullptr) override |
virtual std::optional< Error > | deserializeField (const toml::value *pTomlDocument, const toml::value *pTomlValue, Serializable *pFieldOwner, const rfk::Field *pField, const std::string &sOwnerSectionName, const std::string &sEntityId, std::unordered_map< std::string, std::string > &customAttributes) override |
virtual std::optional< Error > | cloneField (Serializable *pFromInstance, const rfk::Field *pFromField, Serializable *pToInstance, const rfk::Field *pToField) override |
virtual bool | isFieldValueEqual (Serializable *pFieldAOwner, const rfk::Field *pFieldA, Serializable *pFieldBOwner, const rfk::Field *pFieldB) override |
virtual bool | isFieldTypeSupported (const rfk::Field *pField)=0 |
virtual std::optional< Error > | serializeField (toml::value *pTomlData, Serializable *pFieldOwner, const rfk::Field *pField, const std::string &sSectionName, const std::string &sEntityId, size_t &iSubEntityId, Serializable *pOriginalObject=nullptr)=0 |
virtual std::optional< Error > | deserializeField (const toml::value *pTomlDocument, const toml::value *pTomlValue, Serializable *pFieldOwner, const rfk::Field *pField, const std::string &sOwnerSectionName, const std::string &sEntityId, std::unordered_map< std::string, std::string > &customAttributes)=0 |
virtual std::optional< Error > | cloneField (Serializable *pFromInstance, const rfk::Field *pFromField, Serializable *pToInstance, const rfk::Field *pToField)=0 |
virtual bool | isFieldValueEqual (Serializable *pFieldAOwner, const rfk::Field *pFieldA, Serializable *pFieldBOwner, const rfk::Field *pFieldB)=0 |
Serializer for some std::unordered_map<T, T>
field types, the following inner types are supported: bool
, int
, unsigned int
, long long
, unsigned long long
, float
, double
, std::string
.
|
overridevirtual |
Clones field's data from one object to another.
pFromInstance | Instance to copy the field from. |
pFromField | Field to copy. |
pToInstance | Instance to copy to. |
pToField | Field to copy to. |
Implements ne::IFieldSerializer.
|
overridevirtual |
Deserializes field from a TOML value.
pTomlDocument | TOML document that contains a value to deserialize. |
pTomlValue | TOML value to deserialize the field from. |
pFieldOwner | Field's owner. |
pField | Field to deserialize TOML value to. |
sOwnerSectionName | Name of the TOML section where is field was found. |
sEntityId | Current ID string of the entity (field owner) that we are deserializing. |
customAttributes | Pairs of values that were found with this object in TOML data. Only found when deserializing a field of type that derives from Serializable. |
Implements ne::IFieldSerializer.
|
overridevirtual |
Tests if this serializer supports serialization/deserialization of this field.
pField | Field to test for serialization/deserialization support. |
true
if this serializer can be used to serialize this field, false
otherwise. Implements ne::IFieldSerializer.
|
overridevirtual |
Checks if the specified fields' values are equal or not.
pFieldAOwner | Owner of the field A. |
pFieldA | Field A to compare. |
pFieldBOwner | Owner of the field B. |
pFieldB | Field B to compare. |
false
if some field is unsupported by this serializer or if fields' values are not equal, true
otherwise. Implements ne::IFieldSerializer.
|
overridevirtual |
Serializes field into a TOML value.
pTomlData | TOML value to serialize the field to. |
pFieldOwner | Field's owner. |
pField | Field to serialize. |
sSectionName | Name of the section (for TOML value) to use for this field. |
sEntityId | Current ID string of the entity (field owner) that we are serializing. Only used when serializing a field of type that derives from Serializable. |
iSubEntityId | Current ID of the sub entity (sub entity of the field owner). Only used when serializing a field of type that derives from Serializable. |
pOriginalObject | Optional. Original object of the same type as the object being serialized, this object is a deserialized version of the object being serialized, used to compare serializable fields' values and only serialize changed values. Only used when serializing a field of type that derives from Serializable. |
Implements ne::IFieldSerializer.