YARP
Yet Another Robot Platform
yarp::os::Contactable Class Referenceabstract

An abstract port. More...

#include <yarp/os/Contactable.h>

+ Inheritance diagram for yarp::os::Contactable:

Detailed Description

An abstract port.

Anything that can be expressed via a Contact.

Definition at line 35 of file Contactable.h.

Public Member Functions

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 PropertyacquireProperties (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 (yarp::os::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...
 

Constructor & Destructor Documentation

◆ ~Contactable()

yarp::os::Contactable::~Contactable ( )
virtualdefault

Destructor.

Member Function Documentation

◆ acquireProperties()

virtual Property* yarp::os::Contactable::acquireProperties ( bool  readOnly)
pure virtual

◆ addOutput() [1/3]

◆ addOutput() [2/3]

virtual bool yarp::os::Contactable::addOutput ( const std::string &  name,
const std::string &  carrier 
)
pure virtual

Add an output connection to the specified port, using a specified carrier.

Parameters
namethe name of the target port
carrierthe carrier (network protocol) to use, e.g. "tcp", "udp", "mcast", "text", ...
Returns
true iff the connection is successfully created

Implemented in yarp::os::BufferedPort< T >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< jointData >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< VectorOf< unsigned char > >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::Port, and yarp::os::AbstractContactable.

◆ addOutput() [3/3]

virtual bool yarp::os::Contactable::addOutput ( const Contact contact)
pure virtual

◆ close()

◆ getEnvelope()

virtual bool yarp::os::Contactable::getEnvelope ( PortReader envelope)
pure virtual

Get the envelope information (e.g., a timestamp) from the last message received on the port.

You must be sure to match the type of your envelope for getEnvelope with whatever is being sent using setEnvelope. The Stamp class is a typical choice for timestamps. The Bottle class also works as an envelope, but it is not specialized to be efficient.

Parameters
enveloperecipient for envelope information for last message received by port.
Returns
true iff reading the envelope was successful

Implemented in yarp::os::BufferedPort< T >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< jointData >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< VectorOf< unsigned char > >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::Port, and yarp::os::AbstractContactable.

◆ getInputCount()

◆ getName()

◆ getOutputCount()

◆ getReport()

virtual void yarp::os::Contactable::getReport ( PortReport reporter)
pure virtual

Get information on the state of the port - connections etc.

PortReport::report will be called once for each connection to the port that exists right now. To request callbacks for any future connections/disconnections, use the setReporter method instead.

Parameters
reportercallback for port event/state information

Implemented in yarp::os::BufferedPort< T >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< jointData >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< VectorOf< unsigned char > >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::Port, and yarp::os::AbstractContactable.

◆ getType()

◆ includeNodeInName()

◆ interrupt()

◆ isWriting()

◆ lockCallback()

◆ open() [1/2]

virtual bool yarp::os::Contactable::open ( const std::string &  name)
pure virtual

Start port operation, with a specific name, with automatically-chosen network parameters.

The port is registered with the given name, and allocated network resources, by communicating with the YARP name server.

Returns
true iff the port started operation successfully and is now visible on the YARP network

Implemented in yarp::os::BufferedPort< T >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< jointData >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< VectorOf< unsigned char > >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::Subscriber< T >, yarp::os::Publisher< T >, yarp::os::Port, and yarp::os::AbstractContactable.

◆ open() [2/2]

virtual bool yarp::os::Contactable::open ( const Contact contact,
bool  registerName = true 
)
pure virtual

Start port operation with user-chosen network parameters.

Contact information is supplied by the user rather than the name server. If the Contact information is incomplete, the name server is used to complete it (set registerName to false if you don't want name server help).

Returns
true iff the port started operation successfully and is now visible on the YARP network

Implemented in yarp::os::BufferedPort< T >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< jointData >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< VectorOf< unsigned char > >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::Subscriber< T >, yarp::os::Publisher< T >, yarp::os::Port, and yarp::os::AbstractContactable.

◆ promiseType()

◆ releaseProperties()

◆ removeCallbackLock()

◆ resetReporter()

◆ resume()

◆ setAdminReader()

◆ setCallbackLock()

virtual bool yarp::os::Contactable::setCallbackLock ( yarp::os::Mutex mutex = nullptr)
pure virtual

Add a lock to use when invoking callbacks.

mutex.lock() will be called before and mutex.unlock() will be called after the callback. This applies at least to callbacks set by setReader and setAdminReader, and in future may apply to other callbacks.

Parameters
mutexthe lock to use. If nullptr, a mutex will be allocated internally by the port, and destroyed with the port.

Implemented in yarp::os::BufferedPort< T >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< jointData >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< VectorOf< unsigned char > >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::Port, and yarp::os::AbstractContactable.

◆ setEnvelope()

virtual bool yarp::os::Contactable::setEnvelope ( PortWriter envelope)
pure virtual

Set an envelope (e.g., a timestamp) to the next message which will be sent.

You must be sure to match the type of your envelope for setEnvelope with whatever will be read using getEnvelope. The Stamp class is a typical choice for timestamps. The Bottle class also works as an envelope, but it is not specialized to be efficient.

Currently, for proper operation, the envelope must serialize correctly in text-mode (even if you do not explicitly use text-mode connections). Bottle or Stamp are good choices.

Parameters
envelopeinformation to add to the next message which will be sent
Returns
true iff setting the envelope was successful

Implemented in yarp::os::BufferedPort< T >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< jointData >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< VectorOf< unsigned char > >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::Port, and yarp::os::AbstractContactable.

◆ setInputMode()

◆ setOutputMode()

◆ setReader()

◆ setReadOnly()

void yarp::os::Contactable::setReadOnly ( )

Shorthand for setInputMode(true), setOutputMode(false), setRpcMode(false)

Definition at line 21 of file Contactable.cpp.

◆ setReporter()

virtual void yarp::os::Contactable::setReporter ( PortReport reporter)
pure virtual

◆ setRpcClient()

void yarp::os::Contactable::setRpcClient ( )

Shorthand for setInputMode(false), setOutputMode(true), setRpcMode(true)

Definition at line 42 of file Contactable.cpp.

◆ setRpcMode()

◆ setRpcServer()

void yarp::os::Contactable::setRpcServer ( )

Shorthand for setInputMode(true), setOutputMode(false), setRpcMode(true)

Definition at line 35 of file Contactable.cpp.

◆ setWriteOnly()

void yarp::os::Contactable::setWriteOnly ( )

Shorthand for setInputMode(false), setOutputMode(true), setRpcMode(false)

Definition at line 28 of file Contactable.cpp.

◆ tryLockCallback()

◆ unlockCallback()

◆ where()


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