X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdirectorysource.h;fp=source%2Fdirectorysource.h;h=cd82ece11e10f606ade3eea92a598da5373e9bdc;hb=b1bc25649c1f22abf940a807d934f1e9bb780c28;hp=0000000000000000000000000000000000000000;hpb=6e0e2c78766de3ae57449866b74e111a2af893cf;p=libs%2Fdatafile.git diff --git a/source/directorysource.h b/source/directorysource.h new file mode 100644 index 0000000..cd82ece --- /dev/null +++ b/source/directorysource.h @@ -0,0 +1,34 @@ +#ifndef MSP_DATAFILE_DIRECTORYSOURCE_H_ +#define MSP_DATAFILE_DIRECTORYSOURCE_H_ + +#include +#include "collectionsource.h" + +namespace Msp { +namespace DataFile { + +/** +A source that load items from files in a directory. +*/ +class DirectorySource: public CollectionSource +{ +private: + std::list dirs; + +public: + DirectorySource(); + + void set_directory(const FS::Path &); + void add_directory(const FS::Path &); + + 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 lookup_file(const std::string &, FS::Path &) const; +}; + +} // namespace DataFile +} // namespace Msp + +#endif