libebml_ng
Public Member Functions | Friends | List of all members

Represents a structure-like EBML master element. More...

#include <ebmlStruct.h>

Inheritance diagram for ebml::ebmlStructType:
ebml::ebmlTypeCRTP< ebmlStructType, ebmlStruct, ebmlMasterElementType > ebml::ebmlMasterElementType ebml::ebmlTypeCRTP< ebmlMasterElementType, ebmlMasterElement > ebml::ebmlElementType

Public Member Functions

 ebmlStructType (const char *, const std::wstring &, const slotSpec_l &)
 
 ebmlStructType (ebmlID_t, const std::wstring &, const slotSpec_l &)
 
 ebmlStructType (const char *, const std::wstring &, const slotSpec_l &, const seekHelper_t *seekHelper)
 
 ebmlStructType (ebmlID_t, const std::wstring &, const slotSpec_l &, const seekHelper_t *seekHelper)
 
const std::vector< slotSpec_t > & slotSpecs () const
 
const std::unordered_map< std::string, const slotSpec_t * > & slotSpecsByKey () const
 
const std::unordered_map< ebmlID_t, const slotSpec_t * > & slotSpecsByID () const
 
const ebmlElementTypetypeBySlot (const std::string &) const
 
const ebmlElementTypetypeBySlot (size_t) const
 
- Public Member Functions inherited from ebml::ebmlTypeCRTP< ebmlStructType, ebmlStruct, ebmlMasterElementType >
 ebmlTypeCRTP (Args &&... args)
 
ebml::ptr< ebmlStructoperator() (Args &&... args) const
 Creates a new instance of an EBML element. More...
 
ebml::ptr< ebmlStructdecode (const parseString &parsed) const
 
ebml::ptr< ebmlStructdecode (const parseFile &parsed) const
 
ebml::ptr< ebmlStructdecode (const char *data, size_t size) const
 
ebml::ptr< ebmlStructdecode (const std::string &data) const
 
ebml::ptr< ebmlStructdecode (ioBase &file) const
 
ebml::ptr< ebmlStructdecode (ioBase &file, off_t &offset) const
 
ebml::ptr< ebmlStructdecode (ioBase &file, off_t offset, off_t &endoffset) const
 
ebml::ptr< const ebmlStructcdecode (const parseString &parsed) const
 
ebml::ptr< const ebmlStructcdecode (const parseFile &parsed) const
 
ebml::ptr< const ebmlStructcdecode (const char *data, size_t size) const
 
ebml::ptr< const ebmlStructcdecode (const std::string &data) const
 
ebml::ptr< const ebmlStructcdecode (ioBase &file) const
 
ebml::ptr< const ebmlStructcdecode (ioBase &file, off_t &offset) const
 
ebml::ptr< const ebmlStructcdecode (ioBase &file, off_t offset, off_t &endoffset) const
 
- Public Member Functions inherited from ebml::ebmlMasterElementType
 ebmlMasterElementType (const char *, const std::wstring &, const childTypeSpecArg_l &)
 
 ebmlMasterElementType (ebmlID_t, const std::wstring &, const childTypeSpecArg_l &)
 
 ebmlMasterElementType (const char *, const std::wstring &, const childTypeSpecArg_l &, const seekHelper_t *seekHelper)
 
 ebmlMasterElementType (ebmlID_t, const std::wstring &, const childTypeSpecArg_l &, const seekHelper_t *seekHelper)
 
const childTypeSpec_tchildTypes () const
 Gets the child type specification. More...
 
- Public Member Functions inherited from ebml::ebmlTypeCRTP< ebmlMasterElementType, ebmlMasterElement >
 ebmlTypeCRTP (Args &&... args)
 
ebml::ptr< ebmlMasterElementoperator() (Args &&... args) const
 Creates a new instance of an EBML element. More...
 
ebml::ptr< ebmlMasterElementdecode (const parseString &parsed) const
 
ebml::ptr< ebmlMasterElementdecode (const parseFile &parsed) const
 
ebml::ptr< ebmlMasterElementdecode (const char *data, size_t size) const
 
ebml::ptr< ebmlMasterElementdecode (const std::string &data) const
 
ebml::ptr< ebmlMasterElementdecode (ioBase &file) const
 
ebml::ptr< ebmlMasterElementdecode (ioBase &file, off_t &offset) const
 
ebml::ptr< ebmlMasterElementdecode (ioBase &file, off_t offset, off_t &endoffset) const
 
