As an avro object is being parsed from binary data to its C++ representation, this parser will walk the parse tree and ensure that the correct type is being asked for. More...
#include <ValidatingReader.hh>
Public Member Functions | |
ValidatingReader (const ValidSchema &schema, InputStreamer &in) | |
template<typename T > | |
void | readValue (T &val) |
void | readBytes (std::vector< uint8_t > &val) |
void | readFixed (uint8_t *val, size_t size) |
template<size_t N> | |
void | readFixed (uint8_t(&val)[N]) |
template<size_t N> | |
void | readFixed (boost::array< uint8_t, N > &val) |
void | readRecord () |
int64_t | readArrayBlockSize () |
int64_t | readUnion () |
int64_t | readEnum () |
int64_t | readMapBlockSize () |
Type | nextType () const |
bool | currentRecordName (std::string &name) const |
bool | nextFieldName (std::string &name) const |
As an avro object is being parsed from binary data to its C++ representation, this parser will walk the parse tree and ensure that the correct type is being asked for.
If the user attempts to parse a type that does not match what the schema says, an exception will be thrown.
The ValidatingReader object can also be used to tell what the next type is, so that callers can dynamically discover the contents. It also tells the attribute names of the objects or their fields, if they exist.