log_utils.cpp
Go to the documentation of this file.
1 // -*- mode: c++ -*-
2 /*********************************************************************
3  * Software License Agreement (BSD License)
4  *
5  * Copyright (c) 2015, JSK Lab
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * * Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  * * Redistributions in binary form must reproduce the above
15  * copyright notice, this list of conditions and the following
16  * disclaimer in the documentation and/o2r other materials provided
17  * with the distribution.
18  * * Neither the name of the JSK Lab nor the names of its
19  * contributors may be used to endorse or promote products derived
20  * from this software without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33  * POSSIBILITY OF SUCH DAMAGE.
34  *********************************************************************/
35 
36 #include <string>
37 #include <vector>
39 
40 
41 namespace jsk_topic_tools
42 {
43 
44  bool warnNoRemap(const std::vector<std::string> names)
45  {
46  bool no_warning = true;
48  for (size_t i = 0; i < names.size(); i++)
49  {
50  std::string resolved_name = ros::names::resolve(/*name=*/names[i],
51  /*_remap=*/false);
52  if (remappings.find(resolved_name) == remappings.end())
53  {
54  ROS_WARN("[%s] '%s' has not been remapped.",
55  ros::this_node::getName().c_str(), names[i].c_str());
56  no_warning = false;
57  }
58  }
59  return no_warning;
60  }
61 
62  const std::string getFunctionName(const std::string &name)
63  {
64  size_t end = name.rfind('(');
65  if(end == std::string::npos)
66  {
67  end = name.size();
68  }
69  size_t begin = 1 + name.rfind(' ', end);
70  return name.substr(begin, end - begin);
71  }
72 
73 } // namespace jsk_topic_tools
const std::string getFunctionName(const std::string &name)
Get only function name from PRETTY_FUNCTION
Definition: log_utils.cpp:62
ROSCPP_DECL const std::string & getName()
ROSCPP_DECL std::string resolve(const std::string &name, bool remap=true)
#define ROS_WARN(...)
ROSCPP_DECL const M_string & getRemappings()
std::map< std::string, std::string > M_string
bool warnNoRemap(const std::vector< std::string > names)
warn if there are expected remappings.
Definition: log_utils.cpp:44


jsk_topic_tools
Author(s): Kei Okada , Yusuke Furuta
autogenerated on Tue Feb 6 2018 03:45:19