$search
00001 00008 /***************************************************************************** 00009 ** Ifdefs 00010 *****************************************************************************/ 00011 00012 #ifndef NODE_HPP_ 00013 #define NODE_HPP_ 00014 00015 /***************************************************************************** 00016 ** Includes 00017 *****************************************************************************/ 00018 00019 #include <ros/ros.h> 00020 #include <string> 00021 #include <QThread> 00022 #include <QStringListModel> 00023 00024 /***************************************************************************** 00025 ** Class 00026 *****************************************************************************/ 00027 00028 class QNode : public QThread { 00029 Q_OBJECT 00030 00031 public: 00032 QNode(int argc, char** argv, const std::string &name ); 00033 virtual ~QNode(); 00034 00035 bool on_init(); 00036 bool on_init(const std::string &master_url, const std::string &host_url); 00037 void shutdown(); 00038 virtual void run() = 0; 00039 00040 QStringListModel* loggingModel() { return &logging; } 00041 const std::string& nodeName() { return node_name; } 00042 00043 Q_SIGNALS: 00044 void loggingUpdated(); 00045 void rosShutdown(); 00046 00047 protected: 00048 virtual void ros_comms_init() = 0; 00049 int init_argc; 00050 char** init_argv; 00051 QStringListModel logging; 00052 const std::string node_name; 00053 }; 00054 00055 #endif /* NODE_HPP_ */