X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcollectionsource.h;h=3aa2190c736fa720766437586e0bbe649c1d7e08;hb=refs%2Fheads%2Fwip;hp=398f7942c85c6260d514796beac77146b5cc7d32;hpb=9b1656018f783eb4aad2fbdc1de1404691e89bb1;p=libs%2Fdatafile.git diff --git a/source/collectionsource.h b/source/collectionsource.h index 398f794..3aa2190 100644 --- a/source/collectionsource.h +++ b/source/collectionsource.h @@ -4,6 +4,7 @@ #include #include #include +#include "mspdatafile_api.h" namespace Msp { namespace DataFile { @@ -15,26 +16,28 @@ class CollectionItemTypeBase; Provides automatically loadable objects for collections. This is a base class; see DirectorySource and PackSource for concrete classes. */ -class CollectionSource +class MSPDATAFILE_API CollectionSource { public: typedef std::list NameList; protected: - CollectionSource() { } - + CollectionSource() = default; public: - /** Determines */ + virtual ~CollectionSource() = default; + + /// 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 file from the source. The caller is responsible for deleting - the returned object when done with it. */ + /** 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; };