moveit2
The MoveIt Motion Planning Framework for ROS 2.
moveit_core
utils
src
rclcpp_utils.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2009, 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
#include <
moveit/utils/rclcpp_utils.h
>
29
30
namespace
rclcpp
31
{
32
namespace
names
33
{
34
std::string
clean
(
const
std::string&
name
)
35
{
36
std::string
clean
=
name
;
37
38
size_t
pos =
clean
.find(
"//"
);
39
while
(pos != std::string::npos)
40
{
41
clean
.erase(pos, 1);
42
pos =
clean
.find(
"//"
, pos);
43
}
44
45
if
(!
name
.empty() && *
clean
.rbegin() ==
'/'
)
46
{
47
clean
.erase(
clean
.size() - 1, 1);
48
}
49
50
return
clean
;
51
}
52
53
std::string
append
(
const
std::string& left,
const
std::string& right)
54
{
55
return
clean
(left +
"/"
+ right);
56
}
57
}
// namespace names
58
}
// namespace rclcpp
rclcpp::names::append
std::string append(const std::string &left, const std::string &right)
Definition:
rclcpp_utils.cpp:53
rclcpp::names::clean
std::string clean(const std::string &name)
Definition:
rclcpp_utils.cpp:34
rclcpp
Definition:
rclcpp_utils.h:34
setup.name
name
Definition:
setup.py:7
rclcpp_utils.h
Generated by
1.9.1