All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
ignition::transport::Publisher Class Reference

ignition/transport/Publisher.hh More...

#include <Publisher.hh>

Inheritance diagram for ignition::transport::Publisher:
Inheritance graph
[legend]

Public Member Functions

 Publisher ()=default
 Default constructor. More...
 
 Publisher (const std::string &_topic, const std::string &_addr, const std::string &_pUuid, const std::string &_nUuid, const AdvertiseOptions &_opts)
 Constructor. More...
 
 Publisher (const Publisher &_other)
 Copy constructor. More...
 
virtual ~Publisher ()=default
 Destructor. More...
 
std::string Addr () const
 Get the ZeroMQ address of the publisher. More...
 
virtual size_t MsgLength () const
 Get the total length of the message. More...
 
std::string NUuid () const
 Get the node UUID of the publisher. More...
 
bool operator!= (const Publisher &_pub) const
 Inequality operator. More...
 
Publisheroperator= (const Publisher &_other)
 Assignment operator. More...
 
bool operator== (const Publisher &_pub) const
 Equality operator. More...
 
virtual const AdvertiseOptionsOptions () const
 Get the advertised options. More...
 
virtual size_t Pack (char *_buffer) const
 Serialize the publisher. More...
 
std::string PUuid () const
 Get the process UUID of the publisher. More...
 
void SetAddr (const std::string &_addr)
 Set ZeroMQ address of the publisher. More...
 
void SetNUuid (const std::string &_nUuid)
 Set the node UUID of the publisher. More...
 
void SetOptions (const AdvertiseOptions &_opts)
 Set the advertised options. More...
 
void SetPUuid (const std::string &_pUuid)
 Set the process UUID of the publisher. More...
 
void SetTopic (const std::string &_topic)
 Set the topic name published by this publisher. More...
 
std::string Topic () const
 Get the topic published by this publisher. More...
 
virtual size_t Unpack (const char *_buffer)
 Unserialize the publisher. More...
 

Protected Member Functions

size_t MsgLengthInternal () const
 Get the total length of the message without counting the advertised options. More...
 
size_t PackInternal (char *_buffer) const
 Serialize all fields except the advertise options. More...
 
size_t UnpackInternal (const char *_buffer)
 Unserialize all fields except the advertise options. More...
 

Protected Attributes

std::string addr
 ZeroMQ address of the publisher. More...
 
std::string nUuid
 Node UUID of the publisher. More...
 
std::string pUuid
 Process UUID of the publisher. More...
 
std::string topic
 Topic name. More...
 

Friends

std::ostream & operator<< (std::ostream &_out, const Publisher &_msg)
 Stream insertion operator. More...
 

Detailed Description

ignition/transport/Publisher.hh

This class stores all the information about a publisher. It stores the topic name that publishes, addresses, UUIDs, scope, etc.

Constructor & Destructor Documentation

ignition::transport::Publisher::Publisher ( )
default

Default constructor.

ignition::transport::Publisher::Publisher ( const std::string &  _topic,
const std::string &  _addr,
const std::string &  _pUuid,
const std::string &  _nUuid,
const AdvertiseOptions _opts 
)

Constructor.

Parameters
[in]_topicTopic name.
[in]_addrZeroMQ address.
[in]_pUuidProcess UUID.
[in]_nUUIDnode UUID.
[in]_optsThe advertise options.
ignition::transport::Publisher::Publisher ( const Publisher _other)

Copy constructor.

Parameters
[in]_otherOther Publisher object.
virtual ignition::transport::Publisher::~Publisher ( )
virtualdefault

Destructor.

Member Function Documentation

std::string ignition::transport::Publisher::Addr ( ) const

Get the ZeroMQ address of the publisher.

Returns
ZeroMQ address.
See Also
SetAddr.
virtual size_t ignition::transport::Publisher::MsgLength ( ) const
virtual

Get the total length of the message.

Returns
Return the length of the message in bytes.

Reimplemented in ignition::transport::ServicePublisher, and ignition::transport::MessagePublisher.

size_t ignition::transport::Publisher::MsgLengthInternal ( ) const
protected

Get the total length of the message without counting the advertised options.

