Symphony Of Empires
Eng3D::Deser Namespace Reference

Classes

struct  Serializer< ActionType >
 
struct  Serializer< BuildingType >
 
struct  Serializer< Building::Investment >
 
struct  Serializer< Building >
 
struct  Serializer< TreatyClauseType >
 
struct  Serializer< TreatyClause::BaseClause * >
 
struct  Serializer< enum TreatyApproval >
 
struct  Serializer< Treaty >
 
struct  Serializer< Decision >
 
struct  Serializer<::Event >
 
struct  Serializer< Policies::Economic >
 
struct  Serializer< Policies::Political >
 
struct  Serializer< Policies >
 
struct  Serializer< Ideology::Subideology >
 
struct  Serializer< Ideology >
 
struct  Serializer< Language >
 
struct  Serializer< Religion >
 
struct  Serializer< PopType >
 
struct  Serializer< Pop >
 
struct  Serializer< Technology >
 
struct  Serializer< TerrainType >
 
struct  Serializer< Nation::Relation >
 
struct  Serializer< Nation::ClientHint >
 
struct  Serializer< Nation >
 
struct  Serializer< CommodityId >
 
struct  Serializer< ProductId >
 
struct  Serializer< LanguageId >
 
struct  Serializer< ReligionId >
 
struct  Serializer< PopTypeId >
 
struct  Serializer< PopId >
 
struct  Serializer< BuildingTypeId >
 
struct  Serializer< WarId >
 
struct  Serializer< DecisionId >
 
struct  Serializer< EventId >
 
struct  Serializer< NationId >
 
struct  Serializer< ProvinceId >
 
struct  Serializer< TechnologyId >
 
struct  Serializer< TerrainTypeId >
 
struct  Serializer< TreatyId >
 
struct  Serializer< UnitTypeId >
 
struct  Serializer< UnitId >
 
struct  Serializer< IdeologyId >
 
struct  Serializer< SubideologyId >
 
struct  Serializer< BuildingId >
 
struct  Serializer< Commodity >
 
struct  Serializer< Product >
 
struct  Serializer< Province::Battle >
 
struct  Serializer< Province >
 
struct  Serializer< UnitType >
 
struct  Serializer< Unit >
 
struct  Serializer< UnitManager >
 
struct  Serializer< World >
 
class  Exception
 The purpouse of the serializer is to serialize objects onto a byte stream that can be transfered onto the disk or over the network. Should the object have any pointers - they would need to be converted to indexes accordingly for proper transmission. More...
 
struct  Archive
 Base class that serves as archiver, stores (in memory) the data required for serialization/deserialization. More...
 
struct  CondConstType
 
struct  CondConstType< true, T >
 
struct  CondConstType< false, T >
 
struct  Serializer
 A serializer (base class) which can be used to serialize objects and create per-object optimized classes. More...
 
struct  SerializerMemcpy
 A serializer optimized to memcpy directly the element into the byte stream use only when the object can be copied without modification (i.e a class full of ints) The elements must have a fixed size for this to work. More...
 
struct  Serializer< T >
 Non-contigous serializer for STL containers This serializer class works primarly with containers whose memory is contiguous. More...
 
struct  Serializer< bool >
 
struct  Serializer<::std::pair< T, U > >
 Pair serializers. More...
 
struct  SerializerBitset
 
struct  Serializer<::std::bitset< bits > >
 
struct  Serializer< Eng3D::StringRef >
 
struct  Serializer< Eng3D::Rectangle >
 
struct  Serializer< std::optional< T > >
 
struct  Serializer< Eng3D::Freelist< T > >
 

Functions

template<bool is_serialize, typename T >
void deser_dynamic (Eng3D::Deser::Archive &ar, T &obj)
 Template generic (de)-serializer. More...
 
template<bool is_serialize = true, typename T >
void deser_dynamic (Eng3D::Deser::Archive &ar, const T &obj)
 
template<typename T >
void serialize (Eng3D::Deser::Archive &ar, const T &obj)
 
template<typename T >
void serialize (Eng3D::Deser::Archive &ar, T &obj)
 
template<typename T >
void deserialize (Eng3D::Deser::Archive &ar, T &obj)
 

Variables

template<typename T >
concept SerializerScalar = std::is_integral_v<T> || std::is_floating_point_v<T>
 
template<typename T >
concept SerializerContainer
 

Function Documentation

◆ deser_dynamic() [1/2]

template<bool is_serialize = true, typename T >
void Eng3D::Deser::deser_dynamic ( Eng3D::Deser::Archive ar,
const T &  obj 
)

Definition at line 134 of file serializer.hpp.

◆ deser_dynamic() [2/2]

template<bool is_serialize, typename T >
void Eng3D::Deser::deser_dynamic ( Eng3D::Deser::Archive ar,
T &  obj 
)

Template generic (de)-serializer.

Template Parameters
is_serializeif true perform serialize mode, otherwise deserialize
Tthe type to (de)-serialize

Definition at line 139 of file serializer.hpp.

◆ deserialize()

template<typename T >
void Eng3D::Deser::deserialize ( Eng3D::Deser::Archive ar,
T &  obj 
)
inline

Definition at line 154 of file serializer.hpp.

Here is the caller graph for this function:

◆ serialize() [1/2]

template<typename T >
void Eng3D::Deser::serialize ( Eng3D::Deser::Archive ar,
const T &  obj 
)
inline

Definition at line 144 of file serializer.hpp.

Here is the caller graph for this function:

◆ serialize() [2/2]

template<typename T >
void Eng3D::Deser::serialize ( Eng3D::Deser::Archive ar,
T &  obj 
)
inline

Definition at line 149 of file serializer.hpp.

Variable Documentation

◆ SerializerContainer

template<typename T >
concept Eng3D::Deser::SerializerContainer
Initial value:
= requires(T a, T b) {
{ a.begin() } -> std::same_as<typename T::iterator>;
{ a.end() } -> std::same_as<typename T::iterator>;
}

Definition at line 200 of file serializer.hpp.

◆ SerializerScalar

template<typename T >
concept Eng3D::Deser::SerializerScalar = std::is_integral_v<T> || std::is_floating_point_v<T>

Definition at line 174 of file serializer.hpp.