Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
ros::Publisher Class Reference

Manages an advertisement on a specific topic. More...

#include <publisher.h>

Classes

class  Impl
 

Public Member Functions

boost::function< void(const SubscriberLinkPtr &)> getLastMessageCallback ()
 
uint32_t getNumSubscribers () const
 Returns the number of subscribers that are currently connected to this Publisher. More...
 
std::string getTopic () const
 Returns the topic that this Publisher will publish on. More...
 
bool isLatched () const
 Returns whether or not this topic is latched. More...
 
 operator void * () const
 
bool operator!= (const Publisher &rhs) const
 
bool operator< (const Publisher &rhs) const
 
Publisheroperator= (const Publisher &other)=default
 
bool operator== (const Publisher &rhs) const
 
template<typename M >
void publish (const boost::shared_ptr< M > &message) const
 Publish a message on the topic associated with this Publisher. More...
 
template<typename M >
void publish (const M &message) const
 Publish a message on the topic associated with this Publisher. More...
 
 Publisher ()
 
 Publisher (const Publisher &rhs)
 
void shutdown ()
 Shutdown the advertisement associated with this Publisher. More...
 
 ~Publisher ()
 

Private Types

typedef boost::shared_ptr< ImplImplPtr
 
typedef boost::weak_ptr< ImplImplWPtr
 

Private Member Functions

void incrementSequence () const
 
void publish (const boost::function< SerializedMessage(void)> &serfunc, SerializedMessage &m) const
 
 Publisher (const std::string &topic, const std::string &md5sum, const std::string &datatype, bool latch, const NodeHandle &node_handle, const SubscriberCallbacksPtr &callbacks)
 

Private Attributes

ImplPtr impl_
 

Friends

class NodeHandle
 
class NodeHandleBackingCollection
 

Detailed Description

Manages an advertisement on a specific topic.

A Publisher should always be created through a call to NodeHandle::advertise(), or copied from one that was. Once all copies of a specific Publisher go out of scope, any subscriber status callbacks associated with that handle will stop being called. Once all Publishers for a given topic go out of scope the topic will be unadvertised.

Definition at line 48 of file publisher.h.

Member Typedef Documentation

◆ ImplPtr

Definition at line 206 of file publisher.h.

◆ ImplWPtr

typedef boost::weak_ptr<Impl> ros::Publisher::ImplWPtr
private

Definition at line 207 of file publisher.h.

Constructor & Destructor Documentation

◆ Publisher() [1/3]

ros::Publisher::Publisher ( )
inline

Definition at line 51 of file publisher.h.

◆ Publisher() [2/3]

ros::Publisher::Publisher ( const Publisher rhs)

Definition at line 78 of file publisher.cpp.

◆ ~Publisher()

ros::Publisher::~Publisher ( )

Definition at line 83 of file publisher.cpp.

◆ Publisher() [3/3]

ros::Publisher::Publisher ( const std::string &  topic,
const std::string &  md5sum,
const std::string &  datatype,
bool  latch,
const NodeHandle node_handle,
const SubscriberCallbacksPtr callbacks 
)
private

Definition at line 67 of file publisher.cpp.

Member Function Documentation

◆ getLastMessageCallback()

boost::function<void(const SubscriberLinkPtr &)> ros::Publisher::getLastMessageCallback ( )
inline

Definition at line 173 of file publisher.h.

◆ getNumSubscribers()

uint32_t ros::Publisher::getNumSubscribers ( ) const

Returns the number of subscribers that are currently connected to this Publisher.

Definition at line 136 of file publisher.cpp.

◆ getTopic()

std::string ros::Publisher::getTopic ( ) const

Returns the topic that this Publisher will publish on.

Definition at line 126 of file publisher.cpp.

◆ incrementSequence()

void ros::Publisher::incrementSequence ( ) const
private

Definition at line 109 of file publisher.cpp.

◆ isLatched()

bool ros::Publisher::isLatched ( ) const

Returns whether or not this topic is latched.

Definition at line 146 of file publisher.cpp.

◆ operator void *()

ros::Publisher::operator void * ( ) const
inline

Definition at line 156 of file publisher.h.

◆ operator!=()

bool ros::Publisher::operator!= ( const Publisher rhs) const
inline

Definition at line 168 of file publisher.h.

◆ operator<()

bool ros::Publisher::operator< ( const Publisher rhs) const
inline

Definition at line 158 of file publisher.h.

◆ operator=()

Publisher& ros::Publisher::operator= ( const Publisher other)
default

◆ operator==()

bool ros::Publisher::operator== ( const Publisher rhs) const
inline

Definition at line 163 of file publisher.h.

◆ publish() [1/3]

void ros::Publisher::publish ( const boost::function< SerializedMessage(void)> &  serfunc,
SerializedMessage m 
) const
private

Definition at line 87 of file publisher.cpp.

◆ publish() [2/3]

template<typename M >
void ros::Publisher::publish ( const boost::shared_ptr< M > &  message) const
inline

Publish a message on the topic associated with this Publisher.

This version of publish will allow fast intra-process message-passing in the future, so you may not mutate the message after it has been passed in here (since it will be passed directly into a callback function)

Definition at line 65 of file publisher.h.

◆ publish() [3/3]

template<typename M >
void ros::Publisher::publish ( const M &  message) const
inline

Publish a message on the topic associated with this Publisher.

Definition at line 100 of file publisher.h.

◆ shutdown()

void ros::Publisher::shutdown ( )

Shutdown the advertisement associated with this Publisher.

This method usually does not need to be explicitly called, as automatic shutdown happens when all copies of this Publisher go out of scope

This method overrides the automatic reference counted unadvertise, and does so immediately.

Note
Note that if multiple advertisements were made through NodeHandle::advertise(), this will only remove the one associated with this Publisher

Definition at line 117 of file publisher.cpp.

Friends And Related Function Documentation

◆ NodeHandle

friend class NodeHandle
friend

Definition at line 211 of file publisher.h.

◆ NodeHandleBackingCollection

friend class NodeHandleBackingCollection
friend

Definition at line 212 of file publisher.h.

Member Data Documentation

◆ impl_

ImplPtr ros::Publisher::impl_
private

Definition at line 209 of file publisher.h.


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


roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim, Dirk Thomas , Jacob Perron
autogenerated on Thu Nov 23 2023 04:01:44