This is useful when [un]serializing a derived publisher because we want to ignore the advertised options in the base publisher.

Returns
Return the length of the message in bytes.
std::string ignition::transport::Publisher::NUuid ( ) const

Get the node UUID of the publisher.

Returns
Node UUID.
See Also
SetNUuid.
bool ignition::transport::Publisher::operator!= ( const Publisher _pub) const

Inequality operator.

This function checks if the given publisher does not have identical Topic, Addr, PUuid, NUuid, and Scope strings to this object.

Parameters
[in]_pubThe publisher to compare against.
Returns
True if this object does not match the provided object.
Publisher& ignition::transport::Publisher::operator= ( const Publisher _other)

Assignment operator.

Parameters
[in]_otherThe other Publisher.
Returns
A reference to this instance.
bool ignition::transport::Publisher::operator== ( const Publisher _pub) const

Equality operator.

This function checks if the given publisher has identical Topic, Addr, PUuid, NUuid, and Scope strings to this object.

Parameters
[in]_pubThe publisher to compare against.
Returns
True if this object matches the provided object.
virtual const AdvertiseOptions& ignition::transport::Publisher::Options ( ) const
virtual

Get the advertised options.

Returns
The advertised options.
See Also
SetOptions.

Reimplemented in ignition::transport::ServicePublisher, and ignition::transport::MessagePublisher.

virtual size_t ignition::transport::Publisher::Pack ( char *  _buffer) const
virtual

Serialize the publisher.

The caller has ownership of the buffer and is responsible for its [de]allocation.

Parameters
[out]_bufferDestination buffer in which the publisher will be serialized.
Returns
Number of bytes serialized.

Reimplemented in ignition::transport::ServicePublisher, and ignition::transport::MessagePublisher.

size_t ignition::transport::Publisher::PackInternal ( char *  _buffer) const
protected

Serialize all fields except the advertise options.

This is useful when we are serializing a derived class that contains its own advertise options.

std::string ignition::transport::Publisher::PUuid ( ) const

Get the process UUID of the publisher.

return Process UUID.

See Also
SetPUuid.
void ignition::transport::Publisher::SetAddr ( const std::string &  _addr)

Set ZeroMQ address of the publisher.

Parameters
[in]_addrNew address.
See Also
Addr.
void ignition::transport::Publisher::SetNUuid ( const std::string &  _nUuid)

Set the node UUID of the publisher.

Parameters
[in]_nUuidNew node UUID.
See Also
NUuid.
void ignition::transport::Publisher::SetOptions ( const AdvertiseOptions _opts)

Set the advertised options.

Parameters
[in]_optsNew advertised options.
See Also
Options.
void ignition::transport::Publisher::SetPUuid ( const std::string &  _pUuid)

Set the process UUID of the publisher.

Parameters
[in]_pUuidNew process UUID.
See Also
PUuid.
void ignition::transport::Publisher::SetTopic ( const std::string &  _topic)

Set the topic name published by this publisher.

Parameters
[in]_topicNew topic name.
See Also
Topic.
std::string ignition::transport::Publisher::Topic ( ) const

Get the topic published by this publisher.

Returns
Topic name.
See Also
SetTopic.
virtual size_t ignition::transport::Publisher::Unpack ( const char *  _buffer)
virtual

Unserialize the publisher.

Parameters
[in]_bufferInput buffer with the data to be unserialized.

Reimplemented in ignition::transport::ServicePublisher, and ignition::transport::MessagePublisher.

size_t ignition::transport::Publisher::UnpackInternal ( const char *  _buffer)
protected

Unserialize all fields except the advertise options.

This is useful when we are unserializing a derived class that contains its own advertise options.

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  _out,
const Publisher _msg 
)
friend

Stream insertion operator.

Parameters
[out]_outThe output stream.
[in]_msgPublisher to write to the stream.

Member Data Documentation

std::string ignition::transport::Publisher::addr
protected

ZeroMQ address of the publisher.

std::string ignition::transport::Publisher::nUuid
protected

Node UUID of the publisher.

std::string ignition::transport::Publisher::pUuid
protected

Process UUID of the publisher.

std::string ignition::transport::Publisher::topic
protected

Topic name.


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