A base class for sources of typed data. More...
#include <yarp/os/TypedReader.h>
A base class for sources of typed data.
This could be a BufferedPort or a PortReaderBuffer.
Definition at line 25 of file TypedReader.h.
Public Member Functions | |
virtual void | setStrict (bool strict=true)=0 |
Call this to strictly keep all messages, or allow old ones to be quietly dropped. More... | |
virtual T * | read (bool shouldWait=true)=0 |
Read an available object from the port. More... | |
virtual void | interrupt ()=0 |
Abort any read operation currently in progress. More... | |
virtual T * | lastRead ()=0 |
Get the last data returned by read() More... | |
virtual bool | isClosed ()=0 |
Returns whether the port associated with this reader has been closed. More... | |
virtual void | useCallback (TypedReaderCallback< T > &callback)=0 |
Set an object whose onRead method will be called when data is available. More... | |
virtual void | disableCallback ()=0 |
Remove a callback set up with useCallback() More... | |
virtual int | getPendingReads ()=0 |
Check how many messages are waiting to be read. More... | |
virtual | ~TypedReader ()=default |
Destructor. More... | |
virtual std::string | getName () const =0 |
Get name of port being read from. More... | |
virtual void | setReplier (PortReader &reader)=0 |
If a message is received that requires a reply, use this handler. More... | |
virtual void * | acquire ()=0 |
Take control of the last object read. More... | |
virtual void | release (void *handle)=0 |
Return control to YARP of an object previously taken control of with the acquire() method. More... | |
virtual void | setTargetPeriod (double period)=0 |
Try to provide data periodically. More... | |
|
virtualdefault |
Destructor.
|
pure virtual |
Take control of the last object read.
YARP will not reuse that object until it is explicitly released by the user. Be careful - if you acquire objects without releasing, YARP will keep making new ones to store incoming messages. So you need to release all objects you acquire eventually to avoid running out of memory.
Implemented in yarp::os::PortReaderBuffer< T >, yarp::os::PortReaderBuffer< yarp::sig::VectorOf >, yarp::os::PortReaderBuffer< yarp::os::Bottle >, yarp::os::PortReaderBuffer< yarp::sig::ImageOf< yarp::sig::PixelRgb > >, yarp::os::BufferedPort< T >, yarp::os::BufferedPort< yarp::sig::Vector >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::dev::impl::jointData >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< JoyData >, yarp::os::BufferedPort< yarp::os::PortablePair >, yarp::os::BufferedPort< yarp::dev::Nav2D::Map2DLocation >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::BufferedPort< yarp::dev::LaserScan2D >, yarp::os::BufferedPort< yarp::dev::OdometryData >, yarp::os::BufferedPort< DepthImage >, and yarp::os::BufferedPort< yarp::sig::Sound >.
|
pure virtual |
Remove a callback set up with useCallback()
Implemented in yarp::os::PortReaderBuffer< T >, yarp::os::PortReaderBuffer< yarp::sig::VectorOf >, yarp::os::PortReaderBuffer< yarp::os::Bottle >, yarp::os::PortReaderBuffer< yarp::sig::ImageOf< yarp::sig::PixelRgb > >, yarp::os::BufferedPort< T >, yarp::os::BufferedPort< yarp::sig::Vector >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::dev::impl::jointData >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< JoyData >, yarp::os::BufferedPort< yarp::os::PortablePair >, yarp::os::BufferedPort< yarp::dev::Nav2D::Map2DLocation >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::BufferedPort< yarp::dev::LaserScan2D >, yarp::os::BufferedPort< yarp::dev::OdometryData >, yarp::os::BufferedPort< DepthImage >, and yarp::os::BufferedPort< yarp::sig::Sound >.
|
pure virtual |
Get name of port being read from.
Implemented in yarp::os::PortReaderBuffer< T >, yarp::os::PortReaderBuffer< yarp::sig::VectorOf >, yarp::os::PortReaderBuffer< yarp::os::Bottle >, yarp::os::PortReaderBuffer< yarp::sig::ImageOf< yarp::sig::PixelRgb > >, yarp::os::BufferedPort< T >, yarp::os::BufferedPort< yarp::sig::Vector >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::dev::impl::jointData >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< JoyData >, yarp::os::BufferedPort< yarp::os::PortablePair >, yarp::os::BufferedPort< yarp::dev::Nav2D::Map2DLocation >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::BufferedPort< yarp::dev::LaserScan2D >, yarp::os::BufferedPort< yarp::dev::OdometryData >, yarp::os::BufferedPort< DepthImage >, and yarp::os::BufferedPort< yarp::sig::Sound >.
|
pure virtual |
Check how many messages are waiting to be read.
Implemented in yarp::os::PortReaderBuffer< T >, yarp::os::PortReaderBuffer< yarp::sig::VectorOf >, yarp::os::PortReaderBuffer< yarp::os::Bottle >, yarp::os::PortReaderBuffer< yarp::sig::ImageOf< yarp::sig::PixelRgb > >, yarp::os::BufferedPort< T >, yarp::os::BufferedPort< yarp::sig::Vector >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::dev::impl::jointData >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< JoyData >, yarp::os::BufferedPort< yarp::os::PortablePair >, yarp::os::BufferedPort< yarp::dev::Nav2D::Map2DLocation >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::BufferedPort< yarp::dev::LaserScan2D >, yarp::os::BufferedPort< yarp::dev::OdometryData >, yarp::os::BufferedPort< DepthImage >, and yarp::os::BufferedPort< yarp::sig::Sound >.
|
pure virtual |
Abort any read operation currently in progress.
Implemented in yarp::os::PortReaderBuffer< T >, yarp::os::PortReaderBuffer< yarp::sig::VectorOf >, yarp::os::PortReaderBuffer< yarp::os::Bottle >, yarp::os::PortReaderBuffer< yarp::sig::ImageOf< yarp::sig::PixelRgb > >, yarp::os::BufferedPort< T >, yarp::os::BufferedPort< yarp::sig::Vector >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::dev::impl::jointData >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< JoyData >, yarp::os::BufferedPort< yarp::os::PortablePair >, yarp::os::BufferedPort< yarp::dev::Nav2D::Map2DLocation >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::BufferedPort< yarp::dev::LaserScan2D >, yarp::os::BufferedPort< yarp::dev::OdometryData >, yarp::os::BufferedPort< DepthImage >, and yarp::os::BufferedPort< yarp::sig::Sound >.
|
pure virtual |
Returns whether the port associated with this reader has been closed.
Implemented in yarp::os::PortReaderBuffer< T >, yarp::os::PortReaderBuffer< yarp::sig::VectorOf >, yarp::os::PortReaderBuffer< yarp::os::Bottle >, yarp::os::PortReaderBuffer< yarp::sig::ImageOf< yarp::sig::PixelRgb > >, yarp::os::BufferedPort< T >, yarp::os::BufferedPort< yarp::sig::Vector >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::dev::impl::jointData >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< JoyData >, yarp::os::BufferedPort< yarp::os::PortablePair >, yarp::os::BufferedPort< yarp::dev::Nav2D::Map2DLocation >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::BufferedPort< yarp::dev::LaserScan2D >, yarp::os::BufferedPort< yarp::dev::OdometryData >, yarp::os::BufferedPort< DepthImage >, and yarp::os::BufferedPort< yarp::sig::Sound >.
|
pure virtual |
Get the last data returned by read()
Implemented in yarp::os::PortReaderBuffer< T >, yarp::os::PortReaderBuffer< yarp::sig::VectorOf >, yarp::os::PortReaderBuffer< yarp::os::Bottle >, yarp::os::PortReaderBuffer< yarp::sig::ImageOf< yarp::sig::PixelRgb > >, yarp::os::BufferedPort< T >, yarp::os::BufferedPort< yarp::sig::Vector >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::dev::impl::jointData >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< JoyData >, yarp::os::BufferedPort< yarp::os::PortablePair >, yarp::os::BufferedPort< yarp::dev::Nav2D::Map2DLocation >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::BufferedPort< yarp::dev::LaserScan2D >, yarp::os::BufferedPort< yarp::dev::OdometryData >, yarp::os::BufferedPort< DepthImage >, and yarp::os::BufferedPort< yarp::sig::Sound >.
|
pure virtual |
Read an available object from the port.
shouldWait | true if the method should wait until an object is available, false if the call should return immediately if no message is available |
Implemented in yarp::os::PortReaderBuffer< T >, yarp::os::PortReaderBuffer< yarp::sig::VectorOf >, yarp::os::PortReaderBuffer< yarp::os::Bottle >, yarp::os::PortReaderBuffer< yarp::sig::ImageOf< yarp::sig::PixelRgb > >, yarp::os::BufferedPort< T >, yarp::os::BufferedPort< yarp::sig::Vector >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::dev::impl::jointData >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< JoyData >, yarp::os::BufferedPort< yarp::os::PortablePair >, yarp::os::BufferedPort< yarp::dev::Nav2D::Map2DLocation >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::BufferedPort< yarp::dev::LaserScan2D >, yarp::os::BufferedPort< yarp::dev::OdometryData >, yarp::os::BufferedPort< DepthImage >, and yarp::os::BufferedPort< yarp::sig::Sound >.
|
pure virtual |
Return control to YARP of an object previously taken control of with the acquire() method.
handle | the pointer returned by acquire() when control of the object was taken by the user. |
Implemented in yarp::os::PortReaderBuffer< T >, yarp::os::PortReaderBuffer< yarp::sig::VectorOf >, yarp::os::PortReaderBuffer< yarp::os::Bottle >, yarp::os::PortReaderBuffer< yarp::sig::ImageOf< yarp::sig::PixelRgb > >, yarp::os::BufferedPort< T >, yarp::os::BufferedPort< yarp::sig::Vector >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::dev::impl::jointData >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< JoyData >, yarp::os::BufferedPort< yarp::os::PortablePair >, yarp::os::BufferedPort< yarp::dev::Nav2D::Map2DLocation >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::BufferedPort< yarp::dev::LaserScan2D >, yarp::os::BufferedPort< yarp::dev::OdometryData >, yarp::os::BufferedPort< DepthImage >, and yarp::os::BufferedPort< yarp::sig::Sound >.
|
pure virtual |
If a message is received that requires a reply, use this handler.
No buffering happens.
reader | the handler to use |
Implemented in yarp::os::PortReaderBuffer< T >, yarp::os::PortReaderBuffer< yarp::sig::VectorOf >, yarp::os::PortReaderBuffer< yarp::os::Bottle >, yarp::os::PortReaderBuffer< yarp::sig::ImageOf< yarp::sig::PixelRgb > >, yarp::os::BufferedPort< T >, yarp::os::BufferedPort< yarp::sig::Vector >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::dev::impl::jointData >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< JoyData >, yarp::os::BufferedPort< yarp::os::PortablePair >, yarp::os::BufferedPort< yarp::dev::Nav2D::Map2DLocation >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::BufferedPort< yarp::dev::LaserScan2D >, yarp::os::BufferedPort< yarp::dev::OdometryData >, yarp::os::BufferedPort< DepthImage >, and yarp::os::BufferedPort< yarp::sig::Sound >.
|
pure virtual |
Call this to strictly keep all messages, or allow old ones to be quietly dropped.
If you don't call this, old messages will be quietly dropped.
strict | True to keep all messages until they are read, false to drop old messages when a new one comes in. |
Implemented in yarp::os::PortReaderBuffer< T >, yarp::os::PortReaderBuffer< yarp::sig::VectorOf >, yarp::os::PortReaderBuffer< yarp::os::Bottle >, yarp::os::PortReaderBuffer< yarp::sig::ImageOf< yarp::sig::PixelRgb > >, yarp::os::BufferedPort< T >, yarp::os::BufferedPort< yarp::sig::Vector >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::dev::impl::jointData >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< JoyData >, yarp::os::BufferedPort< yarp::os::PortablePair >, yarp::os::BufferedPort< yarp::dev::Nav2D::Map2DLocation >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::BufferedPort< yarp::dev::LaserScan2D >, yarp::os::BufferedPort< yarp::dev::OdometryData >, yarp::os::BufferedPort< DepthImage >, and yarp::os::BufferedPort< yarp::sig::Sound >.
|
pure virtual |
Try to provide data periodically.
If no new data arrives in a given period, repeat the last data received (if any). Similarly, the port should not pass on data more frequently than the given period.
period | target period in (fractional) seconds. |
Implemented in yarp::os::PortReaderBuffer< T >, yarp::os::PortReaderBuffer< yarp::sig::VectorOf >, yarp::os::PortReaderBuffer< yarp::os::Bottle >, yarp::os::PortReaderBuffer< yarp::sig::ImageOf< yarp::sig::PixelRgb > >, yarp::os::BufferedPort< T >, yarp::os::BufferedPort< yarp::sig::Vector >, yarp::os::BufferedPort< ImageType >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::dev::impl::jointData >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< JoyData >, yarp::os::BufferedPort< yarp::os::PortablePair >, yarp::os::BufferedPort< yarp::dev::Nav2D::Map2DLocation >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::BufferedPort< yarp::dev::LaserScan2D >, yarp::os::BufferedPort< yarp::dev::OdometryData >, yarp::os::BufferedPort< DepthImage >, and yarp::os::BufferedPort< yarp::sig::Sound >.
|
pure virtual |
Set an object whose onRead method will be called when data is available.
callback | the object whose onRead method will be called with data |
Implemented in yarp::os::PortReaderBuffer< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::sig::VectorOf >, yarp::os::BufferedPort< yarp::sig::Vector >, yarp::os::BufferedPort< yarp::sig::Sound >, yarp::os::PortReaderBuffer< yarp::sig::ImageOf< yarp::sig::PixelRgb > >, yarp::os::BufferedPort< yarp::sig::ImageOf< yarp::sig::PixelFloat > >, yarp::os::BufferedPort< yarp::sig::FlexImage >, yarp::os::BufferedPort< yarp::os::PortablePair >, yarp::os::PortReaderBuffer< yarp::os::Bottle >, yarp::os::BufferedPort< yarp::os::Bottle >, yarp::os::BufferedPort< yarp::dev::OdometryData >, yarp::os::BufferedPort< yarp::dev::Nav2D::Map2DLocation >, yarp::os::BufferedPort< yarp::dev::LaserScan2D >, yarp::os::BufferedPort< yarp::dev::impl::jointData >, yarp::os::PortReaderBuffer< T >, yarp::os::BufferedPort< T >, yarp::os::BufferedPort< SensorStreamingData >, yarp::os::BufferedPort< JoyData >, yarp::os::BufferedPort< ImageType >, and yarp::os::BufferedPort< DepthImage >.