]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/collectionsource.h
Remove the loaded flag from PackSource files
[libs/datafile.git] / source / collectionsource.h
index 61bb11555decbbf85d36500f18ed829073b64f31..e5647d8231449f2793703eaea083876fd8b0f705 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <list>
 #include <string>
+#include <msp/io/seekable.h>
 
 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