cereal
A C++11 library for serialization
|
The base output archive class. More...
#include </home/shane/workspace/cereal/include/cereal/cereal.hpp>
Public Member Functions | |
OutputArchive (ArchiveType *const derived) | |
Construct the output archive. More... | |
OutputArchive & | operator= (OutputArchive const &)=delete |
template<class ... Types> | |
ArchiveType & | operator() (Types &&... args) |
Serializes all passed in data. More... | |
void | serializeDeferments () |
Serializes any data marked for deferment using defer. More... | |
std::uint32_t | registerSharedPointer (const std::shared_ptr< const void > &sharedPointer) |
Registers a shared pointer with the archive. More... | |
std::uint32_t | registerPolymorphicType (char const *name) |
Registers a polymorphic type name with the archive. More... | |
Public Member Functions inherited from cereal::detail::OutputArchiveBase | |
OutputArchiveBase (OutputArchiveBase &&) CEREAL_NOEXCEPT | |
OutputArchiveBase & | operator= (OutputArchiveBase &&) CEREAL_NOEXCEPT |
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(). | |
using | is_loading = std::false_type |
Indicates this archive is not intended for loading. More... | |
using | is_saving = std::true_type |
Indicates this archive is intended for saving. More... | |
template<class T > | |
ArchiveType & | operator& (T &&arg) |
Serializes passed in data. More... | |
template<class T > | |
ArchiveType & | operator<< (T &&arg) |
Serializes passed in data. More... | |
The base output archive class.
This is the base output archive for all output 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.
ArchiveType | The archive type that derives from OutputArchive |
Flags | Flags to control advanced functionality. See the Flags enum for more information. |
using cereal::OutputArchive< ArchiveType, Flags >::is_loading = std::false_type |
Indicates this archive is not intended for loading.
This ensures compatibility with boost archive types. If you are transitioning from boost, you can check this value within a member or external serialize function (i.e., Archive::is_loading::value) to disable behavior specific to loading, until you can transition to split save/load or save_minimal/load_minimal functions
using cereal::OutputArchive< ArchiveType, Flags >::is_saving = std::true_type |
Indicates this archive is intended for saving.
This ensures compatibility with boost archive types. If you are transitioning from boost, you can check this value within a member or external serialize function (i.e., Archive::is_saving::value) to enable behavior specific to loading, until you can transition to split save/load or save_minimal/load_minimal functions
|
inline |
Construct the output archive.
derived | A pointer to the derived ArchiveType (pass this from the derived archive) |
|
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
|
inline |
Serializes all passed in data.
This is the primary interface for serializing data with an archive
|
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
|
inline |
Registers a polymorphic type name with the archive.
This function is used to track polymorphic types to prevent unnecessary saves of identifying strings used by the polymorphic support functionality.
|
inline |
Registers a shared pointer with the archive.
This function is used to track shared pointer targets to prevent unnecessary saves from taking place if multiple shared pointers point to the same data.
|
inline |
Serializes any data marked for deferment using defer.
This will cause any data wrapped in DeferredData to be immediately serialized