A port specialized for publishing data of a constant type on a topic. More...
#include <yarp/os/Publisher.h>
Public Member Functions | |
Publisher (const std::string &name="") | |
Constructor. More... | |
virtual | ~Publisher () |
Destructor. More... | |
bool | topic (const std::string &name) |
Set topic to publish to. More... | |
bool | open (const std::string &name) override |
Start port operation, with a specific name, with automatically-chosen network parameters. More... | |
bool | open (const Contact &contact, bool registerName=true) override |
Start port operation with user-chosen network parameters. More... | |
void | close () override |
Stop port activity. More... | |
void | interrupt () override |
Interrupt any current reads or writes attached to the port. More... | |
void | resume () override |
Put the port back in an operative state after interrupt() has been called. More... | |
void | setReader (PortReader &reader) override |
Set an external reader for port data. More... | |
T & | prepare () |
Access the object which will be transmitted by the next call to yarp::os::Publisher::write. More... | |
bool | unprepare () |
Give the last prepared object back to YARP without writing it. More... | |
void | write (bool forceStrict=false) |
Write the current object being returned by Publisher::prepare. More... | |
void | waitForWrite () |
Wait for any pending writes to complete. More... | |
virtual int | getPendingReads () |
Port & | asPort () override |
Get the concrete Port being used for communication. More... | |
const Port & | asPort () const override |
Get the concrete Port being used for communication, const version. More... | |
bool | write (const PortWriter &writer, const PortWriter *callback=nullptr) const override |
bool | write (const PortWriter &writer, PortReader &reader, const PortWriter *callback=nullptr) const override |
Public Member Functions inherited from yarp::os::AbstractContactable | |
bool | addOutput (const std::string &name) override |
Add an output connection to the specified port. More... | |
bool | addOutput (const std::string &name, const std::string &carrier) override |
Add an output connection to the specified port, using a specified carrier. More... | |
bool | addOutput (const Contact &contact) override |
Add an output connection to the specified port, using specified network parameters. More... | |
Contact | where () const override |
Returns information about how this port can be reached. More... | |
std::string | getName () const override |
Get name of port. More... | |
bool | setEnvelope (PortWriter &envelope) override |
Set an envelope (e.g., a timestamp) to the next message which will be sent. More... | |
bool | getEnvelope (PortReader &envelope) override |
Get the envelope information (e.g., a timestamp) from the last message received on the port. More... | |
int | getInputCount () override |
Determine how many connections are arriving into this port. More... | |
int | getOutputCount () override |
Determine how many output connections this port has. More... | |
void | getReport (PortReport &reporter) override |
Get information on the state of the port - connections etc. More... | |
void | setReporter (PortReport &reporter) override |
Set a callback to be called upon any future connections and disconnections to/from the port. More... | |
void | resetReporter () override |
Remove the callback which is called upon any future connections and disconnections to/from the port. More... | |
bool | isWriting () override |
Report whether the port is currently writing data. More... | |
void | setAdminReader (PortReader &reader) override |
Set an external reader for unrecognized administrative port messages. More... | |
void | setInputMode (bool expectInput) override |
Configure the port to allow or forbid inputs. More... | |
void | setOutputMode (bool expectOutput) override |
Configure the port to allow or forbid outputs. More... | |
void | setRpcMode (bool expectRpc) override |
Configure the port to be RPC only. More... | |
Type | getType () override |
Get the type of data the port has committed to send/receive. More... | |
void | promiseType (const Type &typ) override |
Commit the port to a particular type of data. More... | |
Property * | acquireProperties (bool readOnly) override |
Access unstructured port properties. More... | |
void | releaseProperties (Property *prop) override |
End access unstructured port properties. More... | |
bool | write (const PortWriter &writer, const PortWriter *callback=nullptr) const override |
Write an object to the port. More... | |
bool | write (const PortWriter &writer, PortReader &reader, const PortWriter *callback=nullptr) const override |
Write an object to the port, then expect one back. More... | |
bool | read (PortReader &reader, bool willReply=false) override |
Read an object from the port. More... | |
bool | reply (PortWriter &writer) override |
Send an object as a reply to an object read from the port. More... | |
bool | replyAndDrop (PortWriter &writer) override |
Same as reply(), but closes connection after reply. More... | |
void | includeNodeInName (bool flag) override |
Choose whether to prepend a node name (if one is available) to the port's name. More... | |
bool | setCallbackLock (yarp::os::Mutex *mutex) override |
Add a lock to use when invoking callbacks. More... | |
bool | setCallbackLock (std::mutex *mutex=nullptr) override |
Add a lock to use when invoking callbacks. More... | |
bool | removeCallbackLock () override |
Remove a lock on callbacks added with setCallbackLock() More... | |
bool | lockCallback () override |
Lock callbacks until unlockCallback() is called. More... | |
bool | tryLockCallback () override |
Try to lock callbacks until unlockCallback() is called. More... | |
void | unlockCallback () override |
Unlock callbacks. More... | |
Public Member Functions inherited from yarp::os::Contactable | |
virtual | ~Contactable () |
Destructor. 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... | |
A port specialized for publishing data of a constant type on a topic.
Definition at line 25 of file Publisher.h.
|
inline |
Constructor.
name | optional topic name to publish to. |
Definition at line 37 of file Publisher.h.
|
inlinevirtual |
Destructor.
Definition at line 55 of file Publisher.h.
|
inlineoverridevirtual |
Get the concrete Port being used for communication, const version.
Implements yarp::os::AbstractContactable.
Definition at line 177 of file Publisher.h.
|
inlineoverridevirtual |
Get the concrete Port being used for communication.
Implements yarp::os::AbstractContactable.
Definition at line 172 of file Publisher.h.
|
inlineoverridevirtual |
Stop port activity.
Reimplemented from yarp::os::AbstractContactable.
Definition at line 88 of file Publisher.h.
|
inlinevirtual |
Definition at line 165 of file Publisher.h.
|
inlineoverridevirtual |
Interrupt any current reads or writes attached to the port.
This is useful prior to calling close(), if there are multiple threads operating on the port. Any reads or writes after the call to interrupt() will fail - unless resume() is called.
Reimplemented from yarp::os::AbstractContactable.
Definition at line 94 of file Publisher.h.
|
inlineoverridevirtual |
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).
Reimplemented from yarp::os::AbstractContactable.
Definition at line 81 of file Publisher.h.
|
inlineoverridevirtual |
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.
Reimplemented from yarp::os::AbstractContactable.
Definition at line 74 of file Publisher.h.
|
inline |
Access the object which will be transmitted by the next call to yarp::os::Publisher::write.
The object can safely be modified by the user of this class, to prepare it. Extra objects will be created or reused as necessary depending on the state of communication with the output(s) of the port. Be careful! If prepare() gives you a reused object, it is up to the user to clear the object if that is appropriate. If you are sending yarp::os::Bottle objects, you may want to call yarp::os::Bottle::clear(), for example. YARP doesn't clear objects for you, since there are many cases in which overwriting old data is suffient and reallocation of memory would be unnecessary and inefficient.
Definition at line 127 of file Publisher.h.
|
inlineoverridevirtual |
Put the port back in an operative state after interrupt() has been called.
Reimplemented from yarp::os::AbstractContactable.
Definition at line 100 of file Publisher.h.
|
inlineoverridevirtual |
Set an external reader for port data.
reader | the external reader to use |
Reimplemented from yarp::os::AbstractContactable.
Definition at line 106 of file Publisher.h.
|
inline |
Set topic to publish to.
name | topic name |
Definition at line 67 of file Publisher.h.
|
inline |
Give the last prepared object back to YARP without writing it.
Definition at line 137 of file Publisher.h.
|
inline |
Wait for any pending writes to complete.
Definition at line 160 of file Publisher.h.
|
inline |
Write the current object being returned by Publisher::prepare.
That object should no longer be touched by the user of this class – it is now owned by the communications system. The BufferedPort::prepare method should be called again to get a fresh (or reused) object guaranteed to be not in use by the communications system.
forceStrict | If this is true, wait until any previous sends are complete. If false, the current object will not be sent on connections that are currently busy. |
Definition at line 152 of file Publisher.h.
|
override |
Definition at line 123 of file AbstractContactable.cpp.
|
override |
Definition at line 127 of file AbstractContactable.cpp.