00001 #ifndef XML_PARSING_BT_H 00002 #define XML_PARSING_BT_H 00003 00004 #include "behaviortree_cpp/bt_parser.h" 00005 00006 namespace BT 00007 { 00008 00014 class XMLParser: public Parser 00015 { 00016 public: 00017 XMLParser(const BehaviorTreeFactory& factory); 00018 00019 ~XMLParser(); 00020 00021 XMLParser(const XMLParser& other) = delete; 00022 XMLParser& operator=(const XMLParser& other) = delete; 00023 00024 void loadFromFile(const std::string& filename) override; 00025 00026 void loadFromText(const std::string& xml_text) override; 00027 00028 Tree instantiateTree(const Blackboard::Ptr &root_blackboard) override; 00029 00030 private: 00031 00032 struct Pimpl; 00033 Pimpl* _p; 00034 00035 }; 00036 00037 void VerifyXML(const std::string& xml_text, 00038 const std::set<std::string> ®istered_nodes); 00039 00040 std::string writeTreeNodesModelXML(const BehaviorTreeFactory& factory); 00041 00042 } 00043 00044 #endif // XML_PARSING_BT_H