YARP  2.3.70.2
Yet Another Robot Platform
yarp::os::RpcServer Class Reference

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

#include <yarp/os/RpcServer.h>

+ Inheritance diagram for yarp::os::RpcServer:

Public Member Functions

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

Private Member Functions

 RpcServer (const RpcServer &alt)
 
const RpcServeroperator= (const RpcServer &alt)
 

Private Attributes

Port port
 

Detailed Description

A port that is specialized as an RPC server.

That is, it expects to receive connections from multiple clients, and to reply to them via those connections.

Definition at line 26 of file RpcServer.h.

Constructor & Destructor Documentation

◆ RpcServer() [1/2]

RpcServer::RpcServer ( )

Constructor.

Definition at line 13 of file RpcServer.cpp.

◆ ~RpcServer()

RpcServer::~RpcServer ( )
virtual

Destructor.

Definition at line 19 of file RpcServer.cpp.

◆ RpcServer() [2/2]

yarp::os::RpcServer::RpcServer ( const RpcServer alt)
private

Member Function Documentation

◆ asPort() [1/2]

virtual Port& yarp::os::RpcServer::asPort ( )
inlinevirtual

get the concrete Port being used for communication

Implements yarp::os::AbstractContactable.

Definition at line 55 of file RpcServer.h.

◆ asPort() [2/2]

virtual const Port& yarp::os::RpcServer::asPort ( ) const
inlinevirtual

get the concrete Port being used for communication, constant version

Implements yarp::os::AbstractContactable.

Definition at line 59 of file RpcServer.h.

◆ operator=()

const RpcServer& yarp::os::RpcServer::operator= ( const RpcServer alt)
private

◆ read()

bool RpcServer::read ( PortReader reader,
bool  willReply = true 
)
virtual

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 34 of file RpcServer.cpp.

◆ setInputMode()

void RpcServer::setInputMode ( bool  expectInput)
virtual

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 43 of file RpcServer.cpp.

◆ setOutputMode()

void RpcServer::setOutputMode ( bool  expectOutput)
virtual

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 48 of file RpcServer.cpp.

◆ setRpcMode()

void RpcServer::setRpcMode ( bool  expectRpc)
virtual

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 53 of file RpcServer.cpp.

◆ write() [1/2]

bool RpcServer::write ( PortWriter writer,
PortWriter callback = YARP_NULLPTR 
) const
virtual

Write an object to the port.

Parameters
writerany object that knows how to write itself to a network connection - see for example Bottle
callbackobject on which to call onCompletion() after write is done (otherwise writer.onCompletion() is called)
Returns
true iff the object is successfully written

Reimplemented from yarp::os::AbstractContactable.

Definition at line 23 of file RpcServer.cpp.

◆ write() [2/2]

bool RpcServer::write ( PortWriter writer,
PortReader reader,
PortWriter callback = YARP_NULLPTR 
) const
virtual

Write an object to the port, then expect one back.

Parameters
writerany object that knows how to write itself to a network connection - see for example Bottle
readerany object that knows how to read itself from a network connection - see for example Bottle
callbackobject on which to call onCompletion() after write is done (otherwise writer.onCompletion() is called)
Returns
true iff an object is successfully written and read

Reimplemented from yarp::os::AbstractContactable.

Definition at line 28 of file RpcServer.cpp.

Member Data Documentation

◆ port

Port yarp::os::RpcServer::port
private

Definition at line 65 of file RpcServer.h.


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