X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcollectionsource.h;h=90c36f2fce009768874c42b56c21fbf29d11457d;hb=e3cfc75aa5be3238776caec7f1a437ece7aefa51;hp=61bb11555decbbf85d36500f18ed829073b64f31;hpb=b1bc25649c1f22abf940a807d934f1e9bb780c28;p=libs%2Fdatafile.git diff --git a/source/collectionsource.h b/source/collectionsource.h index 61bb115..90c36f2 100644 --- a/source/collectionsource.h +++ b/source/collectionsource.h @@ -3,6 +3,7 @@ #include #include +#include namespace Msp { namespace DataFile { @@ -21,8 +22,9 @@ public: protected: CollectionSource() { } - public: + virtual ~CollectionSource() { } + /** Determines */ virtual bool is_loadable(const CollectionItemTypeBase &type, const std::string &name) const = 0; @@ -31,6 +33,10 @@ public: virtual NameList get_names(const CollectionItemTypeBase &type) const = 0; virtual void load(Collection &, const CollectionItemTypeBase &, const std::string &) const = 0; + + /** Opens a file from the source. The caller is responsible for deleting + the returned object when done with it. */ + virtual IO::Seekable *open(const std::string &) const = 0; }; } // namespace DataFile