libebml_ng
Classes | Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
ebml::ebmlList Class Reference

#include <ebmlList.h>

Inheritance diagram for ebml::ebmlList:
ebml::ebmlElementCRTP< ebmlListType, ebmlList, ebmlMasterElement > ebml::ebmlMasterElement ebml::ebmlElementCRTP< ebmlMasterElementType, ebmlMasterElement > ebml::ebmlElement

Classes

class  _const_iterator
 
class  _iterator
 

Public Types

typedef ebmlListType class_t
 
- Public Types inherited from ebml::ebmlElementCRTP< ebmlListType, ebmlList, ebmlMasterElement >
using ebmltype = ebmlListType
 
- Public Types inherited from ebml::ebmlElementCRTP< ebmlMasterElementType, ebmlMasterElement >
using ebmltype = ebmlMasterElementType
 

Public Member Functions

void setData (const ebmlElement_l &)
 
void setData (ebmlElement_l &&)
 
std::wstring minirepr () const override
 
childSlot_t operator[] (off_t)
 
template<typename T = ebmlElement>
childSlot_t< T > at (off_t)
 
template<typename T = ebmlElement>
childSlot_t< T > front ()
 
template<typename T = ebmlElement>
childSlot_t< T > back ()
 
const ebmlElementoperator[] (off_t) const
 
const ebmlElementat (off_t) const
 
const ebmlElementfront () const
 
const ebmlElementback () const
 
bool contains (const c_ebmlElement_sp &) const
 
off_t index (const c_ebmlElement_sp &) const
 
void push_back (const ebmlElement_sp &)
 
void push_back (ebmlElement_sp &&)
 
void pop_back ()
 
void insert (off_t, const ebmlElement_sp &)
 
void insert (off_t, ebmlElement_sp &&)
 
void erase (off_t)
 
void clear ()
 
size_t size () const
 
- Public Member Functions inherited from ebml::ebmlElementCRTP< ebmlListType, ebmlList, ebmlMasterElement >
 ebmlElementCRTP (const ebmlListType *cls, Args &&... args)
 
const ebmlListTypecls () const
 
ebml::ptr< ebmlListsp ()
 
ebml::ptr< const ebmlListsp () const
 
ebml::ptr< ebmlElementsp ()
 Returns a shared pointer to the element instance. More...
 
ebml::ptr< const ebmlElementsp () const
 Returns a shared pointer to a const element. More...
 
ebml::ptr< T > sp ()
 
ebml::ptr< T > sp () const
 
ebml::wptr< ebmlListwp ()
 
ebml::wptr< const ebmlListwp () const
 
ebml::wptr< ebmlElementwp ()
 
ebml::wptr< const ebmlElementwp () const
 
ebml::wptr< T > wp ()
 
ebml::wptr< T > wp () const
 
ebml::ptr< ebmlListclone () const
 
- Public Member Functions inherited from ebml::ebmlMasterElement
size_t dataSize () const
 
sizetree_t sizetree () const
 Generates the size tree for the element hierarchy. More...
 
size_t encode (char *, const sizetree_t &) const
 Encodes the element using a precomputed size tree. More...
 
iterator begin ()
 
iterator end ()
 
const_iterator cbegin () const
 
const_iterator cend () const
 
size_t encode (char *) const
 
std::string encode () const
 
size_t encode (ioBase &) const
 
size_t encode (ioBase &, off_t) const
 
- Public Member Functions inherited from ebml::ebmlElementCRTP< ebmlMasterElementType, ebmlMasterElement >
 ebmlElementCRTP (const ebmlMasterElementType *cls, Args &&... args)
 
ebml::ptr< ebmlMasterElementsp ()
 
ebml::ptr< const ebmlMasterElementsp () const
 
ebml::ptr< ebmlElementsp ()
 Returns a shared pointer to the element instance. More...
 
ebml::ptr< const ebmlElementsp () const
 Returns a shared pointer to a const element. More...
 
ebml::ptr< T > sp ()
 
ebml::ptr< T > sp () const
 
ebml::wptr< ebmlMasterElementwp ()
 
ebml::wptr< const ebmlMasterElementwp () const
 
