YARP  2.3.70.1
Yet Another Robot Platform
yarp::os::PortMonitor Class Reference

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

#include <portmonitor_carrier/PortMonitor.h>

+ Inheritance diagram for yarp::os::PortMonitor:

Public Member Functions

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

Public Attributes

ConstString portName
 
ConstString sourceName
 

Static Private Member Functions

static ElectionOf< PortMonitorGroup > & getPeers ()
 

Private Attributes

bool happy
 
bool bReady
 
yarp::os::DummyConnector con
 
yarp::os::ConnectionReaderlocalReader
 
yarp::os::Things thing
 
MonitorBindingbinder
 
PortMonitorGroupgroup
 
yarp::os::Semaphore mutex
 

Static Private Attributes

static ElectionOf< PortMonitorGroup > * peers = NULL
 Class PortMonitorGroup. More...
 

Additional Inherited Members

- Protected Member Functions inherited from yarp::os::AbstractCarrier
int getSpecifier (const Bytes &b)
 
void createStandardHeader (int specifier, const yarp::os::Bytes &header)
 
virtual bool write (ConnectionState &proto, SizedWriter &writer) YARP_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, const 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 58 of file PortMonitor.h.

Constructor & Destructor Documentation

◆ PortMonitor()

yarp::os::PortMonitor::PortMonitor ( )
inline

Definition at line 62 of file PortMonitor.h.

◆ ~PortMonitor()

virtual yarp::os::PortMonitor::~PortMonitor ( )
inlinevirtual

Definition at line 69 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 136 of file PortMonitor.cpp.

◆ acceptOutgoingData()

bool PortMonitor::acceptOutgoingData ( 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 192 of file PortMonitor.cpp.

◆ configure()

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

Class PortMonitor.

Reimplemented from yarp::os::Carrier.

Definition at line 24 of file PortMonitor.cpp.

◆ configureFromProperty()

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

Reimplemented from yarp::os::ModifyingCarrier.

Definition at line 43 of file PortMonitor.cpp.

◆ create()

virtual Carrier* yarp::os::PortMonitor::create ( )
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 76 of file PortMonitor.h.

◆ getBinder()

MonitorBinding* yarp::os::PortMonitor::getBinder ( void  )
inline

Definition at line 110 of file PortMonitor.h.

◆ getCarrierParams()

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

Get carrier configuration and deliver it by port administrative commands.

Parameters
paramsproperties

Reimplemented from yarp::os::ModifyingCarrier.

Definition at line 101 of file PortMonitor.cpp.

◆ getName()

virtual ConstString yarp::os::PortMonitor::getName ( )
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 80 of file PortMonitor.h.

◆ getPeers()

ElectionOf< PortMonitorGroup > & PortMonitor::getPeers ( )
staticprivate

Definition at line 231 of file PortMonitor.cpp.

◆ lock()

void yarp::os::PortMonitor::lock ( )
inline

Definition at line 107 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 110 of file PortMonitor.cpp.

◆ modifyOutgoingData()

yarp::os::PortWriter & PortMonitor::modifyOutgoingData ( 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 176 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 208 of file PortMonitor.cpp.

◆ setCarrierParams()

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

Configure carrier from port administrative commands.

Parameters
paramsproperties

Reimplemented from yarp::os::ModifyingCarrier.

Definition at line 93 of file PortMonitor.cpp.

◆ toString()

virtual ConstString yarp::os::PortMonitor::toString ( )
inlineoverridevirtual

Get name of carrier.

Returns
name of carrier.

Reimplemented from yarp::os::AbstractCarrier.

Definition at line 84 of file PortMonitor.h.

◆ unlock()

void yarp::os::PortMonitor::unlock ( )
inline

Definition at line 108 of file PortMonitor.h.

Member Data Documentation

◆ binder

MonitorBinding* yarp::os::PortMonitor::binder
private

Definition at line 131 of file PortMonitor.h.

◆ bReady

bool yarp::os::PortMonitor::bReady
private

Definition at line 127 of file PortMonitor.h.

◆ con

yarp::os::DummyConnector yarp::os::PortMonitor::con
private

Definition at line 128 of file PortMonitor.h.

◆ group

PortMonitorGroup* yarp::os::PortMonitor::group
private

Definition at line 132 of file PortMonitor.h.

◆ happy

bool yarp::os::PortMonitor::happy
private

Definition at line 126 of file PortMonitor.h.

◆ localReader

yarp::os::ConnectionReader* yarp::os::PortMonitor::localReader
private

Definition at line 129 of file PortMonitor.h.

◆ mutex

yarp::os::Semaphore yarp::os::PortMonitor::mutex
private

Definition at line 133 of file PortMonitor.h.

◆ peers

ElectionOf< PortMonitorGroup > * PortMonitor::peers = NULL
staticprivate

Class PortMonitorGroup.

Definition at line 121 of file PortMonitor.h.

◆ portName

ConstString yarp::os::PortMonitor::portName

Definition at line 117 of file PortMonitor.h.

◆ sourceName

ConstString yarp::os::PortMonitor::sourceName

Definition at line 118 of file PortMonitor.h.

◆ thing

yarp::os::Things yarp::os::PortMonitor::thing
private

Definition at line 130 of file PortMonitor.h.


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