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 #include <boost/signals.hpp>
00035 #include <boost/thread/recursive_mutex.hpp>
00036 #include <boost/thread/thread.hpp>
00037
00038 namespace ros
00039 {
00040
00041 class PollManager;
00042 typedef boost::shared_ptr<PollManager> PollManagerPtr;
00043 typedef boost::signal<void(void)> VoidSignal;
00044 typedef boost::function<void(void)> VoidFunc;
00045
00046 class ROSCPP_DECL PollManager
00047 {
00048 public:
00049 static const PollManagerPtr& instance();
00050
00051 PollManager();
00052 ~PollManager();
00053
00054 PollSet& getPollSet() { return poll_set_; }
00055
00056 boost::signals::connection addPollThreadListener(const VoidFunc& func);
00057 void removePollThreadListener(boost::signals::connection c);
00058
00059 void start();
00060 void shutdown();
00061 private:
00062 void threadFunc();
00063
00064 PollSet poll_set_;
00065 volatile bool shutting_down_;
00066
00067 VoidSignal poll_signal_;
00068 boost::recursive_mutex signal_mutex_;
00069
00070 boost::thread thread_;
00071 };
00072
00073 }
00074
00075 #endif
roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim
autogenerated on Mon Oct 6 2014 11:46:44