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 {
39 public:
40  BlackboardComputable(RobotMemory * robot_memory,
41  fawkes::BlackBoard * blackboard,
42  fawkes::Logger * logger,
43  fawkes::Configuration *config);
44  virtual ~BlackboardComputable();
45 
46 private:
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:65
Interface for logging.
Definition: logger.h:42