libebml_ng
Public Member Functions | Protected Attributes | Friends | List of all members

A template class representing a lazy-loading EBML master element. More...

#include <ebmlLazyLoad.h>

Inheritance diagram for ebml::ebmlLazyLoadType:
ebml::ebmlTypeCRTP< ebmlLazyLoadType, ebmlLazyLoad, ebmlMasterElementType > ebml::ebmlMasterElementType ebml::ebmlTypeCRTP< ebmlMasterElementType, ebmlMasterElement > ebml::ebmlElementType

Public Member Functions

 ebmlLazyLoadType (const char *, const std::wstring &, const childTypeSpecArg_l &)
 
 ebmlLazyLoadType (ebmlID_t, const std::wstring &, const childTypeSpecArg_l &)
 
 ebmlLazyLoadType (const char *, const std::wstring &, const childTypeSpecArg_l &, const seekHelper_t *)
 
 ebmlLazyLoadType (ebmlID_t, const std::wstring &, const childTypeSpecArg_l &, const seekHelper_t *)
 
 ebmlLazyLoadType (const char *, const std::wstring &, const childTypeSpecArg_l &, const childElemHelper_t *)
 
 ebmlLazyLoadType (ebmlID_t, const std::wstring &, const childTypeSpecArg_l &, const childElemHelper_t *)
 
 ebmlLazyLoadType (const char *, const std::wstring &, const childTypeSpecArg_l &, const seekHelper_t *, const childElemHelper_t *)
 
 ebmlLazyLoadType (ebmlID_t, const std::wstring &, const childTypeSpecArg_l &, const seekHelper_t *, const childElemHelper_t *)
 
- Public Member Functions inherited from ebml::ebmlTypeCRTP< ebmlLazyLoadType, ebmlLazyLoad, ebmlMasterElementType >
 ebmlTypeCRTP (Args &&... args)
 
ebml::ptr< ebmlLazyLoadoperator() (Args &&... args) const
 Creates a new instance of an EBML element. More...
 
ebml::ptr< ebmlLazyLoaddecode (const parseString &parsed) const
 
ebml::ptr< ebmlLazyLoaddecode (const parseFile &parsed) const
 
ebml::ptr< ebmlLazyLoaddecode (const char *data, size_t size) const
 
ebml::ptr< ebmlLazyLoaddecode (const std::string &data) const
 
ebml::ptr< ebmlLazyLoaddecode (ioBase &file) const
 
ebml::ptr< ebmlLazyLoaddecode (ioBase &file, off_t &offset) const
 
ebml::ptr< ebmlLazyLoaddecode (ioBase &file, off_t offset, off_t &endoffset) const
 
ebml::ptr< const ebmlLazyLoadcdecode (const parseString &parsed) const
 
ebml::ptr< const ebmlLazyLoadcdecode (const parseFile &parsed) const
 
ebml::ptr< const ebmlLazyLoadcdecode (const char *data, size_t size) const
 
ebml::ptr< const ebmlLazyLoadcdecode (const std::string &data) const
 
ebml::ptr< const ebmlLazyLoadcdecode (ioBase &file) const
 
ebml::ptr< const ebmlLazyLoadcdecode (ioBase &file, off_t &offset) const
 
ebml::ptr< const ebmlLazyLoadcdecode (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
 

Protected Attributes

const childElemHelper_t_childHelper = &childHelper
 
- Protected Attributes inherited from ebml::ebmlMasterElementType
childTypeSpec_t _childTypes
 

Friends

class ebmlSchema
 
class ebmlLazyLoad
 

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< ebmlLazyLoadType, ebmlLazyLoad, 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
 

Detailed Description

A template class representing a lazy-loading EBML master element.

This template defines a master element that optimizes file parsing by only decoding its children when they are explicitly requested. This is particularly useful for handling very large EBML files, as it reduces memory usage and improves performance.

Constructor & Destructor Documentation

◆ ebmlLazyLoadType() [1/8]

ebml::ebmlLazyLoadType::ebmlLazyLoadType ( const char *  ebmlID,
const std::wstring &  name,
const childTypeSpecArg_l childClasses 
)

◆ ebmlLazyLoadType() [2/8]

ebml::ebmlLazyLoadType::ebmlLazyLoadType ( ebmlID_t  ebmlID,
const std::wstring &  name,
const childTypeSpecArg_l childClasses 
)

◆ ebmlLazyLoadType() [3/8]

ebml::ebmlLazyLoadType::ebmlLazyLoadType ( const char *  ebmlID,
const std::wstring &  name,
const childTypeSpecArg_l childClasses,
const seekHelper_t seekHelper 
)

◆ ebmlLazyLoadType() [4/8]

ebml::ebmlLazyLoadType::ebmlLazyLoadType ( ebmlID_t  ebmlID,
const std::wstring &  name,
const childTypeSpecArg_l childClasses,
const seekHelper_t seekHelper 
)

◆ ebmlLazyLoadType() [5/8]

ebml::ebmlLazyLoadType::ebmlLazyLoadType ( const char *  ebmlID,
const std::wstring &  name,
const childTypeSpecArg_l childClasses,
const childElemHelper_t childElemHelper 
)

◆ ebmlLazyLoadType() [6/8]

ebml::ebmlLazyLoadType::ebmlLazyLoadType ( ebmlID_t  ebmlID,
const std::wstring &  name,
const childTypeSpecArg_l childClasses,
const childElemHelper_t childElemHelper 
)

◆ ebmlLazyLoadType() [7/8]

ebml::ebmlLazyLoadType::ebmlLazyLoadType ( const char *  ebmlID,
const std::wstring &  name,
const childTypeSpecArg_l childClasses,
const seekHelper_t seekHelper,
const childElemHelper_t childElemHelper 
)

◆ ebmlLazyLoadType() [8/8]

ebml::ebmlLazyLoadType::ebmlLazyLoadType ( ebmlID_t  ebmlID,
const std::wstring &  name,
const childTypeSpecArg_l childClasses,
const seekHelper_t seekHelper,
const childElemHelper_t childElemHelper 
)

Friends And Related Function Documentation

◆ ebmlLazyLoad

friend class ebmlLazyLoad
friend

◆ ebmlSchema

friend class ebmlSchema
friend

Member Data Documentation

◆ _childHelper

const childElemHelper_t* ebml::ebmlLazyLoadType::_childHelper = &childHelper
protected

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