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