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_;
virtual void loop()
Code to execute in the thread.
Thread aspect to access to BlackBoard.
Thread aspect that allows to obtain the current time from the clock.
PlexilExecutiveThread()
Constructor.
virtual void once()
Execute an action exactly once.
Thread class encapsulation of pthreads.
Main thread of PLEXIL executive.
virtual bool prepare_finalize_user()
Prepare finalization user implementation.
virtual void init()
Initialize the thread.
virtual void finalize()
Finalize the thread.
Thread aspect to log output.
Log Plexil log output to Fawkes logger.
Aspect for thread producing threads.
Thread aspect to access configuration data.
virtual void run()
Stub to see name in backtrace for easier debugging.
Access to internal navgraph for Plexil.
virtual ~PlexilExecutiveThread()
Destructor.