Avro C#
Classes | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Properties | List of all members
Avro.Generic.PreresolvingDatumWriter< T > Class Template Referenceabstract

A general purpose writer of data from avro streams. This writer analyzes the writer schema when constructed so that writes can be more efficient. Once constructed, a writer can be reused or shared among threads to avoid incurring more resolution costs. More...

Inheritance diagram for Avro.Generic.PreresolvingDatumWriter< T >:
Avro.Generic.DatumWriter< T > Avro.Generic.GenericDatumWriter< T > Avro.Specific.SpecificDatumWriter< T >

Classes

interface  ArrayAccess
 Defines the interface for a class that provides access to an array implementation. More...
 
class  DictionaryMapAccess
 Provides access to map properties from an IDictionary. More...
 
interface  EnumAccess
 Obsolete - This will be removed from the public API in a future version. More...
 
interface  MapAccess
 Defines the interface for a class that provides access to a map implementation. More...
 
class  RecordFieldWriter
 Correlates a record field with the writer used to serialize that field. More...
 

Public Member Functions

void Write (T datum, Encoder encoder)
 Write a datum. Traverse the schema, depth first, writing each leaf value in the schema from the datum to the output.
 

Protected Member Functions

delegate void WriteItem (object value, Encoder encoder)
 Defines the signature for a method that writes a value to an encoder. More...
 
 PreresolvingDatumWriter (Schema schema, ArrayAccess arrayAccess, MapAccess mapAccess)
 Initializes a new instance of the PreresolvingDatumWriter<T> class. More...
 
void WriteNull (object value, Encoder encoder)
 Serializes a "null" More...
 
void Write< TValue > (object value, Schema.Type tag, Writer< TValue > writer)
 A generic method to serialize primitive Avro types. More...
 
abstract void WriteRecordFields (object record, RecordFieldWriter[] writers, Encoder encoder)
 Writes each field of a record to the encoder. More...
 
abstract void EnsureRecordObject (RecordSchema recordSchema, object value)
 Ensures that the given value is a record and that it corresponds to the given schema. Throws an exception if either of those assertions are false. More...
 
abstract void WriteField (object record, string fieldName, int fieldPos, WriteItem writer, Encoder encoder)
 Writes a field from the record to the encoder using the writer . More...
 
abstract WriteItem ResolveEnum (EnumSchema es)
 Serializes an enumeration. More...
 
WriteItem ResolveArray (ArraySchema schema)
 Creates a WriteItem delegate that serializes an array. The default implementation calls EnsureArrayObject() to ascertain that the given value is an array. It then calls GetArrayLength() and GetArrayElement() to access the members of the array and then serialize them. More...
 
WriteItem ResolveLogical (LogicalSchema schema)
 Serializes a logical value object by using the underlying logical type to convert the value to its base value. More...
 
void WriteMap (WriteItem itemWriter, object value, Encoder encoder)
 Serializes a map. The default implementation first ensure that the value is indeed a map and then uses GetMapSize() and GetMapElements() to access the contents of the map. More...
 
int ResolveUnion (UnionSchema us, Schema[] branchSchemas, object obj)
 Finds the branch within the given UnionSchema that matches the given object. The default implementation calls Matches() method in the order of branches within the UnionSchema. If nothing matches, throws an exception. More...
 
abstract void WriteFixed (FixedSchema es, object value, Encoder encoder)
 Serialized a fixed object. The default implementation requires that the value is a GenericFixed object with an identical schema as es. More...
 
abstract bool UnionBranchMatches (Schema sc, object obj)
 Tests whether the given schema an object are compatible. More...
 

Static Protected Member Functions

static AvroException TypeMismatch (object obj, string schemaType, string type)
 Creates a new AvroException and uses the provided parameters to build an exception message indicating there was a type mismatch. More...
 

Properties

Schema Schema [get]
 
- Properties inherited from Avro.Generic.DatumWriter< T >
Schema Schema [get]
 Schema used to write the data. More...
 

Detailed Description

A general purpose writer of data from avro streams. This writer analyzes the writer schema when constructed so that writes can be more efficient. Once constructed, a writer can be reused or shared among threads to avoid incurring more resolution costs.

Constructor & Destructor Documentation

◆ PreresolvingDatumWriter()

Avro.Generic.PreresolvingDatumWriter< T >.PreresolvingDatumWriter ( Schema  schema,
ArrayAccess  arrayAccess,
MapAccess  mapAccess 
)
inlineprotected

Initializes a new instance of the PreresolvingDatumWriter<T> class.

Parameters
schemaSchema used by this writer
arrayAccessObject used to access array properties
mapAccessObject used to access map properties

Member Function Documentation

◆ EnsureRecordObject()

abstract void Avro.Generic.PreresolvingDatumWriter< T >.EnsureRecordObject ( RecordSchema  recordSchema,
object  value 
)
protectedpure virtual

Ensures that the given value is a record and that it corresponds to the given schema. Throws an exception if either of those assertions are false.

Parameters
recordSchemaSchema associated with the record
valueEnsure this object is a record

Implemented in Avro.Specific.SpecificDatumWriter< T >, and Avro.Generic.GenericDatumWriter< T >.

◆ ResolveArray()

WriteItem Avro.Generic.PreresolvingDatumWriter< T >.ResolveArray ( ArraySchema  schema)
inlineprotected

Creates a WriteItem delegate that serializes an array. The default implementation calls EnsureArrayObject() to ascertain that the given value is an array. It then calls GetArrayLength() and GetArrayElement() to access the members of the array and then serialize them.

