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 |