Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef ROSCPP_ROSOUT_APPENDER_H
00036 #define ROSCPP_ROSOUT_APPENDER_H
00037
00038 #include <ros/message_forward.h>
00039 #include "common.h"
00040
00041 #include "log4cxx/appenderskeleton.h"
00042
00043 #include <boost/shared_ptr.hpp>
00044 #include <boost/weak_ptr.hpp>
00045
00046 #include <boost/thread.hpp>
00047
00048 namespace rosgraph_msgs
00049 {
00050 ROS_DECLARE_MESSAGE(Log);
00051 }
00052
00053 namespace ros
00054 {
00055
00056 class Publication;
00057 typedef boost::shared_ptr<Publication> PublicationPtr;
00058 typedef boost::weak_ptr<Publication> PublicationWPtr;
00059
00060 class ROSCPP_DECL ROSOutAppender : public log4cxx::AppenderSkeleton
00061 {
00062 public:
00063 ROSOutAppender();
00064 ~ROSOutAppender();
00065
00066 const std::string& getLastError();
00067
00068 protected:
00069 virtual void append(const log4cxx::spi::LoggingEventPtr& event, log4cxx::helpers::Pool& pool);
00070
00071 virtual void close() {}
00072 virtual bool requiresLayout() const { return false; }
00073
00074 void logThread();
00075
00076 std::string last_error_;
00077
00078 typedef std::vector<rosgraph_msgs::LogPtr> V_Log;
00079 V_Log log_queue_;
00080 boost::mutex queue_mutex_;
00081 boost::condition_variable queue_condition_;
00082 bool shutting_down_;
00083
00084 boost::thread publish_thread_;
00085 };
00086
00087
00088 typedef log4cxx::helpers::ObjectPtrT<ROSOutAppender> ROSOutAppenderPtr;
00089
00090 }
00091
00092 #endif
roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim
autogenerated on Mon Oct 6 2014 11:46:44