#include <yarp/os/impl/PortCore.h>
Public Member Functions | |
PortCore () | |
Constructor. More... | |
~PortCore () | |
Destructor. More... | |
bool | addOutput (const std::string &dest, void *id, yarp::os::OutputStream *os, bool onlyIfNeeded=false) |
Add an output connection to this port. More... | |
void | addOutput (OutputProtocol *op) |
Add another output to the port. More... | |
void | removeInput (const std::string &src, void *id, yarp::os::OutputStream *os) |
Remove an input connection. More... | |
void | removeOutput (const std::string &dest, void *id, yarp::os::OutputStream *os) |
Remove an output connection. More... | |
bool | removeIO (const Route &route, bool synch=false) |
Remove any connection matching the supplied route. More... | |
void | describe (void *id, yarp::os::OutputStream *os) |
Produce a text description of the port and its connections. More... | |
void | describe (yarp::os::PortReport &reporter) |
Generate a description of the connections associated with the port. More... | |
bool | readBlock (ConnectionReader &reader, void *id, yarp::os::OutputStream *os) |
Read a block of regular payload data. More... | |
bool | adminBlock (ConnectionReader &reader, void *id) |
Read a block of administrative data. More... | |
void | setName (const std::string &name) |
Set the name of this port. More... | |
std::string | getName () |
void | setEnvelope (const std::string &envelope) |
Set some envelope information to pass along with a message without actually being part of the message. More... | |
bool | setEnvelope (yarp::os::PortWriter &envelope) |
Set some extra meta data to pass along with the message. More... | |
std::string | getEnvelope () |
bool | getEnvelope (yarp::os::PortReader &envelope) |
Get any meta data associated with the last message received. More... | |
void | report (const yarp::os::PortInfo &info) |
Handle a port event (connection, disconnection, etc) Generate a description of the connections associated with the port. More... | |
void | reportUnit (PortCoreUnit *unit, bool active) |
Called by a connection handler with active=true just after it is fully configured, and with active=false just before it shuts itself down. More... | |
void | setFlags (unsigned int flags) |
Configure the port to meet certain restrictions in behavior. More... | |
void | setContactable (Contactable *contactable) |
unsigned int | getFlags () |
Check current configuration of port. More... | |
bool | listen (const Contact &address, bool shouldAnnounce=true) |
Begin service at a given address. More... | |
bool | isWriting () |
Check if a message is currently being sent. More... | |
int | getInputCount () |
Check how many input connections there are. More... | |
int | getOutputCount () |
Check how many output connections there are. More... | |
void | setReadHandler (yarp::os::PortReader &reader) |
Set a callback for incoming data. More... | |
void | setAdminReadHandler (yarp::os::PortReader &reader) |
Set a callback for incoming administrative messages. More... | |
void | setReadCreator (yarp::os::PortReaderCreator &creator) |
Set a callback for creating callbacks for incoming data. More... | |
void | setWaitBeforeSend (bool waitBeforeSend) |
Upon being asked to send a message, should we wait for any existing message to be sent to all destinations? More... | |
void | setWaitAfterSend (bool waitAfterSend) |
After sending a message, should we wait for it to be sent to all destinations before returning? More... | |
bool | read (yarp::os::ConnectionReader &reader) override |
Callback for data. More... | |
bool | start () override |
Begin main thread. More... | |
bool | manualStart (const char *sourceName) |
Start up the port, but without a main thread. More... | |
bool | send (const yarp::os::PortWriter &writer, yarp::os::PortReader *reader=nullptr, const yarp::os::PortWriter *callback=nullptr) |
Send a normal message. More... | |
bool | sendHelper (const yarp::os::PortWriter &writer, int mode, yarp::os::PortReader *reader=nullptr, const yarp::os::PortWriter *callback=nullptr) |
Send a message with a specific mode (normal or log). More... | |
void | close () override |
Shut down port. More... | |
void | run () override |
The body of the main thread. More... | |
int | getEventCount () |
A diagnostic for testing purposes. More... | |
const Contact & | getAddress () const |
Get the address associated with the port. More... | |
void | resetPortName (const std::string &str) |
yarp::os::PortReaderCreator * | getReadCreator () |
Get the creator of callbacks. More... | |
void | notifyCompletion (void *tracker) |
Call the right onCompletion() after sending message. More... | |
void | setControlRegistration (bool flag) |
Normally the port will unregister its name with the name server when shutting down. More... | |
void | interrupt () |
Prepare the port to be shut down. More... | |
void | resume () |
Undo an interrupt() More... | |
void | setReportCallback (yarp::os::PortReport *reporter) |
Set a callback to be notified of changes in port status. More... | |
void | resetReportCallback () |
Reset the callback to be notified of changes in port status. More... | |
bool | isListening () const |
bool | isManual () const |
bool | isInterrupted () const |
void | setTimeout (float timeout) |
Property * | acquireProperties (bool readOnly) |
void | releaseProperties (Property *prop) |
bool | setCallbackLock (yarp::os::Mutex *mutex) |
bool | setCallbackLock (std::mutex *mutex=nullptr) |
bool | removeCallbackLock () |
bool | lockCallback () |
bool | tryLockCallback () |
void | unlockCallback () |
yarp::os::impl::PortDataModifier & | getPortModifier () |
void | checkType (PortReader &reader) |
yarp::os::Type | getType () |
void | promiseType (const Type &typ) |
Public Member Functions inherited from yarp::os::impl::ThreadImpl | |
virtual | ~ThreadImpl () |
int | join (double seconds=-1) |
void | askToClose () |
bool | isClosing () |
bool | isRunning () |
virtual void | beforeStart () |
virtual void | afterStart (bool success) |
virtual bool | threadInit () |
virtual void | threadRelease () |
long int | getKey () |
void | notify (bool s) |
void | notifyOpened (bool s) |
void | synchroWait () |
void | synchroPost () |
int | setPriority (int priority=-1, int policy=-1) |
int | getPriority () |
int | getPolicy () |
long | getTid () |
Public Member Functions inherited from yarp::os::PortReader | |
virtual | ~PortReader () |
Destructor. More... | |
virtual Type | getReadType () const |
Additional Inherited Members | |
Static Public Member Functions inherited from yarp::os::impl::ThreadImpl | |
static int | getCount () |
static long int | getKeyOfCaller () |
static void | yield () |
Public Attributes inherited from yarp::os::impl::ThreadImpl | |
long | tid {-1} |
std::thread::id | id |
Definition at line 152 of file PortCore.h.
|
default |
Constructor.
PortCore::~PortCore | ( | ) |
Destructor.
Definition at line 64 of file PortCore.cpp.
Property * PortCore::acquireProperties | ( | bool | readOnly | ) |
Definition at line 2948 of file PortCore.cpp.
bool PortCore::addOutput | ( | const std::string & | dest, |
void * | id, | ||
yarp::os::OutputStream * | os, | ||
bool | onlyIfNeeded = false |
||
) |
Add an output connection to this port.
dest | the name of the target |
id | an opaque tracker for the connection |
os | the output stream for messages about this operation |
onlyIfNeeded | if true, don't add the connection if there is already a connection to the named target |
Definition at line 846 of file PortCore.cpp.
void PortCore::addOutput | ( | OutputProtocol * | op | ) |
Add another output to the port.
Definition at line 701 of file PortCore.cpp.
bool PortCore::adminBlock | ( | ConnectionReader & | reader, |
void * | id | ||
) |
Read a block of administrative data.
Process an administrative message.
reader | source of data |
id | opaque identifier of connection providing data |
Definition at line 1663 of file PortCore.cpp.
void PortCore::checkType | ( | PortReader & | reader | ) |
Definition at line 3126 of file PortCore.cpp.
|
overridevirtual |
Shut down port.
Reimplemented from yarp::os::impl::ThreadImpl.
Definition at line 267 of file PortCore.cpp.
void PortCore::describe | ( | void * | id, |
yarp::os::OutputStream * | os | ||
) |
Produce a text description of the port and its connections.
id | opaque identifier of connection that needs the description |
os | stream to write on |
Definition at line 1052 of file PortCore.cpp.
void PortCore::describe | ( | yarp::os::PortReport & | reporter | ) |
Generate a description of the connections associated with the port.
Definition at line 1110 of file PortCore.cpp.
const Contact & PortCore::getAddress | ( | ) | const |
Get the address associated with the port.
Definition at line 2990 of file PortCore.cpp.
std::string PortCore::getEnvelope | ( | ) |
Definition at line 1475 of file PortCore.cpp.
bool PortCore::getEnvelope | ( | yarp::os::PortReader & | envelope | ) |
Get any meta data associated with the last message received.
Definition at line 1480 of file PortCore.cpp.
int PortCore::getEventCount | ( | ) |
A diagnostic for testing purposes.
Definition at line 536 of file PortCore.cpp.
|
inline |
Check current configuration of port.
Definition at line 309 of file PortCore.h.
int PortCore::getInputCount | ( | ) |
Check how many input connections there are.
Definition at line 1418 of file PortCore.cpp.
std::string PortCore::getName | ( | ) |
Definition at line 2975 of file PortCore.cpp.
int PortCore::getOutputCount | ( | ) |
Check how many output connections there are.
Definition at line 1427 of file PortCore.cpp.
yarp::os::impl::PortDataModifier & PortCore::getPortModifier | ( | ) |
Definition at line 3121 of file PortCore.cpp.
yarp::os::PortReaderCreator * PortCore::getReadCreator | ( | ) |
Get the creator of callbacks.
Definition at line 3000 of file PortCore.cpp.
yarp::os::Type PortCore::getType | ( | ) |
Definition at line 3138 of file PortCore.cpp.
void PortCore::interrupt | ( | ) |
Prepare the port to be shut down.
Definition at line 334 of file PortCore.cpp.
bool PortCore::isInterrupted | ( | ) | const |
Definition at line 3020 of file PortCore.cpp.
bool PortCore::isListening | ( | ) | const |
Definition at line 3010 of file PortCore.cpp.
bool PortCore::isManual | ( | ) | const |
Definition at line 3015 of file PortCore.cpp.
bool PortCore::isWriting | ( | ) |
Check if a message is currently being sent.
Definition at line 1399 of file PortCore.cpp.
bool PortCore::listen | ( | const Contact & | address, |
bool | shouldAnnounce = true |
||
) |
Begin service at a given address.
Definition at line 71 of file PortCore.cpp.
bool PortCore::lockCallback | ( | ) |
Definition at line 3074 of file PortCore.cpp.
bool PortCore::manualStart | ( | const char * | sourceName | ) |
Start up the port, but without a main thread.
Definition at line 311 of file PortCore.cpp.
void PortCore::notifyCompletion | ( | void * | tracker | ) |
Call the right onCompletion() after sending message.
Definition at line 1437 of file PortCore.cpp.
void PortCore::promiseType | ( | const Type & | typ | ) |
Definition at line 3146 of file PortCore.cpp.
|
inlineoverridevirtual |
Callback for data.
Implements yarp::os::PortReader.
Reimplemented in yarp::os::impl::PortCoreAdapter.
Definition at line 370 of file PortCore.h.
bool PortCore::readBlock | ( | ConnectionReader & | reader, |
void * | id, | ||
yarp::os::OutputStream * | os | ||
) |
Read a block of regular payload data.
reader | source of data |
id | opaque identifier of connection providing data |
os | stream to write error messages on |
Definition at line 1203 of file PortCore.cpp.
void PortCore::releaseProperties | ( | Property * | prop | ) |
Definition at line 2959 of file PortCore.cpp.
bool PortCore::removeCallbackLock | ( | ) |
Definition at line 3061 of file PortCore.cpp.
void PortCore::removeInput | ( | const std::string & | src, |
void * | id, | ||
yarp::os::OutputStream * | os | ||
) |
Remove an input connection.
src | the name of the source port |
id | an opaque tracker for the connection |
os | the output stream for messages about this operation |
Definition at line 1034 of file PortCore.cpp.
bool PortCore::removeIO | ( | const Route & | route, |
bool | synch = false |
||
) |
Remove any connection matching the supplied route.
route | the source/target/carrier associated with the connection |
synch | true if we should wait for removal to complete |
Definition at line 2965 of file PortCore.cpp.
void PortCore::removeOutput | ( | const std::string & | dest, |
void * | id, | ||
yarp::os::OutputStream * | os | ||
) |
Remove an output connection.
dest | the name of the target port |
id | an opaque tracker for the connection |
os | the output stream for messages about this operation |
Definition at line 1016 of file PortCore.cpp.
void PortCore::report | ( | const yarp::os::PortInfo & | info | ) |
Handle a port event (connection, disconnection, etc) Generate a description of the connections associated with the port.
info | the event description |
Definition at line 1189 of file PortCore.cpp.
void PortCore::reportUnit | ( | PortCoreUnit * | unit, |
bool | active | ||
) |
Called by a connection handler with active=true just after it is fully configured, and with active=false just before it shuts itself down.
unit | the connection handler starting up / shutting down |
active | true if the handler is starting up, false if shutting down |
Definition at line 2893 of file PortCore.cpp.
void PortCore::resetPortName | ( | const std::string & | str | ) |
Definition at line 2995 of file PortCore.cpp.
void PortCore::resetReportCallback | ( | ) |
Reset the callback to be notified of changes in port status.
Definition at line 1183 of file PortCore.cpp.
void PortCore::resume | ( | ) |
Undo an interrupt()
Definition at line 328 of file PortCore.cpp.
|
overridevirtual |
The body of the main thread.
Reimplemented from yarp::os::impl::ThreadImpl.
Definition at line 168 of file PortCore.cpp.
bool PortCore::send | ( | const yarp::os::PortWriter & | writer, |
yarp::os::PortReader * | reader = nullptr , |
||
const yarp::os::PortWriter * | callback = nullptr |
||
) |
Send a normal message.
writer | the message |
reader | where to direct replies |
callback | who to call onCompletion() on when message sent. |
Definition at line 1252 of file PortCore.cpp.
bool PortCore::sendHelper | ( | const yarp::os::PortWriter & | writer, |
int | mode, | ||
yarp::os::PortReader * | reader = nullptr , |
||
const yarp::os::PortWriter * | callback = nullptr |
||
) |
Send a message with a specific mode (normal or log).
writer | the message |
reader | where to direct replies |
callback | who to call onCompletion() on when message sent. |
Definition at line 1276 of file PortCore.cpp.
void PortCore::setAdminReadHandler | ( | yarp::os::PortReader & | reader | ) |
Set a callback for incoming administrative messages.
Definition at line 151 of file PortCore.cpp.
bool PortCore::setCallbackLock | ( | std::mutex * | mutex = nullptr | ) |
Definition at line 3048 of file PortCore.cpp.
bool PortCore::setCallbackLock | ( | yarp::os::Mutex * | mutex | ) |
Definition at line 3033 of file PortCore.cpp.
|
inline |
Definition at line 301 of file PortCore.h.
void PortCore::setControlRegistration | ( | bool | flag | ) |
Normally the port will unregister its name with the name server when shutting down.
This can be inhibited.
Definition at line 3005 of file PortCore.cpp.
void PortCore::setEnvelope | ( | const std::string & | envelope | ) |
Set some envelope information to pass along with a message without actually being part of the message.
envelope | the extra message to send |
Definition at line 1461 of file PortCore.cpp.
bool PortCore::setEnvelope | ( | yarp::os::PortWriter & | envelope | ) |
Set some extra meta data to pass along with the message.
Definition at line 1450 of file PortCore.cpp.
|
inline |
Configure the port to meet certain restrictions in behavior.
Definition at line 296 of file PortCore.h.
void PortCore::setName | ( | const std::string & | name | ) |
Set the name of this port.
name | the name of this port |
Definition at line 2970 of file PortCore.cpp.
void PortCore::setReadCreator | ( | yarp::os::PortReaderCreator & | creator | ) |
Set a callback for creating callbacks for incoming data.
Definition at line 159 of file PortCore.cpp.
void PortCore::setReadHandler | ( | yarp::os::PortReader & | reader | ) |
Set a callback for incoming data.
Definition at line 143 of file PortCore.cpp.
void PortCore::setReportCallback | ( | yarp::os::PortReport * | reporter | ) |
Set a callback to be notified of changes in port status.
Definition at line 1175 of file PortCore.cpp.
void PortCore::setTimeout | ( | float | timeout | ) |
Definition at line 3025 of file PortCore.cpp.
|
inline |
After sending a message, should we wait for it to be sent to all destinations before returning?
Definition at line 362 of file PortCore.h.
|
inline |
Upon being asked to send a message, should we wait for any existing message to be sent to all destinations?
Definition at line 353 of file PortCore.h.
|
overridevirtual |
Begin main thread.
Reimplemented from yarp::os::impl::ThreadImpl.
Definition at line 280 of file PortCore.cpp.
bool PortCore::tryLockCallback | ( | ) |
Definition at line 3091 of file PortCore.cpp.
void PortCore::unlockCallback | ( | ) |
Definition at line 3106 of file PortCore.cpp.