ebml::wptr< ebmlElementwp ()
 
ebml::wptr< const ebmlElementwp () const
 
ebml::wptr< T > wp ()
 
ebml::wptr< T > wp () const
 
ebml::ptr< ebmlMasterElementclone () const
 
- Public Member Functions inherited from ebml::ebmlElement
virtual ~ebmlElement ()
 
ebmlID_t ebmlID () const
 Retrieve the EBML ID of the element. More...
 
template<typename T = ebmlElement>
T & as ()
 Dynamically cast the element to the requested type. More...
 
template<typename T = ebmlElement>
T & as () const
 Const version of the dynamic cast. More...
 
ebml::ptr< ebmlElementsp ()
 Returns a shared pointer to the element instance. More...
 
ebml::ptr< const ebmlElementsp () const
 Returns a shared pointer to a const element. More...
 
template<typename T >
ebml::ptr< T > sp ()
 
template<typename T >
ebml::ptr< T > sp () const
 
ebml::wptr< ebmlElementwp ()
 
ebml::wptr< const ebmlElementwp () const
 
template<typename T >
ebml::wptr< T > wp ()
 
template<typename T >
ebml::wptr< T > wp () const
 
bool parent_is_const () const
 Check if the element's parent is a const object. More...
 
ebml::ptr< ebmlMasterElementparent () const
 Retrieve the parent of this element. More...
 
ebml::ptr< const ebmlMasterElementc_parent () const
 Retrieve a const shared pointer to the parent element. More...
 
ebmlElement_sp root () const
 
c_ebmlElement_sp c_root () const
 
ebmlDocument_sp document () const
 
bool hasParent () const
 
unsigned char headSize () const
 
unsigned char headSize (size_t) const
 
unsigned char sizeWidth () const
 
unsigned char sizeWidth (size_t) const
 
size_t outerSize () const
 
size_t outerSize (size_t) const
 
off_t offsetInParent () const
 
off_t offsetInFile () const
 
off_t dataOffsetInParent () const
 
off_t dataOffsetInFile () const
 
ebml::ptr< ebmlElementclone () const
 
virtual std::wstring repr () const
 
seekData_tmakeSeekData ()
 
seekData_tmakeSeekData () const
 
std::string encode () const
 Encodes the element and returns it as a std::string. More...
 
size_t encode (char *) const
 Encodes the element into a pre-allocated buffer. More...
 
size_t encode (ioBase &) const
 Encodes the element and writes it to a generic I/O stream. More...
 
size_t encode (ioBase &, off_t) const
 Encodes the element and writes it to a specific offset in a stream. More...
 
size_t encode (char *, size_t) const
 Encodes the element using a pre-computed size. More...
 

Protected Member Functions

 ebmlList (const ebmlListType *)
 
 ebmlList (const ebmlListType *, const ebmlElement_l &)
 
 ebmlList (const ebmlListType *, ebmlElement_l &&)
 
 ebmlList (const ebmlList &)
 
void _clear () override
 Clears all child elements. More...
 
void _validateData (const ebmlElement_l &)
 
void _setData (const ebmlElement_l &)
 
void _setData (ebmlElement_l &&)
 
ebmlMasterElement::_iterator_begin () override
 
ebmlMasterElement::_iterator_end () override
 
ebmlMasterElement::_const_iterator_cbegin () const override
 
ebmlMasterElement::_const_iterator_cend () const override
 
void _addChild (const ebmlElement_sp &) override
 Attaches a child element (rvalue version). More...
 
void _addChild (ebmlElement_sp &&) override
 Attaches a child element (move version). More...
 
- Protected Member Functions inherited from ebml::ebmlElementCRTP< ebmlListType, ebmlList, ebmlMasterElement >
ebmlElement_clone () const
 
- Protected Member Functions inherited from ebml::ebmlMasterElement
 ebmlMasterElement (const ebmlMasterElementType *)
 
void _init (const parseString &)
 Initializes the element from a parsed EBML string. More...
 
void _init (const parseFile &)
 Initializes the element from parsed file data. More...
 
void _cinit (const parseString &)
 Const initialization from a parsed EBML string. More...
 
void _cinit (const parseFile &)
 Const initialization from parsed file data. More...
 
