00001 00023 #ifndef APPLICATION_H_ 00024 #define APPLICATION_H_ 00025 00026 #include <iostream> 00027 #include <ros/ros.h> 00028 #include <pluginlib/class_list_macros.h> 00029 00030 #include "micros_swarm/singleton.h" 00031 #include "micros_swarm/runtime_handle.h" 00032 00033 namespace micros_swarm{ 00034 00035 class Application 00036 { 00037 public: 00038 Application(); 00039 virtual ~Application(); 00040 //application api 00041 const int get_id(); 00042 const Base& get_base(); 00043 void set_base(const Base& robot_base); 00044 float get_dis(); 00045 void set_dis(float neighbor_distance); 00046 //init 00047 virtual void init() = 0; 00048 //entry 00049 virtual void start() = 0; 00050 //stop 00051 virtual void stop() = 0; 00052 private: 00053 boost::shared_ptr<RuntimeHandle> rth; 00054 }; 00055 }; 00056 00057 #endif