Deserialization from binary stream.
Typical usage:
std::ifstream filei("/file.dat", std::ios::binary);
ChArchiveInBinary archivein(filei);
archivein >>
CHNVP(myobj);
#define CHNVP(...)
Use this macro to mark a value, ex myarchive << CHNVP (myvalue, "mnemonic name") or,...
Definition ChArchive.h:383
Remember to set stream mode to std::ios::binary. Data is expected to always be printed with little-endianness even in big-endian machines. The class will convert to big-endian if necessary.
|
|
| ChArchiveInBinary (std::istream &stream_in) |
| |
| virtual bool | in (ChNameValue< bool > bVal) override |
| |
| virtual bool | in (ChNameValue< int > bVal) override |
| |
| virtual bool | in (ChNameValue< double > bVal) override |
| |
| virtual bool | in (ChNameValue< float > bVal) override |
| |
| virtual bool | in (ChNameValue< unsigned int > bVal) override |
| |
| virtual bool | in (ChNameValue< unsigned long > bVal) override |
| |
| virtual bool | in (ChNameValue< unsigned long long > bVal) override |
| |
| virtual bool | in (ChNameValue< ChEnumMapperBase > bVal) override |
| |
| virtual bool | in (ChNameValue< char > bVal) override |
| |
| virtual bool | in (ChNameValue< std::string > bVal) override |
| |
| virtual bool | in_array_pre (const std::string &name, size_t &size) override |
| |
| virtual void | in_array_between (const std::string &name) override |
| |
| virtual void | in_array_end (const std::string &name) override |
| |
| virtual bool | in (ChNameValue< ChFunctorArchiveIn > bVal) override |
| |
| virtual bool | in_ref (ChNameValue< ChFunctorArchiveIn > bVal, void **ptr, std::string &true_classname) override |
| |
|
template<> |
| std::istream & | read (std::string &val) |
| |
|
template<> |
| std::istream & | read (bool &val) |
| |
|
template<> |
| std::istream & | read (char *&val) |
| |
|
template<> |
| std::istream & | read (std::string &val) |
| |
|
template<> |
| std::istream & | read (bool &val) |
| |
|
template<> |
| std::istream & | read (char *&val) |
| |
| 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.
|
| |
|
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 () |
| |
| 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.
|
| |
|
|
std::istream & | m_istream |
| |
|
bool | m_big_endian_machine |
| |
|
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 |
| |
|
bool | cluster_class_versions |
| |
|
std::unordered_map< std::type_index, int > | class_versions |
| |
|
bool | use_versions |
| |