include
ros
intraprocess_subscriber_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_SUBSCRIBER_LINK_H
29
#define ROSCPP_INTRAPROCESS_SUBSCRIBER_LINK_H
30
#include "
subscriber_link.h
"
31
#include "common.h"
32
33
#include <boost/thread/recursive_mutex.hpp>
34
35
namespace
ros
36
{
37
38
class
IntraProcessPublisherLink;
39
typedef
boost::shared_ptr<IntraProcessPublisherLink>
IntraProcessPublisherLinkPtr
;
40
44
class
ROSCPP_DECL
IntraProcessSubscriberLink
:
public
SubscriberLink
45
{
46
public
:
47
IntraProcessSubscriberLink
(
const
PublicationPtr
& parent);
48
virtual
~
IntraProcessSubscriberLink
();
49
50
void
setSubscriber(
const
IntraProcessPublisherLinkPtr
& subscriber);
51
bool
isLatching();
52
53
virtual
void
enqueueMessage(
const
SerializedMessage
& m,
bool
ser,
bool
nocopy);
54
virtual
void
drop();
55
virtual
std::string getTransportType();
56
virtual
std::string getTransportInfo();
57
virtual
bool
isIntraprocess
() {
return
true
; }
58
virtual
void
getPublishTypes(
bool
& ser,
bool
& nocopy,
const
std::type_info& ti);
59
60
private
:
61
IntraProcessPublisherLinkPtr
subscriber_
;
62
bool
dropped_
;
63
boost::recursive_mutex
drop_mutex_
;
64
};
65
typedef
boost::shared_ptr<IntraProcessSubscriberLink>
IntraProcessSubscriberLinkPtr
;
66
67
}
// namespace ros
68
69
#endif // ROSCPP_INTRAPROCESS_SUBSCRIBER_LINK_H
ros::SerializedMessage
boost::shared_ptr< IntraProcessPublisherLink >
ros
ros::IntraProcessSubscriberLink::dropped_
bool dropped_
Definition:
intraprocess_subscriber_link.h:62
ros::SubscriberLink
Definition:
subscriber_link.h:50
ros::IntraProcessPublisherLinkPtr
boost::shared_ptr< IntraProcessPublisherLink > IntraProcessPublisherLinkPtr
Definition:
intraprocess_publisher_link.h:73
ros::IntraProcessSubscriberLink::subscriber_
IntraProcessPublisherLinkPtr subscriber_
Definition:
intraprocess_subscriber_link.h:61
subscriber_link.h
ros::IntraProcessSubscriberLink::isIntraprocess
virtual bool isIntraprocess()
Definition:
intraprocess_subscriber_link.h:57
ros::IntraProcessSubscriberLink::drop_mutex_
boost::recursive_mutex drop_mutex_
Definition:
intraprocess_subscriber_link.h:63
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