19 #ifndef avro_Decoder_hh__ 20 #define avro_Decoder_hh__ 28 #include "ValidSchema.hh" 57 virtual void decodeNull() = 0;
60 virtual bool decodeBool() = 0;
63 virtual int32_t decodeInt() = 0;
66 virtual int64_t decodeLong() = 0;
69 virtual float decodeFloat() = 0;
72 virtual double decodeDouble() = 0;
84 virtual void decodeString(std::string& value) = 0;
87 virtual void skipString() = 0;
91 std::vector<uint8_t> result;
98 virtual void decodeBytes(std::vector<uint8_t>& value) = 0;
101 virtual void skipBytes() = 0;
110 std::vector<uint8_t> result;
111 decodeFixed(n, result);
121 virtual void decodeFixed(
size_t n, std::vector<uint8_t>& value) = 0;
124 virtual void skipFixed(
size_t n) = 0;
127 virtual size_t decodeEnum() = 0;
130 virtual size_t arrayStart() = 0;
133 virtual size_t arrayNext() = 0;
139 virtual size_t skipArray() = 0;
142 virtual size_t mapStart() = 0;
145 virtual size_t mapNext() = 0;
151 virtual size_t skipMap() = 0;
154 virtual size_t decodeUnionIndex() = 0;
171 virtual void drain() = 0;
190 virtual const std::vector<size_t>& fieldOrder() = 0;
207 const DecoderPtr& base);
221 const ValidSchema& reader,
const DecoderPtr& base);
std::vector< uint8_t > decodeBytes()
Decodes arbitray binary data from the current stream.
Definition: Decoder.hh:90
A bunch of templates and specializations for encoding and decoding specific types.
Definition: AvroParse.hh:30
AVRO_DECL ResolvingDecoderPtr resolvingDecoder(const ValidSchema &writer, const ValidSchema &reader, const DecoderPtr &base)
Returns a decoder that decodes avro data from base written according to writerSchema and resolves aga...
ResolvingDecoder is derived from Decoder, with an additional function to obtain the field ordering of...
Definition: Decoder.hh:183
AVRO_DECL DecoderPtr validatingDecoder(const ValidSchema &schema, const DecoderPtr &base)
Returns an decoder that validates sequence of calls to an underlying Decoder against the given schema...
AVRO_DECL DecoderPtr jsonDecoder(const ValidSchema &schema)
Returns an decoder that can decode Avro standard for JSON.
std::shared_ptr< Decoder > DecoderPtr
Shared pointer to Decoder.
Definition: Decoder.hh:177
std::vector< uint8_t > decodeFixed(size_t n)
Decodes fixed length binary from the current stream.
Definition: Decoder.hh:109
A ValidSchema is basically a non-mutable Schema that has passed some minumum of sanity checks...
Definition: ValidSchema.hh:40
AVRO_DECL DecoderPtr binaryDecoder()
Returns an decoder that can decode binary Avro standard.
std::string decodeString()
Decodes a UTF-8 string from the current stream.
Definition: Decoder.hh:75
Decoder is an interface implemented by every decoder capable of decoding Avro data.
Definition: Decoder.hh:48
std::shared_ptr< ResolvingDecoder > ResolvingDecoderPtr
Shared pointer to ResolvingDecoder.
Definition: Decoder.hh:196