YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
Network.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-FileCopyrightText: 2006-2010 RobotCub Consortium
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef YARP_OS_NETWORK_H
8#define YARP_OS_NETWORK_H
9
10#include <yarp/os/Contact.h>
12#include <yarp/os/NameStore.h>
13#include <yarp/os/Portable.h>
14#include <yarp/os/Property.h>
15#include <yarp/os/QosStyle.h>
16#include <yarp/os/Time.h>
17#include <yarp/os/Value.h>
18
19
20namespace yarp::os {
21class ContactStyle;
22class QosStyle;
23} // namespace yarp::os
24
25// Make plugins in a library available for use
26#define YARP_DECLARE_PLUGINS(name) extern "C" void add_ ## name ## _plugins();
27#define YARP_REGISTER_PLUGINS(name) add_ ## name ## _plugins();
28
29namespace yarp::os {
30
38{
39public:
44 static void initMinimum();
45
51 static void initMinimum(yarp::os::yarpClockType clockType,
52 yarp::os::Clock* custom = nullptr);
53
59 static void autoInitMinimum();
60
67 static void autoInitMinimum(yarp::os::yarpClockType clockType,
68 yarp::os::Clock* custom = nullptr);
69
89 static void yarpClockInit(yarp::os::yarpClockType clockType,
90 Clock* custom = nullptr);
91
95 static void finiMinimum();
96
97 /*
98 * Return true if network is initialized.
99 * Expect problem if you use things that require a network before
100 * initializing it.
101 */
102 static bool isNetworkInitialized();
103
112 static bool connect(const std::string& src,
113 const std::string& dest,
114 const std::string& carrier = "",
115 bool quiet = true);
116
117 // Catch old uses of nullptr for carrier
118 static bool connect(const char* src,
119 const char* dest,
120 const char* carrier,
121 bool quiet = true)
122 {
123 return connect(std::string(src),
124 std::string(dest),
125 std::string((carrier == nullptr) ? "" : carrier),
126 quiet);
127 }
128
136 static bool connect(const std::string& src,
137 const std::string& dest,
138 const ContactStyle& style);
139
147 static bool disconnect(const std::string& src,
148 const std::string& dest,
149 bool quiet);
150
158 static bool disconnect(const std::string& src,
159 const std::string& dest,
160 const ContactStyle& style);
161
170 static bool disconnect(const std::string& src,
171 const std::string& dest,
172 const std::string& carrier = "",
173 bool quiet = true);
174
175 // Catch old uses of nullptr for carrier
176 static bool disconnect(const char* src,
177 const char* dest,
178 const char* carrier,
179 bool quiet = true)
180 {
181 return disconnect(std::string(src),
182 std::string(dest),
183 std::string((carrier == nullptr) ? "" : carrier),
184 quiet);
185 }
186
194 static bool isConnected(const std::string& src,
195 const std::string& dest,
196 bool quiet);
197
205 static bool isConnected(const std::string& src,
206 const std::string& dest,
207 const ContactStyle& style);
208
219 static bool isConnected(const std::string& src,
220 const std::string& dest,
221 const std::string& carrier = "",
222 bool quiet = true);
223
224 // Catch old uses of nullptr for carrier
225 static bool isConnected(const char* src,
226 const char* dest,
227 const char* carrier,
228 bool quiet = true)
229 {
230 return isConnected(std::string(src),
231 std::string(dest),
232 std::string((carrier == nullptr) ? "" : carrier),
233 quiet);
234 }
235
242 static bool exists(const std::string& port,
243 bool quiet = true,
244 bool checkVer = true);
245
252 static bool exists(const std::string& port,
253 const ContactStyle& style,
254 bool checkVer = true);
255
262 static bool sync(const std::string& port,
263 bool quiet = true);
264
271 static void assertion(bool shouldBeTrue);
272
283 static Contact queryName(const std::string& name);
284
293 static Contact registerName(const std::string& name);
294
303 static Contact registerContact(const Contact& contact);
304
312 static Contact unregisterName(const std::string& name);
313
321 static Contact unregisterContact(const Contact& contact);
322
323
334 static bool setProperty(const char* name,
335 const char* key,
336 const Value& value);
337
338
346 static Value* getProperty(const char* name,
347 const char* key);
348
349
356 static std::string getNameServerName();
357
364 static Contact getNameServerContact();
365
366
375 static bool setNameServerName(const std::string& name);
376
377
385 static bool setLocalMode(bool flag);
386
391 static bool getLocalMode();
392
409 static bool write(const Contact& contact,
410 PortWriter& cmd,
411 PortReader& reply,
412 bool admin = false,
413 bool quiet = false,
414 double timeout = -1);
415
428 static bool write(const Contact& contact,
429 PortWriter& cmd,
430 PortReader& reply,
431 const ContactStyle& style);
432
442 static bool writeToNameServer(PortWriter& cmd,
443 PortReader& reply,
444 const ContactStyle& style);
445
456 static bool write(const std::string& port_name,
457 PortWriter& cmd,
458 PortReader& reply);
459
460
469 static bool checkNetwork();
470
471
482 static bool checkNetwork(double timeout);
483
492 static bool initialized();
493
494#ifndef YARP_NO_DEPRECATED // Since YARP 3.4
501 YARP_DEPRECATED_MSG("Use LogComponents instead")
502 static void setVerbosity(int verbosity);
503#endif // YARP_NO_DEPRECATED
504
510 static void queryBypass(NameStore* store);
511
512 static NameStore* getQueryBypass();
513
522 static bool registerCarrier(const char* name,
523 const char* dll);
524
528 static void lock();
529
533 static void unlock();
534
543 static bool localNetworkAllocation();
544
556 static Contact detectNameServer(bool useDetectedServer,
557 bool& scanNeeded,
558 bool& serverUsed);
559
566 static bool setNameServerContact(Contact& nameServerContact);
567
577 static std::string getConfigFile(const char* fname);
578
589 static int getDefaultPortRange();
590
599 static bool setConnectionQos(const std::string& src,
600 const std::string& dest,
601 const QosStyle& srcStyle,
602 const QosStyle& destStyle,
603 bool quiet = true);
604
612 static bool setConnectionQos(const std::string& src,
613 const std::string& dest,
614 const QosStyle& style,
615 bool quiet = true);
616
625 static bool getConnectionQos(const std::string& src,
626 const std::string& dest,
629 bool quiet = true);
630
636 static bool isValidPortName(const std::string& portName);
637
645 static bool waitConnection(const std::string& source,
646 const std::string& destination,
647 bool quiet = false);
648
655 static bool waitPort(const std::string& target, bool quiet = false);
656
661 static int sendMessage(const std::string& port,
663 bool silent = false);
664
673 static int sendMessage(const std::string& port,
675 std::string& output,
676 bool quiet);
677
685 static int disconnectInput(const std::string& src,
686 const std::string& dest,
687 bool silent = false);
688
696 static int poll(const std::string& target, bool silent = false);
697};
698
706{
707public:
715
729 yarp::os::Clock* custom = nullptr);
730
734 virtual ~Network();
735
742 static void init();
743
749 Clock* custom = nullptr);
750
757 static void fini();
758};
759
760} // namespace yarp::os
761
762#endif // YARP_OS_NETWORK_H
A mini-server for performing network communication in the background.
Preferences for how to communicate with a contact.
Represents how to reach a part of a YARP network.
Definition Contact.h:33
Abstract interface for a database of port names.
Definition NameStore.h:19
Utilities for manipulating the YARP network, excluding initialization and shutdown.
Definition Network.h:38
static bool isConnected(const char *src, const char *dest, const char *carrier, bool quiet=true)
Definition Network.h:225
static bool connect(const char *src, const char *dest, const char *carrier, bool quiet=true)
Definition Network.h:118
static bool disconnect(const char *src, const char *dest, const char *carrier, bool quiet=true)
Definition Network.h:176
Utilities for manipulating the YARP network, including initialization and shutdown.
Definition Network.h:706
Network(yarp::os::yarpClockType clockType, yarp::os::Clock *custom=nullptr)
Initialize the YARP network using the specified clock.
static void fini()
Deinitialization.
virtual ~Network()
Destructor.
static void init()
Initialization.
Network()
Constructor.
static void init(yarp::os::yarpClockType clockType, Clock *custom=nullptr)
Initialization.
Interface implemented by all objects that can read themselves from the network, such as Bottle object...
Definition PortReader.h:24
Interface implemented by all objects that can write themselves to the network, such as Bottle objects...
Definition PortWriter.h:23
Preferences for the port's Quality of Service.
Definition QosStyle.h:23
A single value (typically within a Bottle).
Definition Value.h:43
An interface to the operating system, including Port based communication.
yarpClockType
Definition Time.h:25
#define YARP_init_API
Definition api.h:32
#define YARP_os_API
Definition api.h:18