YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
yarp::os::RpcClient Class Reference

A port that is specialized as an RPC client. More...

#include <yarp/os/RpcClient.h>

+ Inheritance diagram for yarp::os::RpcClient:

Classes

class  Private
 

Public Member Functions

 RpcClient ()
 Constructor.
 
 ~RpcClient () override
 Destructor.
 
 RpcClient (const RpcClient &alt)=delete
 
const RpcClientoperator= (const RpcClient &alt)=delete
 
bool read (PortReader &reader, bool willReply=false) override
 Read an object from the port.
 
bool reply (PortWriter &writer) override
 Send an object as a reply to an object read from the port.
 
bool replyAndDrop (PortWriter &writer) override
 Same as reply(), but closes connection after reply.
 
void setInputMode (bool expectInput) override
 Configure the port to allow or forbid inputs.
 
void setOutputMode (bool expectOutput) override
 Configure the port to allow or forbid outputs.
 
void setRpcMode (bool expectRpc) override
 Configure the port to be RPC only.
 
PortasPort () override
 Get the concrete Port being used for communication.
 
const PortasPort () const override
 Get the concrete Port being used for communication, const version.
 
- Public Member Functions inherited from yarp::os::AbstractContactable
bool open (const std::string &name) override
 Start port operation, with a specific name, with automatically-chosen network parameters.
 
bool open (const Contact &contact, bool registerName=true) override
 Start port operation with user-chosen network parameters.
 
bool addOutput (const std::string &name) override
 Add an output connection to the specified port.
 
bool addOutput (const std::string &name, const std::string &carrier) override
 Add an output connection to the specified port, using a specified carrier.
 
bool addOutput (const Contact &contact) override
 Add an output connection to the specified port, using specified network parameters.
 
void close () override
 Stop port activity.
 
void interrupt () override
 Interrupt any current reads or writes attached to the port.
 
void resume () override
 Put the port back in an operative state after interrupt() has been called.
 
Contact where () const override
 Returns information about how this port can be reached.
 
std::string getName () const override
 Get name of port.
 
bool setEnvelope (PortWriter &envelope) override
 Set an envelope (e.g., a timestamp) to the next message which will be sent.
 
bool getEnvelope (PortReader &envelope) override
 Get the envelope information (e.g., a timestamp) from the last message received on the port.
 
int getInputCount () override
 Determine how many connections are arriving into this port.
 
int getOutputCount () override
 Determine how many output connections this port has.
 
void getReport (PortReport &reporter) override
 Get information on the state of the port - connections etc.
 
void setReporter (PortReport &reporter) override
 Set a callback to be called upon any future connections and disconnections to/from the port.
 
void resetReporter () override
 Remove the callback which is called upon any future connections and disconnections to/from the port.
 
bool isWriting () override
 Report whether the port is currently writing data.
 
void setReader (PortReader &reader) override
 Set an external reader for port data.
 
void setAdminReader (PortReader &reader) override
 Set an external reader for unrecognized administrative port messages.
 
Type getType () override
 Get the type of data the port has committed to send/receive.
 
void promiseType (const Type &typ) override
 Commit the port to a particular type of data.
 
PropertyacquireProperties (bool readOnly) override
 Access unstructured port properties.
 
void releaseProperties (Property *prop) override
 End access unstructured port properties.
 
bool write (const PortWriter &writer, const PortWriter *callback=nullptr) const override
 Write an object to the port.
 
bool write (const PortWriter &writer, PortReader &reader, const PortWriter *callback=nullptr) const override
 Write an object to the port, then expect one back.
 
void includeNodeInName (bool flag) override
 Choose whether to prepend a node name (if one is available) to the port's name.
 
bool setCallbackLock (std::mutex *mutex=nullptr) override
 Add a lock to use when invoking callbacks.
 
bool removeCallbackLock () override
 Remove a lock on callbacks added with setCallbackLock()
 
bool lockCallback () override
 Lock callbacks until unlockCallback() is called.
 
bool tryLockCallback () override
 Try to lock callbacks until unlockCallback() is called.
 
void unlockCallback () override
 Unlock callbacks.
 
