Description
This is a base class for serializing from archives.
#include <ChArchive.h>
Public Member Functions | |
void | RebindExternalPointer (void *mptr, size_t ID) |
Use the following to declare object IDs that must not be de-serialized but rather be 'rebind' to already-existing external pointers, given unique IDs. More... | |
void | RebindExternalPointer (std::shared_ptr< void > mptr, size_t ID) |
Use the following to declare object IDs that must not be de-serialized but rather be 'rebind' to already-existing external shared pointers, given unique IDs. More... | |
virtual void | in (ChNameValue< bool > bVal)=0 |
virtual void | in (ChNameValue< int > bVal)=0 |
virtual void | in (ChNameValue< double > bVal)=0 |
virtual void | in (ChNameValue< float > bVal)=0 |
virtual void | in (ChNameValue< char > bVal)=0 |
virtual void | in (ChNameValue< unsigned int > bVal)=0 |
virtual void | in (ChNameValue< std::string > bVal)=0 |
virtual void | in (ChNameValue< unsigned long > bVal)=0 |
virtual void | in (ChNameValue< unsigned long long > bVal)=0 |
virtual void | in (ChNameValue< ChEnumMapperBase > bVal)=0 |
virtual void | in (ChNameValue< ChFunctorArchiveIn > bVal)=0 |
virtual void * | in_ref (ChNameValue< ChFunctorArchiveIn > bVal)=0 |
virtual void | in_array_pre (const char *name, size_t &msize)=0 |
virtual void | in_array_between (const char *name)=0 |
virtual void | in_array_end (const char *name)=0 |
template<class T > | |
void | in (ChNameValue< ChEnumMapper< T > > bVal) |
template<class T , size_t N> | |
void | in (ChNameValue< T[N]> bVal) |
template<class T > | |
void | in (ChNameValue< std::vector< T > > bVal) |
template<class T > | |
void | in (ChNameValue< std::list< T > > bVal) |
template<class T , class Tv > | |
void | in (ChNameValue< std::pair< T, Tv > > bVal) |
template<class T , class Tv > | |
void | in (ChNameValue< std::unordered_map< T, Tv > > bVal) |
template<class T > | |
void | in (ChNameValue< std::shared_ptr< T > > bVal) |
template<class T > | |
void | in (ChNameValue< T * > bVal) |
template<class T > | |
void | in (ChNameValue< T > bVal) |
template<class T > | |
ChArchiveIn & | operator>> (ChNameValue< T > bVal) |
Operator to allow easy serialization as myarchive << mydata;. | |
int | VersionRead () |
template<class T > | |
int | VersionRead () |
Public Member Functions inherited from chrono::ChArchive | |
void | SetUseVersions (bool muse) |
By default, version numbers are saved in archives Use this to turn off version info in archives (either save/load both with version info, or not, do not mix because it could give problems in binary archives.). | |
void | SetClusterClassVersions (bool mcl) |
If true, the version number is not saved in each class: rather, it is saved only the first time that class is encountered. More... | |
Protected Member Functions | |
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 int | in_version (const std::type_info &mtype) |
Protected Attributes | |
std::unordered_map< void *, size_t > | internal_ptr_id |
std::unordered_map< size_t, void * > | internal_id_ptr |
size_t | currentID |
std::unordered_map< void *, std::shared_ptr< void > > | shared_ptr_map |
std::unordered_map< size_t, void * > | external_id_ptr |
container of pointers marker with external IDs to re-bind instead of de-serializing | |
Protected Attributes inherited from chrono::ChArchive | |
bool | cluster_class_versions |
std::unordered_map< std::type_index, int > | class_versions |
bool | use_versions |
Member Function Documentation
◆ PutPointer()
|
inlineprotected |
Find a pointer in pointer map: eventually add it to map if it was not previously inserted.
Returns already_stored=false if was already inserted. Return 'obj_ID' offset in vector in any case. For null pointers, always return 'already_stored'=true, and 'obj_ID'=0.
◆ RebindExternalPointer() [1/2]
|
inline |
Use the following to declare object IDs that must not be de-serialized but rather be 'rebind' to already-existing external shared pointers, given unique IDs.
Note, the IDs can be whatever integer > 0. Use unique IDs per each pointer. Note, the same IDs must be used when serializing pointers in ArchiveOUT. Note, there is no check on pointer types when rebinding!
◆ RebindExternalPointer() [2/2]
|
inline |
Use the following to declare object IDs that must not be de-serialized but rather be 'rebind' to already-existing external pointers, given unique IDs.
Note, the IDs can be whatever integer > 0. Use unique IDs per each pointer. Note, the same IDs must be used when serializing pointers in ArchiveOUT. Note, there is no check on pointer types when rebinding!
The documentation for this class was generated from the following file:
- /builds/uwsbel/chrono/src/chrono/serialization/ChArchive.h