24 #include "model/DomainFact.h"
25 #include "model/DomainObject.h"
26 #include "model/DomainOperator.h"
27 #include "model/DomainPreconditionAtom.h"
28 #include "model/DomainPreconditionCompound.h"
29 #include "model/DomainPredicate.h"
30 #include "model/Goal.h"
31 #include "model/Plan.h"
33 #include <aspect/logging.h>
34 #include <aspect/webview.h>
35 #include <clipsmm/fact.h>
36 #include <core/threading/thread.h>
37 #include <core/utils/lockptr.h>
38 #include <plugins/clips/aspect/clips_manager.h>
39 #include <webview/rest_api.h>
40 #include <webview/rest_array.h>
60 typedef std::pair<std::string, std::string> PlanKey;
61 typedef std::tuple<std::string, std::string, int64_t> PlanActionKey;
62 typedef std::list<CLIPS::Fact::pointer> ClipsFactList;
63 typedef std::map<PlanActionKey, ClipsFactList> PreCompoundMap;
64 typedef std::map<PlanActionKey, ClipsFactList> PreAtomMap;
65 typedef std::map<PlanKey, CLIPS::Fact::pointer> PlanMap;
66 typedef std::map<PlanKey, ClipsFactList> PlanActionMap;
79 Goal generate_goal(CLIPS::Fact::pointer fact);
80 void gen_plan_precompute(std::map<PlanKey, CLIPS::Fact::pointer> &plans,
81 std::map<PlanKey, ClipsFactList> & plan_actions,
82 PreCompoundMap & prec,
84 std::shared_ptr<DomainPreconditionAtom>
85 gen_domain_precondition_atom(
const CLIPS::Fact::pointer fact);
87 std::shared_ptr<DomainPreconditionCompound>
88 gen_domain_precondition_compound(
const CLIPS::Fact::pointer fact,
89 const PlanActionKey & plan_action_key,
90 PreCompoundMap & prec,
93 Plan gen_plan(
const PlanKey & plan_key,
94 const CLIPS::Fact::pointer fact,
95 PlanActionMap & plan_actions,
96 PreCompoundMap & prec,
REST API backend for the CLIPS executive.
~ClipsExecutiveRestApi()
Destructor.
virtual void finalize()
Finalize the thread.
virtual void init()
Initialize the thread.
virtual void loop()
Code to execute in the thread.
ClipsExecutiveRestApi()
Constructor.
Environment representation for JSON transfer.
Goal representation for JSON transfer.
Plan representation for JSON transfer.
Container to return array via REST.
Thread aspect access the CLIPS environment manager.
Thread aspect to log output.
Thread class encapsulation of pthreads.
Thread aspect to provide web pages via Webview.
Webview REST API component.
REST parameters to pass to handlers.