back out that caching query, it's nonsense
defeating the whole purpose of that interface
This commit is contained in:
parent
001a45f64a
commit
9593d388cc
1 changed files with 0 additions and 66 deletions
|
|
@ -209,72 +209,6 @@ namespace session {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Exposes an opaque MObject result set
|
|
||||||
* similar to a DiscoveryQuery, including the
|
|
||||||
* ability to filter/downcast to a specific
|
|
||||||
* kind of MObject
|
|
||||||
*/
|
|
||||||
template<class MO>
|
|
||||||
class CachedQuery
|
|
||||||
: Query<Placement<MO> >
|
|
||||||
{
|
|
||||||
typedef Placement<MO> PMO;
|
|
||||||
typedef Query<PMO> _Query;
|
|
||||||
typedef typename _Query::Result Result;
|
|
||||||
typedef typename _Query::Cursor Cursor;
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
|
||||||
typedef typename _Query::iterator iterator;
|
|
||||||
|
|
||||||
class Snapshot
|
|
||||||
: public Resolution
|
|
||||||
{
|
|
||||||
//////////////TODO: it would be *nice* if we could build something similar to the scope-query Resolution
|
|
||||||
//////////////TODO: *requirement* is that it must not pull in anything beyond <function> and iter-adapters.hpp
|
|
||||||
//////////////TODO: but if that's too expensive to implement, just ditch the ability of subclassing and just yield MObjects, or even just Scopes
|
|
||||||
|
|
||||||
vector<PMO*> results_;
|
|
||||||
|
|
||||||
Result
|
|
||||||
prepareResolution()
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED ("hook up first result");
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
nextResult(Result& pos)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED ("how to advance embedded pointer");
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
|
||||||
template<typename IT>
|
|
||||||
Snapshot(IT const& iter)
|
|
||||||
{
|
|
||||||
for(IT ii(iter); ii; ++ii)
|
|
||||||
results_.push_back(*ii);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Snapshot resultset_;
|
|
||||||
|
|
||||||
template<typename IT>
|
|
||||||
CachedQuery (IT const& results)
|
|
||||||
: resultset_(results)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
iterator
|
|
||||||
resolve () const
|
|
||||||
{
|
|
||||||
PReso resultSet(new Snapshot(resultset_));
|
|
||||||
Result first = resultSet->prepareResolution();
|
|
||||||
Cursor& start = static_cast<Cursor&> (first); // note: type RES must be compatible!
|
|
||||||
return iterator (resultSet, start);
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
}} // namespace mobject::session
|
}} // namespace mobject::session
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue