Avro C++
Protected Member Functions | Protected Attributes | List of all members
avro::NodeImpl< NameConcept, LeavesConcept, LeafNamesConcept, MultiAttributesConcept, SizeConcept > Class Template Referenceabstract

Implementation details for Node. More...

#include <NodeImpl.hh>

Inheritance diagram for avro::NodeImpl< NameConcept, LeavesConcept, LeafNamesConcept, MultiAttributesConcept, SizeConcept >:
avro::Node avro::NodeArray avro::NodeEnum avro::NodeFixed avro::NodeMap avro::NodePrimitive avro::NodeRecord avro::NodeSymbolic avro::NodeUnion

Protected Member Functions

 NodeImpl (Type type)
 
 NodeImpl (Type type, const NameConcept &name, const LeavesConcept &leaves, const LeafNamesConcept &leafNames, const MultiAttributesConcept &customAttributes, const SizeConcept &size)
 
 NodeImpl (Type type, const NameConcept &name, const concepts::SingleAttribute< std::string > &doc, const LeavesConcept &leaves, const LeafNamesConcept &leafNames, const MultiAttributesConcept &customAttributes, const SizeConcept &size)
 
void swap (NodeImpl &impl)
 
bool hasName () const override
 
void doSetName (const Name &name) override
 
const Namename () const override
 
void doSetDoc (const std::string &doc) override
 
const std::string & getDoc () const override
 
void doAddLeaf (const NodePtr &newLeaf) final
 
size_t leaves () const override
 
const NodePtr & leafAt (size_t index) const override
 
void doAddName (const std::string &name) override
 
size_t names () const override
 
const std::string & nameAt (size_t index) const override
 
bool nameIndex (const std::string &name, size_t &index) const override
 
void doSetFixedSize (size_t size) override
 
size_t fixedSize () const override
 
bool isValid () const override=0
 
void printBasicInfo (std::ostream &os) const override
 
void setLeafToSymbolic (size_t index, const NodePtr &node) override
 
void doAddCustomAttribute (const CustomFields &customfields) override
 
SchemaResolution furtherResolution (const Node &reader) const
 
- Protected Member Functions inherited from avro::Node
void checkLock () const
 
virtual void checkName (const Name &name) const
 

Protected Attributes

NameConcept nameAttribute_
 
concepts::SingleAttribute< std::string > docAttribute_
 
LeavesConcept leafAttributes_
 Doc used to compare schemas.
 
LeafNamesConcept leafNameAttributes_
 
MultiAttributesConcept customAttributes_
 
SizeConcept sizeAttribute_
 
concepts::NameIndexConcept< LeafNamesConcept > nameIndex_
 

Additional Inherited Members

- Public Member Functions inherited from avro::Node
 Node (Type type)
 
Type type () const
 
LogicalType logicalType () const
 
void setLogicalType (LogicalType logicalType)
 
void lock ()
 
bool locked () const
 
void setName (const Name &name)
 
void setDoc (const std::string &doc)
 
void addLeaf (const NodePtr &newLeaf)
 
virtual const GenericDatumdefaultValueAt (size_t index)
 
void addName (const std::string &name)
 
void setFixedSize (size_t size)
 
void addCustomAttributesForField (const CustomFields &customAttributes)
 
virtual SchemaResolution resolve (const Node &reader) const =0
 
virtual void printJson (std::ostream &os, size_t depth) const =0
 
virtual void printDefaultToJson (const GenericDatum &g, std::ostream &os, size_t depth) const =0
 

Detailed Description

template<class NameConcept, class LeavesConcept, class LeafNamesConcept, class MultiAttributesConcept, class SizeConcept>
class avro::NodeImpl< NameConcept, LeavesConcept, LeafNamesConcept, MultiAttributesConcept, SizeConcept >

Implementation details for Node.

NodeImpl represents all the avro types, whose properties are enabled and disabled by selecting concept classes.


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