- Public Member Functions inherited from yarp::os::Contactable
virtual ~Contactable ()
 Destructor.
 
void setReadOnly ()
 Shorthand for setInputMode(true), setOutputMode(false), setRpcMode(false)
 
void setWriteOnly ()
 Shorthand for setInputMode(false), setOutputMode(true), setRpcMode(false)
 
void setRpcServer ()
 Shorthand for setInputMode(true), setOutputMode(false), setRpcMode(true)
 
void setRpcClient ()
 Shorthand for setInputMode(false), setOutputMode(true), setRpcMode(true)
 

Detailed Description

A port that is specialized as an RPC client.

That is, it expects to connect to a single server, and receive replies on the same connection.

Definition at line 21 of file RpcClient.h.

Constructor & Destructor Documentation

◆ RpcClient() [1/2]

RpcClient::RpcClient ( )

Constructor.

Definition at line 26 of file RpcClient.cpp.

◆ ~RpcClient()

RpcClient::~RpcClient ( )
override

Destructor.

Definition at line 34 of file RpcClient.cpp.

◆ RpcClient() [2/2]

yarp::os::RpcClient::RpcClient ( const RpcClient alt)
delete

Member Function Documentation

◆ asPort() [1/2]

const Port & RpcClient::asPort ( ) const
overridevirtual

Get the concrete Port being used for communication, const version.

Implements yarp::os::AbstractContactable.

Definition at line 82 of file RpcClient.cpp.

◆ asPort() [2/2]

Port & RpcClient::asPort ( )
overridevirtual

Get the concrete Port being used for communication.

Implements yarp::os::AbstractContactable.

Definition at line 77 of file RpcClient.cpp.

◆ operator=()

const RpcClient & yarp::os::RpcClient::operator= ( const RpcClient alt)
delete

◆ read()

bool RpcClient::read ( PortReader reader,
bool  willReply = false 
)
overridevirtual

Read an object from the port.

Parameters
readerany object that knows how to read itself from a network connection - see for example Bottle
willReplyyou must set this to true if you intend to call reply()
Returns
true iff the object is successfully read

Reimplemented from yarp::os::AbstractContactable.

Definition at line 40 of file RpcClient.cpp.

◆ reply()

bool RpcClient::reply ( PortWriter writer)
overridevirtual

Send an object as a reply to an object read from the port.

Only call this method if you set the willReply flag to true when you called Port::read.

Parameters
writerany object that knows how to write itself to a network connection - see for example Bottle
Returns
true iff the object is successfully written

Reimplemented from yarp::os::AbstractContactable.

Definition at line 50 of file RpcClient.cpp.

◆ replyAndDrop()

bool RpcClient::replyAndDrop ( PortWriter writer)
overridevirtual

Same as reply(), but closes connection after reply.

This is useful for interoperation with XML/RPC clients that do not expect to reuse a connection.

Parameters
writerany object that knows how to write itself to a network connection - see for example Bottle
Returns
true iff the object is successfully written

Reimplemented from yarp::os::AbstractContactable.

Definition at line 56 of file RpcClient.cpp.

◆ setInputMode()

void RpcClient::setInputMode ( bool  expectInput)
overridevirtual

Configure the port to allow or forbid inputs.

By default, ports allow anything.

Parameters
expectInputset to true if this port will be used for input

Reimplemented from yarp::os::AbstractContactable.

Definition at line 62 of file RpcClient.cpp.

◆ setOutputMode()

void RpcClient::setOutputMode ( bool  expectOutput)
overridevirtual

Configure the port to allow or forbid outputs.

By default, ports allow anything.

Parameters
expectOutputset to true if this port will be used for output

Reimplemented from yarp::os::AbstractContactable.

Definition at line 67 of file RpcClient.cpp.

◆ setRpcMode()

void RpcClient::setRpcMode ( bool  expectRpc)
overridevirtual

Configure the port to be RPC only.

By default all ports can be used for RPC or streaming communication.

Parameters
expectRpcset to true if this port will be used for RPC only

Reimplemented from yarp::os::AbstractContactable.

Definition at line 72 of file RpcClient.cpp.


The documentation for this class was generated from the following files: