X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcollectionsource.h;h=e5647d8231449f2793703eaea083876fd8b0f705;hb=b39ce68f12c30eedb272b65fe78baec5864d89ca;hp=61bb11555decbbf85d36500f18ed829073b64f31;hpb=b1bc25649c1f22abf940a807d934f1e9bb780c28;p=libs%2Fdatafile.git diff --git a/source/collectionsource.h b/source/collectionsource.h index 61bb115..e5647d8 100644 --- a/source/collectionsource.h +++ b/source/collectionsource.h @@ -3,6 +3,7 @@ #include #include +#include namespace Msp { namespace DataFile { @@ -21,16 +22,22 @@ public: protected: CollectionSource() { } - public: - /** Determines */ + virtual ~CollectionSource() { } + + /// Determines whether an object is available from this source. virtual bool is_loadable(const CollectionItemTypeBase &type, const std::string &name) const = 0; - /** Returns the names of loadable objects of a specific type. Implementors - should use the keyword and/or suffixes of the type to */ + /** Returns the names of available objects of a specific type. Implementors + should use type.match_name to check which names are acceptable. */ virtual NameList get_names(const CollectionItemTypeBase &type) const = 0; + /// Loads an item into a collection. virtual void load(Collection &, const CollectionItemTypeBase &, const std::string &) const = 0; + + /** Opens a raw resource. The caller is responsible for deleting the + returned object when done with it. */ + virtual IO::Seekable *open(const std::string &) const = 0; }; } // namespace DataFile