22 #ifndef __PLUGINS_PLEXIL_PLEXIL_THREAD_H_
23 #define __PLUGINS_PLEXIL_PLEXIL_THREAD_H_
25 #include <aspect/blackboard.h>
26 #include <aspect/clock.h>
27 #include <aspect/configurable.h>
28 #include <aspect/logging.h>
29 #include <core/threading/thread.h>
31 # include <aspect/thread_producer.h>
32 # include <core/utils/lockptr.h>
33 # include <navgraph/navgraph.h>
35 #include <utils/time/time.h>
37 #include <AdapterFactory.hh>
42 class ExecApplication;
78 struct plexil_interface_config
81 std::map<std::string, std::string> attr;
82 std::map<std::string, std::string> args;
89 std::map<std::string, std::string> attr;
91 std::map<std::string, verbatim_arg> verbatim_args;
92 pugi::xml_document verbatim;
96 std::map<std::string, plexil_interface_config>
97 read_plexil_interface_configs(
const std::string &config_prefix);
98 void add_plexil_interface_configs(
99 pugi::xml_node & parent,
100 const std::map<std::string, PlexilExecutiveThread::plexil_interface_config> &configs,
101 const char * tag_name,
102 const char * type_attr_name);
103 void plexil_compile(
const std::string &ple_file);
106 std::string cfg_spec_;
107 std::string cfg_plan_plx_;
108 std::vector<std::string> cfg_plan_ple_;
109 bool cfg_plan_auto_compile_;
110 bool cfg_plan_force_compile_;
112 std::unique_ptr<PLEXIL::ExecApplication> plexil_;
119 std::shared_ptr<PlexilLogStreamBuffer> log_buffer_;
120 std::shared_ptr<std::ostream> log_stream_;
122 std::shared_ptr<pugi::xml_document> plan_plx_;