19 #ifndef avro_Parser_hh__ 20 #define avro_Parser_hh__ 34 template<
class Reader>
35 class Parser :
private boost::noncopyable
41 explicit Parser(
const InputBuffer &in) :
52 reader_.readValue(null);
57 reader_.readValue(val);
63 reader_.readValue(val);
69 reader_.readValue(val);
75 reader_.readValue(val);
81 reader_.readValue(val);
85 void readString(std::string &val) {
86 reader_.readValue(val);
89 void readBytes(std::vector<uint8_t> &val) {
90 reader_.readBytes(val);
94 void readFixed(uint8_t (&val)[N]) {
95 reader_.readFixed(val);
99 void readFixed(std::array<uint8_t, N> &val) {
100 reader_.readFixed(val);
104 reader_.readRecord();
107 void readRecordEnd() {
108 reader_.readRecordEnd();
111 int64_t readArrayBlockSize() {
112 return reader_.readArrayBlockSize();
115 int64_t readUnion() {
116 return reader_.readUnion();
120 return reader_.readEnum();
123 int64_t readMapBlockSize() {
124 return reader_.readMapBlockSize();
138 return p.reader_.nextType();
142 return p.reader_.currentRecordName(name);
146 return p.reader_.nextFieldName(name);
Type
The "type" for the schema.
Definition: Types.hh:31
A bunch of templates and specializations for encoding and decoding specific types.
Definition: AvroParse.hh:30
Class that wraps a reader or ValidatingReade with an interface that uses explicit get* names instead ...
Definition: Parser.hh:35
define a type to identify Null in template functions
Definition: Types.hh:102
A ValidSchema is basically a non-mutable Schema that has passed some minumum of sanity checks...
Definition: ValidSchema.hh:40
Parser(const ValidSchema &schema, const InputBuffer &in)
Constructor only works with ValidatingWriter.
Definition: Parser.hh:46