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 #ifndef ROSCPP_POLL_MANAGER_H
00029 #define ROSCPP_POLL_MANAGER_H
00030
00031 #include "forwards.h"
00032 #include "poll_set.h"
00033 #include "common.h"
00034
00035 #include <boost/signals2.hpp>
00036
00037 #include <boost/thread/recursive_mutex.hpp>
00038 #include <boost/thread/thread.hpp>
00039
00040 namespace ros
00041 {
00042
00043 class PollManager;
00044 typedef boost::shared_ptr<PollManager> PollManagerPtr;
00045 typedef boost::signals2::signal<void(void)> VoidSignal;
00046 typedef boost::function<void(void)> VoidFunc;
00047
00048 class ROSCPP_DECL PollManager
00049 {
00050 public:
00051 static const PollManagerPtr& instance();
00052
00053 PollManager();
00054 ~PollManager();
00055
00056 PollSet& getPollSet() { return poll_set_; }
00057
00058 boost::signals2::connection addPollThreadListener(const VoidFunc& func);
00059 void removePollThreadListener(boost::signals2::connection c);
00060
00061 void start();
00062 void shutdown();
00063 private:
00064 void threadFunc();
00065
00066 PollSet poll_set_;
00067 volatile bool shutting_down_;
00068
00069 VoidSignal poll_signal_;
00070 boost::recursive_mutex signal_mutex_;
00071
00072 boost::thread thread_;
00073 };
00074
00075 }
00076
00077 #endif
roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim
autogenerated on Thu Jun 6 2019 21:10:05