Description

Serialization to binary stream.

Typical usage:

std::ofstream fileo("/file.dat", std::ios::binary);
ChArchiveOutBinary archiveout(fileo);
archiveout << CHNVP(myobj);

Remember to set stream mode to std::ios::binary. Data will always be written with little-endianness even in big-endian machines.

#include <ChArchiveBinary.h>

Inheritance diagram for chrono::ChArchiveOutBinary:
Collaboration diagram for chrono::ChArchiveOutBinary:

Public Member Functions

 ChArchiveOutBinary (std::ostream &stream_out)
 
virtual void out (ChNameValue< bool > bVal)
 
virtual void out (ChNameValue< int > bVal)
 
virtual void out (ChNameValue< double > bVal)
 
virtual void out (ChNameValue< float > bVal)
 
virtual void out (ChNameValue< char > bVal)
 
virtual void out (ChNameValue< unsigned int > bVal)
 
virtual void out (ChNameValue< unsigned long > bVal)
 
virtual void out (ChNameValue< unsigned long long > bVal)
 
virtual void out (ChNameValue< ChEnumMapperBase > bVal)
 
virtual void out (ChNameValue< const char * > bVal)
 
virtual void out (ChNameValue< std::string > bVal)
 
virtual void out_array_pre (ChValue &bVal, size_t size)
 
virtual void out_array_between (ChValue &bVal, size_t size)
 
virtual void out_array_end (ChValue &bVal, size_t size)
 
virtual void out (ChValue &bVal, bool tracked, size_t obj_ID)
 
virtual void out_ref (ChValue &bVal, bool already_inserted, size_t obj_ID, size_t ext_ID)
 
- Public Member Functions inherited from chrono::ChArchiveOut
void SetCutAllPointers (bool mcut)
 If you enable SetCutAllPointers(true), no serialization happens for objects referenced via pointers. More...
 
std::unordered_set< void * > & CutPointers ()
 Access the container of pointers that must not be serialized. More...
 
void UnbindExternalPointer (void *mptr, size_t ID)
 Use the following to declare pointer(s) that must not be de-serialized but rather be 'unbind' and be saved just as unique IDs. More...
 
void UnbindExternalPointer (std::shared_ptr< void > mptr, size_t ID)
 Use the following to declare pointer(s) that must not be de-serialized but rather be 'unbind' and be saved just as unique IDs. More...
 
virtual void out (ChNameValue< FunGetSet< bool >> bVal) const
 
virtual void out (ChNameValue< FunGetSet< int >> bVal) const
 
virtual void out (ChNameValue< FunGetSet< double >> bVal) const
 
virtual void out (ChNameValue< FunGetSet< float >> bVal) const
 
virtual void out (ChNameValue< FunGetSet< char >> bVal) const
 
virtual void out (ChNameValue< FunGetSet< unsigned int >> bVal) const
 
virtual void out (ChNameValue< FunGetSet< const char * >> bVal) const
 
virtual void out (ChNameValue< FunGetSet< unsigned long >> bVal) const
 
virtual void out (ChNameValue< FunGetSet< unsigned long long >> bVal) const
 
template<class T >
void out (ChNameValue< ChEnumMapper< T >> bVal)
 
template<class T , size_t N>
void out (ChNameValue< T[N]> bVal)
 
template<class T >
void out (ChNameValue< std::vector< T >> bVal)
 
template<class T >
void out (ChNameValue< std::list< T >> bVal)
 
template<class T , class Tv >
void out (ChNameValue< std::pair< T, Tv >> bVal)
 
template<class T , class Tv >
void out (ChNameValue< std::unordered_map< T, Tv >> bVal)
 
template<class T , class Tv >
void out (ChNameValue< std::map< T, Tv >> bVal)
 
template<class T >
void out (ChNameValue< std::shared_ptr< T >> bVal)
 
template<class T >
void out (ChNameValue< T * > bVal)
 
template<class T >
void out (ChNameValue< T > bVal)
 
template<class T >
ChArchiveOutoperator<< (ChNameValue< T > bVal)
 Operator to allow easy serialization as myarchive << mydata;.
 
void VersionWrite (int iv)
 
template<class T >
void VersionWrite ()
 
- Public Member Functions inherited from chrono::ChArchive
void SetUseVersions (bool muse)
 Turn off version info in archives. More...
 
void SetClusterClassVersions (bool mcl)
 If true, the version number is not saved in each class. More...
 

Protected Member Functions

template<typename T >
std::ostream & write (T val)
 
template<>
std::ostream & write (std::string val)
 
template<>
std::ostream & write (bool val)
 
template<>
std::ostream & write (const char *val)
 
- Protected Member Functions inherited from chrono::ChArchiveOut
void PutPointer (void *object, bool &already_stored, size_t &obj_ID)
 Find a pointer in pointer map: eventually add it to map if it was not previously inserted. More...
 
virtual void out_version (int mver, const std::type_index mtypeid)
 

Protected Attributes

std::ostream & m_ostream
 
- Protected Attributes inherited from chrono::ChArchiveOut
std::unordered_map< void *, size_t > internal_ptr_id
 
size_t currentID
 
std::unordered_map< void *, size_t > external_ptr_id
 
std::unordered_set< void * > cut_pointers
 
bool cut_all_pointers
 
- Protected Attributes inherited from chrono::ChArchive
bool cluster_class_versions
 
std::unordered_map< std::type_index, int > class_versions
 
bool use_versions
 

Additional Inherited Members

- Public Types inherited from chrono::ChArchiveOut
template<class T >
using FunGetSet = std::pair< std::function< T(void)>, std::function< void(T)> >
 

The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono/serialization/ChArchiveBinary.h
  • /builds/uwsbel/chrono/src/chrono/serialization/ChArchiveBinary.cpp
#define CHNVP(...)
Use this macro to mark a value, ex myarchive << CHNVP (myvalue, "mnemonic name") or,...
Definition: ChArchive.h:383