[fdo-internals] Using FDO collections without inheritance
mateusz at loskot.net
Mon Mar 5 22:03:03 EST 2007
Is there any collection in FDO that can be used without
creating a new type of specialized collection, by inheriting
from base class like FdoCollection?
I'd like to achieve something similar like std::list<T>
but parametrized with FDO type (based on FdoIDisposable).
Here is small snipped presenting the idea I'm asking about.
It tries to:
- create new collection using read-write proxy based on FdoCollection
- wrap it with FdoReadOnlyCollection
- return read-only collection of items back to user
Certainly, the snipped below does not even compile,
because MyCollection is still an abstract type due to the fact that
FdoIDisposable::Dispose() interface is not implemented.
I'm just trying to present what I'd like to achieve from a client
point of view.
class MyItem : public FdoIDisposable;
MyCollection* GetMyItems() const
typedef FdoCollection<MyItem, FdoException> MyCollectionBase;
FdoPtr<MyCollectionBase> items = new MyCollectionBase();
FdoPtr<MyItem> c1(new Myitem(L"item1"));
FdoPtr<MyItem> c2(new Myitem(L"item2"));
FdoPtr<MyCollection> roItems(new MyCollection());
I would not like to create new collections by inheritance from
FdoCollection and next from FdoReadOnlyCollection, in order to fulfill
requirements of Dispose() implementation, etc.
Is this possible?
More information about the fdo-internals