Fawkes API  Fawkes Development Version
local.h
1 
2 /***************************************************************************
3  * local.h - Local BlackBoard
4  *
5  * Created: Sat Sep 16 17:09:15 2006 (on train to Cologne)
6  * Copyright 2006-2015 Tim Niemueller [www.niemueller.de]
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. A runtime exception applies to
13  * this software (see LICENSE.GPL_WRE file mentioned below for details).
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Library General Public License for more details.
19  *
20  * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
21  */
22 
23 #ifndef _BLACKBOARD_LOCAL_H_
24 #define _BLACKBOARD_LOCAL_H_
25 
26 #include <blackboard/blackboard.h>
27 #include <core/exceptions/software.h>
28 
29 #include <list>
30 
31 namespace fawkes {
32 
33 class BlackBoardInterfaceManager;
34 class BlackBoardMemoryManager;
35 class BlackBoardMessageManager;
36 class BlackBoardNetworkHandler;
37 class BlackBoardNotifier;
38 class Interface;
39 class InterfaceInfoList;
40 class BlackBoardInterfaceListener;
41 class BlackBoardInterfaceObserver;
42 class FawkesNetworkHub;
43 
44 class LocalBlackBoard : public BlackBoard
45 {
46 public:
47  LocalBlackBoard(size_t memsize);
48  LocalBlackBoard(size_t memsize, const char *magic_token, bool master = true);
49  virtual ~LocalBlackBoard();
50 
51  virtual Interface *
52  open_for_reading(const char *interface_type, const char *identifier, const char *owner = NULL);
53  virtual Interface *
54  open_for_writing(const char *interface_type, const char *identifier, const char *owner = NULL);
55  virtual void close(Interface *interface);
56 
57  virtual InterfaceInfoList *list_all();
58  virtual InterfaceInfoList *list(const char *type_pattern, const char *id_pattern);
59  virtual bool is_alive() const throw();
60  virtual bool try_aliveness_restore() throw();
61 
62  virtual std::list<Interface *> open_multiple_for_reading(const char *type_pattern,
63  const char *id_pattern = "*",
64  const char *owner = NULL);
65 
66  virtual void start_nethandler(FawkesNetworkHub *hub);
67 
68  static void cleanup(const char *magic_token, bool use_lister = false);
69 
70  /* for debugging only */
72 
73 private: /* members */
75  BlackBoardMemoryManager * memmgr_;
76  BlackBoardMessageManager * msgmgr_;
77  BlackBoardNetworkHandler * nethandler_;
78 };
79 
80 } // end namespace fawkes
81 
82 #endif
fawkes::LocalBlackBoard::list_all
virtual InterfaceInfoList * list_all()
Definition: local.cpp:137
fawkes::LocalBlackBoard::try_aliveness_restore
virtual bool try_aliveness_restore()
Definition: local.cpp:155
fawkes::BlackBoardMemoryManager
Definition: memory_manager.h:62
fawkes::LocalBlackBoard::start_nethandler
virtual void start_nethandler(FawkesNetworkHub *hub)
Start network handler.
Definition: local.cpp:197
fawkes::BlackBoardInterfaceManager
Definition: interface_manager.h:49
fawkes::LocalBlackBoard::open_for_reading
virtual Interface * open_for_reading(const char *interface_type, const char *identifier, const char *owner=NULL)
Definition: local.cpp:99
fawkes::LocalBlackBoard::cleanup
static void cleanup(const char *magic_token, bool use_lister=false)
Cleanup orphaned BlackBoard segments.
Definition: local.cpp:167
fawkes::BlackBoardNetworkHandler
Definition: handler.h:46
fawkes
fawkes::LocalBlackBoard::is_alive
virtual bool is_alive() const
Definition: local.cpp:149
fawkes::LocalBlackBoard::list
virtual InterfaceInfoList * list(const char *type_pattern, const char *id_pattern)
Definition: local.cpp:143
fawkes::LocalBlackBoard::open_multiple_for_reading
virtual std::list< Interface * > open_multiple_for_reading(const char *type_pattern, const char *id_pattern="*", const char *owner=NULL)
Definition: local.cpp:119
fawkes::InterfaceInfoList
Definition: interface_info.h:79
fawkes::Interface
Definition: interface.h:77
fawkes::LocalBlackBoard::close
virtual void close(Interface *interface)
Definition: local.cpp:131
fawkes::BlackBoardMessageManager
Definition: message_manager.h:40
fawkes::LocalBlackBoard::~LocalBlackBoard
virtual ~LocalBlackBoard()
Destructor.
Definition: local.cpp:86
fawkes::LocalBlackBoard::LocalBlackBoard
LocalBlackBoard(size_t memsize)
Heap Memory Constructor.
Definition: local.cpp:73
fawkes::FawkesNetworkHub
Definition: hub.h:37
fawkes::LocalBlackBoard::memory_manager
const BlackBoardMemoryManager * memory_manager() const
Get memory manager.
Definition: local.cpp:187
fawkes::LocalBlackBoard::open_for_writing
virtual Interface * open_for_writing(const char *interface_type, const char *identifier, const char *owner=NULL)
Definition: local.cpp:109