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