A port that is specialized as an RPC server. More...
#include <yarp/os/RpcServer.h>
Public Member Functions | |
RpcServer () | |
Constructor. More... | |
~RpcServer () override | |
Destructor. More... | |
virtual bool | write (const PortWriter &writer, const PortWriter *callback=nullptr) const override |
Write cannot be called by RPCServer. More... | |
virtual bool | write (const PortWriter &writer, PortReader &reader, const PortWriter *callback=nullptr) const override |
Write cannot be called by RPCServer. More... | |
bool | read (PortReader &reader, bool willReply=true) override |
Read an object from the port. More... | |
void | setInputMode (bool expectInput) override |
Configure the port to allow or forbid inputs. More... | |
void | setOutputMode (bool expectOutput) override |
Configure the port to allow or forbid outputs. More... | |
void | setRpcMode (bool expectRpc) override |
Configure the port to be RPC only. More... | |
Port & | asPort () override |
Get the concrete Port being used for communication. More... | |
const Port & | asPort () const override |
Get the concrete Port being used for communication, const version. More... | |
![]() | |
virtual Port & | asPort ()=0 |
Get the concrete Port being used for communication. More... | |
virtual const Port & | asPort () const =0 |
Get the concrete Port being used for communication, const version. More... | |
bool | open (const std::string &name) override |
Start port operation, with a specific name, with automatically-chosen network parameters. More... | |
bool | open (const Contact &contact, bool registerName=true) override |
Start port operation with user-chosen network parameters. More... | |
bool | addOutput (const std::string &name) override |
Add an output connection to the specified port. More... | |
bool | addOutput (const std::string &name, const std::string &carrier) override |
Add an output connection to the specified port, using a specified carrier. More... | |
bool | addOutput (const Contact &contact) override |
Add an output connection to the specified port, using specified network parameters. More... | |
void | close () override |
Stop port activity. More... | |
void | interrupt () override |
Interrupt any current reads or writes attached to the port. More... | |
void | resume () override |
Put the port back in an operative state after interrupt() has been called. More... | |
Contact | where () const override |
Returns information about how this port can be reached. More... | |
std::string | getName () const override |
Get name of port. More... | |
bool | setEnvelope (PortWriter &envelope) override |
Set an envelope (e.g., a timestamp) to the next message which will be sent. More... | |
bool | getEnvelope (PortReader &envelope) override |
Get the envelope information (e.g., a timestamp) from the last message received on the port. More... | |
int | getInputCount () override |
Determine how many connections are arriving into this port. More... | |
int | getOutputCount () override |
Determine how many output connections this port has. More... | |
void | getReport (PortReport &reporter) override |
Get information on the state of the port - connections etc. More... | |
void | setReporter (PortReport &reporter) override |
Set a callback to be called upon any future connections and disconnections to/from the port. More... | |
void | resetReporter () override |
Remove the callback which is called upon any future connections and disconnections to/from the port. More... | |
bool | isWriting () override |
Report whether the port is currently writing data. More... | |
void | setReader (PortReader &reader) override |
Set an external reader for port data. More... | |
void | setAdminReader (PortReader &reader) override |
Set an external reader for unrecognized administrative port messages. More... | |
void | setInputMode (bool expectInput) override |
Configure the port to allow or forbid inputs. More... | |
void | setOutputMode (bool expectOutput) override |
Configure the port to allow or forbid outputs. More... | |
void | setRpcMode (bool expectRpc) override |
Configure the port to be RPC only. More... | |
Type | getType () override |
Get the type of data the port has committed to send/receive. More... | |
void | promiseType (const Type &typ) override |
Commit the port to a particular type of data. More... | |
Property * | acquireProperties (bool readOnly) override |
Access unstructured port properties. More... | |
void | releaseProperties (Property *prop) override |
End access unstructured port properties. More... | |
bool | write (const PortWriter &writer, const PortWriter *callback=nullptr) const override |
Write an object to the port. More... | |
bool | write (const PortWriter &writer, PortReader &reader, const PortWriter *callback=nullptr) const override |
Write an object to the port, then expect one back. More... | |
bool | read (PortReader &reader, bool willReply=false) override |
Read an object from the port. More... | |
bool | reply (PortWriter &writer) override |
Send an object as a reply to an object read from the port. More... | |
bool | replyAndDrop (PortWriter &writer) override |
Same as reply(), but closes connection after reply. More... | |
void | includeNodeInName (bool flag) override |
Choose whether to prepend a node name (if one is available) to the port's name. More... | |
bool | setCallbackLock (std::mutex *mutex=nullptr) override |
Add a lock to use when invoking callbacks. More... | |
bool | removeCallbackLock () override |
Remove a lock on callbacks added with setCallbackLock() More... | |
bool | lockCallback () override |
Lock callbacks until unlockCallback() is called. More... | |
bool | tryLockCallback () override |
Try to lock callbacks until unlockCallback() is called. More... | |
void | unlockCallback () override |
Unlock callbacks. More... | |
virtual bool | write (const PortWriter &writer, const PortWriter *callback=nullptr) const =0 |
Write an object to the port. More... | |
virtual bool | write (const PortWriter &writer, PortReader &reader, const PortWriter *callback=nullptr) const =0 |
Write an object to the port, then expect one back. More... | |
virtual bool | read (PortReader &reader, bool willReply=false)=0 |
Read an object from the port. More... | |
virtual bool | reply (PortWriter &writer)=0 |
Send an object as a reply to an object read from the port. More... | |
virtual bool | replyAndDrop (PortWriter &writer)=0 |
Same as reply(), but closes connection after reply. More... | |
![]() | |
virtual | ~Contactable () |
Destructor. More... | |
virtual bool | open (const std::string &name)=0 |
Start port operation, with a specific name, with automatically-chosen network parameters. More... | |
virtual bool | open (const Contact &contact, bool registerName=true)=0 |
Start port operation with user-chosen network parameters. More... | |
virtual bool | addOutput (const std::string &name)=0 |
Add an output connection to the specified port. More... | |
virtual bool | addOutput (const std::string &name, const std::string &carrier)=0 |
Add an output connection to the specified port, using a specified carrier. More... | |
virtual bool | addOutput (const Contact &contact)=0 |
Add an output connection to the specified port, using specified network parameters. More... | |
virtual void | close ()=0 |
Stop port activity. More... | |
virtual void | interrupt ()=0 |
Interrupt any current reads or writes attached to the port. More... | |
virtual void | resume ()=0 |
Put the port back in an operative state after interrupt() has been called. More... | |
virtual Contact | where () const =0 |
Returns information about how this port can be reached. More... | |
virtual std::string | getName () const |
Get name of port. More... | |
virtual bool | setEnvelope (PortWriter &envelope)=0 |
Set an envelope (e.g., a timestamp) to the next message which will be sent. More... | |
virtual bool | getEnvelope (PortReader &envelope)=0 |
Get the envelope information (e.g., a timestamp) from the last message received on the port. More... | |
virtual int | getInputCount ()=0 |
Determine how many connections are arriving into this port. More... | |
virtual int | getOutputCount ()=0 |
Determine how many output connections this port has. More... | |
virtual void | getReport (PortReport &reporter)=0 |
Get information on the state of the port - connections etc. More... | |
virtual void | setReporter (PortReport &reporter)=0 |
Set a callback to be called upon any future connections and disconnections to/from the port. More... | |
virtual void | resetReporter ()=0 |
Remove the callback which is called upon any future connections and disconnections to/from the port. More... | |
virtual bool | isWriting ()=0 |
Report whether the port is currently writing data. More... | |
virtual void | setReader (PortReader &reader)=0 |
Set an external reader for port data. More... | |
virtual void | setAdminReader (PortReader &reader)=0 |
Set an external reader for unrecognized administrative port messages. More... | |
virtual void | setInputMode (bool expectInput)=0 |
Configure the port to allow or forbid inputs. More... | |
virtual void | setOutputMode (bool expectOutput)=0 |
Configure the port to allow or forbid outputs. More... | |
virtual void | setRpcMode (bool expectRpc)=0 |
Configure the port to be RPC only. More... | |
virtual Type | getType ()=0 |
Get the type of data the port has committed to send/receive. More... | |
virtual void | promiseType (const Type &typ)=0 |
Commit the port to a particular type of data. More... | |
virtual Property * | acquireProperties (bool readOnly)=0 |
Access unstructured port properties. More... | |
virtual void | releaseProperties (Property *prop)=0 |
End access unstructured port properties. More... | |
virtual void | includeNodeInName (bool flag)=0 |
Choose whether to prepend a node name (if one is available) to the port's name. 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... | |
virtual bool | setCallbackLock (std::mutex *mutex=nullptr)=0 |
Add a lock to use when invoking callbacks. More... | |
virtual bool | removeCallbackLock ()=0 |
Remove a lock on callbacks added with setCallbackLock() More... | |
virtual bool | lockCallback ()=0 |
Lock callbacks until unlockCallback() is called. More... | |
virtual bool | tryLockCallback ()=0 |
Try to lock callbacks until unlockCallback() is called. More... | |
virtual void | unlockCallback ()=0 |
Unlock callbacks. More... | |
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 22 of file RpcServer.h.
RpcServer::RpcServer | ( | ) |
Constructor.
Definition at line 18 of file RpcServer.cpp.
|
override |
Destructor.
Definition at line 25 of file RpcServer.cpp.
|
inlineoverridevirtual |
Get the concrete Port being used for communication, const version.
Implements yarp::os::AbstractContactable.
Definition at line 60 of file RpcServer.h.
|
inlineoverridevirtual |
Get the concrete Port being used for communication.
Implements yarp::os::AbstractContactable.
Definition at line 55 of file RpcServer.h.
|
overridevirtual |
Read an object from the port.
reader | any object that knows how to read itself from a network connection - see for example Bottle |
willReply | you must set this to true if you intend to call reply() |
Reimplemented from yarp::os::AbstractContactable.
Definition at line 49 of file RpcServer.cpp.
|
overridevirtual |
Configure the port to allow or forbid inputs.
By default, ports allow anything.
expectInput | set to true if this port will be used for input |
Reimplemented from yarp::os::AbstractContactable.
Definition at line 59 of file RpcServer.cpp.
|
overridevirtual |
Configure the port to allow or forbid outputs.
By default, ports allow anything.
expectOutput | set to true if this port will be used for output |
Reimplemented from yarp::os::AbstractContactable.
Definition at line 65 of file RpcServer.cpp.
|
overridevirtual |
Configure the port to be RPC only.
By default all ports can be used for RPC or streaming communication.
expectRpc | set to true if this port will be used for RPC only |
Reimplemented from yarp::os::AbstractContactable.
Definition at line 71 of file RpcServer.cpp.
|
overridevirtual |
Write cannot be called by RPCServer.
Reimplemented from yarp::os::AbstractContactable.
Definition at line 30 of file RpcServer.cpp.
|
overridevirtual |
Write cannot be called by RPCServer.
Reimplemented from yarp::os::AbstractContactable.
Definition at line 38 of file RpcServer.cpp.