libebml_ng
Classes | Public Member Functions | Protected Member Functions | Friends | List of all members
ebml::ebmlMap< K, V, H, E, A, B > Class Template Reference

#include <ebmlMap.h>

Inheritance diagram for ebml::ebmlMap< K, V, H, E, A, B >:
ebml::ebmlElementCRTP< ebmlMapType< K, V, H, E, A, B >, ebmlMap< K, V, H, E, A, B >, ebmlMasterElement > ebml::ebmlMasterElement ebml::ebmlElementCRTP< ebmlMasterElementType, ebmlMasterElement > ebml::ebmlElement

Classes

class  _const_iterator
 
class  _iterator
 

Public Member Functions

void setData (const std::vector< std::pair< K, pair_value_t< V >>> &)
 
void setData (std::vector< std::pair< K, pair_value_t< V >>> &&)
 
void setData (const ebmlMapArgs< K, V, H, E, B > &)
 
void setData (ebmlMapArgs< K, V, H, E, B > &&)
 
std::wstring minirepr () const override
 
pair_value_slot_t< V > operator[] (const K &)
 
pair_value_slot_t< V > at (const K &)
 
std::pair< ebmlMasterElement::iterator, bool > insert (const std::pair< K, pair_value_t< V >> &value)
 
std::pair< ebmlMasterElement::iterator, bool > insert (std::pair< K, pair_value_t< V >> &&value)
 
size_t erase (const K &)
 
size_t count (const K &) const
 
pair_const_value_t< V > at (const K &) const
 
- Public Member Functions inherited from ebml::ebmlElementCRTP< ebmlMapType< K, V, H, E, A, B >, ebmlMap< K, V, H, E, A, B >, ebmlMasterElement >
 ebmlElementCRTP (const ebmlMapType< K, V, H, E, A, B > *cls, Args &&... args)
 
const ebmlMapType< K, V, H, E, A, B > & cls () const
 
ebml::ptr< ebmlMap< K, V, H, E, A, B > > sp ()
 
ebml::ptr< const ebmlMap< K, V, H, E, A, B > > sp () 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< ebmlMap< K, V, H, E, A, B > > wp ()
 
ebml::wptr< const ebmlMap< K, V, H, E, A, B > > wp () const
 
ebml::wptr< ebmlElementwp ()
 
ebml::wptr< const ebmlElementwp () const
 
ebml::wptr< T > wp ()
 
ebml::wptr< T > wp () const
 
ebml::ptr< ebmlMap< K, V, H, E, A, B > > clone () 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

 ebmlMap (const ebmlMapType< K, V, H, E, A, B > *)
 
 ebmlMap (const ebmlMapType< K, V, H, E, A, B > *, const std::vector< std::pair< K, pair_value_t< V >>> &)
 
 ebmlMap (const ebmlMapType< K, V, H, E, A, B > *, std::vector< std::pair< K, pair_value_t< V >>> &&)
 
 ebmlMap (const ebmlMapType< K, V, H, E, A, B > *, const ebmlMapArgs< K, V, H, E, B > &)
 
 ebmlMap (const ebmlMapType< K, V, H, E, A, B > *, ebmlMapArgs< K, V, H, E, B > &&)
 
 ebmlMap (const ebmlMap< K, V, H, E, A, B > &)
 
void _clear () override
 Clears all child elements. More...
 
std::vector< ebml::ptr< ebmlPair< const K, V > > > _prepareData (const std::vector< std::pair< K, pair_value_t< V >>> &)
 
std::vector< ebml::ptr< ebmlPair< const K, V > > > _prepareData (std::vector< std::pair< K, pair_value_t< V >>> &&)
 
ebmlMapData< K, V, H, E, A > _prepareData (const ebmlMapArgs< K, V, H, E, B > &)
 
ebmlMapData< K, V, H, E, A > _prepareData (ebmlMapArgs< K, V, H, E, B > &&)
 
void _setData (std::vector< ebml::ptr< ebml::ebmlPair< const K, V >>> &&items)
 
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< ebmlMapType< K, V, H, E, A, B >, ebmlMap< K, V, H, E, A, B >, 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< ebmlMapType< K, V, H, E, A, B >, ebmlMap< K, V, H, E, A, B >, ebmlMasterElementType >
 
class ebmlElementCRTP< ebmlMapType< K, V, H, E, A, B >, ebmlMap< K, V, H, E, A, B >, ebmlMasterElement >
 
class ebmlMapType< K, V, H, E, A, B >
 

Additional Inherited Members

