1 #ifndef EBML_NG_MASTERELEMENT_H 2 #define EBML_NG_MASTERELEMENT_H 5 #include "../../ebmlElement.h" 122 size_t encode(
char*)
const;
123 std::string
encode()
const;
378 friend class std::shared_ptr<ebmlMasterElement::_const_iterator>;
383 friend std::shared_ptr<ebmlMasterElement::_iterator>
std::make_shared<ebmlMasterElement::_iterator>();
384 friend std::shared_ptr<ebmlMasterElement::_const_iterator>
std::make_shared<ebmlMasterElement::_const_iterator>();
~iterator()
Definition: ebmlMasterElement.cpp:447
virtual void _handleParseFile(const parseFile &)
Handles the parsing of seek data for a child element.
Definition: ebmlMasterElement.cpp:206
iterator(_iterator *)
Definition: ebmlMasterElement.cpp:402
occur_d ebmlIDCount
Definition: ebmlMasterElement.h:21
Definition: ebmlMasterElement.h:292
void _detachChild(const ebmlElement_sp &child) const
Detaches a child element.
Definition: ebmlMasterElement.cpp:321
friend std::shared_ptr< ebmlMasterElement::_iterator > std::make_shared()
ebmlElement & operator*() const
Definition: ebmlMasterElement.cpp:414
static iterator make_iter(_iterator *)
Definition: ebmlMasterElement.cpp:465
ebmlElement * _decodeChild(const parseString &) const
Definition: ebmlMasterElementType.h:91
virtual ebmlMasterElement::_const_iterator * _cbegin() const =0
virtual bool operator==(const _const_iterator &) const =0
virtual bool operator!=(const _iterator &) const =0
virtual void _chandleParseFile(const parseFile &)
Handles the parsing of seek data for a child element. (const version)
Definition: ebmlMasterElement.cpp:211
virtual const ebmlElement & operator*() const =0
~const_iterator()
Definition: ebmlMasterElement.cpp:518
virtual ebmlMasterElement::_iterator * _begin()=0
Abstract base class for EBML master element instances.This class provides the functionality to manage...
Definition: ebmlMasterElement.h:19
Definition: ebmlMasterElement.h:269
iterator & operator++()
Definition: ebmlMasterElement.cpp:418
virtual void _scanChildren(parseFile::iterator &)
Scans for child elements from a parseFile iterator.
Definition: ebmlMasterElement.cpp:190
Represents a parsed EBML string segment.
Definition: string.h:37
ebmlElement * _decodeChild(const parseString &) const
Decodes a child element from a parsed string.
Definition: ebmlMasterElement.h:387
virtual _const_iterator * copy() const =0
virtual _const_iterator & operator++()=0
virtual void _clear()
Clears all child elements.
Definition: ebmlMasterElement.cpp:296
virtual ~_const_iterator()
Definition: ebmlMasterElement.h:332
sizetree_t sizetree() const
Generates the size tree for the element hierarchy.
Definition: ebmlMasterElement.cpp:90
Represents a parsed EBML file segment.
Definition: io.h:32
size_t dataSize() const
Definition: ebmlMasterElement.cpp:86
virtual void _addChild(const ebmlElement_sp &)=0
Attaches a child element (rvalue version).
ebmlMasterElement(const ebmlMasterElementType *)
Definition: ebmlMasterElement.cpp:26
ebmlElement * _cdecodeChild(const parseString &) const
Definition: ebmlMasterElementType.h:104
size_t _encode(char *) const
Definition: ebmlMasterElement.cpp:240
Definition: basictypes.h:40
Iterator for parseString objects.
Definition: string.h:130
virtual bool operator==(const _iterator &) const =0
A drop-in replacement for std::shared_ptr tailored for EBML objects.
Definition: ptrs.h:27
Definition: ebmlMasterElement.h:342
virtual ebmlElement & operator*() const =0
const ebmlMasterElementType & cls() const
Returns a reference to the associated element class.
virtual void _decodeChildren(parseString::iterator &)
Decodes child elements from a parseString iterator.
Definition: ebmlMasterElement.cpp:123
void _init(const parseString &)
Initializes the element from a parsed EBML string.
Definition: ebmlMasterElement.cpp:29
void _detachChildren(const ebmlElement_l &elems) const
Detaches multiple child elements.
Definition: ebmlMasterElement.cpp:362
virtual void _cdecodeChildren(parseString::iterator &)
Const version of _decodeChildren.
Definition: ebmlMasterElement.cpp:157
Definition: ebmlMasterElement.h:324
Iterator class for parseFile.
Definition: io.h:89
virtual _const_iterator & operator=(const _const_iterator &)=0
Structure representing the size tree for an EBML master element.
Definition: sizetree_t.h:15
virtual const_iterator & operator=(const const_iterator &)
Definition: ebmlMasterElement.cpp:494
bool operator==(const iterator &) const
Definition: ebmlMasterElement.cpp:439
virtual ebmlMasterElement::_iterator * _end()=0
virtual _iterator * copy() const =0
ebmlElement * _cdecodeChild(const parseString &) const
Const version: Decodes a child element from a parsed string.
Definition: ebmlMasterElement.h:391
virtual const ebmlElement & operator*() const
Definition: ebmlMasterElement.cpp:485
std::string encode() const
Definition: ebmlMasterElement.cpp:216
virtual bool operator!=(const const_iterator &) const
Definition: ebmlMasterElement.cpp:514
void _attachChild(const ebmlElement_sp &child, bool weak=true) const
Attaches a child element to the master element.
Definition: ebmlMasterElement.cpp:300
Represents the base type for all EBML master elements.
Definition: ebmlMasterElementType.h:57
Abstract base class for EBML Element instances.
Definition: ebmlElement.h:79
bool operator!=(const iterator &) const
Definition: ebmlMasterElement.cpp:443
virtual _iterator & operator=(const _iterator &)=0
virtual bool operator==(const const_iterator &) const
Definition: ebmlMasterElement.cpp:510
virtual ~_iterator()
Definition: ebmlMasterElement.h:281
const_iterator cend() const
Definition: ebmlMasterElement.cpp:460
CRTP template for EBML Element instances.
Definition: ebmlElement.h:320
virtual ebmlMasterElement::_const_iterator * _cend() const =0
std::unordered_map< ebmlID_t, unsigned long > occur_d
Definition: ebmlMasterElementType.h:11
virtual bool operator!=(const _const_iterator &) const =0
void _cinit(const parseString &)
Const initialization from a parsed EBML string.
Definition: ebmlMasterElement.cpp:58
virtual const_iterator & operator++()
Definition: ebmlMasterElement.cpp:489
Base class for file-like IO operations.
Definition: io.h:22
virtual _iterator & operator++()=0
iterator & operator=(const iterator &)
Definition: ebmlMasterElement.cpp:423
void _attachChildren(const ebmlElement_l &elems, bool weak=true) const
Const version of _attachChildren.
Definition: ebmlMasterElement.cpp:336
const_iterator cbegin() const
Definition: ebmlMasterElement.cpp:455
std::vector< ebmlElement_sp > ebmlElement_l
Definition: c_ebmlElement_l.h:9
iterator begin()
Definition: ebmlMasterElement.cpp:392
virtual void _cscanChildren(parseFile::iterator &)
Scans for child elements from a parseFile iterator. (const version)
Definition: ebmlMasterElement.cpp:198
iterator end()
Definition: ebmlMasterElement.cpp:397
void _clonedata(const ebmlElement *)
Definition: ebmlMasterElement.cpp:372
A templated helper class managing a child slot within an EBML master element.
Definition: childSlot_t.h:22