]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/directorycollection.h
Restructure the tool and make it able to handle multiple input files
[libs/datafile.git] / source / directorycollection.h
index e9a946332c767d0831afced78f4f981c593037cc..a796054b43569d4892e919ec5a337c4daba25409 100644 (file)
@@ -13,9 +13,6 @@ A Collection that can automatically load items from files in a directory.
 class DirectoryCollection: public Collection
 {
 private:
-       template<typename T, bool = NeedsCollection<typename T::Loader>::value>
-       class ItemLoader;
-
        std::list<FS::Path> dirs;
 
 public:
@@ -25,6 +22,10 @@ protected:
        void set_directory(const FS::Path &);
        void add_directory(const FS::Path &);
 
+       /** Examines the names of files in the designated directories and adds any
+       applicable ones as future objects. */
+       void load_names();
+
        template<typename T>
        CollectionItemType<T> &add_type()
        {
@@ -53,24 +54,6 @@ protected:
        bool lookup_file(const std::string &, FS::Path &) const;
 };
 
-template<typename T>
-class DirectoryCollection::ItemLoader<T, false>: public T::Loader
-{
-public:
-       ItemLoader(T &o, Collection &):
-               T::Loader(o)
-       { }
-};
-
-template<typename T>
-class DirectoryCollection::ItemLoader<T, true>: public T::Loader
-{
-public:
-       ItemLoader(T &o, Collection &c):
-               T::Loader(o, dynamic_cast<typename T::Loader::Collection &>(c))
-       { }
-};
-
 } // namespace DataFile
 } // namespace Msp