ebmlElement_decodeChild (const parseString &) const
 Decodes a child element from a parsed string. More...
 
ebmlElement_decodeChild (const parseFile &) const
 Decodes a child element from parsed file data. More...
 
ebmlElement_cdecodeChild (const parseString &) const
 Const version: Decodes a child element from a parsed string. More...
 
ebmlElement_cdecodeChild (const parseFile &) const
 Const version: Decodes a child element from parsed file data. More...
 
size_t _encode (char *) const
 
size_t _encode (char *, const sizetree_t &) const
 Encodes the element using a precomputed size tree. More...
 
virtual void _decodeChildren (parseString::iterator &)
 Decodes child elements from a parseString iterator. More...
 
virtual void _cdecodeChildren (parseString::iterator &)
 Const version of _decodeChildren. More...
 
virtual void _scanChildren (parseFile::iterator &)
 Scans for child elements from a parseFile iterator. More...
 
virtual void _cscanChildren (parseFile::iterator &)
 Scans for child elements from a parseFile iterator. (const version) More...
 
virtual void _handleParseFile (const parseFile &)
 Handles the parsing of seek data for a child element. More...
 
virtual void _chandleParseFile (const parseFile &)
 Handles the parsing of seek data for a child element. (const version) More...
 
void _attachChild (const ebmlElement_sp &child, bool weak=true) const
 Attaches a child element to the master element. More...
 
void _detachChild (const ebmlElement_sp &child) const
 Detaches a child element. More...
 
void _attachChildren (const ebmlElement_l &elems, bool weak=true) const
 Const version of _attachChildren. More...
 
void _detachChildren (const ebmlElement_l &elems) const
 Detaches multiple child elements. More...
 
void _clonedata (const ebmlElement *)
 
- Protected Member Functions inherited from ebml::ebmlElement
 ebmlElement (const ebmlElementType *)
 Protected constructor. More...
 
void _validate ()
 
void _setParent (const ebml::ptr< ebmlMasterElement > &parent, bool weak=true)
 
void _setParent (const ebml::ptr< const ebmlMasterElement > &parent, bool weak=true)
 
void _setParent (ebml::ptr< ebmlMasterElement > &&parent, bool weak=true)
 
void _setParent (ebml::ptr< const ebmlMasterElement > &&parent, bool weak=true)
 
void _setParent (ebmlMasterElement &parent, bool weak=true)
 
void _setParent (const ebmlMasterElement &parent, bool weak=true)
 
void _detach ()
 
size_t _encode_head (char *, size_t) const
 

Friends

class ebmlTypeCRTP< ebmlListType, ebmlList, ebmlMasterElementType >
 
class ebmlElementCRTP< ebmlListType, ebmlList, ebmlMasterElement >
 
class ebmlListClass
 

Additional Inherited Members

- Static Protected Member Functions inherited from ebml::ebmlMasterElement
static iterator make_iter (_iterator *)
 
static const_iterator make_iter (_const_iterator *)
 
- Protected Attributes inherited from ebml::ebmlMasterElement
occur_d ebmlIDCount
 
- Protected Attributes inherited from ebml::ebmlElement
const ebmlElementType_cls
 Pointer to the companion element type (an ebmlElementClass subclass). More...
 
wptr< ebmlElement_self
 Custom weak pointer to self (used for shared-from-this semantics). More...
 
ebmlDocument_wp _document
 
vintWidth_t _sizeWidth = 0
 
off_t _offsetInParent = -1
 

Member Typedef Documentation

◆ class_t

Constructor & Destructor Documentation

◆ ebmlList() [1/4]

ebml::ebmlList::ebmlList ( const ebmlListType cls)
protected

◆ ebmlList() [2/4]

ebml::ebmlList::ebmlList ( const ebmlListType cls,
const ebmlElement_l items 
)
protected

◆ ebmlList() [3/4]

ebml::ebmlList::ebmlList ( const ebmlListType cls,
ebmlElement_l &&  items 
)
protected

◆ ebmlList() [4/4]

ebml::ebmlList::ebmlList ( const ebmlList orig)
protected

Member Function Documentation

