X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Floader.h;h=4ea7994e757f76476dda000f20c67fa44e21fee9;hb=e4beb0453a1cfe200fc97607afab94c3ddee1c65;hp=126de575ba027fb0cd241ee4a8f5beb0654550b7;hpb=e2a4cefe59dd3e6e1b2fac2fb7232326bb2b0787;p=libs%2Fdatafile.git diff --git a/source/loader.h b/source/loader.h index 126de57..4ea7994 100644 --- a/source/loader.h +++ b/source/loader.h @@ -1,15 +1,7 @@ -/* $Id$ - -This file is part of libmspdatafile -Copyright © 2006-2008, 2010 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #ifndef MSP_DATAFILE_LOADER_H_ #define MSP_DATAFILE_LOADER_H_ #include -#include #include #include "except.h" #include "loaderaction.h" @@ -39,7 +31,7 @@ When loading has finished successfully, the virtual function finish() is called. Any post-processing of the data should be placed here and not in the destructor. -See also classes BasicLoader and BasicLoader2. +See also classes ObjectLoader and CollectionObjectLoader in objectloader.h. */ class Loader { @@ -60,15 +52,12 @@ private: const Statement *cur_st; bool sub_loaded; protected: - bool allow_pointer_reload; bool check_sub_loads; Loader(); public: virtual ~Loader(); - bool is_pointer_reload_allowed() const { return allow_pointer_reload; } - /** Loads statements from a parser. */ void load(Parser &p); @@ -160,52 +149,15 @@ protected: }; -/** -Deprecated. See ObjectLoader in objectloader.h. -*/ -template -class BasicLoader: public Loader -{ -public: - typedef O Object; - -protected: - O &obj; - -public: - BasicLoader(O &o): obj(o) { } - O &get_object() const { return obj; } -}; - - -/** -Deprecated. See CollectionObjectLoader in objectloader.h. -*/ -template -class BasicLoader2: public BasicLoader -{ -public: - typedef C Collection; - -protected: - C &coll; - -public: - BasicLoader2(O &o, C &c): BasicLoader(o), coll(c) { } - C &get_collection() const { return coll; } -}; - - /** Loads an object from a file. The object must have a public Loader class. */ template void load(T &obj, const std::string &fn) { - IO::File in(fn); - IO::Buffered buf(in); + IO::BufferedFile in(fn); - Parser parser(buf, fn); + Parser parser(in, fn); typename T::Loader loader(obj); loader.load(parser); } @@ -213,10 +165,9 @@ void load(T &obj, const std::string &fn) template void load(T &obj, const std::string &fn, U &arg) { - IO::File in(fn); - IO::Buffered buf(in); + IO::BufferedFile in(fn); - Parser parser(buf, fn); + Parser parser(in, fn); typename T::Loader loader(obj, arg); loader.load(parser); }