InFact
Interpreter and factory for easily creating C++ objects at run-time
|
The namespace for the entire InFact library. More...
Classes | |
class | EnvironmentImpl |
Provides a set of named variables and their types, as well as the values for those variables. More... | |
class | VarMapBase |
A base class for a mapping from variables of a specific type to their values. More... | |
class | Environment |
An interface for an environment in which variables of various types are mapped to their values. More... | |
class | ValueString |
A template class that helps print out values with ostream& operator support and vectors of those values. More... | |
class | ValueString< string > |
A specialization of the ValueString class to support printing of string values. More... | |
class | ValueString< bool > |
A specialization of the ValueString class to support printing of boolean values. More... | |
class | 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. More... | |
class | ValueString< vector< T > > |
A partial specialization of the ValueString class to support printing of vectors of values. More... | |
class | VarMapImpl |
A partial implementation of the VarMapBase interface that is common to both VarMap<T> and the VarMap<vector<T> > partial specialization. More... | |
class | VarMap |
A container to hold the mapping between named variables of a specific type and their values. More... | |
class | 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). More... | |
class | DateImplConstructor |
class | PersonImplConstructor |
class | CowConstructor |
class | SheepConstructor |
class | HumanPetOwnerConstructor |
class | Date |
An interface to represent a date. More... | |
class | DateImpl |
An implementation of the Date interface that can be constructed by a Factory (because of the REGISTER_DATE(DateImpl) declaration in example.cc ). More... | |
class | Person |
An interface representing a person. More... | |
class | 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 ). More... | |
class | Animal |
A very simple class to represent an animal. More... | |
class | Cow |
A class to represent a cow. More... | |
class | Sheep |
A sheep. More... | |
class | PetOwner |
An owner of a pet. More... | |
class | HumanPetOwner |
A concrete type of PetOwner that can be constructed by a Factory<PetOwner> instance. More... | |
class | 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. More... | |
class | TypeName< bool > |
A specialization so that an object of type bool converts to "bool" . More... | |
class | TypeName< int > |
A specialization so that an object of type int converts to "int" . More... | |
class | TypeName< double > |
A specialization so that an object of type double converts to "double" . More... | |
class | TypeName< string > |
A specialization so that an object of type string converts to "string" . More... | |
class | 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> . More... | |
class | 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: More... | |
class | MemberInitializer |
An interface for data member initializers of members of a Factory-constructible object. More... | |
class | TypedMemberInitializer |
A concrete, typed implementation of the MemberInitializer base class. More... | |
class | Initializers |
A container for all the member initializers for a particular Factory-constructible instance. More... | |
class | FactoryBase |
An interface for all Factory instances, specifying a few pure virtual methods. More... | |
class | FactoryContainer |
A class to hold all Factory instances that have been created. More... | |
class | Constructor |
An interface with a single virtual method that constructs a concrete instance of the abstract type T . More... | |
class | 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). More... | |
class | Factory |
Factory for dynamically created instance of the specified type. More... | |
class | IStreamBuilder |
An interface for classes that can build istreams for named files. More... | |
class | DefaultIStreamBuilder |
The default implementation for the IStreamBuilder interface, returning std::ifstream instances. More... | |
class | Interpreter |
Provides an interpreter for assigning primitives and Factory-constructible objects to named variables, as well as vectors thereof. More... | |
class | 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. More... | |
class | Initializer |
A class to initialize a Factory-constructible object. More... | |
class | Initializer< int > |
A specialization to allow Factory-constructible objects to initialize int data members. More... | |
class | Initializer< double > |
A specialization to initialize double data members. More... | |
class | Initializer< bool > |
A specialization to initialize bool data members. More... | |
class | Initializer< string > |
A specialization to initialize string data members. More... | |
class | StreamTokenizer |
A simple class for tokenizing a stream of tokens for the formally specified language used to construct objects for the InFact framework. More... | |
Functions | |
void | Error (const std::string &message) |
Reports an error encountered during parsing and/or construction of an object. More... | |
The namespace for the entire InFact library.
void infact::Error | ( | const std::string & | message | ) |
Reports an error encountered during parsing and/or construction of an object.
Optionally throws an exception, according to the value of INFACT_THROW_EXCEPTIONS.