include
ros
single_subscriber_publisher.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2009, Willow Garage, Inc.
3
*
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions are met:
6
* * Redistributions of source code must retain the above copyright notice,
7
* this list of conditions and the following disclaimer.
8
* * Redistributions in binary form must reproduce the above copyright
9
* notice, this list of conditions and the following disclaimer in the
10
* documentation and/or other materials provided with the distribution.
11
* * Neither the names of Stanford University or Willow Garage, Inc. nor the names of its
12
* contributors may be used to endorse or promote products derived from
13
* this software without specific prior written permission.
14
*
15
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25
* POSSIBILITY OF SUCH DAMAGE.
26
*/
27
28
#ifndef ROSCPP_SINGLE_SUBSCRIBER_PUBLISHER_H
29
#define ROSCPP_SINGLE_SUBSCRIBER_PUBLISHER_H
30
31
#include "
ros/forwards.h
"
32
#include "
ros/serialization.h
"
33
#include "common.h"
34
35
#include <boost/utility.hpp>
36
37
namespace
ros
38
{
39
43
class
ROSCPP_DECL
SingleSubscriberPublisher
:
public
boost::noncopyable
44
{
45
public
:
46
SingleSubscriberPublisher
(
const
SubscriberLinkPtr
& link);
47
~
SingleSubscriberPublisher
();
48
57
template
<
class
M>
58
void
publish
(
const
boost::shared_ptr<M const>
& message)
const
59
{
60
publish(*message);
61
}
62
71
template
<
class
M>
72
void
publish
(
const
boost::shared_ptr<M>
& message)
const
73
{
74
publish(*message);
75
}
76
80
template
<
class
M>
81
void
publish
(
const
M& message)
const
82
{
83
using namespace
serialization;
84
SerializedMessage
m =
serializeMessage
(message);
85
publish(m);
86
}
87
91
std::string getTopic()
const
;
92
96
std::string getSubscriberName()
const
;
97
98
private
:
99
void
publish(
const
SerializedMessage
& m)
const
;
100
101
SubscriberLinkPtr
link_
;
102
};
103
104
}
105
106
#endif // ROSCPP_PUBLISHER_HANDLE_H
107
ros::SingleSubscriberPublisher::publish
void publish(const boost::shared_ptr< M > &message) const
Publish a message on the topic associated with this Publisher.
Definition:
single_subscriber_publisher.h:72
forwards.h
ros::SingleSubscriberPublisher
Allows publication of a message to a single subscriber. Only available inside subscriber connection c...
Definition:
single_subscriber_publisher.h:43
ros::SingleSubscriberPublisher::publish
void publish(const M &message) const
Publish a message on the topic associated with this Publisher.
Definition:
single_subscriber_publisher.h:81
boost::shared_ptr< SubscriberLink >
serialization.h
ros::SerializedMessage
serializeMessage
SerializedMessage serializeMessage(const M &message)
ros
ros::SingleSubscriberPublisher::publish
void publish(const boost::shared_ptr< M const > &message) const
Publish a message on the topic associated with this Publisher.
Definition:
single_subscriber_publisher.h:58
ros::SingleSubscriberPublisher::link_
SubscriberLinkPtr link_
Definition:
single_subscriber_publisher.h:101
roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim, Dirk Thomas
autogenerated on Mon Feb 28 2022 23:33:27