00001 /* 00002 * ScriptableAnalyzerNode.h 00003 * 00004 * Created on: Oct 30, 2013 00005 * Author: blackpc 00006 */ 00007 00008 #ifndef SCRIPTABLEANALYZERNODE_H_ 00009 #define SCRIPTABLEANALYZERNODE_H_ 00010 00011 #include <ros/ros.h> 00012 #include <std_msgs/String.h> 00013 #include <scriptable_monitor/ScriptHost.h> 00014 00015 #include <scriptable_monitor/Script.h> 00016 #include <scriptable_monitor/GetScripts.h> 00017 #include <scriptable_monitor/AddScript.h> 00018 00019 00020 class ScriptableMonitorNode 00021 { 00022 public: 00023 00024 ScriptableMonitorNode(); 00025 ~ScriptableMonitorNode(); 00026 00027 ScriptHost& getScriptHost() { return _scriptHost; } 00028 00029 private: 00030 ScriptHost _scriptHost; 00031 ros::Subscriber _addScriptSubscriber; 00032 ros::Subscriber _deleteScriptSubscriber; 00033 ros::ServiceServer _getScriptsService; 00034 ros::ServiceServer _addScriptService; 00035 00036 bool addScript(scriptable_monitor::AddScriptRequest& request, scriptable_monitor::AddScriptResponse& response); 00037 bool getScripts(scriptable_monitor::GetScriptsRequest& request, scriptable_monitor::GetScriptsResponse& response); 00038 00039 void onAddScriptMessage(const std_msgs::String::ConstPtr script); 00040 void onDeleteScriptMessage(const std_msgs::String::ConstPtr scriptName); 00041 }; 00042 00043 #endif /* SCRIPTABLEANALYZERNODE_H_ */