osd_hostctrl class¶
This class contains the host controller. The host controller is the central instance in a host subnet and has the following tasks:
- It serves as central connection point for all host modules (i.e. forming a star topology). As such, it handles the setup and teardown of connections, as well as assigning of DI addreses.
- It routes messages between host modules.
- Gateways can connect to the host controller to extend the debug network beyond the host.
Usage¶
#include <osd/osd.h>
#include <osd/hostctrl.h>
Public Interface¶
Functions
-
osd_result
osd_hostctrl_new
(struct osd_hostctrl_ctx ** ctx, struct osd_log_ctx * log_ctx, const char * router_address)¶ Create new host controller
The host controller will listen to requests at
router_addres
- Return
- OSD_OK if initialization was successful, any other return code indicates an error
- Parameters
ctx
: context objectlog_ctx
: logging contextrouter_address
: ZeroMQ endpoint/URL the host controller will listen on
-
osd_result
osd_hostctrl_start
(struct osd_hostctrl_ctx * ctx)¶ Start host controller
-
osd_result
osd_hostctrl_stop
(struct osd_hostctrl_ctx * ctx)¶ Stop host controller
-
void
osd_hostctrl_free
(struct osd_hostctrl_ctx ** ctx_p)¶ Free the host controller context object (destructor)
By calling this function all resources associated with the context object are freed and the ctx_p itself is NULLed.
- Parameters
ctx_p
: the host controller context object
-
bool
osd_hostctrl_is_running
(struct osd_hostctrl_ctx * ctx)¶ Is the host controller running?
- Return
- true if the host controller is running, false otherwise
- Parameters
ctx
: the context object