24 #include <blackboard/blackboard.h>
25 #include <blackboard/net/interface_observer.h>
26 #include <blackboard/net/messages.h>
27 #include <logging/liblogger.h>
28 #include <netcomm/fawkes/hub.h>
29 #include <netcomm/fawkes/component_ids.h>
50 BlackBoardNetHandlerInterfaceObserver::BlackBoardNetHandlerInterfaceObserver(
BlackBoard *blackboard,
53 __blackboard = blackboard;
56 bbio_add_observed_create(
"*",
"*");
57 bbio_add_observed_destroy(
"*",
"*");
59 __blackboard->register_observer(
this);
64 BlackBoardNetHandlerInterfaceObserver::~BlackBoardNetHandlerInterfaceObserver()
66 __blackboard->unregister_observer(
this);
76 BlackBoardNetHandlerInterfaceObserver::send_event(
unsigned int msg_id,
77 const char *type,
const char *
id)
80 strncpy(esm->
type, type, __INTERFACE_TYPE_SIZE);
81 strncpy(esm->
id,
id, __INTERFACE_ID_SIZE);
84 __fnh->broadcast(FAWKES_CID_BLACKBOARD, msg_id, esm,
sizeof(
bb_ievent_msg_t));
85 }
catch (Exception &e) {
86 LibLogger::log_warn(
"BlackBoardNetHandlerInterfaceObserver",
87 "Failed to send BlackBoard event (%s), exception follows",
88 (msg_id == MSG_BB_INTERFACE_CREATED) ?
"create" :
"destroy");
89 LibLogger::log_warn(
"BlackBoardNetHandlerInterfaceObserver", e);
94 BlackBoardNetHandlerInterfaceObserver::bb_interface_created(
const char *type,
95 const char *
id)
throw()
97 send_event(MSG_BB_INTERFACE_CREATED, type,
id);
102 BlackBoardNetHandlerInterfaceObserver::bb_interface_destroyed(
const char *type,
103 const char *
id)
throw()
105 send_event(MSG_BB_INTERFACE_DESTROYED, type,
id);