This is a generic "untyped" node that may store values for all possible attributes of Avro complex types. More...
#include <CompilerNode.hh>
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_ |
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.