parameter_adapter.h
Go to the documentation of this file.
1 #include "sick_scan/sick_scan_base.h" /* Base definitions included in all header files, added by add_sick_scan_base_header.py. Do not edit this line. */
2 /*
3  * Copyright (C) 2010, Willow Garage, Inc.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  * * Redistributions of source code must retain the above copyright notice,
8  * this list of conditions and the following disclaimer.
9  * * Redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution.
12  * * Neither the names of Stanford University or Willow Garage, Inc. nor the names of its
13  * contributors may be used to endorse or promote products derived from
14  * this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
20  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26  * POSSIBILITY OF SUCH DAMAGE.
27  */
28 
29 #ifndef ROSCPP_PARAMETER_ADAPTER_H
30 #define ROSCPP_PARAMETER_ADAPTER_H
31 
32 #include "ros/forwards.h"
33 #include "ros/message_event.h"
34 #include <ros/static_assert.h>
35 
36 //#include <boost/type_traits/add_const.hpp>
37 //#include <boost/type_traits/remove_const.hpp>
38 //#include <boost/type_traits/remove_reference.hpp>
39 
40 namespace roswrap
41 {
42 
69 template<typename M>
71 {
74  typedef M Parameter;
75  static const bool is_const = true;
76 
77  static Parameter getParameter(const Event& event)
78  {
79  return *event.getMessage();
80  }
81 };
82 
83 template<typename M>
84 struct ParameterAdapter<const std::shared_ptr<M const>& >
85 {
88  typedef const std::shared_ptr<Message const> Parameter;
89  static const bool is_const = true;
90 
91  static Parameter getParameter(const Event& event)
92  {
93  return event.getMessage();
94  }
95 };
96 
97 template<typename M>
98 struct ParameterAdapter<const std::shared_ptr<M>& >
99 {
102  typedef std::shared_ptr<Message> Parameter;
103  static const bool is_const = false;
104 
105  static Parameter getParameter(const Event& event)
106  {
107  return ros::MessageEvent<Message>(event).getMessage();
108  }
109 };
110 
111 template<typename M>
113 {
116  typedef const M& Parameter;
117  static const bool is_const = true;
118 
119  static Parameter getParameter(const Event& event)
120  {
121  return *event.getMessage();
122  }
123 };
124 
125 template<typename M>
126 struct ParameterAdapter<std::shared_ptr<M const> >
127 {
130  typedef std::shared_ptr<Message const> Parameter;
131  static const bool is_const = true;
132 
133  static Parameter getParameter(const Event& event)
134  {
135  return event.getMessage();
136  }
137 };
138 
139 template<typename M>
140 struct ParameterAdapter<std::shared_ptr<M> >
141 {
144  typedef std::shared_ptr<Message> Parameter;
145  static const bool is_const = false;
146 
147  static Parameter getParameter(const Event& event)
148  {
149  return ros::MessageEvent<Message>(event).getMessage();
150  }
151 };
152 
153 template<typename M>
155 {
159  static const bool is_const = true;
160 
161  static Parameter getParameter(const Event& event)
162  {
163  return event;
164  }
165 };
166 
167 template<typename M>
169 {
173  static const bool is_const = false;
174 
175  static Parameter getParameter(const Event& event)
176  {
177  return ros::MessageEvent<Message>(event);
178  }
179 };
180 
181 }
182 
183 #endif // ROSCPP_PARAMETER_ADAPTER_H
roswrap::ParameterAdapter< const ros::MessageEvent< M const > & >::Message
std::remove_reference< typename std::remove_const< M >::type >::type Message
Definition: parameter_adapter.h:156
roswrap::ParameterAdapter< std::shared_ptr< M const > >::Event
ros::MessageEvent< Message const > Event
Definition: parameter_adapter.h:129
roswrap::ParameterAdapter< const ros::MessageEvent< M > & >::Parameter
ros::MessageEvent< Message > Parameter
Definition: parameter_adapter.h:172
roswrap::ParameterAdapter< std::shared_ptr< M const > >::Parameter
std::shared_ptr< Message const > Parameter
Definition: parameter_adapter.h:130
const
#define const
Definition: getopt.c:38
roswrap::ParameterAdapter< std::shared_ptr< M const > >::Message
std::remove_reference< typename std::remove_const< M >::type >::type Message
Definition: parameter_adapter.h:128
ros
test_server.type
type
Definition: test_server.py:210
roswrap::ParameterAdapter< const std::shared_ptr< M > & >::getParameter
static Parameter getParameter(const Event &event)
Definition: parameter_adapter.h:105
roswrap::ParameterAdapter::is_const
static const bool is_const
Definition: parameter_adapter.h:75
roswrap::ParameterAdapter< std::shared_ptr< M > >::Message
std::remove_reference< typename std::remove_const< M >::type >::type Message
Definition: parameter_adapter.h:142
roswrap::ParameterAdapter< const std::shared_ptr< M const > & >::getParameter
static Parameter getParameter(const Event &event)
Definition: parameter_adapter.h:91
roswrap::ParameterAdapter< const std::shared_ptr< M const > & >::Message
std::remove_reference< typename std::remove_const< M >::type >::type Message
Definition: parameter_adapter.h:86
roswrap::ParameterAdapter< const M & >::Event
ros::MessageEvent< Message const > Event
Definition: parameter_adapter.h:115
roswrap::ParameterAdapter< const ros::MessageEvent< M const > & >::Parameter
const typedef ros::MessageEvent< Message const > & Parameter
Definition: parameter_adapter.h:158
roswrap::ParameterAdapter< std::shared_ptr< M > >::Event
ros::MessageEvent< Message const > Event
Definition: parameter_adapter.h:143
roswrap::ParameterAdapter< const ros::MessageEvent< M > & >::Message
std::remove_reference< typename std::remove_const< M >::type >::type Message
Definition: parameter_adapter.h:170
roswrap::ParameterAdapter::getParameter
static Parameter getParameter(const Event &event)
Definition: parameter_adapter.h:77
roswrap::ParameterAdapter
Generally not for outside use. Adapts a function parameter type into the message type,...
Definition: parameter_adapter.h:70
roswrap::ParameterAdapter< const ros::MessageEvent< M > & >::Event
ros::MessageEvent< Message const > Event
Definition: parameter_adapter.h:171
roswrap::ParameterAdapter< const std::shared_ptr< M > & >::Message
std::remove_reference< typename std::remove_const< M >::type >::type Message
Definition: parameter_adapter.h:100
roswrap
Definition: param_modi.cpp:41
roswrap::ParameterAdapter< const ros::MessageEvent< M const > & >::Event
ros::MessageEvent< Message const > Event
Definition: parameter_adapter.h:157
roswrap::ParameterAdapter< const std::shared_ptr< M const > & >::Parameter
const typedef std::shared_ptr< Message const > Parameter
Definition: parameter_adapter.h:88
roswrap::ParameterAdapter< std::shared_ptr< M > >::getParameter
static Parameter getParameter(const Event &event)
Definition: parameter_adapter.h:147
roswrap::ParameterAdapter< std::shared_ptr< M const > >::getParameter
static Parameter getParameter(const Event &event)
Definition: parameter_adapter.h:133
std
roswrap::MessageEvent
Event type for subscriptions, const ros::MessageEvent<M const>& can be used in your callback instead ...
Definition: message_event.h:70
roswrap::ParameterAdapter< const M & >::getParameter
static Parameter getParameter(const Event &event)
Definition: parameter_adapter.h:119
roswrap::ParameterAdapter< const ros::MessageEvent< M const > & >::getParameter
static Parameter getParameter(const Event &event)
Definition: parameter_adapter.h:161
roswrap::ParameterAdapter< std::shared_ptr< M > >::Parameter
std::shared_ptr< Message > Parameter
Definition: parameter_adapter.h:144
sick_scan_base.h
roswrap::ParameterAdapter< const std::shared_ptr< M > & >::Parameter
std::shared_ptr< Message > Parameter
Definition: parameter_adapter.h:102
roswrap::ParameterAdapter< const M & >::Message
std::remove_reference< typename std::remove_const< M >::type >::type Message
Definition: parameter_adapter.h:114
roswrap::ParameterAdapter< const ros::MessageEvent< M > & >::getParameter
static Parameter getParameter(const Event &event)
Definition: parameter_adapter.h:175
ros::MessageEvent::getMessage
boost::shared_ptr< M > getMessage() const
roswrap::ParameterAdapter::Parameter
M Parameter
Definition: parameter_adapter.h:74
roswrap::ParameterAdapter::Message
std::remove_reference< typename std::remove_const< M >::type >::type Message
Definition: parameter_adapter.h:72
roswrap::ParameterAdapter< const std::shared_ptr< M > & >::Event
ros::MessageEvent< Message const > Event
Definition: parameter_adapter.h:101
ros::MessageEvent
roswrap::ParameterAdapter< const std::shared_ptr< M const > & >::Event
ros::MessageEvent< Message const > Event
Definition: parameter_adapter.h:87
roswrap::ParameterAdapter< const M & >::Parameter
const typedef M & Parameter
Definition: parameter_adapter.h:116
roswrap::ParameterAdapter::Event
ros::MessageEvent< Message const > Event
Definition: parameter_adapter.h:73


sick_scan_xd
Author(s): Michael Lehning , Jochen Sprickerhof , Martin Günther
autogenerated on Fri Oct 25 2024 02:47:09