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 
12 #include <yarp/manager/ymm-types.h>
13 
14 
15 namespace yarp {
16 namespace manager {
17 
18 
20 {
21 public:
22  virtual ~BrokerEventSink() {}
23  virtual void onBrokerStdout(const char* msg) {}
24  virtual void onBrokerModuleFailed() {}
25 };
26 
27 
31 class Broker {
32 
33 public:
34  Broker();
35  virtual ~Broker();
36  void setEventSink(BrokerEventSink* pEventSink);
37  virtual bool init() = 0; //only connector
38  virtual bool init(const char* szcmd, const char* szparam,
39  const char* szhost, const char* szstdio,
40  const char* szworkdir, const char* szenv ) = 0;
41  virtual void fini() = 0;
42  virtual bool start() = 0;
43  virtual bool stop() = 0;
44  virtual bool kill() = 0;
45  virtual bool connect(const char* from, const char* to,
46  const char* carrier, bool persist=false) = 0;
47  virtual bool disconnect(const char* from, const char* to,
48  const char* carrier) = 0;
49  virtual int running() = 0; // 0 if is not running and 1 if is running; otherwise -1.
50  virtual bool exists(const char* port) = 0;
51  virtual const char* requestRpc(const char* szport, const char* request, double timeout=0.0) = 0;
52  virtual bool connected(const char* from, const char* to,
53  const char* carrier) = 0;
54  virtual const char* error() = 0;
55  virtual bool initialized() = 0;
56  virtual bool attachStdout() = 0;
57  virtual void detachStdout() = 0;
58 
59  unsigned int generateID();
60 
61  void enableWatchDog() { bWithWatchDog = true; }
62  void disableWatchDog() { bWithWatchDog = false; }
63  bool hasWatchDog() { return bWithWatchDog; }
64  void setDisplay(const char* szDisplay) { if(szDisplay) { strDisplay = szDisplay; } }
65 
66  const char* getDisplay() const {return strDisplay.c_str(); }
67 protected:
68  unsigned int UNIQUEID;
71  std::string strDisplay;
72 
73 private:
74 
75 };
76 
77 } // namespace yarp
78 } // namespace manager
79 
80 
81 #endif // __YARP_MANAGER_BROKER__
virtual void onBrokerModuleFailed()
Definition: broker.h:24
virtual void onBrokerStdout(const char *msg)
Definition: broker.h:23
Class Broker.
Definition: broker.h:31
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:68
void setDisplay(const char *szDisplay)
Definition: broker.h:64
virtual bool exists(const char *port)=0
virtual int running()=0
std::string strDisplay
Definition: broker.h:71
BrokerEventSink * eventSink
Definition: broker.h:69
virtual bool init()=0
bool hasWatchDog()
Definition: broker.h:63
virtual const char * error()=0
unsigned int generateID()
Definition: broker.cpp:26
virtual bool initialized()=0
virtual bool kill()=0
void enableWatchDog()
Definition: broker.h:61
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 void detachStdout()=0
void disableWatchDog()
Definition: broker.h:62
virtual bool attachStdout()=0
const char * getDisplay() const
Definition: broker.h:66
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
virtual const char * requestRpc(const char *szport, const char *request, double timeout=0.0)=0
The main, catch-all namespace for YARP.
Definition: dirs.h:16