Serialbox  2.2.0
Data serialization library and tools for C/C++, Python and Fortran
Core

Core library of serialbox. More...

Namespaces

 serialbox
 Namespace of the serialbox library.
 

Classes

class  serialbox::Archive
 Abstract interface for Archives. More...
 
class  serialbox::ArchiveFactory
 Factory to create Archives. More...
 
class  serialbox::BinaryArchive
 Non-portable binary archive. More...
 
class  serialbox::MockArchive
 Mock archive. More...
 
class  serialbox::NetCDFArchive
 Archive based on NetCDF. More...
 
struct  serialbox::ArrayUtil
 Utilites for Array. More...
 
struct  serialbox::IsArray< T >
 Check if type T is an Array. More...
 
struct  serialbox::IsArray< Array< T > >
 
struct  serialbox::MakePrimitive< T >
 Return the primtive type (T::value_type) if T is an Array or T otherwise. More...
 
class  serialbox::Exception
 Exception class which stores a human-readable error description. More...
 
struct  serialbox::FieldID
 Uniquely identifiy a field. More...
 
class  serialbox::FieldMap
 Hash-map to query the meta-information of the registered fields. More...
 
class  serialbox::FieldMetainfoImpl
 Meta-information of a data field. More...
 
class  serialbox::Hash
 Hash algorithm interface. More...
 
class  serialbox::HashFactory
 Factory to create Hash algorithms. More...
 
class  serialbox::MD5
 Implementation of MD5 cryptographic hash algorithm. More...
 
class  serialbox::SHA256
 Implementation of the SHA-1 (Secure Hash Algorithm 1) More...
 
class  serialbox::Logging
 Control the logging behaviour. More...
 
class  serialbox::MetainfoMapImpl
 Hash-map of meta-information of the form key = value pair or key = {value1, ..., valueN} More...
 
class  serialbox::MetainfoValueImpl
 Represent an immutable meta information value as a type-id and type-erased data. More...
 
class  serialbox::SavepointImpl
 Shared implementation of the Savepoint. More...
 
class  serialbox::SavepointVector
 The SavepointVector manages the registered savepoints and their mapping to the stored fields. More...
 
class  serialbox::SerializerImpl
 Shared implementation of the Serializer. More...
 
struct  serialbox::SliceTriple
 Slice per dimension. More...
 
class  serialbox::Slice
 Specification of the slice indices which is used for partial loading of serialized data. More...
 
class  serialbox::StorageView
 Represent a mutable view to a multi-dimensional storage. More...
 
class  serialbox::StorageViewIteratorBase< ValueType >
 Forward iterator to access the data of a StorageView. More...
 
class  serialbox::StorageViewIterator
 Mutable forward iterator to access the data of a StorageView. More...
 
class  serialbox::ConstStorageViewIterator
 Non-mutable forward iterator to access the data of a StorageView. More...
 
class  serialbox::Timer
 High resolution timer. More...
 
struct  serialbox::IsSupported< T >
 Check if the Type is recognized by serialbox i.e maps to a type-id in TypeID. More...
 
struct  serialbox::TypeUtil
 Utilites for TypeID. More...
 
struct  serialbox::ToTypeID< T >
 Convert C++ type T to TypeID. More...
 
struct  serialbox::ToTypeID< bool >
 
struct  serialbox::ToTypeID< float >
 
struct  serialbox::ToTypeID< double >
 
struct  serialbox::ToTypeID< Array< bool > >
 
struct  serialbox::ToTypeID< Array< float > >
 
struct  serialbox::ToTypeID< Array< double > >
 
struct  serialbox::ToType< ID >
 Convert TypeID to C++ type. More...
 
struct  serialbox::ToType< TypeID::Boolean >
 
struct  serialbox::ToType< TypeID::Int32 >
 
struct  serialbox::ToType< TypeID::Int64 >
 
struct  serialbox::ToType< TypeID::Float32 >
 
struct  serialbox::ToType< TypeID::Float64 >
 
struct  serialbox::ToType< TypeID::String >
 
struct  serialbox::ToType< TypeID::ArrayOfBoolean >
 
struct  serialbox::ToType< TypeID::ArrayOfInt32 >
 
struct  serialbox::ToType< TypeID::ArrayOfInt64 >
 
