fpmas 1.6
Classes | Typedefs | Functions
fpmas::io::datapack Namespace Reference

Classes

struct  AgentPtrSerializer
 
struct  AgentPtrSerializer< PackType, void >
 
struct  BasicJsonSerializer
 
struct  BasicJsonSerializer< std::string, JsonType >
 
class  BasicObjectPack
 
struct  LightSerializer
 
struct  LightSerializer< AgentPtr >
 
struct  LightSerializer< fpmas::api::utils::PtrWrapper< AgentType >, typename std::enable_if< std::is_base_of< api::model::Agent, AgentType >::value &&std::is_default_constructible< AgentType >::value &&std::is_same< AgentType, typename AgentType::FinalAgentType >::value >::type >
 
struct  LightSerializer< fpmas::api::utils::PtrWrapper< AgentType >, typename std::enable_if< std::is_base_of< fpmas::api::model::Agent, AgentType >::value &&!std::is_default_constructible< AgentType >::value &&std::is_same< AgentType, typename AgentType::FinalAgentType >::value >::type >
 
struct  LightSerializer< NodePtrWrapper< T > >
 
struct  LightSerializer< PtrWrapper< fpmas::model::GraphCellBase< GraphCellType, Derived > > >
 
struct  LightSerializer< PtrWrapper< fpmas::model::GridAgent< AgentType, CellType, Derived > > >
 
struct  LightSerializer< PtrWrapper< fpmas::model::GridCellBase< GridCellType, Derived > > >
 
struct  LightSerializer< PtrWrapper< fpmas::model::SpatialAgentBase< SpatialAgentInterface, AgentType, CellType, Derived > > >
 
struct  LightSerializer< WeakAgentPtr >
 
struct  Serializer
 
struct  Serializer< AgentPtr >
 
struct  Serializer< api::model::DiscretePoint >
 
struct  Serializer< api::utils::PtrWrapper< AgentType > >
 
struct  Serializer< BasicObjectPack< S > >
 
struct  Serializer< DataUpdatePack< T > >
 
struct  Serializer< DistributedId >
 
struct  Serializer< EdgePtrWrapper< T > >
 
struct  Serializer< fpmas::random::Generator< Generator_t > >
 
struct  Serializer< graph::detail::LocalizedNodeView< T > >
 
struct  Serializer< model::ReachableCell >
 
struct  Serializer< NodePtrWrapper< T > >
 
struct  Serializer< NodeUpdatePack< T > >
 
struct  Serializer< PtrWrapper< fpmas::model::GraphCellBase< GraphCellType, Derived > > >
 
struct  Serializer< PtrWrapper< fpmas::model::GridAgent< AgentType, CellType, Derived > > >
 
struct  Serializer< PtrWrapper< fpmas::model::GridCellBase< GridCellType, Derived > > >
 
struct  Serializer< PtrWrapper< fpmas::model::SpatialAgentBase< SpatialAgentInterface, AgentType, CellType, Derived > > >
 
struct  Serializer< std::array< T, N > >
 
struct  Serializer< std::chrono::duration< Rep, Ratio > >
 
struct  Serializer< std::deque< T > >
 
struct  Serializer< std::list< T > >
 
struct  Serializer< std::map< K, T, Comp, Alloc > >
 
struct  Serializer< std::pair< T1, T2 > >
 
struct  Serializer< std::set< T > >
 
struct  Serializer< std::string >
 
struct  Serializer< std::type_index >
 
struct  Serializer< std::unordered_map< K, T, Hash, KeyEq, Alloc > >
 
struct  Serializer< std::vector< T > >
 
struct  Serializer< synchro::hard::api::Color >
 
struct  Serializer< T, typename std::enable_if< std::is_fundamental< T >::value >::type >
 
struct  Serializer< WeakAgentPtr >
 

Typedefs

typedef BasicObjectPack< SerializerObjectPack
 
typedef BasicObjectPack< LightSerializerLightObjectPack
 
template<typename T , typename Enable = void>
using JsonSerializer = BasicJsonSerializer< T, nlohmann::json >
 
typedef BasicObjectPack< JsonSerializerJsonPack
 
template<typename T , typename Enable = void>
using LightJsonSerializer = BasicJsonSerializer< T, fpmas::io::json::light_json >
 
typedef BasicObjectPack< LightJsonSerializerLightJsonPack
 

Functions

template<template< typename, typename > class S>
std::ostream & operator<< (std::ostream &o, const BasicObjectPack< S > &pack)
 

Detailed Description

ObjectPack serialization related features.

Typedef Documentation

◆ ObjectPack

BasicObjectPack specialization based on the regular binary fpmas::io::datapack::Serializer.

An ObjectPack can be seen as a json or YAML object that could be defined in other libraries, using other serialization techniques.

◆ LightObjectPack

LightSerializer based BasicObjectPack specialization.

Light version of the regular ObjectPack.

◆ JsonSerializer

template<typename T , typename Enable = void>
using fpmas::io::datapack::JsonSerializer = typedef BasicJsonSerializer<T, nlohmann::json>

An nlohmann::json based Serializer.

See https://github.com/nlohmann/json#arbitrary-types-conversions to learn how to define rules to serialize any custom type with the nlohmann::json library.

Template Parameters
Ttype to serialize as an nlohmann::json instance

◆ JsonPack

An nlohmann::json based BasicObjectPack.

◆ LightJsonSerializer

template<typename T , typename Enable = void>
using fpmas::io::datapack::LightJsonSerializer = typedef BasicJsonSerializer<T, fpmas::io::json::light_json>

An fpmas::io::json::light_json based serializer. Can be considered as the light version of JsonSerializer.

◆ LightJsonPack

An fpmas::io::json::light_json based BasicObjectPack. Can be considered as the light version of JsonPack.

Function Documentation

◆ operator<<()

template<template< typename, typename > class S>
std::ostream & fpmas::io::datapack::operator<< ( std::ostream &  o,
const BasicObjectPack< S > &  pack 
)

BasicObjectPack output stream operator specialization.

The internal DataPack is written has hexadecimal values.