◆ _addChild() [1/2]

void ebml::ebmlList::_addChild ( const ebmlElement_sp )
overrideprotectedvirtual

Attaches a child element (rvalue version).

Implements the mechanism for attaching a child element to the parent element.

Parameters
childShared pointer to the child element.

Implements ebml::ebmlMasterElement.

◆ _addChild() [2/2]

void ebml::ebmlList::_addChild ( ebmlElement_sp &&  )
overrideprotectedvirtual

Attaches a child element (move version).

Implements the mechanism for moving a child element to the parent element.

Parameters
childRvalue reference to a shared pointer for the child element.

Implements ebml::ebmlMasterElement.

◆ _begin()

ebmlMasterElement::_iterator * ebml::ebmlList::_begin ( )
overrideprotectedvirtual

◆ _cbegin()

ebmlMasterElement::_const_iterator * ebml::ebmlList::_cbegin ( ) const
overrideprotectedvirtual

◆ _cend()

ebmlMasterElement::_const_iterator * ebml::ebmlList::_cend ( ) const
overrideprotectedvirtual

◆ _clear()

void ebml::ebmlList::_clear ( )
overrideprotectedvirtual

Clears all child elements.

Removes all currently attached child elements from the master element.

Reimplemented from ebml::ebmlMasterElement.

◆ _end()

ebmlMasterElement::_iterator * ebml::ebmlList::_end ( )
overrideprotectedvirtual

◆ _setData() [1/2]

void ebml::ebmlList::_setData ( const ebmlElement_l items)
protected

◆ _setData() [2/2]

void ebml::ebmlList::_setData ( ebmlElement_l &&  items)
protected

◆ _validateData()

void ebml::ebmlList::_validateData ( const ebmlElement_l items)
protected

◆ at() [1/2]

template<typename T >
childSlot_t< T > ebml::ebmlList::at ( off_t  offset)

◆ at() [2/2]

const ebmlElement & ebml::ebmlList::at ( off_t  offset) const

◆ back() [1/2]

template<typename T >
childSlot_t< T > ebml::ebmlList::back ( )

◆ back() [2/2]

const ebmlElement & ebml::ebmlList::back ( ) const

◆ clear()

void ebml::ebmlList::clear ( )

◆ contains()

bool ebml::ebmlList::contains ( const c_ebmlElement_sp ) const

◆ erase()

void ebml::ebmlList::erase ( off_t  offset)

◆ front() [1/2]

template<typename T >
childSlot_t< T > ebml::ebmlList::front ( )

◆ front() [2/2]

const ebmlElement & ebml::ebmlList::front ( ) const

◆ index()

off_t ebml::ebmlList::index ( const c_ebmlElement_sp ) const

◆ insert() [1/2]

void ebml::ebmlList::insert ( off_t  offset,
const ebmlElement_sp elem 
)

◆ insert() [2/2]

void ebml::ebmlList::insert ( off_t  ,
ebmlElement_sp &&   
)

◆ minirepr()

std::wstring ebml::ebmlList::minirepr ( ) const
overridevirtual

Implements ebml::ebmlElement.

◆ operator[]() [1/2]

childSlot_t ebml::ebmlList::operator[] ( off_t  offset)

◆ operator[]() [2/2]

const ebmlElement & ebml::ebmlList::operator[] ( off_t  offset) const

◆ pop_back()

void ebml::ebmlList::pop_back ( )

◆ push_back() [1/2]

void ebml::ebmlList::push_back ( const ebmlElement_sp elem)

◆ push_back() [2/2]

void ebml::ebmlList::push_back ( ebmlElement_sp &&  elem)

◆ setData() [1/2]

void ebml::ebmlList::setData ( const ebmlElement_l items)

◆ setData() [2/2]

void ebml::ebmlList::setData ( ebmlElement_l &&  items)

◆ size()

size_t ebml::ebmlList::size ( ) const

Friends And Related Function Documentation

◆ ebmlElementCRTP< ebmlListType, ebmlList, ebmlMasterElement >

◆ ebmlListClass

friend class ebmlListClass
friend

◆ ebmlTypeCRTP< ebmlListType, ebmlList, ebmlMasterElementType >


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