ebml::ptr< const ebmlMasterElementcdecode (const parseString &parsed) const
 
ebml::ptr< const ebmlMasterElementcdecode (const parseFile &parsed) const
 
ebml::ptr< const ebmlMasterElementcdecode (const char *data, size_t size) const
 
ebml::ptr< const ebmlMasterElementcdecode (const std::string &data) const
 
ebml::ptr< const ebmlMasterElementcdecode (ioBase &file) const
 
ebml::ptr< const ebmlMasterElementcdecode (ioBase &file, off_t &offset) const
 
ebml::ptr< const ebmlMasterElementcdecode (ioBase &file, off_t offset, off_t &endoffset) const
 
- Public Member Functions inherited from ebml::ebmlElementType
 ebmlElementType (const char *ebmlID, const std::wstring &name)
 Constructor taking an EBML ID as a VINT string and an element name. More...
 
 ebmlElementType (const char *ebmlID, const std::wstring &name, const seekHelper_t *seekHelper)
 
 ebmlElementType (ebmlID_t ebmlID, const std::wstring &name)
 Constructor taking an EBML ID as an unsigned integer and an element name. More...
 
 ebmlElementType (ebmlID_t ebmlID, const std::wstring &name, const seekHelper_t *seekHelper)
 
ebml::ptr< ebmlElementoperator() () const
 Factory operator to create a default EBML element instance. More...
 
seekMapBaseinitSeekMap () const
 
seekData_tmakeSeekData (const parseString &) const
 
seekData_tmakeSeekData (const parseString &, const ebmlMasterElement_wp &) const
 
seekData_tmakeSeekData (const parseString &, ebmlMasterElement_wp &&) const
 
seekData_tmakeSeekData (const parseFile &) const
 
seekData_tmakeSeekData (const parseFile &, const ebmlMasterElement_wp &) const
 
seekData_tmakeSeekData (const parseFile &, ebmlMasterElement_wp &&) const
 
template<typename T = ebmlElementType>
T & as ()
 
template<typename T = ebmlElementType>
T & as () const
 
virtual std::wstring minirepr () const
 
std::wstring repr () const
 
ebml::ptr< ebmlElementdecode (const parseString &) const
 Decode element from ebml::parseString instance. More...
 
ebml::ptr< ebmlElementdecode (const parseFile &) const
 Decode and create a new EBML element instance from ebml::parseFile instance. More...
 
ebml::ptr< ebmlElementdecode (const char *, size_t) const
 Decode and create a new EBML element instance from a raw data buffer. More...
 
ebml::ptr< ebmlElementdecode (const std::string &) const
 Decode and create a new EBML element instance from a std::string instance. More...
 
ebml::ptr< ebmlElementdecode (ioBase &) const
 Decode and create a new EBML element instance from ebml::ioBase instance at the current file position. More...
 
ebml::ptr< ebmlElementdecode (ioBase &, off_t &) const
 Decode and create a new EBML element instance from ebml::ioBase instance with a specified offset. More...
 
ebml::ptr< ebmlElementdecode (ioBase &, off_t, off_t &) const
 Decode from ebml::ioBase instance with a specified offset and store the end offset. More...
 
ebml::ptr< const ebmlElementcdecode (const parseString &) const
 
ebml::ptr< const ebmlElementcdecode (const parseFile &) const
 
ebml::ptr< const ebmlElementcdecode (const char *, size_t) const
 
ebml::ptr< const ebmlElementcdecode (const std::string &) const
 
ebml::ptr< const ebmlElementcdecode (ioBase &) const
 
ebml::ptr< const ebmlElementcdecode (ioBase &, off_t &offset) const
 
ebml::ptr< const ebmlElementcdecode (ioBase &, off_t offset, off_t &end) const
 

Friends

class ebmlStruct
 

Additional Inherited Members

- Public Attributes inherited from ebml::ebmlElementType
ebmlID_t ebmlID
 EBML ID associated with this element type. More...
 
std::wstring name
 Name (as a wide string) of the element type. More...
 
const seekHelper_t_seekHelper = &seekHelper
 
- Protected Member Functions inherited from ebml::ebmlTypeCRTP< ebmlStructType, ebmlStruct, ebmlMasterElementType >
ebmlElement_new () const
 
ebmlElement_decode_v (const parseString &) const
 
ebmlElement_decode_v (const parseFile &) const
 
ebmlElement_cdecode_v (const parseString &) const
 
ebmlElement_cdecode_v (const parseFile &) const
 
