]> ruin.nu Git - popboot.git/blobdiff - node.h
including iterator
[popboot.git] / node.h
diff --git a/node.h b/node.h
index 77a9d7bbefce9d7265d870e2f80c9b5fb400dfc7..cbe17348aa103a1befce5a11baca11391b28f424 100644 (file)
--- a/node.h
+++ b/node.h
@@ -8,19 +8,22 @@
 class Node {
 
        public:
-               Node(const Action& action);
+               Node(const Action* action);
                Node();
                Node(const Node& node);
                virtual ~Node(){}
                void addChild(Node* node);
-               const Action& action() const;
-               void execute(const Literals& effects);
+               const Action* action() const;
+               void execute();
                bool executed() const;
                const Literals& effects() const;
-               void satisfyCondition(std::string effect);
+               bool satisfyCondition(std::string effect);
+               bool satisfyConditions(const Literals& effects);
+               const std::vector<Node*>& children() const;
+               const Preconditions& preconditions() const;
 
        protected:
-               Action _action;
+               const Action* _action;
                std::vector<Node*> _children;
                Preconditions _preconditions;
                bool _executed;
@@ -30,11 +33,13 @@ class Node {
 class StartNode :public Node {
        public:
                StartNode(const Literals& init);
+               ~StartNode(){delete _action;}
 };
 
 class EndNode :public Node {
        public:
                EndNode(const Literals& goal);
+               ~EndNode(){delete _action;}
 };
 
 #endif