YARP
Yet Another Robot Platform
OutputProtocol.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_OUTPUTPROTOCOL_H
8#define YARP_OS_OUTPUTPROTOCOL_H
9
10#include <yarp/os/Connection.h>
12#include <yarp/os/InputStream.h>
13#include <yarp/os/Property.h>
14#include <yarp/os/Route.h>
15#include <yarp/os/SizedWriter.h>
16
17namespace yarp::os {
18class InputProtocol;
19class Contactable;
20} // namespace yarp::os
21
22namespace yarp::os {
27{
28public:
32 virtual ~OutputProtocol() = default;
33
39 virtual bool open(const Route& route) = 0;
40
46 virtual void rename(const Route& route) = 0;
47
51 virtual void close() = 0;
52
53 virtual const Route& getRoute() const = 0;
54
58 virtual bool isOk() const = 0;
59
63 virtual Connection& getConnection() = 0;
64
71 virtual Connection& getReceiver() = 0;
72
79 virtual Connection& getSender() = 0;
80
89 virtual bool write(SizedWriter& writer) = 0;
90
91 virtual void interrupt() = 0;
92
93
99 virtual InputProtocol& getInput() = 0;
100
105
110
114 virtual bool setTimeout(double timeout) = 0;
115
119 virtual void attachPort(Contactable* port) = 0;
120
125 virtual void beginWrite() = 0;
126};
127
128} // namespace yarp::os
129
130#endif // YARP_OS_OUTPUTPROTOCOL_H
A controller for an individual connection.
Definition: Connection.h:26
An abstract port.
Definition: Contactable.h:28
The input side of an active connection between two ports.
Definition: InputProtocol.h:32
Simple specification of the minimum functions needed from input streams.
Definition: InputStream.h:25
The output side of an active connection between two ports.
virtual OutputStream & getOutputStream()=0
Access the output stream associated with the connection.
virtual Connection & getConnection()=0
Get the connection whose protocol operations we are managing.
virtual bool open(const Route &route)=0
Start negotiating a carrier, using the given route (this should generally match the name of the sendi...
virtual void attachPort(Contactable *port)=0
Set the port to be associated with the connection.
virtual ~OutputProtocol()=default
Destructor.
virtual const Route & getRoute() const =0
virtual InputProtocol & getInput()=0
Get an interface for doing read operations on the connection.
virtual void close()=0
Negotiate an end to operations.
virtual void interrupt()=0
virtual InputStream & getInputStream()=0
Access the input stream associated with the connection.
virtual Connection & getSender()=0
It is possible to chain a basic connection with a modifier.
virtual void rename(const Route &route)=0
Relabel the route after the fact (e.g.
virtual bool setTimeout(double timeout)=0
Set the timeout to be used for network operations.
virtual void beginWrite()=0
Notify connection that we intend to write to it.
virtual bool isOk() const =0
Check if the connection is valid and can be used.
virtual bool write(SizedWriter &writer)=0
Write a message on the connection.
virtual Connection & getReceiver()=0
It is possible to chain a basic connection with a modifier.
Simple specification of the minimum functions needed from output streams.
Definition: OutputStream.h:21
Information about a connection between two ports.
Definition: Route.h:28
Minimal requirements for an efficient Writer.
Definition: SizedWriter.h:32
An interface to the operating system, including Port based communication.
#define YARP_os_API
Definition: api.h:18