38 Resolution::~Resolution() { }
40 QueryResolver::~QueryResolver() { }
71 handle (
Goal const& query)
73 QID qID = query.getQID();
74 ENSURE (contains (qID));
76 return this->invokeFactory (qID, query);
82 QueryResolver::QueryResolver ()
100 REQUIRE (!dispatcher_->empty(),
"attempt to issue a query without having installed any resolver (yet)");
102 if (!canHandle (query))
105 return dispatcher_->handle(query);
110 QueryResolver::installResolutionCase (QID qID, ResolutionMechanism resolutionFun)
112 ENSURE (!dispatcher_->contains (qID),
113 "duplicate registration of query resolution function");
115 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.