YARP
Yet Another Robot Platform
PortMonitor Class Reference

Allow to monitor and modify port data from Lua script Under development. More...

#include <portmonitor_carrier/PortMonitor.h>

+ Inheritance diagram for PortMonitor:

Public Member Functions

 PortMonitor ()=default
 
 PortMonitor (const PortMonitor &)=delete
 
 PortMonitor (PortMonitor &&)=delete
 
PortMonitoroperator= (const PortMonitor &)=delete
 
PortMonitoroperator= (PortMonitor &&)=delete
 
 ~PortMonitor () override
 
Carrier * create () const override
 Factory method. More...
 
std::string getName () const override
 Get the name of this connection type ("tcp", "mcast", "shmem", ...) More...
 
std::string toString () const override
 Get name of carrier. More...
 
bool configure (yarp::os::ConnectionState &proto) override
 Class PortMonitor. More...
 
bool configureFromProperty (yarp::os::Property &options) override
 
bool acceptIncomingData (yarp::os::ConnectionReader &reader) override
 Determine whether incoming data should be accepted. More...
 
yarp::os::ConnectionReadermodifyIncomingData (yarp::os::ConnectionReader &reader) override
 Modify incoming payload data, if appropriate. More...
 
const yarp::os::PortWritermodifyOutgoingData (const yarp::os::PortWriter &writer) override
 Modify outgoing payload data, if appropriate. More...
 
bool acceptOutgoingData (const yarp::os::PortWriter &writer) override
 Determine whether outgoing data should be accepted. More...
 
yarp::os::PortReadermodifyReply (yarp::os::PortReader &reader) override
 Modify reply payload data, if appropriate. More...
 
void setCarrierParams (const yarp::os::Property &params) override
 Configure carrier from port administrative commands. More...
 
void getCarrierParams (yarp::os::Property &params) const override
 Get carrier configuration and deliver it by port administrative commands. More...
 
void lock () const
 
void unlock () const
 
MonitorBindinggetBinder ()
 
- Public Member Functions inherited from yarp::os::ModifyingCarrier
bool checkHeader (const yarp::os::Bytes &header) override
 Given the first 8 bytes received on a connection, decide if this is the right carrier type to use for the rest of the connection. More...
 
void getHeader (yarp::os::Bytes &header) const override
 Provide 8 bytes describing this connection sufficiently to allow the other side of a connection to select it. More...
 
bool respondToHeader (yarp::os::ConnectionState &proto) override
 Respond to the header. More...
 
bool modifiesIncomingData () const override
 Check if this carrier modifies incoming data through the Carrier::modifyIncomingData method. More...
 
bool modifiesOutgoingData () const override
 Check if this carrier modifies outgoing data through the Carrier::modifyOutgoingData method. More...
 
bool modifiesReply () const override
 Check if this carrier modifies outgoing data through the Carrier::modifyReply method. More...
 
- Public Member Functions inherited from yarp::os::AbstractCarrier
void setParameters (const yarp::os::Bytes &header) override
 Configure this carrier based on the first 8 bytes of the connection. More...
 
bool isConnectionless () const override
 Check if this carrier is connectionless (like udp, mcast) or connection based (like tcp). More...
 
bool supportReply () const override
 This flag is used by YARP to determine whether the connection can carry RPC traffic, that is, messages with replies. More...
 
bool canAccept () const override
 Check if reading is implemented for this carrier. More...
 
bool canOffer () const override
 Check if writing is implemented for this carrier. More...
 
bool isTextMode () const override
 Check if carrier is textual in nature. More...
 
bool requireAck () const override
 Check if carrier has flow control, requiring sent messages to be acknowledged by recipient. More...
 
bool canEscape () const override
 Check if carrier can encode administrative messages, as opposed to just user data. More...
 
bool isLocal () const override
 Check if carrier operates within a single process. More...
 
bool isActive () const override
 Check if carrier is alive and error free. More...
 
bool prepareSend (ConnectionState &proto) override
 Perform any initialization needed before writing on a connection. More...
 
bool sendHeader (ConnectionState &proto) override
 Write a header appropriate to the carrier to the connection, followed by any carrier-specific data. More...
 
bool expectReplyToHeader (ConnectionState &proto) override
 Process reply to header, if one is expected for this carrier. More...
 
virtual bool sendIndex (ConnectionState &proto, SizedWriter &writer)
 
bool expectExtraHeader (ConnectionState &proto) override
 Receive any carrier-specific header. More...
 
bool expectIndex (ConnectionState &proto) override
 Expect a message header, if there is one for this carrier. More...
 
