00001 /* 00002 * OptionContainer.hpp 00003 * 00004 * Created on: Nov 22, 2011 00005 * Author: mriedel 00006 */ 00007 00008 #ifndef INTERFACE_OPTIONCONTAINER_HPP_ 00009 #define INTERFACE_OPTIONCONTAINER_HPP_ 00010 00011 #include <telekyb_defines/telekyb_defines.hpp> 00012 00013 #include <telekyb_interface/Option.hpp> 00014 00015 #include <ros/ros.h> 00016 00017 namespace TELEKYB_INTERFACE_NAMESPACE { 00018 00019 // forward declaration 00020 class OptionController; 00021 00022 00023 class OptionContainer { 00024 private: 00025 // only created by OptionController. and Behavior (which itself is an Optioncontainer) 00026 OptionContainer(OptionController* optionController_, const std::string& containerNameSpace_); 00027 00028 00029 protected: 00030 OptionController* optionController; 00031 00032 ros::NodeHandle nodeHandle; 00033 00034 public: 00035 virtual ~OptionContainer(); 00036 00037 Option getOption(const std::string& optionName_); 00038 00039 00040 // these classes are allowed to init an Optioncontainer 00041 friend class Behavior; 00042 friend class OptionController; 00043 }; 00044 00045 } // namespace 00046 00047 #endif /* INTERFACE_OPTIONCONTAINER_HPP_ */