]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/loader.h
Create improvement replacements for BasicLoader* in objectloader.h
[libs/datafile.git] / source / loader.h
index 57481cff28d36fca44b19db0c91784e7ecc54573..6f7e61464db509bf50e5c62fe26d851018f5d342 100644 (file)
@@ -1,7 +1,7 @@
 /* $Id$
 
 This file is part of libmspdatafile
-Copyright © 2006-2008  Mikko Rasa, Mikkosoft Productions
+Copyright © 2006-2008, 2010  Mikko Rasa, Mikkosoft Productions
 Distributed under the LGPL
 */
 
@@ -44,7 +44,17 @@ See also classes BasicLoader and BasicLoader2.
 class Loader
 {
 private:
-       typedef std::map<std::string, LoaderAction *> ActionMap;
+       struct ActionKey
+       {
+               std::string keyword;
+               std::string signature;
+
+               ActionKey(const std::string &, const std::string &);
+
+               bool operator<(const ActionKey &) const;
+       };
+
+       typedef std::map<ActionKey, LoaderAction *> ActionMap;
 
        ActionMap       actions;
        const Statement *cur_st;
@@ -128,6 +138,8 @@ protected:
 private:
        void add(const std::string &, LoaderAction *);
 
+       LoaderAction *find_action(const ActionKey &) const;
+
 protected:
        /** Returns the source of the statement being processed.  This can be used
        to implement relative paths in include-like statements.  Note that the
@@ -144,8 +156,7 @@ protected:
 
 
 /**
-Provides the basic functionality of an object loader.  Deriving from this
-allows loading values directly into member variables of the objects.
+Deprecated.  See ObjectLoader in objectloader.h.
 */
 template<typename O>
 class BasicLoader: public Loader
@@ -163,8 +174,7 @@ public:
 
 
 /**
-Provides functionality for loading objects with a Collection.  Deriving from
-this allows loading pointers to objects in the collection automatically.
+Deprecated.  See CollectionObjectLoader in objectloader.h.
 */
 template<typename O, typename C>
 class BasicLoader2: public BasicLoader<O>