1 #ifndef EBML_NG_SCHEMA_H 2 #define EBML_NG_SCHEMA_H 5 #include <unordered_map> 13 std::vector<std::string>
path;
19 std::unordered_map<std::string, std::string>
usage;
24 unsigned long min = 0;
26 unsigned long def = 0;
29 range_t(
unsigned long,
long,
unsigned long);
35 unsigned long _doctypeversion;
39 std::unordered_map<std::wstring, ebmlID_t> _ebmlIDMap;
40 std::unordered_map<ebmlID_t, element_t> _elementTypes;
50 template<
typename T=
int>
54 template<
typename T=
int>
57 template<
typename T=
int>
61 const std::string&
docType()
const;
70 extern template ebmlDocument_sp ebmlSchema::open<int>(
const std::string&, bool)
const;
71 extern template ebmlDocument_sp ebmlSchema::create<int>(
const std::string&, size_t)
const;
72 extern template ebmlDocument_sp ebmlSchema::create<int>(
const std::string&, size_t,
unsigned long,
unsigned long)
const;
73 extern template ebmlDocument_sp ebmlSchema::open<FILE*>(
const std::string&, bool)
const;
74 extern template ebmlDocument_sp ebmlSchema::create<FILE*>(
const std::string&, size_t)
const;
75 extern template ebmlDocument_sp ebmlSchema::create<FILE*>(
const std::string&, size_t,
unsigned long,
unsigned long)
const;
ebmlID_t id
Definition: ebmlSchema.h:14
Abstract base class for EBML Element Type objects.
Definition: ebmlElementType.h:106
const range_t & maxIDLength() const
std::string type
Definition: ebmlSchema.h:15
unsigned long def
Definition: ebmlSchema.h:26
unsigned long docTypeVersion() const
Definition: ebmlSchema.h:23
Definition: basictypes.h:40
ebmlDocument_sp open(const std::string &, bool write=false) const
Definition: ebmlSchema.cpp:32
A drop-in replacement for std::shared_ptr tailored for EBML objects.
Definition: ptrs.h:27
std::string range
Definition: ebmlSchema.h:16
std::string def
Definition: ebmlSchema.h:17
unsigned long min
Definition: ebmlSchema.h:24
std::vector< std::string > path
Definition: ebmlSchema.h:13
Definition: ebmlSchema.h:32
long max
Definition: ebmlSchema.h:25
Definition: ebmlDocument.h:10
uint64_t ebmlID_t
Definition: ebmlID_t.h:7
std::shared_ptr< ebmlDocument > ebmlDocument_sp
Definition: ptrs.h:909
virtual ebmlDocument * _new(const ioBase_sp &) const
Definition: ebmlSchema.cpp:23
const ebmlElementType *const & rootcls() const
ebmlSchema(const std::string &, unsigned long, const ebmlElementType *, const range_t &maxIDLength, const range_t &maxSizeLength)
Definition: ebmlSchema.cpp:20
range_t(unsigned long)
Definition: ebmlSchema.cpp:16
const range_t & maxSizeLength() const
std::unordered_map< std::string, std::string > usage
Definition: ebmlSchema.h:19
std::unordered_map< std::string, std::string > documentation
Definition: ebmlSchema.h:18
const ebmlElementType & getElementType(ebmlID_t ebmlID) const
const std::string & docType() const
std::wstring name
Definition: ebmlSchema.h:12
ebmlElementType * elemtype
Definition: ebmlSchema.h:20
ebmlDocument_sp create(const std::string &, size_t initSize) const
Definition: ebmlSchema.cpp:94
Definition: ebmlSchema.h:11