include
ros
intraprocess_publisher_link.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2008, Morgan Quigley and 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_INTRAPROCESS_PUBLISHER_LINK_H
29
#define ROSCPP_INTRAPROCESS_PUBLISHER_LINK_H
30
31
#include "
publisher_link.h
"
32
#include "common.h"
33
34
#include <boost/thread/recursive_mutex.hpp>
35
36
namespace
ros
37
{
38
class
Subscription;
39
typedef
boost::shared_ptr<Subscription>
SubscriptionPtr
;
40
typedef
boost::weak_ptr<Subscription>
SubscriptionWPtr
;
41
42
class
IntraProcessSubscriberLink
;
43
typedef
boost::shared_ptr<IntraProcessSubscriberLink>
IntraProcessSubscriberLinkPtr
;
44
49
class
ROSCPP_DECL
IntraProcessPublisherLink
:
public
PublisherLink
50
{
51
public
:
52
IntraProcessPublisherLink
(
const
SubscriptionPtr
& parent,
const
std::string& xmlrpc_uri,
const
TransportHints
& transport_hints);
53
virtual
~
IntraProcessPublisherLink
();
54
55
void
setPublisher(
const
IntraProcessSubscriberLinkPtr
& publisher);
56
57
virtual
std::string getTransportType();
58
virtual
std::string getTransportInfo();
59
virtual
void
drop();
60
64
virtual
void
handleMessage(
const
SerializedMessage
& m,
bool
ser,
bool
nocopy);
65
66
void
getPublishTypes(
bool
& ser,
bool
& nocopy,
const
std::type_info& ti);
67
68
private
:
69
IntraProcessSubscriberLinkPtr
publisher_
;
70
bool
dropped_
;
71
boost::recursive_mutex
drop_mutex_
;
72
};
73
typedef
boost::shared_ptr<IntraProcessPublisherLink>
IntraProcessPublisherLinkPtr
;
74
75
}
// namespace ros
76
77
#endif // ROSCPP_INTRAPROCESS_PUBLISHER_LINK_H
78
79
80
ros::SerializedMessage
boost::shared_ptr
ros
ros::SubscriptionPtr
boost::shared_ptr< Subscription > SubscriptionPtr
Definition:
forwards.h:72
ros::TransportHints
Provides a way of specifying network transport hints to ros::NodeHandle::subscribe() and someday ros:...
Definition:
transport_hints.h:54
ros::IntraProcessPublisherLink
Handles a connection to a single publisher on a given topic. Receives messages from a publisher and h...
Definition:
intraprocess_publisher_link.h:49
ros::IntraProcessPublisherLink::publisher_
IntraProcessSubscriberLinkPtr publisher_
Definition:
intraprocess_publisher_link.h:69
ros::IntraProcessPublisherLink::drop_mutex_
boost::recursive_mutex drop_mutex_
Definition:
intraprocess_publisher_link.h:71
ros::PublisherLink
Handles a connection to a single publisher on a given topic. Receives messages from a publisher and h...
Definition:
publisher_link.h:56
ros::IntraProcessPublisherLinkPtr
boost::shared_ptr< IntraProcessPublisherLink > IntraProcessPublisherLinkPtr
Definition:
intraprocess_publisher_link.h:73
ros::SubscriptionWPtr
boost::weak_ptr< Subscription > SubscriptionWPtr
Definition:
forwards.h:74
ros::IntraProcessPublisherLink::dropped_
bool dropped_
Definition:
intraprocess_publisher_link.h:70
publisher_link.h
ros::IntraProcessSubscriberLink
SubscriberLink handles broadcasting messages to a single subscriber on a single topic.
Definition:
intraprocess_subscriber_link.h:44
ros::IntraProcessSubscriberLinkPtr
boost::shared_ptr< IntraProcessSubscriberLink > IntraProcessSubscriberLinkPtr
Definition:
intraprocess_publisher_link.h:42
roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim, Dirk Thomas
, Jacob Perron
autogenerated on Sat Sep 14 2024 02:59:35