]> git.mxchange.org Git - simgear.git/blobdiff - simgear/props/PropertyBasedMgr.hxx
cppbind.Ghost: clean up a bit
[simgear.git] / simgear / props / PropertyBasedMgr.hxx
index 6246822a2a386ab3f12e0da8a4466d0676173b3d..15205038db55be77cda63529f77ad27e769b450a 100644 (file)
@@ -22,7 +22,6 @@
 #include "PropertyBasedElement.hxx"
 #include <simgear/structure/subsystem_mgr.hxx>
 
-#include <boost/shared_ptr.hpp>
 #include <boost/function.hpp>
 #include <vector>
 
@@ -39,12 +38,26 @@ namespace simgear
 
       virtual void update (double delta_time_sec);
 
-      virtual void childAdded( SGPropertyNode * parent,
-                               SGPropertyNode * child );
-      virtual void childRemoved( SGPropertyNode * parent,
-                                 SGPropertyNode * child );
+      /**
+       * Create a new PropertyBasedElement
+       *
+       * @param name    Name of the new element
+       */
+      PropertyBasedElementPtr createElement(const std::string& name = "");
 
-      virtual void elementCreated(PropertyBasedElementPtr element) {}
+      /**
+       * Get an existing PropertyBasedElement by its index
+       *
+       * @param index   Index of element node in property tree
+       */
+      PropertyBasedElementPtr getElement(size_t index) const;
+
+      /**
+       * Get an existing PropertyBasedElement by its name
+       *
+       * @param name    Name (value of child node "name" will be matched)
+       */
+      PropertyBasedElementPtr getElement(const std::string& name) const;
 
       virtual const SGPropertyNode* getPropertyRoot() const;
 
@@ -75,6 +88,13 @@ namespace simgear
                         ElementFactory element_factory );
       virtual ~PropertyBasedMgr() = 0;
 
+      virtual void childAdded( SGPropertyNode * parent,
+                               SGPropertyNode * child );
+      virtual void childRemoved( SGPropertyNode * parent,
+                                 SGPropertyNode * child );
+
+      virtual void elementCreated(PropertyBasedElementPtr element) {}
+
   };
 
 } // namespace simgear