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_SPINNER_H
00029 #define ROSCPP_SPINNER_H
00030
00031 #include "ros/types.h"
00032 #include "common.h"
00033
00034 #include <boost/shared_ptr.hpp>
00035
00036 namespace ros
00037 {
00038 class NodeHandle;
00039 class CallbackQueue;
00040
00044 class ROSCPP_DECL Spinner
00045 {
00046 public:
00047 virtual ~Spinner() {}
00048
00052 virtual void spin(CallbackQueue* queue = 0) = 0;
00053 };
00054
00058 class SingleThreadedSpinner : public Spinner
00059 {
00060 public:
00061 virtual void spin(CallbackQueue* queue = 0);
00062 };
00063
00067 class ROSCPP_DECL MultiThreadedSpinner : public Spinner
00068 {
00069 public:
00074 MultiThreadedSpinner(uint32_t thread_count = 0);
00075
00076 virtual void spin(CallbackQueue* queue = 0);
00077
00078 private:
00079 uint32_t thread_count_;
00080 };
00081
00082 class AsyncSpinnerImpl;
00083 typedef boost::shared_ptr<AsyncSpinnerImpl> AsyncSpinnerImplPtr;
00084
00093 class ROSCPP_DECL AsyncSpinner
00094 {
00095 public:
00100 AsyncSpinner(uint32_t thread_count);
00101
00107 AsyncSpinner(uint32_t thread_count, CallbackQueue* queue);
00108
00109
00110
00115 bool canStart();
00119 void start();
00123 void stop();
00124
00125 private:
00126 AsyncSpinnerImplPtr impl_;
00127 };
00128
00129 }
00130
00131 #endif // ROSCPP_SPIN_POLICY_H
roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim
autogenerated on Fri Aug 28 2015 12:33:11