+
+/**
+Deprecated. See CollectionObjectLoader in objectloader.h.
+*/
+template<typename O, typename C>
+class BasicLoader2: public BasicLoader<O>
+{
+public:
+ typedef C Collection;
+
+protected:
+ C &coll;
+
+public:
+ BasicLoader2(O &o, C &c): BasicLoader<O>(o), coll(c) { }
+ C &get_collection() const { return coll; }
+};
+
+
+/**
+Loads an object from a file. The object must have a public Loader class.
+*/
+template<typename T>
+void load(T &obj, const std::string &fn)
+{
+ IO::File in(fn);
+ IO::Buffered buf(in);
+
+ Parser parser(buf, fn);
+ typename T::Loader loader(obj);
+ loader.load(parser);
+}
+
+template<typename T, typename U>
+void load(T &obj, const std::string &fn, U &arg)
+{
+ IO::File in(fn);
+ IO::Buffered buf(in);
+
+ Parser parser(buf, fn);
+ typename T::Loader loader(obj, arg);
+ loader.load(parser);
+}
+
+} // namespace DataFile