Go to the documentation of this file.
19 #ifndef avro_Encoder_hh__
20 #define avro_Encoder_hh__
29 #include "ValidSchema.hh"
61 virtual void flush() = 0;
65 virtual int64_t byteCount()
const = 0;
68 virtual void encodeNull() = 0;
71 virtual void encodeBool(
bool b) = 0;
74 virtual void encodeInt(int32_t i) = 0;
77 virtual void encodeLong(int64_t l) = 0;
80 virtual void encodeFloat(
float f) = 0;
83 virtual void encodeDouble(
double d) = 0;
86 virtual void encodeString(
const std::string &s) = 0;
94 virtual void encodeBytes(
const uint8_t *bytes,
size_t len) = 0;
103 encodeBytes(bytes.empty() ? &b : bytes.data(), bytes.size());
107 virtual void encodeFixed(
const uint8_t *bytes,
size_t len) = 0;
115 encodeFixed(bytes.data(), bytes.size());
119 virtual void encodeEnum(
size_t e) = 0;
122 virtual void arrayStart() = 0;
125 virtual void arrayEnd() = 0;
128 virtual void mapStart() = 0;
131 virtual void mapEnd() = 0;
135 virtual void setItemCount(
size_t count) = 0;
138 virtual void startItem() = 0;
141 virtual void encodeUnionIndex(
size_t e) = 0;
A no-copy output stream.
Definition: Stream.hh:108
AVRO_DECL EncoderPtr binaryEncoder()
Returns an encoder that can encode binary Avro standard.
The abstract base class for all Avro encoders.
Definition: Encoder.hh:52
AVRO_DECL EncoderPtr jsonPrettyEncoder(const ValidSchema &schema)
Returns an encoder that encodes Avro standard for pretty printed JSON.
void encodeFixed(const std::vector< uint8_t > &bytes)
Encodes an Avro data type Fixed.
Definition: Encoder.hh:114
AVRO_DECL EncoderPtr validatingEncoder(const ValidSchema &schema, const EncoderPtr &base)
Returns an encoder that validates sequence of calls to an underlying Encoder against the given schema...
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
A ValidSchema is basically a non-mutable Schema that has passed some minimum of sanity checks.
Definition: ValidSchema.hh:40
AVRO_DECL EncoderPtr jsonEncoder(const ValidSchema &schema)
Returns an encoder that encodes Avro standard for JSON.
void encodeBytes(const std::vector< uint8_t > &bytes)
Encodes arbitrary binary data into the current stream as Avro "bytes" data type.
Definition: Encoder.hh:101