openMSX
Public Member Functions | Static Public Attributes | List of all members
openmsx::MemInputArchive Class Referencefinal

#include <serialize.hh>

Inheritance diagram for openmsx::MemInputArchive:
Inheritance graph
[legend]
Collaboration diagram for openmsx::MemInputArchive:
Collaboration graph
[legend]

Public Member Functions

 MemInputArchive (const uint8_t *data, size_t size, std::span< const std::shared_ptr< DeltaBlock > > deltaBlocks_)
 
bool versionAtLeast (unsigned, unsigned) const
 
bool versionBelow (unsigned, unsigned) const
 
template<typename T >
void load (T &t)
 
void loadChar (char &c)
 
void load (std::string &s)
 
std::string_view loadStr ()
 
void serialize_blob (const char *tag, std::span< uint8_t > data, bool diff=true)
 
template<typename T , typename ... Args>
ALWAYS_INLINE void serialize (const char *tag, T &t, Args &&...args)
 
template<typename T , size_t N>
requires (SerializeAsMemcpy<T>::value)
ALWAYS_INLINE void serialize (const char *, std::array< T, N > &t)
 
void skipSection (bool skip)
 
- Public Member Functions inherited from openmsx::InputArchiveBase< MemInputArchive >
void serializeWithID (const char *tag, T &t, Args... args)
 
void serialize_blob (const char *tag, std::span< uint8_t > data, bool diff=true)
 
void serialize (const char *tag, T &t)
 
void serializePointerID (const char *tag, const T &t)
 
void serializePolymorphic (const char *tag, T &t)
 
void serializeOnlyOnce (const char *tag, const T &t)
 
void serializeChar (const char *tag, char &c)
 
void doSerialize (const char *tag, T &t, TUPLE args, int id=0)
 
- Public Member Functions inherited from openmsx::ArchiveBase< MemInputArchive >
void serializeBase (T &t)
 Is this archive a loader or a saver. More...
 
void serializeInlinedBase (T &t, unsigned version)
 Serialize the base class of this classtype. More...
 
void serialize_blob (const char *tag, std::span< T > data, bool diff=true)
 
void serialize_blob (const char *tag, std::span< const T > data, bool diff=true)
 
bool isReverseSnapshot () const
 Is this a reverse-snapshot? More...
 
void attribute (const char *name, T &t)
 Load/store an attribute from/in the archive. More...
 
void attribute (const char *name, const char *value)
 
bool hasAttribute (const char *)
 Check the presence of a (optional) attribute. More...
 
std::optional< T > findAttributeAs (const char *)
 Optimization: combination of hasAttribute() and getAttribute(). More...
 
int countChildren () const
 Count the number of child tags. More...
 
void beginTag (const char *)
 Indicate begin of a tag. More...
 
void endTag (const char *)
 Indicate begin of a tag. More...
 
- Public Member Functions inherited from openmsx::InputArchiveBase2
void beginSection ()
 
void endSection ()
 
void * getPointer (unsigned id)
 
void addPointer (unsigned id, const void *p)
 
unsigned getId (const void *p) const
 
template<typename T >
void resetSharedPtr (std::shared_ptr< T > &s, T *r)
 

Static Public Attributes

static constexpr bool NEED_VERSION = false
 
- Static Public Attributes inherited from openmsx::ArchiveBase< MemInputArchive >
static constexpr bool NEED_VERSION
 Does this archive store version information. More...
 
static constexpr bool TRANSLATE_ENUM_TO_STRING
 Does this archive store enums as strings. More...
 
static constexpr bool CAN_HAVE_OPTIONAL_ATTRIBUTES
 Some archives (like XML archives) can store optional attributes. More...
 
static constexpr bool CAN_COUNT_CHILDREN
 Some archives (like XML archives) can count the number of subtags that belong to the current tag. More...
 
- Static Public Attributes inherited from openmsx::InputArchiveBase2
static constexpr bool IS_LOADER = true
 

Additional Inherited Members

- Protected Member Functions inherited from openmsx::InputArchiveBase< MemInputArchive >
 InputArchiveBase ()=default
 
- Protected Member Functions inherited from openmsx::ArchiveBase< MemInputArchive >
MemInputArchiveself ()
 Returns a reference to the most derived class. More...
 
- Protected Member Functions inherited from openmsx::InputArchiveBase2
 InputArchiveBase2 ()=default
 

Detailed Description

Definition at line 766 of file serialize.hh.

Constructor & Destructor Documentation

◆ MemInputArchive()

openmsx::MemInputArchive::MemInputArchive ( const uint8_t *  data,
size_t  size,
std::span< const std::shared_ptr< DeltaBlock > >  deltaBlocks_ 
)
inline

Definition at line 769 of file serialize.hh.

Member Function Documentation

◆ load() [1/2]

void openmsx::MemInputArchive::load ( std::string &  s)

Definition at line 190 of file serialize.cc.

References gl::length(), and load().

◆ load() [2/2]

template<typename T >
void openmsx::MemInputArchive::load ( T &  t)
inline

Definition at line 786 of file serialize.hh.

References t.

Referenced by load(), loadChar(), loadStr(), and serialize_blob().

◆ loadChar()

void openmsx::MemInputArchive::loadChar ( char &  c)
inline

Definition at line 790 of file serialize.hh.

References load().

◆ loadStr()

string_view openmsx::MemInputArchive::loadStr ( )

◆ serialize() [1/2]

template<typename T , size_t N>
requires (SerializeAsMemcpy<T>::value)
ALWAYS_INLINE void openmsx::MemInputArchive::serialize ( const char *  ,
std::array< T, N > &  t 
)
inline

Definition at line 808 of file serialize.hh.

References openmsx::InputBuffer::read(), and t.

◆ serialize() [2/2]

template<typename T , typename ... Args>
ALWAYS_INLINE void openmsx::MemInputArchive::serialize ( const char *  tag,
T &  t,
Args &&...  args 
)
inline

Definition at line 801 of file serialize.hh.

References t.

◆ serialize_blob()

void openmsx::MemInputArchive::serialize_blob ( const char *  tag,
std::span< uint8_t >  data,
bool  diff = true 
)

◆ skipSection()

void openmsx::MemInputArchive::skipSection ( bool  skip)
inline

Definition at line 814 of file serialize.hh.

◆ versionAtLeast()

bool openmsx::MemInputArchive::versionAtLeast ( unsigned  ,
unsigned   
) const
inline

Definition at line 777 of file serialize.hh.

◆ versionBelow()

bool openmsx::MemInputArchive::versionBelow ( unsigned  ,
unsigned   
) const
inline

Definition at line 781 of file serialize.hh.

Member Data Documentation

◆ NEED_VERSION

constexpr bool openmsx::MemInputArchive::NEED_VERSION = false
staticconstexpr

Definition at line 776 of file serialize.hh.


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