Project Chrono: chrono::ChArchiveIn Class Reference

Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
chrono::ChArchiveIn Class Referenceabstract
Chrono::Engine » Serialization

## Description

Base class for deserializing from archives.

`#include <ChArchive.h>`

Inheritance diagram for chrono::ChArchiveIn:
[legend]
Collaboration diagram for chrono::ChArchiveIn:
[legend]

## 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.
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.
bool | CanTolerateMissingTokens () const
| Returns true if the class can tolerate missing tokes; on the contrary the archive must contain a complete set of info about the object that is going to be loaded.
virtual bool | TryTolerateMissingTokens (bool try_tolerate)
| Suggest the archive to tolerate missing tokens/properties in the archive file; The function returns the new settings: for those classes for which CanTolerateMissingTokens returns false this function does not have any effect and will trivially return false.
bool | GetTolerateMissingTokens () const
| Returns true if the archive is currently tolerating missing tokens.
virtual bool | in (ChNameValue< bool > bVal)=0
virtual bool | in (ChNameValue< int > bVal)=0
virtual bool | in (ChNameValue< double > bVal)=0
virtual bool | in (ChNameValue< float > bVal)=0
virtual bool | in (ChNameValue< char > bVal)=0
virtual bool | in (ChNameValue< unsigned int > bVal)=0
virtual bool | in (ChNameValue< std::string > bVal)=0
virtual bool | in (ChNameValue< unsigned long > bVal)=0
virtual bool | in (ChNameValue< unsigned long long > bVal)=0
virtual bool | in (ChNameValue< ChEnumMapperBase > bVal)=0
virtual bool | in (ChNameValue< ChFunctorArchiveIn > bVal)=0
virtual bool | in_ref (ChNameValue< ChFunctorArchiveIn > bVal, void **ptr, std::string &true_classname)=0
virtual bool | in_array_pre (const std::string &name, size_t &msize)=0
virtual void | in_array_between (const std::string &name)=0
virtual void | in_array_end (const std::string &name)=0
template<class T>
bool | in (ChNameValue< ChEnumMapper< T > > bVal)
template<class T, size_t N>
bool | in (ChNameValue< T[N]> bVal)
template<class T>
bool | in (ChNameValue< std::vector< T > > bVal)
template<class T>
bool | in (ChNameValue< std::list< T > > bVal)
template<class T, class Tv>
bool | in (ChNameValue< std::pair< T, Tv > > bVal)
template<class T, class Tv>
bool | in (ChNameValue< std::unordered_map< T, Tv > > bVal)
template<class T, class Tv>
bool | in (ChNameValue< std::map< T, Tv > > bVal)
template<class T>
bool | in (ChNameValue< std::shared_ptr< T > > bVal)
template<class T>
bool | in (ChNameValue< T * > bVal)
template<class T>
bool | 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)
| Turn off version info in archives.
void | SetClusterClassVersions (bool mcl)
| If true, the version number is not saved in each class.

## Protected Types
using | shared_pair_type = std::pair<std::shared_ptr<void>, std::string>

## Protected Member Functions
void | PutNewPointer (void *object, size_t obj_ID)
| Find a pointer in pointer map: eventually add it to map i f it was not previously inserted.
virtual int | in_version (const std::type_index mtypeid)

## Protected Attributes
std::unordered_map< void *, size_t > | internal_ptr_id
std::unordered_map< size_t, void * > | internal_id_ptr
std::unordered_map< void *, shared_pair_type > | 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
bool | can_tolerate_missing_tokens
bool | try_tolerate_missing_tokens
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

## ◆ PutNewPointer()

void chrono::ChArchiveIn::PutNewPointer | ( | void * | object,
|  | size_t | obj_ID )
| inlineprotected

Find a pointer in pointer map: eventually add it to map i f 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]

void chrono::ChArchiveIn::RebindExternalPointer | ( | std::shared_ptr< void > | mptr,
|  | size_t | ID )
| 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]

void chrono::ChArchiveIn::RebindExternalPointer | ( | void * | mptr,
|  | size_t | ID )
| 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!

## ◆ TryTolerateMissingTokens()

virtual bool chrono::ChArchiveIn::TryTolerateMissingTokens | ( | bool | try_tolerate | ) |
| inlinevirtual

Suggest the archive to tolerate missing tokens/properties in the archive file; The function returns the new settings: for those classes for which CanTolerateMissingTokens returns false this function does not have any effect and will trivially return false.

Reimplemented in chrono::ChArchiveInJSON, and chrono::ChArchiveInXML.

The documentation for this class was generated from the following files:

- D:/W/B/src/chrono-9.0.1/src/chrono/serialization/ChArchive.h
- D:/W/B/src/chrono-9.0.1/src/chrono/serialization/ChArchive.cpp