InFact
Interpreter and factory for easily creating C++ objects at run-time
|
infact | The namespace for the entire InFact library |
EnvironmentImpl | Provides a set of named variables and their types, as well as the values for those variables |
VarMapBase | A base class for a mapping from variables of a specific type to their values |
Environment | An interface for an environment in which variables of various types are mapped to their values |
ValueString | A template class that helps print out values with ostream& operator support and vectors of those values |
ValueString< string > | A specialization of the ValueString class to support printing of string values |
ValueString< bool > | A specialization of the ValueString class to support printing of boolean values |
ValueString< shared_ptr< T > > | A partial specialization of the ValueString class to support printing of shared_ptr's to objects, where we simply print the typeid name followed by a colon character followed by the pointer address |
ValueString< vector< T > > | A partial specialization of the ValueString class to support printing of vectors of values |
VarMapImpl | A partial implementation of the VarMapBase interface that is common to both VarMap<T> and the VarMap<vector<T> > partial specialization |
VarMap | A container to hold the mapping between named variables of a specific type and their values |
VarMap< vector< T > > | A partial specialization to allow initialization of a vector of values, where the values can either be literals (if T is a primitive type), spec strings for constructing Factory-constructible objects, or variable names (where each variable must be of type T) |
DateImplConstructor | |
PersonImplConstructor | |
CowConstructor | |
SheepConstructor | |
HumanPetOwnerConstructor | |
Date | An interface to represent a date |
DateImpl | An implementation of the Date interface that can be constructed by a Factory (because of the REGISTER_DATE(DateImpl) declaration in example.cc ) |
Person | An interface representing a person |
PersonImpl | A concrete implementation of the Person interface that can be constructed by a Factory (because of the REGISTER_PERSON(PersonImpl) declaration in example.cc ) |
Animal | A very simple class to represent an animal |
Cow | A class to represent a cow |
Sheep | A sheep |
PetOwner | An owner of a pet |
HumanPetOwner | A concrete type of PetOwner that can be constructed by a Factory<PetOwner> instance |
TypeName | We use the templated class TypeName to be able to take an actual C++ type and get the type name string used by the Interpreter and Environment classes |
TypeName< bool > | A specialization so that an object of type bool converts to "bool" |
TypeName< int > | A specialization so that an object of type int converts to "int" |
TypeName< double > | A specialization so that an object of type double converts to "double" |
TypeName< string > | A specialization so that an object of type string converts to "string" |
TypeName< shared_ptr< T > > | A partial specialization so that an object of type shared_ptr<T> , where T is some Factory-constructible type, converts to the string produced by TypeName<T> |
TypeName< vector< T > > | A partial specialization so that an object of type vector<T> gets converted to the type name of T followed by the string "[]" , equivalent to the result of executing the following expression: |
MemberInitializer | An interface for data member initializers of members of a Factory-constructible object |
TypedMemberInitializer | A concrete, typed implementation of the MemberInitializer base class |
Initializers | A container for all the member initializers for a particular Factory-constructible instance |
FactoryBase | An interface for all Factory instances, specifying a few pure virtual methods |
FactoryContainer | A class to hold all Factory instances that have been created |
Constructor | An interface with a single virtual method that constructs a concrete instance of the abstract type T |
FactoryConstructible | An interface simply to make it easier to implement Factory-constructible types by implementing both required methods to do nothing (use of this interface is completely optional; read more for more information) |
Factory | Factory for dynamically created instance of the specified type |
IStreamBuilder | An interface for classes that can build istreams for named files |
DefaultIStreamBuilder | The default implementation for the IStreamBuilder interface, returning std::ifstream instances |
Interpreter | Provides an interpreter for assigning primitives and Factory-constructible objects to named variables, as well as vectors thereof |
StreamInitializer | An interface that allows for a primitive, Factory-constructible object or vector thereof to be initialized based on the next token or tokens from a token stream |
Initializer | A class to initialize a Factory-constructible object |
Initializer< int > | A specialization to allow Factory-constructible objects to initialize int data members |
Initializer< double > | A specialization to initialize double data members |
Initializer< bool > | A specialization to initialize bool data members |
Initializer< string > | A specialization to initialize string data members |
StreamTokenizer | A simple class for tokenizing a stream of tokens for the formally specified language used to construct objects for the InFact framework |
Token | Information about a token read from the underlying stream |