Fawkes API Fawkes Development Version
blackboard_computable.h
1/***************************************************************************
2 * blackboard_computable.h - Computable providing blackboard access
3 *
4 *
5 * Created: 1:22:31 PM 2016
6 * Copyright 2016 Frederik Zwilling
7 ****************************************************************************/
8
9/* This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU Library General Public License for more details.
18 *
19 * Read the full text in the LICENSE.GPL file in the doc directory.
20 */
21
22#ifndef FAWKES_SRC_PLUGINS_ROBOT_MEMORY_COMPUTABLES_BLACKBOARD_COMPUTABLE_H_
23#define FAWKES_SRC_PLUGINS_ROBOT_MEMORY_COMPUTABLES_BLACKBOARD_COMPUTABLE_H_
24
25#include "../robot_memory.h"
26
27#include <aspect/logging.h>
28#include <blackboard/blackboard.h>
29#include <config/config.h>
30
31#include <bsoncxx/document/value.hpp>
32
33/** @class BlackboardComputable blackboard_computable.h
34 *
35 * @author Frederik Zwilling
36 */
38{
39public:
40 BlackboardComputable(RobotMemory * robot_memory,
41 fawkes::BlackBoard * blackboard,
42 fawkes::Logger * logger,
43 fawkes::Configuration *config);
44 virtual ~BlackboardComputable();
45
46private:
47 std::list<bsoncxx::document::value> compute_interfaces(const bsoncxx::document::view &query,
48 const std::string & collection);
49
50 RobotMemory * robot_memory_;
51 fawkes::BlackBoard *blackboard_;
52 fawkes::Logger * logger_;
53 Computable * computable;
54};
55
56#endif /* FAWKES_SRC_PLUGINS_ROBOT_MEMORY_COMPUTABLES_BLACKBOARD_COMPUTABLE_H_ */
Computable providing access to blackboard interfaces.
BlackboardComputable(RobotMemory *robot_memory, fawkes::BlackBoard *blackboard, fawkes::Logger *logger, fawkes::Configuration *config)
Constructor with references to objects of the plugin.
Class holding information for a single computable this class also enhances computed documents by addi...
Definition: computable.h:32
Access to the robot memory based on mongodb.
Definition: robot_memory.h:47
The BlackBoard abstract class.
Definition: blackboard.h:46
Interface for configuration handling.
Definition: config.h:68
Interface for logging.
Definition: logger.h:42