1 #ifndef EBML_NG_SEEKDATA_H 2 #define EBML_NG_SEEKDATA_H 12 #include <unordered_map> 13 #define SEEKMAPDEFAULTS typename K, typename H=std::hash<K>, typename E=std::equal_to<K>, typename A=std::allocator<std::pair<const K, seekDataWithKey_t<K>*>> 25 template<SEEKMAPDEFAULTS>
82 virtual std::wstring
repr()
const;
118 std::wstring
repr()
const;
130 virtual std::wstring
repr()
const;
133 template<SEEKMAPDEFAULTS>
136 template<SEEKMAPDEFAULTS>
139 template<SEEKMAPDEFAULTS>
142 template<SEEKMAPDEFAULTS>
145 template<SEEKMAPDEFAULTS>
148 template<SEEKMAPDEFAULTS>
149 size_t count(
const K&)
const;
151 template<SEEKMAPDEFAULTS>
152 size_t erase(
const K&);
168 template<
typename K,
typename H,
typename E,
typename A>
172 std::unordered_map<K, seekDataWithKey_t<K>*, H, E, A>
_items;
182 size_t count(
const K&)
const;
183 size_t erase(
const K&);
184 std::wstring
repr()
const;
219 template<SEEKMAPDEFAULTS>
Helper class for creating and initializing seek data.
Definition: seekdata.h:195
size_t count(const K &) const
std::wstring repr() const
seekMap< K, H, E, A > * initSeekMap() const
virtual seekData_t * makeSeekData(const parseString &parsed) const
Definition: seekdata.cpp:120
seekDataWithKey_t(const parseString &)
Represents a parsed EBML string segment.
Definition: string.h:37
Represents parsed seek data extracted from an EBML element.
Definition: seekdata.h:39
vintWidth_t headSize() const
Definition: seekdata.cpp:44
seekHelper_t seekHelper
Definition: seekdata.cpp:136
A templated subclass of seekData_t that stores a key of type K.
Definition: seekdata.h:23
seekDataWithKey_t< K > *& at(const K &)
Represents a parsed EBML file segment.
Definition: io.h:32
virtual ~seekData_t()
Definition: seekdata.cpp:112
seekMap< K, H, E, A > & withKeyType()
void add(seekData_t *) override
c_ebmlElement_sp cget()
Definition: seekdata.cpp:68
A drop-in replacement for std::weak_ptr tailored for EBML objects.
Definition: ptrs.h:30
void insert(const std::pair< K, seekDataWithKey_t< K > *> &)
virtual void add(seekData_t *)=0
Definition: basictypes.h:40
A drop-in replacement for std::shared_ptr tailored for EBML objects.
Definition: ptrs.h:27
void rm(seekData_t *) override
K key
Definition: seekdata.h:97
off_t endOffset() const
Definition: seekdata.cpp:52
seekDataWithKey_t< K > *& operator[](const K &)
std::unordered_map< K, seekDataWithKey_t< K > *, H, E, A > _items
Definition: seekdata.h:172
seekHelperByEBMLID(ebmlID_t ebmlID)
virtual ~seekMapBase()
Definition: seekdata.cpp:139
size_t dataSize
Definition: seekdata.h:44
uint64_t ebmlID_t
Definition: ebmlID_t.h:7
seekData_t * makeSeekData(const parseString &parsed) const
size_t outerSize() const
Definition: seekdata.cpp:48
seekData_t & operator=(seekData_t &&)=default
seekDataWithKey_t< K > *& operator[](const K &)
seekDataWithKey_t< K > *& at(const K &)
vintWidth_t sizeWidth
Definition: seekdata.h:45
uint8_t vintWidth_t
Definition: ebmlID_t.h:8
seekMapBase * initSeekMap() const
Definition: seekdata.cpp:116
ebmlElement_fp ref
Definition: seekdata.h:46
ebmlID_t ebmlID
Definition: seekdata.h:41
std::wstring repr() const
Abstract base class for EBML Element instances.
Definition: ebmlElement.h:79
seekHelper_t()
Definition: seekdata.cpp:114
Container mapping keys to seek data objects with keys.
Definition: seekdata.h:26
vintWidth_t ebmlIDWidth
Definition: seekdata.h:42
Base class for seek map containers.
Definition: seekdata.h:126
virtual void rm(seekData_t *)=0
Templated helper class for EBML elements that search for key data within child elements.
Definition: seekdata.h:220
ebmlMasterElement_fp parent
Definition: seekdata.h:47
seekMapBase()
Definition: seekdata.cpp:138
virtual std::wstring repr() const
Definition: seekdata.cpp:141
Declaration of the EBML element instance base class and CRTP templates.
off_t offsetInParent
Definition: seekdata.h:43
seekDataWithKey_t< K > & withKeyType()
ebmlID_t ebmlID
Definition: seekdata.h:222
virtual std::wstring repr() const
Definition: seekdata.cpp:80
size_t count(const K &) const
seekData_t(const parseString &)
Definition: seekdata.cpp:12