Parameters
schemaThe ArraySchema for serialization
Returns
A WriteItem that serializes an array.

◆ ResolveEnum()

abstract WriteItem Avro.Generic.PreresolvingDatumWriter< T >.ResolveEnum ( EnumSchema  es)
protectedpure virtual

Serializes an enumeration.

Parameters
esThe EnumSchema for serialization

Implemented in Avro.Generic.GenericDatumWriter< T >, and Avro.Specific.SpecificDatumWriter< T >.

◆ ResolveLogical()

WriteItem Avro.Generic.PreresolvingDatumWriter< T >.ResolveLogical ( LogicalSchema  schema)
inlineprotected

Serializes a logical value object by using the underlying logical type to convert the value to its base value.

Parameters
schemaThe logical schema.

◆ ResolveUnion()

int Avro.Generic.PreresolvingDatumWriter< T >.ResolveUnion ( UnionSchema  us,
Schema[]  branchSchemas,
object  obj 
)
inlineprotected

Finds the branch within the given UnionSchema that matches the given object. The default implementation calls Matches() method in the order of branches within the UnionSchema. If nothing matches, throws an exception.

Parameters
usThe UnionSchema to resolve against
branchSchemasSchemas for types within the union
objThe object that should be used in matching
Returns
Index of the schema in branchSchemas that matches the obj .
Exceptions
AvroExceptionNo match found for the object in the union schema.

◆ TypeMismatch()

static AvroException Avro.Generic.PreresolvingDatumWriter< T >.TypeMismatch ( object  obj,
string  schemaType,
string  type 
)
inlinestaticprotected

Creates a new AvroException and uses the provided parameters to build an exception message indicating there was a type mismatch.

Parameters
objObject whose type does not the expected type
schemaTypeSchema that we tried to write against
typeType that we expected
Returns
A new AvroException indicating a type mismatch.

◆ UnionBranchMatches()

abstract bool Avro.Generic.PreresolvingDatumWriter< T >.UnionBranchMatches ( Schema  sc,
object  obj 
)
protectedpure virtual

Tests whether the given schema an object are compatible.

Parameters
scSchema to compare
objObject to compare
Returns
True if the two parameters are compatible, false otherwise.

Implemented in Avro.Specific.SpecificDatumWriter< T >, and Avro.Generic.GenericDatumWriter< T >.

◆ Write< TValue >()

void Avro.Generic.PreresolvingDatumWriter< T >.Write< TValue > ( object  value,
Schema.Type  tag,
Writer< TValue >  writer 
)
inlineprotected

A generic method to serialize primitive Avro types.

Template Parameters
TValueType of the C# type to be serialized
Parameters
valueThe value to be serialized
tagThe schema type tag
writerThe writer which should be used to write the given type.

◆ WriteField()

abstract void Avro.Generic.PreresolvingDatumWriter< T >.WriteField ( object  record,
string  fieldName,
int  fieldPos,
WriteItem  writer,
Encoder  encoder 
)
protectedpure virtual

Writes a field from the record to the encoder using the writer .

Parameters
recordThe record value from which the field needs to be extracted
fieldNameThe name of the field in the record
fieldPosThe position of field in the record
writerUsed to write the field value to the encoder
encoderEncoder to write to

Implemented in Avro.Generic.GenericDatumWriter< T >, and Avro.Specific.SpecificDatumWriter< T >.

◆ WriteFixed()

abstract void Avro.Generic.PreresolvingDatumWriter< T >.WriteFixed ( FixedSchema  es,
object  value,
Encoder  encoder 
)
protectedpure virtual

Serialized a fixed object. The default implementation requires that the value is a GenericFixed object with an identical schema as es.

Parameters
esThe schema for serialization
valueThe value to be serialized
encoderThe encoder for serialization

Implemented in Avro.Specific.SpecificDatumWriter< T >, and Avro.Generic.GenericDatumWriter< T >.

◆ WriteItem()

delegate void Avro.Generic.PreresolvingDatumWriter< T >.WriteItem ( object  value,
Encoder  encoder 
)
protected

Defines the signature for a method that writes a value to an encoder.

Parameters
valueValue to write
encoderEncoder to write to

◆ WriteMap()

void Avro.Generic.PreresolvingDatumWriter< T >.WriteMap ( WriteItem  itemWriter,
object  value,
Encoder  encoder 
)
inlineprotected

Serializes a map. The default implementation first ensure that the value is indeed a map and then uses GetMapSize() and GetMapElements() to access the contents of the map.

Parameters
itemWriterDelegate used to write each map item.
valueThe value to be serialized
encoderThe encoder for serialization

◆ WriteNull()

void Avro.Generic.PreresolvingDatumWriter< T >.WriteNull ( object  value,
Encoder  encoder 
)
inlineprotected

Serializes a "null"

Parameters
valueThe object to be serialized using null schema
encoderThe encoder to use while serialization

◆ WriteRecordFields()

abstract void Avro.Generic.PreresolvingDatumWriter< T >.WriteRecordFields ( object  record,
RecordFieldWriter[]  writers,
Encoder  encoder 
)
protectedpure virtual

Writes each field of a record to the encoder.

Parameters
recordRecord to write
writersWriters for each field in the record
encoderEncoder to write to

Implemented in Avro.Generic.GenericDatumWriter< T >, and Avro.Specific.SpecificDatumWriter< T >.


The documentation for this class was generated from the following file: