libebml_ng
sizetree_t.h
Go to the documentation of this file.
1 #ifndef EBML_NG_SIZETREE_H
2 #define EBML_NG_SIZETREE_H
3 
4 #include "../../ebmlID_t.h"
5 #include <deque>
6 #include <optional>
7 
8 namespace ebml {
15  struct sizetree_t {
18  size_t dataSize;
19  // std::deque<sizetree_t> children;
20  std::optional<std::deque<sizetree_t>> children;
21 
22  sizetree_t();
23  sizetree_t(const sizetree_t&);
25  sizetree_t(vintWidth_t _ebmlIDWidth, vintWidth_t _sizeWidth, size_t _dataSize);
28  size_t outerSize() const;
29  void append(const sizetree_t&);
30  void append(sizetree_t&&);
31  };
32 }
33 #endif
void append(const sizetree_t &)
Definition: sizetree_t.cpp:33
size_t outerSize() const
Definition: sizetree_t.cpp:58
sizetree_t & operator=(const sizetree_t &)
Definition: sizetree_t.cpp:17
size_t dataSize
Definition: sizetree_t.h:18
vintWidth_t sizeWidth
Definition: sizetree_t.h:17
std::optional< std::deque< sizetree_t > > children
Definition: sizetree_t.h:20
Definition: basictypes.h:40
Structure representing the size tree for an EBML master element.
Definition: sizetree_t.h:15
uint8_t vintWidth_t
Definition: ebmlID_t.h:8
sizetree_t()
Definition: sizetree_t.cpp:8
vintWidth_t ebmlIDWidth
Definition: sizetree_t.h:16