- Public Types inherited from ebml::ebmlElementCRTP< ebmlMapType< K, V, H, E, A, B >, ebmlMap< K, V, H, E, A, B >, ebmlMasterElement >
using ebmltype = ebmlMapType< K, V, H, E, A, B >
 
- Public Types inherited from ebml::ebmlElementCRTP< ebmlMasterElementType, ebmlMasterElement >
using ebmltype = ebmlMasterElementType
 
- 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
 

Constructor & Destructor Documentation

◆ ebmlMap() [1/6]

template<typename K , typename V , typename H , typename E , typename A , typename B >
ebml::ebmlMap< K, V, H, E, A, B >::ebmlMap ( const ebmlMapType< K, V, H, E, A, B > *  )
protected

◆ ebmlMap() [2/6]

template<typename K , typename V , typename H , typename E , typename A , typename B >
ebml::ebmlMap< K, V, H, E, A, B >::ebmlMap ( const ebmlMapType< K, V, H, E, A, B > *  ,
const std::vector< std::pair< K, pair_value_t< V >>> &   
)
protected

◆ ebmlMap() [3/6]

template<typename K , typename V , typename H , typename E , typename A , typename B >
ebml::ebmlMap< K, V, H, E, A, B >::ebmlMap ( const ebmlMapType< K, V, H, E, A, B > *  ,
std::vector< std::pair< K, pair_value_t< V >>> &&   
)
protected

◆ ebmlMap() [4/6]

template<typename K , typename V , typename H , typename E , typename A , typename B >
ebml::ebmlMap< K, V, H, E, A, B >::ebmlMap ( const ebmlMapType< K, V, H, E, A, B > *  ,
const ebmlMapArgs< K, V, H, E, B > &   
)
protected

◆ ebmlMap() [5/6]

template<typename K , typename V , typename H , typename E , typename A , typename B >
ebml::ebmlMap< K, V, H, E, A, B >::ebmlMap ( const ebmlMapType< K, V, H, E, A, B > *  ,
ebmlMapArgs< K, V, H, E, B > &&   
)
protected

◆ ebmlMap() [6/6]

template<typename K , typename V , typename H , typename E , typename A , typename B >
ebml::ebmlMap< K, V, H, E, A, B >::ebmlMap ( const ebmlMap< K, V, H, E, A, B > &  )
protected

Member Function Documentation

◆ _addChild() [1/2]

template<typename K , typename V , typename H , typename E , typename A , typename B >
void ebml::ebmlMap< K, V, H, E, A, B >::_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]

template<typename K , typename V , typename H , typename E , typename A , typename B >
void ebml::ebmlMap< K, V, H, E, A, B >::_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()

template<typename K , typename V , typename H , typename E , typename A , typename B >
ebmlMasterElement::_iterator* ebml::ebmlMap< K, V, H, E, A, B >::_begin ( )
overrideprotectedvirtual

◆ _cbegin()

template<typename K , typename V , typename H , typename E , typename A , typename B >
ebmlMasterElement::_const_iterator* ebml::ebmlMap< K, V, H, E, A, B >::_cbegin ( ) const
overrideprotectedvirtual

◆ _cend()

template<typename K , typename V , typename H , typename E , typename A , typename B >
ebmlMasterElement::_const_iterator* ebml::ebmlMap< K, V, H, E, A, B >::_cend ( ) const
overrideprotectedvirtual

◆ _clear()

template<typename K , typename V , typename H , typename E , typename A , typename B >
void ebml::ebmlMap< K, V, H, E, A, B >::_clear ( )
overrideprotectedvirtual

Clears all child elements.

Removes all currently attached child elements from the master element.

Reimplemented from ebml::ebmlMasterElement.

◆ _end()

template<typename K , typename V , typename H , typename E , typename A , typename B >
ebmlMasterElement::_iterator* ebml::ebmlMap< K, V, H, E, A, B >::_end ( )
overrideprotectedvirtual

◆ _prepareData() [1/4]

template<typename K , typename V , typename H , typename E , typename A , typename B >
std::vector<ebml::ptr<ebmlPair<const K, V> > > ebml::ebmlMap< K, V, H, E, A, B >::_prepareData ( const std::vector< std::pair< K, pair_value_t< V >>> &  )
protected

◆ _prepareData() [2/4]

template<typename K , typename V , typename H , typename E , typename A , typename B >
std::vector<ebml::ptr<ebmlPair<const K, V> > > ebml::ebmlMap< K, V, H, E, A, B >::_prepareData ( std::vector< std::pair< K, pair_value_t< V >>> &&  )
protected

◆ _prepareData() [3/4]

