ompl_console.cpp
Go to the documentation of this file.
00001 /*********************************************************************
00002 * Software License Agreement (BSD License)
00003 *
00004 *  Copyright (c) 2011, Willow Garage, Inc.
00005 *  All rights reserved.
00006 *
00007 *  Redistribution and use in source and binary forms, with or without
00008 *  modification, are permitted provided that the following conditions
00009 *  are met:
00010 *
00011 *   * Redistributions of source code must retain the above copyright
00012 *     notice, this list of conditions and the following disclaimer.
00013 *   * Redistributions in binary form must reproduce the above
00014 *     copyright notice, this list of conditions and the following
00015 *     disclaimer in the documentation and/or other materials provided
00016 *     with the distribution.
00017 *   * Neither the name of the Willow Garage nor the names of its
00018 *     contributors may be used to endorse or promote products derived
00019 *     from this software without specific prior written permission.
00020 *
00021 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00022 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00023 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00024 *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
00025 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00026 *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00027 *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00028 *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00029 *  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00030 *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
00031 *  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00032 *  POSSIBILITY OF SUCH DAMAGE.
00033 *********************************************************************/
00034 
00035 /* Author: Ioan Sucan */
00036 
00037 #include <ros/console.h>
00038 #include <ompl/util/Console.h>
00039 
00040 namespace ompl_inteface
00041 {
00042 class OutputHandlerROS : public ompl::msg::OutputHandler
00043 {
00044 public:
00045 
00046   OutputHandlerROS() : OutputHandler()
00047   {
00048   }
00049 
00050   virtual void log(const std::string &text, ompl::msg::LogLevel level, const char *filename, int line)
00051   {
00052     switch (level)
00053     {
00054     case ompl::msg::LOG_INFO:
00055       {
00056         ROSCONSOLE_DEFINE_LOCATION(true, ::ros::console::levels::Info, std::string(ROSCONSOLE_ROOT_LOGGER_NAME) + ".ompl");
00057         if (ROS_UNLIKELY(enabled))
00058         {
00059           ::ros::console::print(NULL, loc.logger_, loc.level_, filename, line, "", "%s", text.c_str());
00060         }
00061       }
00062       break;
00063     case ompl::msg::LOG_WARN:
00064       {
00065         ROSCONSOLE_DEFINE_LOCATION(true, ::ros::console::levels::Warn, std::string(ROSCONSOLE_ROOT_LOGGER_NAME) + ".ompl");
00066         if (ROS_UNLIKELY(enabled))
00067         {
00068           ::ros::console::print(NULL, loc.logger_, loc.level_, filename, line, "", "%s", text.c_str());
00069         }
00070       }
00071       break;
00072     case ompl::msg::LOG_ERROR:
00073       {
00074         ROSCONSOLE_DEFINE_LOCATION(true, ::ros::console::levels::Error, std::string(ROSCONSOLE_ROOT_LOGGER_NAME) + ".ompl");
00075         if (ROS_UNLIKELY(enabled))
00076         {
00077           ::ros::console::print(NULL, loc.logger_, loc.level_, filename, line, "", "%s", text.c_str());
00078         }
00079       }
00080       break;
00081     default:
00082       // debug
00083       {
00084         ROSCONSOLE_DEFINE_LOCATION(true, ::ros::console::levels::Debug, std::string(ROSCONSOLE_ROOT_LOGGER_NAME) + ".ompl");
00085         if (ROS_UNLIKELY(enabled))
00086         {
00087           ::ros::console::print(NULL, loc.logger_, loc.level_, filename, line, "", "%s", text.c_str());
00088         }
00089       }
00090       break;
00091     }
00092   }
00093 };
00094 
00095 struct RegisterOH
00096 {
00097   RegisterOH()
00098   {
00099     static OutputHandlerROS oh_ros;
00100     ompl::msg::useOutputHandler(&oh_ros);
00101     ompl::msg::setLogLevel(ompl::msg::LOG_DEBUG);
00102   }
00103 };
00104 
00105 static RegisterOH proxy;
00106 }


ompl
Author(s): Ioan Sucan
autogenerated on Mon Oct 6 2014 11:12:03