00001 /* 00002 * ROSBaseOption.hpp 00003 * 00004 * Created on: Oct 18, 2011 00005 * Author: mriedel 00006 */ 00007 00008 // untempleted BaseClass of ROSOption 00009 00010 #ifndef ROSBASEOPTION_HPP_ 00011 #define ROSBASEOPTION_HPP_ 00012 00013 #include <telekyb_defines/telekyb_defines.hpp> 00014 00015 #include <string> 00016 00017 namespace TELEKYB_NAMESPACE 00018 { 00019 00020 class ROSBaseOption 00021 { 00022 protected: 00023 // these functions should only be called by ROSOptionContainer(!!!) 00024 virtual void createGetService() = 0; 00025 virtual void createSetService() = 0; 00026 virtual void shutdownSetService() = 0; 00027 virtual void shutdownGetService() = 0; 00028 00029 virtual void setToParameterServer() = 0; 00030 virtual bool updateFromParameterServer() = 0; 00031 virtual bool deleteFromParameterServer() = 0; 00032 00033 friend class ROSOptionController; 00034 public: 00035 ROSBaseOption(); 00036 virtual ~ROSBaseOption(); 00037 00038 // function mapping of canonical Option 00039 virtual std::string getName() const = 0; 00040 virtual std::string getDescription() const = 0; 00041 virtual std::string getNamespace() const = 0; 00042 virtual std::string getNSName() const = 0; 00043 00044 00045 }; 00046 00047 } // namespace 00048 00049 #endif /* ROSBASEOPTION_HPP_ */