]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/directorysource.h
Add a flag to control replacement of DirectorySource entries
[libs/datafile.git] / source / directorysource.h
index cd82ece11e10f606ade3eea92a598da5373e9bdc..660d4e823fab6364ada247dff9a9518d0a04dcfa 100644 (file)
@@ -13,17 +13,17 @@ A source that load items from files in a directory.
 class DirectorySource: public CollectionSource
 {
 private:
-       std::list<FS::Path> dirs;
+       typedef std::map<std::string, FS::Path> ObjectMap;
 
-public:
-       DirectorySource();
+       ObjectMap objects;
 
-       void set_directory(const FS::Path &);
-       void add_directory(const FS::Path &);
+public:
+       void add_directory(const FS::Path &, bool = true);
 
        virtual bool is_loadable(const CollectionItemTypeBase &, const std::string &) const;
        virtual NameList get_names(const CollectionItemTypeBase &) const;
        virtual void load(Collection &, const CollectionItemTypeBase &, const std::string &) const;
+       virtual IO::Seekable *open(const std::string &) const;
 
        bool lookup_file(const std::string &, FS::Path &) const;
 };