struct  serialbox::ToType< TypeID::ArrayOfFloat32 >
 
struct  serialbox::ToType< TypeID::ArrayOfFloat64 >
 
struct  serialbox::ToType< TypeID::ArrayOfString >
 
class  serialbox::match_cv_qualifier< QualifiedType, UnqualifiedType, IsConst, IsVolatile >
 Utility for constructing identically cv-qualified types. More...
 
struct  serialbox::Version
 Utility to deal with Serialbox versions. More...
 

Macros

#define LOG(severity)   SERIALBOX_INTERNAL_LOG(severity)
 Logging infrastructure. More...
 
#define SERIALBOX_INTERNAL_LOG(severity)
 
#define serialbox_unreachable(msg)   ::serialbox::serialbox_unreachable_internal(msg, __FILE__, __LINE__)
 Marks that the current location is not supposed to be reachable. More...
 

Typedefs

template<class T >
using serialbox::Array = std::vector< T >
 Array class used by serialbox to store meta-information.
 
using serialbox::Byte = char
 Represent a byte i.e sizeof(Byte) == 1.
 

Enumerations

enum  serialbox::OpenModeKind : std::uint8_t { Read = 0, Write, Append }
 Policy for opening files in the Serializer and Archive.
 
enum  serialbox::TypeID : int {
  Invalid = 0, Boolean, Int32, Int64,
  Float32, Float64, String, Array = 0x10,
  ArrayOfBoolean = Array | Boolean, ArrayOfInt32 = Array | Int32, ArrayOfInt64 = Array | Int64, ArrayOfFloat32 = Array | Float32,
  ArrayOfFloat64 = Array | Float64, ArrayOfString = Array | String
}
 Type-id of types recognized by serialbox. More...
 

Functions

bool serialbox::operator== (const FieldID &left, const FieldID &right)
 Check for equality of FieldIDs.
 
bool serialbox::operator!= (const FieldID &left, const FieldID &right)
 Check for inequality of FieldIDs.
 
std::ostream & serialbox::operator<< (std::ostream &stream, const FieldID &f)
 Convert FieldID to stream.
 
void serialbox::swap (StorageView &a, StorageView &b) noexcept
 
std::ostream & serialbox::operator<< (std::ostream &stream, const OpenModeKind &mode)
 Convert OpenModeKind to stream.
 
std::ostream & serialbox::operator<< (std::ostream &stream, const TypeID &t)
 Convert TypeID to stream.
 
SERIALBOX_ATTRIBUTE_NORETURN void serialbox::serialbox_unreachable_internal (const char *msg, const char *file, unsigned line)
 
template<>
bool serialbox::MetainfoValueImpl::as () const
 

Detailed Description

Core library of serialbox.

Macro Definition Documentation

◆ LOG

#define LOG (   severity)    SERIALBOX_INTERNAL_LOG(severity)

Logging infrastructure.

LOG The macro is used to initiate logging. The lvl argument of the macro specifies one of the following severity levels: trace, debug, info, warning, error or fatal.

The logging can be completely turned off by defining SERIALBOX_DISABLE_LOGGING.

LOG(info) << "Hello, world!";

Definition at line 102 of file Logging.h.

◆ SERIALBOX_INTERNAL_LOG

#define SERIALBOX_INTERNAL_LOG (   severity)
Value:
serialbox::internal::Logger::getInstance().severity()
static bool isEnabled() noexcept
Return true if logging is eneabled.
Definition: Logging.h:87

Definition at line 112 of file Logging.h.

◆ serialbox_unreachable

#define serialbox_unreachable (   msg)    ::serialbox::serialbox_unreachable_internal(msg, __FILE__, __LINE__)

Marks that the current location is not supposed to be reachable.

serialbox_unreachable In !NDEBUG builds, prints the message and location info to stderr. In NDEBUG builds, becomes an optimizer hint that the current location is not supposed to be reachable. On compilers that don't support such hints, prints a reduced message instead.

Definition at line 41 of file Unreachable.h.

Enumeration Type Documentation

◆ TypeID

enum serialbox::TypeID : int
strong

Type-id of types recognized by serialbox.

This enum is duplicated in serialbox-c/Type.h.

See also
isSupported

Definition at line 55 of file Type.h.