19 #ifndef avro_Generic_hh__
20 #define avro_Generic_hh__
22 #include <boost/utility.hpp>
27 #include "GenericDatum.hh"
36 const bool isResolving_;
125 const std::pair<ValidSchema, GenericDatum> &p) {
126 GenericWriter::write(e, p.second, p.first);
131 GenericReader::read(d, p.second, p.first);
142 GenericWriter::write(e, g);
147 GenericReader::read(d, g);
Low level support for decoding avro values.
Low level support for encoding avro values.
Decoder is an interface implemented by every decoder capable of decoding Avro data.
Definition: Decoder.hh:48
The abstract base class for all Avro encoders.
Definition: Encoder.hh:52
Generic datum which can hold any Avro type.
Definition: GenericDatum.hh:61
A utility class to read generic datum from decoders.
Definition: Generic.hh:34
static void read(Decoder &d, GenericDatum &g)
Reads a generic datum from the stream, using the given schema.
void drain()
Drains any residual bytes in the input stream (e.g.
Definition: Generic.hh:65
GenericReader(const ValidSchema &writerSchema, const ValidSchema &readerSchema, const DecoderPtr &decoder)
Constructs a reader for the given reader's schema readerSchema using the given decoder which holds da...
static void read(Decoder &d, GenericDatum &g, const ValidSchema &s)
Reads a generic datum from the stream, using the given schema.
void read(GenericDatum &datum) const
Reads a value off the decoder.
GenericReader(ValidSchema s, const DecoderPtr &decoder)
Constructs a reader for the given schema using the given decoder.
A utility class to write generic datum to encoders.
Definition: Generic.hh:82
GenericWriter(ValidSchema s, EncoderPtr encoder)
Constructs a writer for the given schema using the given encoder.
static void write(Encoder &e, const GenericDatum &g, const ValidSchema &)
Writes a generic datum on to the stream, using the given schema.
Definition: Generic.hh:108
static void write(Encoder &e, const GenericDatum &g)
Writes a generic datum on to the stream.
void write(const GenericDatum &datum) const
Writes a value onto the encoder.
A ValidSchema is basically a non-mutable Schema that has passed some minimum of sanity checks.
Definition: ValidSchema.hh:40
A bunch of templates and specializations for encoding and decoding specific types.
Definition: AvroParse.hh:30
std::shared_ptr< Encoder > EncoderPtr
Shared pointer to Encoder.
Definition: Encoder.hh:147
std::shared_ptr< Decoder > DecoderPtr
Shared pointer to Decoder.
Definition: Decoder.hh:177
static void encode(Encoder &e, const GenericDatum &g)
Encodes.
Definition: Generic.hh:141
static void decode(Decoder &d, GenericDatum &g)
Decodes.
Definition: Generic.hh:146
static void decode(Decoder &d, std::pair< ValidSchema, GenericDatum > &p)
Decodes.
Definition: Generic.hh:130
static void encode(Encoder &e, const std::pair< ValidSchema, GenericDatum > &p)
Encodes.
Definition: Generic.hh:124
Codec_traits tells avro how to encode and decode an object of given type.
Definition: Generic.hh:114