libebml_ng
string.h
Go to the documentation of this file.
1 #ifndef EBML_NG_PARSESTR_H
2 #define EBML_NG_PARSESTR_H
3 
4 #include <stddef.h>
5 #include <unistd.h>
6 
7 #include "libebml_ng/ebmlID_t.h"
9 #include "libebml_ng/repr.h"
11 
12 namespace ebml {
37  class parseString {
38  public:
41  size_t dataSize;
43  off_t offset;
44  const char* data;
47  parseString();
48  parseString(const parseString&);
52 
59  parseString(const char*, size_t);
60 
68  parseString(const char*, size_t, off_t);
69 
82  size_t, vintWidth_t,
83  off_t, const char*);
84 
91  parseString(const parseFile&, char*);
92 
93  class iterator;
102 
108  unsigned long long outerSize() const;
109 
118  template<typename T>
119  inline T unpack() const {
120  return ebml::unpack<T>(this->data, this->dataSize);
121  }
122  };
123 
131  const char* _data;
132  off_t _offset;
133  size_t _dataSize;
134  parseString _next;
135  public:
142  iterator(const char*, size_t);
143 
150 
157 
164 
171  bool operator==(const parseString::iterator&) const;
172 
179  bool operator!=(const parseString::iterator&) const;
180 
186  bool atEnd() const;
187  };
188 }
189 #endif
parseString()
Definition: string.cpp:16
iterator(const char *, size_t)
Construct an iterator with the given data pointer and size.
Definition: string.cpp:122
off_t offset
Definition: string.h:43
parseString operator*()
Dereference the iterator.
Definition: string.cpp:140
Represents a parsed EBML string segment.
Definition: string.h:37
Represents a parsed EBML file segment.
Definition: io.h:32
bool atEnd() const
Check whether the iterator has reached the end.
Definition: string.cpp:210
vintWidth_t ebmlIDWidth
Definition: string.h:40
bool operator==(const parseString::iterator &) const
Equality comparison.
Definition: string.cpp:182
vintWidth_t sizeWidth
Definition: string.h:42
parseString::iterator begin() const
Returns an iterator to the beginning of the contained EBML elements.
Definition: string.cpp:108
Definition: basictypes.h:40
Iterator for parseString objects.
Definition: string.h:130
ebmlID_t ebmlID
Definition: string.h:39
unsigned long long outerSize() const
Returns the outer size (header + data) of the element.
Definition: string.cpp:116
bool operator!=(const parseString::iterator &) const
Inequality comparison.
Definition: string.cpp:196
parseString * parent
Definition: string.h:45
uint64_t ebmlID_t
Definition: ebmlID_t.h:7
uint8_t vintWidth_t
Definition: ebmlID_t.h:8
size_t dataSize
Definition: string.h:41
parseString::iterator & operator++()
Pre-increment operator.
Definition: string.cpp:144
parseString & operator=(const parseString &)
Definition: string.cpp:26
T unpack() const
Template method to unpack data from the element&#39;s payload.
Definition: string.h:119
const char * data
Definition: string.h:44