YARP
Yet Another Robot Platform
yarpbroker.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_YARPBROKER
7#define YARP_MANAGER_YARPBROKER
8
9#include <string>
10#include <iostream>
11#include <yarp/os/Time.h>
12#include <yarp/os/Port.h>
14#include <yarp/os/Network.h>
15#include <yarp/os/Property.h>
16#include <string>
17#include <yarp/os/Semaphore.h>
19
20// FIXME Do not use yarp/os/impl in .h files
21#include <yarp/os/SystemInfo.h>
23
24#include <yarp/manager/broker.h>
26
27namespace yarp::manager {
28
29
34
35public:
36 YarpBroker();
37 ~YarpBroker() override;
38 bool init() override;
39 bool init(const char* szcmd, const char* szparam,
40 const char* szhost, const char* szstdio,
41 const char* szworkdir, const char* szenv ) override;
42 void fini() override;
43 bool start() override;
44 bool stop() override;
45 bool kill() override;
46 bool connect(const char* from, const char* to,
47 const char* carrier, bool persist=false) override;
48 bool disconnect(const char* from, const char* to, const char* carrier) override;
49 bool rmconnect(const char* from, const char* to);
50 int running() override;
51 bool exists(const char* port) override;
52 const char* requestRpc(const char* szport, const char* request, double timeout) override;
53 bool connected(const char* from, const char* to, const char* carrier) override;
54 const char* error() override;
55 bool initialized() override { return bInitialized;}
56 bool attachStdout() override;
57 void detachStdout() override;
58
59 bool getSystemInfo(const char* server,
61 bool getAllProcesses(const char* server,
62 ProcessContainer &processes);
63 bool getAllPorts(std::vector<std::string> &stingList);
64
65 bool setQos(const char* from, const char* to,
66 const char* qosFrom, const char* qosTo);
67
68public: // for rate thread
69 void run() override;
70 bool threadInit() override;
71 void threadRelease() override;
72
73protected:
74
75private:
76 std::string strCmd;
77 std::string strParam;
78 std::string strHost;
79 std::string strStdio;
80 std::string strWorkdir;
81 std::string strTag;
82 std::string strEnv;
83 unsigned int ID;
84 yarp::os::Property command;
85 std::string strError;
86 bool bOnlyConnector;
87 bool bInitialized;
88 yarp::os::Semaphore semParam;
89 std::string strStdioUUID;
90 std::string __trace_message;
91
93 //yarp::os::Port port;
94
95 bool timeout(double base, double timeout);
96 yarp::os::Property& runProperty();
97 int requestServer(yarp::os::Property& config);
98 int SendMsg(yarp::os::Bottle& msg, std::string target,
99 yarp::os::Bottle& resp, float fTimeout=5.0);
100 bool getQosFromString(const char* qos, yarp::os::QosStyle& style);
101
102};
103
104} // namespace yarp::manager
105
106
107#endif // __YARP_MANAGER_YARPBROKER__
Class Broker.
Definition: broker.h:30
void threadRelease() override
Release method.
Definition: yarpbroker.cpp:861
const char * error() override
Definition: yarpbroker.cpp:807
bool connected(const char *from, const char *to, const char *carrier) override
Definition: yarpbroker.cpp:579
bool getAllPorts(std::vector< std::string > &stingList)
Definition: yarpbroker.cpp:651
const char * requestRpc(const char *szport, const char *request, double timeout) override
Definition: yarpbroker.cpp:532
bool init() override
Definition: yarpbroker.cpp:61
bool getSystemInfo(const char *server, yarp::os::SystemInfoSerializer &info)
Definition: yarpbroker.cpp:591
bool getAllProcesses(const char *server, ProcessContainer &processes)
Definition: yarpbroker.cpp:684
void detachStdout() override
Definition: yarpbroker.cpp:382
bool connect(const char *from, const char *to, const char *carrier, bool persist=false) override
connection broker
Definition: yarpbroker.cpp:411
void fini() override
Definition: yarpbroker.cpp:53
bool initialized() override
Definition: yarpbroker.h:55
bool rmconnect(const char *from, const char *to)
Definition: yarpbroker.cpp:732
bool threadInit() override
Initialization method.
Definition: yarpbroker.cpp:822
bool setQos(const char *from, const char *to, const char *qosFrom, const char *qosTo)
Definition: yarpbroker.cpp:746
bool disconnect(const char *from, const char *to, const char *carrier) override
Definition: yarpbroker.cpp:474
void run() override
Loop function.
Definition: yarpbroker.cpp:849
bool attachStdout() override
Definition: yarpbroker.cpp:377
bool exists(const char *port) override
Definition: yarpbroker.cpp:524
A simple collection of objects that can be described and transmitted in a portable way.
Definition: Bottle.h:64
An abstraction for a periodic thread.
A class for storing options and configuration information.
Definition: Property.h:33
Preferences for the port's Quality of Service.
Definition: QosStyle.h:23
A class for thread synchronization and mutual exclusion.
Definition: Semaphore.h:25
A helper class to pass the SystemInfo object around the YARP network.
std::vector< Process > ProcessContainer
Definition: primresource.h:168