23#ifndef _PLUGINS_CLIPS_FEATURE_BLACKBOARD_H_
24#define _PLUGINS_CLIPS_FEATURE_BLACKBOARD_H_
26#include <clipsmm/value.h>
27#include <plugins/clips/aspect/clips_feature.h>
42class InterfaceFieldIterator;
61 bool cfg_retract_early_;
63 typedef std::map<std::string, std::list<fawkes::Interface *>> InterfaceMap;
69 std::map<std::string, Interfaces> interfaces_;
70 std::map<std::string, fawkes::LockPtr<CLIPS::Environment>> envs_;
72 std::map<fawkes::Message *, fawkes::Interface *> interface_of_msg_;
75 void clips_blackboard_open_interface(
const std::string &env_name,
76 const std::string &type,
77 const std::string &
id,
79 void clips_blackboard_open_interface_reading(
const std::string &env_name,
80 const std::string &type,
81 const std::string &
id);
82 void clips_blackboard_open_interface_writing(
const std::string &env_name,
83 const std::string &type,
84 const std::string &
id);
85 void clips_blackboard_close_interface(
const std::string &env_name,
86 const std::string &type,
87 const std::string &
id);
88 void clips_blackboard_read(
const std::string &env_name);
89 void clips_blackboard_write(
const std::string &env_name,
const std::string &uid);
91 void clips_blackboard_enable_time_read(
const std::string &env_name);
92 void clips_blackboard_get_info(
const std::string &env_name);
93 bool clips_assert_interface_type(
const std::string &env_name,
94 const std::string &log_name,
96 const std::string &type);
97 void clips_blackboard_preload(
const std::string &env_name,
const std::string &type);
98 void clips_blackboard_set(
const std::string &env_name,
99 const std::string &uid,
100 const std::string &field,
102 void clips_blackboard_set_multifield(
const std::string &env_name,
103 const std::string &uid,
104 const std::string &field,
105 CLIPS::Values values);
106 CLIPS::Value clips_blackboard_create_msg(
const std::string &env_name,
107 const std::string &uid,
108 const std::string &msg_type);
109 CLIPS::Values clips_blackboard_list_msg_fields(
const std::string &env_name,
void *msgptr);
111 void clips_blackboard_set_msg_field(
const std::string &env_name,
113 const std::string &field_name,
115 void clips_blackboard_set_msg_multifield(
const std::string &env_name,
117 const std::string &field_name,
118 CLIPS::Values values);
119 CLIPS::Value clips_blackboard_send_msg(
const std::string &env_name,
void *msgptr);
124 const std::string & env_name,
125 const std::string & field,
130 const std::string & env_name,
131 const std::string & field,
132 CLIPS::Values values);
CLIPS blackboard feature.
virtual void clips_context_destroyed(const std::string &env_name)
Notification that a CLIPS environment has been destroyed.
virtual void clips_context_init(const std::string &env_name, fawkes::LockPtr< CLIPS::Environment > &clips)
Initialize a CLIPS context to use the provided feature.
virtual ~BlackboardCLIPSFeature()
Destructor.
BlackboardCLIPSFeature(fawkes::Logger *logger, fawkes::BlackBoard *blackboard, bool retract_early)
Constructor.
Environment representation for JSON transfer.
The BlackBoard abstract class.
CLIPS feature maintainer.
Interface field iterator.
Base class for all Fawkes BlackBoard interfaces.
Fawkes library namespace.