impl/convert.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) 2013, Open Source Robotics Foundation
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  * * Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the distribution.
14  * * Neither the name of the Willow Garage, Inc. nor the names of its
15  * contributors may be used to endorse or promote products derived from
16  * this software without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
22  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28  * POSSIBILITY OF SUCH DAMAGE.
29  */
30 
31 #ifndef TF2_IMPL_CONVERT_H
32 #define TF2_IMPL_CONVERT_H
33 
34 namespace tf2 {
35 namespace impl {
36 
37 template <bool IS_MESSAGE_A, bool IS_MESSAGE_B>
38 class Converter {
39 public:
40  template<typename A, typename B>
41  static void convert(const A& a, B& b);
42 };
43 
44 // The case where both A and B are messages should not happen: if you have two
45 // messages that are interchangeable, well, that's against the ROS purpose:
46 // only use one type. Worst comes to worst, specialize the original convert
47 // function for your types.
48 // if B == A, the templated version of convert with only one argument will be
49 // used.
50 //
51 //template <>
52 //template <typename A, typename B>
53 //inline void Converter<true, true>::convert(const A& a, B& b);
54 
55 template <>
56 template <typename A, typename B>
57 inline void Converter<true, false>::convert(const A& a, B& b)
58 {
59  fromMsg(a, b);
60 }
61 
62 template <>
63 template <typename A, typename B>
64 inline void Converter<false, true>::convert(const A& a, B& b)
65 {
66  b = toMsg(a);
67 }
68 
69 template <>
70 template <typename A, typename B>
71 inline void Converter<false, false>::convert(const A& a, B& b)
72 {
73  fromMsg(toMsg(a), b);
74 }
75 
76 }
77 }
78 
79 #endif //TF2_IMPL_CONVERT_H
tf2::fromMsg
void fromMsg(const A &, B &b)
A
tf2::impl::Converter::convert
void convert(const A &a, B &b)
tf2
sick_scan_base.h
tf2::toMsg
B toMsg(const A &a)


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