X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdirectorysource.h;h=654906565eeb839dd4991070bfb59629ee68f3e5;hb=d8bda96a0aac09774bb1e2a8b57ac2e48a93b3c1;hp=0710225cc519a6f8eb87c01101c563136b904899;hpb=c634c9a6aac3fbedecc6e2c8ef69fc11dabd49d0;p=libs%2Fdatafile.git diff --git a/source/directorysource.h b/source/directorysource.h index 0710225..6549065 100644 --- a/source/directorysource.h +++ b/source/directorysource.h @@ -13,14 +13,17 @@ A source that load items from files in a directory. class DirectorySource: public CollectionSource { private: - std::list dirs; + typedef std::map ObjectMap; + + ObjectMap objects; public: - void add_directory(const FS::Path &); + 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; + bool is_loadable(const CollectionItemTypeBase &, const std::string &) const override; + NameList get_names(const CollectionItemTypeBase &) const override; + void load(Collection &, const CollectionItemTypeBase &, const std::string &) const override; + IO::Seekable *open(const std::string &) const override; bool lookup_file(const std::string &, FS::Path &) const; };