47 Resolution::~Resolution() { }
49 QueryResolver::~QueryResolver() { }
80 handle (
Goal const& query)
82 QID qID = query.getQID();
83 ENSURE (contains (qID));
85 return this->invokeFactory (qID, query);
91 QueryResolver::QueryResolver ()
109 REQUIRE (!dispatcher_->empty(),
"attempt to issue a query without having installed any resolver (yet)");
111 if (!canHandle (query))
114 return dispatcher_->handle(query);
119 QueryResolver::installResolutionCase (QID qID, ResolutionMechanism resolutionFun)
121 ENSURE (!dispatcher_->contains (qID),
122 "duplicate registration of query resolution function");
124 dispatcher_->defineProduction (qID, resolutionFun);
Query ABC: unspecific goal for resolution or retrieval.
PImpl of the generic QueryResolver.
ABC representing the result set of an individual query resolution.
framework and to resolve logical queries.
Framework for building a configurable factory, to generate families of related objects.
Derived specific exceptions within Lumiera's exception hierarchy.
Factory for creating a family of objects by ID.
virtual ~Goal()
this is a marker baseclass
PReso issue(Goal const &query) const
issue a query to retrieve contents The query is handed over internally to a suitable resolver impleme...
Lumiera public interface.
Wrapper taking ownership, by wrapping into smart-ptr.