YARP
Yet Another Robot Platform
broker.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5
6#ifndef YARP_MANAGER_BROKER
7#define YARP_MANAGER_BROKER
8
9#include <string>
10#include <vector>
11
13
14
15namespace yarp::manager {
16
17
19{
20public:
21 virtual ~BrokerEventSink() {}
22 virtual void onBrokerStdout(const char* msg) {}
23 virtual void onBrokerModuleFailed() {}
24};
25
26
30class Broker {
31
32public:
33 Broker();
34 virtual ~Broker();
35 void setEventSink(BrokerEventSink* pEventSink);
36 virtual bool init() = 0; //only connector
37 virtual bool init(const char* szcmd, const char* szparam,
38 const char* szhost, const char* szstdio,
39 const char* szworkdir, const char* szenv ) = 0;
40 virtual void fini() = 0;
41 virtual bool start() = 0;
42 virtual bool stop() = 0;
43 virtual bool kill() = 0;
44 virtual bool connect(const char* from, const char* to,
45 const char* carrier, bool persist=false) = 0;
46 virtual bool disconnect(const char* from, const char* to,
47 const char* carrier) = 0;
48 virtual int running() = 0; // 0 if is not running and 1 if is running; otherwise -1.
49 virtual bool exists(const char* port) = 0;
50 virtual const char* requestRpc(const char* szport, const char* request, double timeout=0.0) = 0;
51 virtual bool connected(const char* from, const char* to,
52 const char* carrier) = 0;
53 virtual const char* error() = 0;
54 virtual bool initialized() = 0;
55 virtual bool attachStdout() = 0;
56 virtual void detachStdout() = 0;
57
58 unsigned int generateID();
59
60 void enableWatchDog() { bWithWatchDog = true; }
61 void disableWatchDog() { bWithWatchDog = false; }
62 bool hasWatchDog() { return bWithWatchDog; }
63 void setDisplay(const char* szDisplay) { if(szDisplay) { strDisplay = szDisplay; } }
64
65 const char* getDisplay() const {return strDisplay.c_str(); }
66protected:
67 unsigned int UNIQUEID;
70 std::string strDisplay;
71
72private:
73
74};
75
76} // namespace yarp::manager
77
78
79#endif // __YARP_MANAGER_BROKER__
virtual void onBrokerModuleFailed()
Definition: broker.h:23
virtual void onBrokerStdout(const char *msg)
Definition: broker.h:22
Class Broker.
Definition: broker.h:30
virtual bool init(const char *szcmd, const char *szparam, const char *szhost, const char *szstdio, const char *szworkdir, const char *szenv)=0
unsigned int UNIQUEID
Definition: broker.h:67
void setDisplay(const char *szDisplay)
Definition: broker.h:63
virtual bool exists(const char *port)=0
virtual const char * requestRpc(const char *szport, const char *request, double timeout=0.0)=0
virtual int running()=0
std::string strDisplay
Definition: broker.h:70
const char * getDisplay() const
Definition: broker.h:65
BrokerEventSink * eventSink
Definition: broker.h:68
virtual bool init()=0
bool hasWatchDog()
Definition: broker.h:62
unsigned int generateID()
Definition: broker.cpp:26
virtual bool initialized()=0
virtual bool kill()=0
void enableWatchDog()
Definition: broker.h:60
virtual void fini()=0
virtual bool connect(const char *from, const char *to, const char *carrier, bool persist=false)=0
virtual bool stop()=0
virtual bool start()=0
virtual const char * error()=0
virtual void detachStdout()=0
void disableWatchDog()
Definition: broker.h:61
virtual bool attachStdout()=0
void setEventSink(BrokerEventSink *pEventSink)
Definition: broker.cpp:21
virtual bool connected(const char *from, const char *to, const char *carrier)=0
virtual bool disconnect(const char *from, const char *to, const char *carrier)=0