- Protected Member Functions inherited from ebml::ebmlMasterElementType
 ebmlMasterElementType (const char *, const std::wstring &)
 
 ebmlMasterElementType (ebmlID_t, const std::wstring &)
 
 ebmlMasterElementType (const char *, const std::wstring &, const seekHelper_t *seekHelper)
 
 ebmlMasterElementType (ebmlID_t, const std::wstring &, const seekHelper_t *seekHelper)
 
ebmlElement_decodeChild (const parseString &) const
 
ebmlElement_decodeChild (const parseFile &) const
 
ebmlElement_cdecodeChild (const parseString &) const
 
ebmlElement_cdecodeChild (const parseFile &) const
 
- Protected Member Functions inherited from ebml::ebmlElementType
ebmlElement_decode_nocheck (const parseString &parsed) const
 Decode element from ebml::parseString instance. More...
 
ebmlElement_decode_nocheck (const parseFile &parsed) const
 Decode element from ebml::parseFile instance. More...
 
ebmlElement_cdecode_nocheck (const parseString &parsed) const
 
ebmlElement_cdecode_nocheck (const parseFile &parsed) const
 
ebmlElement_decode (const parseString &) const
 Decode element from ebml::parseString instance. More...
 
ebmlElement_decode (const parseFile &) const
 Decode and create a new EBML element instance from ebml::parseFile instance. More...
 
ebmlElement_decode (const char *, size_t) const
 Decode from a raw data buffer. More...
 
ebmlElement_decode (const std::string &) const
 Decode from std::string. More...
 
ebmlElement_decode (ioBase &) const
 Decode and create a new EBML element instance from ebml::ioBase instance at the current file position. More...
 
ebmlElement_decode (ioBase &, off_t &) const
 Decode and create a new EBML element instance from ebml::ioBase instance with a specified offset. More...
 
ebmlElement_decode (ioBase &, off_t, off_t &) const
 Decode from ebml::ioBase instance with a specified offset and store the end offset. More...
 
ebmlElement_cdecode (const parseString &) const
 
ebmlElement_cdecode (const parseFile &) const
 
ebmlElement_cdecode (const char *, size_t) const
 
ebmlElement_cdecode (const std::string &) const
 
ebmlElement_cdecode (ioBase &) const
 
ebmlElement_cdecode (ioBase &, off_t &offset) const
 
ebmlElement_cdecode (ioBase &, off_t offset, off_t &end) const
 
- Protected Attributes inherited from ebml::ebmlMasterElementType
childTypeSpec_t _childTypes
 

Detailed Description

Represents a structure-like EBML master element.

This class defines an EBML element type that acts as a structure or record, containing a fixed set of named children. It provides a way to enforce a specific schema or structure within the EBML document.

Constructor & Destructor Documentation

◆ ebmlStructType() [1/4]

ebml::ebmlStructType::ebmlStructType ( const char *  ebmlID,
const std::wstring &  name,
const slotSpec_l slotSpecs 
)

◆ ebmlStructType() [2/4]

ebml::ebmlStructType::ebmlStructType ( ebmlID_t  ebmlID,
const std::wstring &  name,
const slotSpec_l slotSpecs 
)

◆ ebmlStructType() [3/4]

ebml::ebmlStructType::ebmlStructType ( const char *  ebmlID,
const std::wstring &  name,
const slotSpec_l slotSpecs,
const seekHelper_t seekHelper 
)

◆ ebmlStructType() [4/4]

ebml::ebmlStructType::ebmlStructType ( ebmlID_t  ebmlID,
const std::wstring &  name,
const slotSpec_l slotSpecs,
const seekHelper_t seekHelper 
)

Member Function Documentation

◆ slotSpecs()

const std::vector< slotSpec_t > & ebml::ebmlStructType::slotSpecs ( ) const

◆ slotSpecsByID()

const std::unordered_map< ebmlID_t, const slotSpec_t * > & ebml::ebmlStructType::slotSpecsByID ( ) const

◆ slotSpecsByKey()

const std::unordered_map< std::string, const slotSpec_t * > & ebml::ebmlStructType::slotSpecsByKey ( ) const

◆ typeBySlot() [1/2]

const ebmlElementType * ebml::ebmlStructType::typeBySlot ( const std::string &  key) const

◆ typeBySlot() [2/2]

const ebmlElementType * ebml::ebmlStructType::typeBySlot ( size_t  index) const

Friends And Related Function Documentation

◆ ebmlStruct

friend class ebmlStruct
friend

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