template<typename K , typename V , typename H , typename E , typename A , typename B >
ebmlMapData<K, V, H, E, A> ebml::ebmlMap< K, V, H, E, A, B >::_prepareData ( const ebmlMapArgs< K, V, H, E, B > &  )
protected

◆ _prepareData() [4/4]

template<typename K , typename V , typename H , typename E , typename A , typename B >
ebmlMapData<K, V, H, E, A> ebml::ebmlMap< K, V, H, E, A, B >::_prepareData ( ebmlMapArgs< K, V, H, E, B > &&  )
protected

◆ _setData()

template<typename K , typename V , typename H , typename E , typename A , typename B >
void ebml::ebmlMap< K, V, H, E, A, B >::_setData ( std::vector< ebml::ptr< ebml::ebmlPair< const K, V >>> &&  items)
protected

◆ at() [1/2]

template<typename K , typename V , typename H , typename E , typename A , typename B >
pair_value_slot_t<V> ebml::ebmlMap< K, V, H, E, A, B >::at ( const K &  )

◆ at() [2/2]

template<typename K , typename V , typename H , typename E , typename A , typename B >
pair_const_value_t<V> ebml::ebmlMap< K, V, H, E, A, B >::at ( const K &  ) const

◆ count()

template<typename K , typename V , typename H , typename E , typename A , typename B >
size_t ebml::ebmlMap< K, V, H, E, A, B >::count ( const K &  ) const

◆ erase()

template<typename K , typename V , typename H , typename E , typename A , typename B >
size_t ebml::ebmlMap< K, V, H, E, A, B >::erase ( const K &  )

◆ insert() [1/2]

template<typename K , typename V , typename H , typename E , typename A , typename B >
std::pair<ebmlMasterElement::iterator, bool> ebml::ebmlMap< K, V, H, E, A, B >::insert ( const std::pair< K, pair_value_t< V >> &  value)

◆ insert() [2/2]

template<typename K , typename V , typename H , typename E , typename A , typename B >
std::pair<ebmlMasterElement::iterator, bool> ebml::ebmlMap< K, V, H, E, A, B >::insert ( std::pair< K, pair_value_t< V >> &&  value)

◆ minirepr()

template<typename K , typename V , typename H , typename E , typename A , typename B >
std::wstring ebml::ebmlMap< K, V, H, E, A, B >::minirepr ( ) const
overridevirtual

Implements ebml::ebmlElement.

◆ operator[]()

template<typename K , typename V , typename H , typename E , typename A , typename B >
pair_value_slot_t<V> ebml::ebmlMap< K, V, H, E, A, B >::operator[] ( const K &  )

◆ setData() [1/4]

template<typename K , typename V , typename H , typename E , typename A , typename B >
void ebml::ebmlMap< K, V, H, E, A, B >::setData ( const std::vector< std::pair< K, pair_value_t< V >>> &  )

◆ setData() [2/4]

template<typename K , typename V , typename H , typename E , typename A , typename B >
void ebml::ebmlMap< K, V, H, E, A, B >::setData ( std::vector< std::pair< K, pair_value_t< V >>> &&  )

◆ setData() [3/4]

template<typename K , typename V , typename H , typename E , typename A , typename B >
void ebml::ebmlMap< K, V, H, E, A, B >::setData ( const ebmlMapArgs< K, V, H, E, B > &  )

◆ setData() [4/4]

template<typename K , typename V , typename H , typename E , typename A , typename B >
void ebml::ebmlMap< K, V, H, E, A, B >::setData ( ebmlMapArgs< K, V, H, E, B > &&  )

Friends And Related Function Documentation

◆ ebmlElementCRTP< ebmlMapType< K, V, H, E, A, B >, ebmlMap< K, V, H, E, A, B >, ebmlMasterElement >

template<typename K , typename V , typename H , typename E , typename A , typename B >
friend class ebmlElementCRTP< ebmlMapType< K, V, H, E, A, B >, ebmlMap< K, V, H, E, A, B >, ebmlMasterElement >
friend

◆ ebmlMapType< K, V, H, E, A, B >

template<typename K , typename V , typename H , typename E , typename A , typename B >
friend class ebmlMapType< K, V, H, E, A, B >
friend

◆ ebmlTypeCRTP< ebmlMapType< K, V, H, E, A, B >, ebmlMap< K, V, H, E, A, B >, ebmlMasterElementType >

template<typename K , typename V , typename H , typename E , typename A , typename B >
friend class ebmlTypeCRTP< ebmlMapType< K, V, H, E, A, B >, ebmlMap< K, V, H, E, A, B >, ebmlMasterElementType >
friend

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