Public Types | Public Member Functions | Public Attributes

avro::CompilerNode Class Reference

This is a generic "untyped" node that may store values for all possible attributes of Avro complex types. More...

#include <CompilerNode.hh>

List of all members.

Public Types

enum  AttributeType {
  NONE, FIELDS, VALUES, ITEMS,
  TYPES
}

Public Member Functions

 CompilerNode (const CompilerNode &rhs)
AttributeType attributeType () const
void setAttributeType (AttributeType attributeType)
Type type () const
void setType (Type type)
void addNode (const NodePtr &node)

Public Attributes

concepts::SingleAttribute
< std::string > 
nameAttribute_
concepts::SingleAttribute< int > sizeAttribute_
concepts::MultiAttribute< NodePtr > fieldsAttribute_
concepts::MultiAttribute
< std::string > 
fieldsNamesAttribute_
concepts::MultiAttribute
< std::string > 
symbolsAttribute_
concepts::SingleAttribute
< NodePtr > 
itemsAttribute_
concepts::SingleAttribute
< NodePtr > 
valuesAttribute_
concepts::MultiAttribute< NodePtr > typesAttribute_
Type type_
AttributeType attributeType_

Detailed Description

This is a generic "untyped" node that may store values for all possible attributes of Avro complex types.

This allows a Node to be assembled by the compiler, before it knows what attributes the Node actually contains. All the Avro types defined (see NodeImpl) may be copy constructed from a CompilerNode, at which time the attributes actually required by the Avro type are copied from the CompilerNode, and all unused attributes are dropped.


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