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