Lumiera
0.pre.03
»edit your freedom«
|
#include "steam/mobject/session/query/fake-configrules.hpp"
the actual table holding preconfigured answers packaged as boost::any objects.
MockTable is the implementation base; subclasses for the individual types are layered below to define the resolve
(..) functions. Finally #MockConfigRules wraps things up.
The implementation relies on boost::any records to stash the objects in automatically managed heap memory.
Definition at line 121 of file fake-configrules.hpp.
Public Member Functions | |
template<> | |
bool | detect_case (WrapReturn< Pipe >::Wrapper &candidate, Query< Pipe > const &q) |
template<> | |
bool | detect_case (WrapReturn< const ProcPatt >::Wrapper &candidate, Query< const ProcPatt > const &q) |
template<> | |
bool | detect_case (WrapReturn< asset::Timeline >::Wrapper &candidate, Query< asset::Timeline > const &q) |
template<> | |
bool | detect_case (WrapReturn< asset::Sequence >::Wrapper &candidate, Query< asset::Sequence > const &q) |
Protected Member Functions | |
template<class TY > | |
bool | detect_case (typename WrapReturn< TY >::Wrapper &, Query< TY > const &) |
Hook for treating very special cases for individual types only. | |
bool | fabricate_just_new_Pipe (Query< Pipe > const &q) |
special case: create a new pipe for a specific stream ID | |
bool | fabricate_matching_new_Pipe (Query< Pipe > const &q, string const &pipeID, string const &streamID) |
special case: create a new pipe with matching pipe and stream IDs on the fly when referred... More... | |
bool | fabricate_ProcPatt_on_demand (Query< const ProcPatt > const &q) |
special case: create/retrieve new processing pattern for given stream ID... More... | |
bool | fabricate_Sequence_on_demand (Query< asset::Sequence > const &q) |
special case: fabricate new Timeline, maybe using ID specs from the query... More... | |
bool | fabricate_Timeline_on_demand (Query< asset::Timeline > const &q) |
special case: fabricate new Timeline, maybe using specific sub-objects as hinted by the IDs given within the query. More... | |
any const & | fetch_from_table_for (QueryKey const &query) |
this is the (preliminary/mock) implementation handling queries for objects of a specific type and with capabilities or properties defined by the query. More... | |
virtual void | reset () |
clear the contents of the mock solution table. More... | |
template<class TY > | |
bool | set_new_mock_solution (Query< TY > const &q, typename WrapReturn< TY >::Wrapper &candidate) |
for entering "valid" solutions on-the-fly from tests | |
Private Types | |
typedef std::map< QueryKey, any > | Tab |
Private Member Functions | |
void | fill_mock_table () |
hard coded answers to configuration queries. More... | |
template<class STRU > | |
any & | item (string const &querySpec) |
shortcut for simply accessing a table entry | |
Private Attributes | |
Tab | answer_ |
bool | isInit_ |
Additional Inherited Members | |
Static Public Attributes inherited from ConfigResolver | |
static lib::Depend< ConfigResolver > | instance |
Singleton factory instance, configured with the actual implementation type. More... | |
|
protectedvirtual |
clear the contents of the mock solution table.
Used by Session lifecycle to restore pristine state
Implements ConfigRules< InterfaceTypes >.
Definition at line 121 of file fake-configrules.cpp.
|
protected |
this is the (preliminary/mock) implementation handling queries for objects of a specific type and with capabilities or properties defined by the query.
The real implementation would require a rule based system (Ichthyo plans to use YAP Prolog), while this dummy implementation simply replies based on a table of pre-fabricated objects. Never fails.
Definition at line 287 of file fake-configrules.cpp.
References MockTable::fill_mock_table().
|
protected |
special case: create a new pipe with matching pipe and stream IDs on the fly when referred...
Definition at line 138 of file fake-configrules.cpp.
References Struct::retrieve.
special case: create/retrieve new processing pattern for given stream ID...
Definition at line 160 of file fake-configrules.cpp.
References Struct::retrieve.
|
protected |
special case: fabricate new Timeline, maybe using specific sub-objects as hinted by the IDs given within the query.
This might include searching the session's timelines / sequences to retrieve an existing object with matching ID...
Definition at line 175 of file fake-configrules.cpp.
References Query< RES >::extractID().
|
protected |
special case: fabricate new Timeline, maybe using ID specs from the query...
Definition at line 211 of file fake-configrules.cpp.
References Query< RES >::extractID().
|
private |
hard coded answers to configuration queries.
Definition at line 97 of file fake-configrules.cpp.
Referenced by MockTable::fetch_from_table_for().