libebml_ng
ebmlVoid.h
Go to the documentation of this file.
1 #ifndef EBML_NG_VOID_H
2 #define EBML_NG_VOID_H
3 
4 #include "ebmlElementType.h"
5 #include "ebmlElement.h"
6 
7 namespace ebml {
8  class ebmlVoid;
9 
19  class ebmlVoidType : public ebmlTypeCRTP<ebmlVoidType, ebmlVoid> {
20  friend class ebmlVoid;
21  public:
22  ebmlVoidType();
23  unsigned char writeVoid(char*, size_t) const;
24  unsigned char writeVoid(ioBase&, off_t, size_t) const;
25  };
26 
27  class ebmlVoid : public ebmlElementCRTP<ebmlVoidType, ebmlVoid> {
30 
31  protected:
32  ebmlVoid(const ebmlVoidType*);
33  ebmlVoid(const ebmlVoidType*, const parseString&);
34  ebmlVoid(const ebmlVoidType*, const parseFile&);
35  ebmlVoid(const ebmlVoidType*, size_t);
36  ebmlVoid(const ebmlVoid&);
37 
38  public:
39  size_t voidsize;
40  size_t dataSize() const;
41 
42  protected:
43  size_t _encode(char*) const;
44 
45  public:
46  size_t encode(ioBase*) const;
47 
48  protected:
49  void _clonedata(const ebmlElement*);
50 
51  public:
52  std::wstring minirepr() const;
53  std::wstring repr() const;
54 
55  friend class ebmlVoidType;
56  };
57 
58  extern ebmlVoidType Void;
59 }
60 #endif
size_t voidsize
Definition: ebmlVoid.h:39
size_t _encode(char *) const
Definition: ebmlVoid.cpp:63
Represents a parsed EBML string segment.
Definition: string.h:37
Represents a parsed EBML file segment.
Definition: io.h:32
std::wstring minirepr() const
Definition: ebmlVoid.cpp:95
Definition: basictypes.h:40
Declaration of the EBML element type base class and CRTP templates.
Represents a void EBML element.
Definition: ebmlVoid.h:19
ebmlVoid(const ebmlVoidType *)
Definition: ebmlVoid.cpp:48
unsigned char writeVoid(char *, size_t) const
Definition: ebmlVoid.cpp:16
ebmlVoidType Void
Definition: ebmlVoid.cpp:127
Definition: ebmlVoid.h:27
Abstract base class for EBML Element instances.
Definition: ebmlElement.h:79
std::wstring repr() const
Definition: ebmlVoid.cpp:98
size_t dataSize() const
Definition: ebmlVoid.cpp:59
std::string encode() const
Encodes the element and returns it as a std::string.
Definition: ebmlElement.h:412
CRTP template for EBML Element instances.
Definition: ebmlElement.h:320
ebmlVoidType()
Definition: ebmlVoid.cpp:14
Base class for file-like IO operations.
Definition: io.h:22
Declaration of the EBML element instance base class and CRTP templates.
CRTP template for EBML Element Type objects.
Definition: ebmlElementType.h:454
void _clonedata(const ebmlElement *)
Definition: ebmlVoid.cpp:88