|
InFact
Interpreter and factory for easily creating C++ objects at run-time
|
| The namespace for the entire InFact library | |
| Provides a set of named variables and their types, as well as the values for those variables | |
| A base class for a mapping from variables of a specific type to their values | |
| An interface for an environment in which variables of various types are mapped to their values | |
| A template class that helps print out values with ostream& operator support and vectors of those values | |
| A specialization of the ValueString class to support printing of string values | |
| A specialization of the ValueString class to support printing of boolean values | |
| 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 | |
| A partial specialization of the ValueString class to support printing of vectors of values | |
| A partial implementation of the VarMapBase interface that is common to both VarMap<T> and the VarMap<vector<T> > partial specialization | |
| A container to hold the mapping between named variables of a specific type and their values | |
| 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) | |
| An interface to represent a date | |
An implementation of the Date interface that can be constructed by a Factory (because of the REGISTER_DATE(DateImpl) declaration in example.cc) | |
| An interface representing a person | |
A concrete implementation of the Person interface that can be constructed by a Factory (because of the REGISTER_PERSON(PersonImpl) declaration in example.cc) | |
| A very simple class to represent an animal | |
| A class to represent a cow | |
| A sheep | |
| An owner of a pet | |
| A concrete type of PetOwner that can be constructed by a Factory<PetOwner> instance | |
| 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 | |
A specialization so that an object of type bool converts to "bool" | |
A specialization so that an object of type int converts to "int" | |
A specialization so that an object of type double converts to "double" | |
A specialization so that an object of type string converts to "string" | |
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> | |
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: | |
| An interface for data member initializers of members of a Factory-constructible object | |
| A concrete, typed implementation of the MemberInitializer base class | |
| A container for all the member initializers for a particular Factory-constructible instance | |
| An interface for all Factory instances, specifying a few pure virtual methods | |
| A class to hold all Factory instances that have been created | |
An interface with a single virtual method that constructs a concrete instance of the abstract type T | |
| 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 for dynamically created instance of the specified type | |
| An interface for classes that can build istreams for named files | |
| The default implementation for the IStreamBuilder interface, returning std::ifstream instances | |
| Provides an interpreter for assigning primitives and Factory-constructible objects to named variables, as well as vectors thereof | |
| 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 | |
| A class to initialize a Factory-constructible object | |
A specialization to allow Factory-constructible objects to initialize int data members | |
A specialization to initialize double data members | |
A specialization to initialize bool data members | |
A specialization to initialize string data members | |
| A simple class for tokenizing a stream of tokens for the formally specified language used to construct objects for the InFact framework | |
| Information about a token read from the underlying stream |
1.8.6