bool expectSenderSpecifier (ConnectionState &proto) override
 Expect the name of the sending port. More...
 
bool sendAck (ConnectionState &proto) override
 Send an acknowledgement, if needed for this carrier. More...
 
bool expectAck (ConnectionState &proto) override
 Receive an acknowledgement, if expected for this carrier. More...
 
bool defaultSendHeader (ConnectionState &proto)
 Default implementation for the sendHeader method. More...
 
bool defaultExpectIndex (ConnectionState &proto)
 Default implementation for the expectIndex method. More...
 
bool defaultSendIndex (ConnectionState &proto, SizedWriter &writer)
 Default implementation for the sendIndex method. More...
 
bool defaultExpectAck (ConnectionState &proto)
 Default implementation for the expectAck method. More...
 
bool defaultSendAck (ConnectionState &proto)
 Default implementation for the sendAck method. More...
 
int readYarpInt (ConnectionState &proto)
 Read 8 bytes and interpret them as a YARP number. More...
 
void writeYarpInt (int n, ConnectionState &proto)
 Write n as an 8 bytes yarp number. More...
 
- Public Member Functions inherited from yarp::os::Carrier
bool isBroadcast () const override
 Check if this carrier uses a broadcast mechanism. More...
 
void handleEnvelope (const std::string &envelope) override
 Carriers that do not distinguish data from administrative headers (i.e. More...
 
bool isPush () const override
 Check if carrier is "push" or "pull" style. More...
 
virtual bool reply (ConnectionState &proto, SizedWriter &writer)
 
void prepareDisconnect () override
 Do cleanup and preparation for the coming disconnect, if necessary. More...
 
virtual void close ()
 Close the carrier. More...
 
virtual ~Carrier ()
 Destructor. More...
 
virtual std::string getBootstrapCarrierName () const
 Get the name of the carrier that should be used prior to handshaking, if a port is registered with this carrier as its default carrier. More...
 
virtual int connect (const Contact &src, const Contact &dest, const ContactStyle &style, int mode, bool reversed)
 Some carrier types may require special connection logic. More...
 
virtual yarp::os::FacecreateFace () const
 Create new Face object that the carrier needs. More...
 
- Public Member Functions inherited from yarp::os::Connection
virtual ~Connection ()
 Destructor. More...
 
virtual bool isValid () const
 Check if this object is really a connection, or just an empty placeholder. More...
 
virtual bool isBareMode () const
 Check if carrier excludes type information from payload. More...
 

Public Attributes

std::string portName
 
std::string sourceName
 

Additional Inherited Members

- Protected Member Functions inherited from yarp::os::AbstractCarrier
int getSpecifier (const Bytes &b) const
 
void createStandardHeader (int specifier, yarp::os::Bytes &header) const
 
bool write (ConnectionState &proto, SizedWriter &writer) override
 Write a message. More...
 
bool sendConnectionStateSpecifier (ConnectionState &proto)
 
bool sendSenderSpecifier (ConnectionState &proto)
 
- Static Protected Member Functions inherited from yarp::os::AbstractCarrier
static int interpretYarpNumber (const yarp::os::Bytes &b)
 
static void createYarpNumber (int x, yarp::os::Bytes &header)
 

Detailed Description

Allow to monitor and modify port data from Lua script Under development.

Affected by carrier modifiers.

Examples: tcp+recv.portmonitor+type.lua+file.my_lua_script_file TODO:

  • how to pass the filename with prefix via connection parameter? e.g. ...+file.'my_lua_script_file.lua'
  • using resource finder to find the script file

Definition at line 52 of file PortMonitor.h.

Constructor & Destructor Documentation

◆ PortMonitor() [1/3]

PortMonitor::PortMonitor ( )
default

◆ PortMonitor() [2/3]

PortMonitor::PortMonitor ( const PortMonitor )
delete

◆ PortMonitor() [3/3]

PortMonitor::PortMonitor ( PortMonitor &&  )
delete

◆ ~PortMonitor()

PortMonitor::~PortMonitor ( )
inlineoverride

Definition at line 63 of file PortMonitor.h.

Member Function Documentation

◆ acceptIncomingData()

bool PortMonitor::acceptIncomingData ( yarp::os::ConnectionReader reader)
overridevirtual

Determine whether incoming data should be accepted.

Parameters
readerfor incoming data.
Returns
true if data should be accepted, false if it should be discarded.

Reimplemented from yarp::os::Carrier.

Definition at line 168 of file PortMonitor.cpp.

◆ acceptOutgoingData()

bool PortMonitor::acceptOutgoingData ( const yarp::os::PortWriter writer)
overridevirtual

Determine whether outgoing data should be accepted.

Parameters
writerfor outgoing data.
Returns
true if data should be accepted, false if it should be discarded.

Reimplemented from yarp::os::Carrier.

Definition at line 235 of file PortMonitor.cpp.

◆ configure()

bool PortMonitor::configure ( yarp::os::ConnectionState proto)
overridevirtual

Class PortMonitor.

Reimplemented from yarp::os::Carrier.

Definition at line 31 of file PortMonitor.cpp.

◆ configureFromProperty()

bool PortMonitor::configureFromProperty ( yarp::os::Property options)
overridevirtual

Reimplemented from yarp::os::ModifyingCarrier.

Definition at line 55 of file PortMonitor.cpp.

◆ create()

Carrier* PortMonitor::create ( ) const
inlineoverridevirtual

Factory method.

Get a new object of the same type as this one.

Returns
a new object of the same type as this one.

Implements yarp::os::ModifyingCarrier.

Definition at line 71 of file PortMonitor.h.

◆ getBinder()

MonitorBinding* PortMonitor::getBinder ( )
inline

Definition at line 108 of file PortMonitor.h.

◆ getCarrierParams()

void PortMonitor::getCarrierParams ( yarp::os::Property params) const
overridevirtual

Get carrier configuration and deliver it by port administrative commands.

Parameters
paramsoutput carrier properties

Reimplemented from yarp::os::ModifyingCarrier.

Definition at line 121 of file PortMonitor.cpp.

◆ getName()

std::string PortMonitor::getName ( ) const
inlineoverridevirtual

Get the name of this connection type ("tcp", "mcast", "shmem", ...)

Returns
the name of this connection type

Implements yarp::os::ModifyingCarrier.

Definition at line 76 of file PortMonitor.h.

◆ lock()

void PortMonitor::lock ( ) const
inline

Definition at line 105 of file PortMonitor.h.

◆ modifyIncomingData()

yarp::os::ConnectionReader & PortMonitor::modifyIncomingData ( yarp::os::ConnectionReader reader)
overridevirtual

Modify incoming payload data, if appropriate.

Doesn't need to be done immediately, it is fine to hold onto a reference to the incoming data reader and use it on demand. This can be handy in order to avoid unnecessary copies.

Parameters
readerfor incoming data.
Returns
reader for modified version of incoming data.
Note
If the ConnectionReader returned is not the same as the one in input, the setParentConnectionReader(&reader) should be called for the new one, or the envelope will not be handled correctly.

Reimplemented from yarp::os::Carrier.

Definition at line 134 of file PortMonitor.cpp.

◆ modifyOutgoingData()

const yarp::os::PortWriter & PortMonitor::modifyOutgoingData ( const yarp::os::PortWriter writer)
overridevirtual

Modify outgoing payload data, if appropriate.

Doesn't need to be done immediately, it is fine to hold onto a reference to the outgoing data reader and use it on demand. This can be handy in order to avoid unnecessary copies.

Parameters
writerfor outgoing data.
Returns
writer for modified version of outgoing data.

Reimplemented from yarp::os::Carrier.

Definition at line 214 of file PortMonitor.cpp.

◆ modifyReply()

yarp::os::PortReader & PortMonitor::modifyReply ( yarp::os::PortReader reader)
overridevirtual

Modify reply payload data, if appropriate.

Parameters
readerfor the replied message.
Returns
reader for modified version of the replied message.

Reimplemented from yarp::os::Carrier.

Definition at line 256 of file PortMonitor.cpp.

◆ operator=() [1/2]

PortMonitor& PortMonitor::operator= ( const PortMonitor )
delete

◆ operator=() [2/2]

PortMonitor& PortMonitor::operator= ( PortMonitor &&  )
delete

◆ setCarrierParams()

void PortMonitor::setCarrierParams ( const yarp::os::Property params)
overridevirtual

Configure carrier from port administrative commands.

Parameters
paramscarrier properties

Reimplemented from yarp::os::ModifyingCarrier.

Definition at line 109 of file PortMonitor.cpp.

◆ toString()

std::string PortMonitor::toString ( ) const
inlineoverridevirtual

Get name of carrier.

Returns
name of carrier.

Reimplemented from yarp::os::AbstractCarrier.

Definition at line 81 of file PortMonitor.h.

◆ unlock()

void PortMonitor::unlock ( ) const
inline

Definition at line 106 of file PortMonitor.h.

Member Data Documentation

◆ portName

std::string PortMonitor::portName

Definition at line 117 of file PortMonitor.h.

◆ sourceName

std::string PortMonitor::sourceName

Definition at line 118 of file PortMonitor.h.


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