Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00040 #ifndef __NODE_H__
00041 #define __NODE_H__
00042
00043
00044
00045 #include <string>
00046
00047
00048 #include <designators/CKeyValuePair.h>
00049
00050
00051 namespace beliefstate {
00057 class Node {
00058 private:
00062 std::string m_strTitle;
00068 std::string m_strUniqueID;
00074 int m_nID;
00075
00077 Node* m_ndParent;
00083 std::list<CKeyValuePair*> m_lstDescription;
00085 std::list<Node*> m_lstSubnodes;
00091 CKeyValuePair* m_ckvpMetaInformation;
00092
00098 std::list< std::pair<std::string, Node*> > m_lstCaughtFailures;
00099
00101 void init();
00102
00107 void clearDescription();
00112 void clearSubnodes();
00113
00114 public:
00116 Node();
00118 Node(std::string strTitle);
00121 Node(std::list<CKeyValuePair*> lstDescription);
00123 ~Node();
00124
00131 void setDescription(std::list<CKeyValuePair*> lstDescription);
00135 std::list<CKeyValuePair*> description();
00136
00143 void setTitle(std::string strTitle);
00147 std::string title();
00148
00152 void setParent(Node* ndParent);
00156 Node* parent();
00157 Node* relativeWithID(int nID, bool bIgnoreSelf = false);
00158
00166 void addSubnode(Node* ndAdd);
00170 std::list<Node*> subnodes();
00171
00172 void setUniqueID(std::string strUniqueID);
00173 std::string uniqueID();
00174
00175 void setID(int nID);
00176 int id();
00177
00178 int highestID();
00179
00180 bool includesUniqueID(std::string strUniqueID);
00181
00182 CKeyValuePair* metaInformation();
00183
00184 void setPrematurelyEnded(bool bPrematurelyEnded);
00185 bool prematurelyEnded();
00186
00187 CKeyValuePair* addDescriptionListItem(std::string strDomain, std::string strPrefix);
00188 std::string addImage(std::string strOrigin, std::string strFilename, std::string strTimestamp);
00189 std::string addObject(std::list<CKeyValuePair*> lstDescription);
00190 std::string addFailure(std::string strCondition, std::string strTimestamp);
00191 std::string catchFailure(std::string strFailureID, Node* ndEmitter, std::string strTimestamp);
00192 void removeCaughtFailure(std::string strFailureID);
00193 Node* emitterForCaughtFailure(std::string strFailureID, std::string strEmitterID, std::string strTimestamp);
00194 bool hasFailures();
00195 void addDesignator(std::string strType, std::list<CKeyValuePair*> lstDescription, std::string strUniqueID, std::string strAnnotation = "");
00196
00197 void setSuccess(bool bSuccess);
00198 bool success();
00199
00200 Node* previousNode();
00201
00202 void ensureProperty(std::string strKey, std::string strDefaultValue);
00203 };
00204 }
00205
00206
00207 #endif