]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/loader.h
Add Readme.txt and some other documentation
[libs/datafile.git] / source / loader.h
index 7d5d8d9690dfd1c9460739e7a22332a26e6d5e42..9c0933694e074389a5931f3af8a5e2fc029ca6f7 100644 (file)
@@ -189,11 +189,11 @@ private:
 
 
 /**
-Base class for data loaders.  To enable objects of a certain class to be loaded
-from datafiles, create a public Loader class in it, derived from this class.
-Typically the Loader class contains a reference to the object being loaded.  If
-you want to load data members of the object directly, the Loader class must
-have a member function get_object() returning that reference.
+Base class for data loaders.  To give loading capabilities to a class, create a
+public Loader class in it, derived from this class.  Typically a loader object
+contains a reference to the loaded object.  To make use of loading directly
+into data members, the Loader class must have a get_object() member function,
+returning that reference.
 */
 class Loader
 {
@@ -214,6 +214,9 @@ public:
 protected:
        Loader(): cur_st(0) { }
 
+       /**
+       Adds a keyword that is loaded with a zero-argument function.
+       */
        template<typename L>
        void add(const std::string &k, void (L::*func)())
        { actions.insert(typename ActionMap::value_type(k, new LoaderFunc0<L>(func))); }
@@ -234,6 +237,9 @@ protected:
        void add(const std::string &k, void (L::*func)(A0, A1, A2, A3))
        { actions.insert(typename ActionMap::value_type(k, new LoaderFunc4<L, A0, A1, A2, A3>(func))); }
 
+       /**
+       Adds a keyword that is loaded into a variable of the loaded object.
+       */
        template<typename L, typename T0>
        void add(const std::string &k, T0 L::*p0)
        { actions.insert(typename ActionMap::value_type(k, new LoadValue1<L, T0>(p0))); }
@@ -242,6 +248,9 @@ protected:
        void add(const std::string &k, T0 L::*p0, T1 L::*p1)
        { actions.insert(typename ActionMap::value_type(k, new LoadValue2<L, T0, T1>(p0, p1))); }
 
+       /**
+       Adds a keyword that is recognized but ignored.
+       */
        void add(const std::string &k)
        { actions.insert(ActionMap::value_type(k, 0)); }