00001 00002 #ifndef DISPLAY_DISPLAY_DATA_OPTIONS_H_ 00003 #define DISPLAY_DISPLAY_DATA_OPTIONS_H_ 00004 00005 #include <map> 00006 00007 namespace casa { 00008 namespace viewer { 00009 00010 class DisplayDataOptions { 00011 public: 00012 00013 typedef std::map<string,string> map_type; 00014 typedef map_type::iterator iterator; 00015 typedef map_type::const_iterator const_iterator; 00016 typedef map_type::reverse_iterator reverse_iterator; 00017 typedef map_type::const_reverse_iterator const_reverse_iterator; 00018 00019 iterator begin( ) { 00020 return options.begin(); 00021 } 00022 iterator end( ) { 00023 return options.end( ); 00024 } 00025 const_iterator begin( ) const { 00026 return options.begin( ); 00027 } 00028 const_iterator end( ) const { 00029 return options.end( ); 00030 } 00031 reverse_iterator rbegin( ) { 00032 return options.rbegin( ); 00033 } 00034 reverse_iterator rend( ) { 00035 return options.rend( ); 00036 } 00037 const_reverse_iterator rbegin( ) const { 00038 return options.rbegin( ); 00039 } 00040 const_reverse_iterator rend( ) const { 00041 return options.rend( ); 00042 } 00043 00044 string &operator[]( const string &key ) { 00045 return options[key]; 00046 } 00047 const string &operator[]( const string &key ) const { 00048 return ((DisplayDataOptions*)this)->options[key]; 00049 } 00050 00051 map_type::size_type size( ) const { 00052 return options.size( ); 00053 } 00054 00055 void insert( const string &key, const string &value ) { 00056 options.insert(std::pair<string,string>(key,value)); 00057 } 00058 00059 bool empty( ) const { 00060 return options.empty( ); 00061 } 00062 00063 private: 00064 map_type options; 00065 }; 00066 } 00067 } 00068 00069 #endif