cereal::InputArchive< ArchiveType, Flags > Class Template Reference
Internal Functionality

The base input archive class. More...

`#include </build/libcereal-YYPPni/libcereal-1.2.1/include/cereal/cereal.hpp>`

Inheritance diagram for cereal::InputArchive< ArchiveType, Flags >:

## Public Member Functions

| InputArchive (ArchiveType *const derived)
| Construct the output archive. More...
InputArchive & | operator= (InputArchive const &)=delete
template<class ... Types>
ArchiveType & | operator() (Types &&... args)
| Serializes all passed in data. More...
std::shared_ptr< void > | getSharedPointer (std::uint32_t const id)
| Retrieves a shared pointer given a unique key for it. More...
void | registerSharedPointer (std::uint32_t const id, std::shared_ptr< void > ptr)
| Registers a shared pointer to its unique identifier. More...
std::string | getPolymorphicName (std::uint32_t const id)
| Retrieves the string for a polymorphic type given a unique key for it. More...
void | registerPolymorphicName (std::uint32_t const id, std::string const &name)
| Registers a polymorphic name string to its unique identifier. More...
Boost Transition Layer
Functionality that mirrors the syntax for Boost. This is useful if you are transitioning a large project from Boost to cereal. The preferred interface for cereal is using operator().
template<class T >
ArchiveType & | operator & (T &&arg)
| Serializes passed in data. More...
template<class T >
ArchiveType & | operator>> (T &&arg)
| Serializes passed in data. More...
Public Member Functions inherited from cereal::detail::InputArchiveBase
| InputArchiveBase (InputArchiveBase &&) CEREAL_NOEXCEPT
InputArchiveBase & | operator= (InputArchiveBase &&) CEREAL_NOEXCEPT

## Friends

template<class A , class B , bool C, bool D, bool E, bool F>
struct | detail::Construct
| Befriend for versioning in load_and_construct.

## Detailed Description

### template<class ArchiveType, std::uint32_t Flags = 0>
class cereal::InputArchive< ArchiveType, Flags >

The base input archive class.

This is the base input archive for all input archives. If you create a custom archive class, it should derive from this, passing itself as a template parameter for the ArchiveType.

The base class provides all of the functionality necessary to properly forward data to the correct serialization functions.

Individual archives should use a combination of prologue and epilogue functions together with specializations of serialize, save, and load to alter the functionality of their serialization.

Template Parameters

  ArchiveType | The archive type that derives from InputArchive
  Flags | Flags to control advanced functionality. See the Flags enum for more information.

## Constructor & Destructor Documentation

## InputArchive()

template<class ArchiveType, std::uint32_t Flags = 0>

cereal::InputArchive< ArchiveType, Flags >::InputArchive | ( | ArchiveType *const | derived | ) |

inline

Construct the output archive.

Parameters

  derived | A pointer to the derived ArchiveType (pass this from the derived archive)

## Member Function Documentation

## getPolymorphicName()

template<class ArchiveType, std::uint32_t Flags = 0>

std::string cereal::InputArchive< ArchiveType, Flags >::getPolymorphicName | ( | std::uint32_t const | id | ) |

inline

Retrieves the string for a polymorphic type given a unique key for it.

This is used to retrieve a string previously registered during a polymorphic load.

Parameters

  id | The unique id that was serialized for the polymorphic type

Returns
  The string identifier for the tyep

## getSharedPointer()

template<class ArchiveType, std::uint32_t Flags = 0>

std::shared_ptr<void> cereal::InputArchive< ArchiveType, Flags >::getSharedPointer | ( | std::uint32_t const | id | ) |

inline

Retrieves a shared pointer given a unique key for it.

This is used to retrieve a previously registered shared_ptr which has already been loaded.

Parameters

  id | The unique id that was serialized for the pointer

Returns
  A shared pointer to the data

Exceptions

  Exception | if the id does not exist

## operator &()

template<class ArchiveType, std::uint32_t Flags = 0>
template<class T >

ArchiveType& cereal::InputArchive< ArchiveType, Flags >::operator& | ( | T && | arg | ) |

inline

Serializes passed in data.

This is a boost compatability layer and is not the preferred way of using cereal. If you are transitioning from boost, use this until you can transition to the operator() overload

## operator()()

template<class ArchiveType, std::uint32_t Flags = 0>
template<class ... Types>

ArchiveType& cereal::InputArchive< ArchiveType, Flags >::operator() | ( | Types &&... | args | ) |

inline

Serializes all passed in data.

This is the primary interface for serializing data with an archive

## operator>>()

template<class ArchiveType, std::uint32_t Flags = 0>
template<class T >

ArchiveType& cereal::InputArchive< ArchiveType, Flags >::operator>> | ( | T && | arg | ) |

inline

Serializes passed in data.

This is a boost compatability layer and is not the preferred way of using cereal. If you are transitioning from boost, use this until you can transition to the operator() overload

## registerPolymorphicName()

template<class ArchiveType, std::uint32_t Flags = 0>

void cereal::InputArchive< ArchiveType, Flags >::registerPolymorphicName | ( | std::uint32_t const | id,
|  | std::string const & | name
| ) |  |

inline

Registers a polymorphic name string to its unique identifier.

After a polymorphic type has been loaded for the first time, it should be registered with its loaded id for future references to it.

Parameters

  id | The unique identifier for the polymorphic type
  name | The name associated with the tyep

## registerSharedPointer()

template<class ArchiveType, std::uint32_t Flags = 0>

void cereal::InputArchive< ArchiveType, Flags >::registerSharedPointer | ( | std::uint32_t const | id,
|  | std::shared_ptr< void > | ptr
| ) |  |

inline

Registers a shared pointer to its unique identifier.

After a shared pointer has been allocated for the first time, it should be registered with its loaded id for future references to it.

Parameters

  id | The unique identifier for the shared pointer
  ptr | The actual shared pointer

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

- include/cereal/cereal.hpp