00001 // ============================================================================ 00018 // ============================================================================ 00019 #ifndef __TOPTIONTABLE_HH 00020 #define __TOPTIONTABLE_HH 00021 00022 #include "Tglobals.h" 00023 #include "TOption.hh" 00024 #include "TOptionList.hh" 00025 00026 00046 class TOptionTable 00047 { 00048 00049 private: 00050 TOptionList theOptionList; 00051 00052 public: 00053 TOptionTable(); 00054 TOptionTable( const TOptionList& options ); 00055 TOptionTable( const TOption* options, Tint noption = 1 ); 00056 TOptionTable( const TOptionTable& right ); 00057 ~TOptionTable(); 00058 00059 public: 00060 const TOptionTable& operator=( const TOptionTable& right ); 00061 00062 public: 00063 friend Tostream& operator<<( Tostream& tos, const TOptionTable& right ); 00064 00065 public: 00066 Tvoid SetDefaultOption(); 00067 Tvoid SetOption( const TOption& option ); 00068 00069 public: 00070 const TOptionList& GetOptionList() const; 00071 TOptionList& GetOptionList(); 00072 Tvoid SetOptionList( const TOptionList& options ); 00073 00074 private: 00075 Tvoid dupcheck() const; 00076 00077 }; 00078 00079 inline const TOptionList& TOptionTable::GetOptionList() const 00080 { 00081 return theOptionList; 00082 } 00083 00084 inline TOptionList& TOptionTable::GetOptionList() 00085 { 00086 return theOptionList; 00087 } 00088 00089 inline Tvoid TOptionTable::SetOptionList( const TOptionList& options ) 00090 { 00091 theOptionList = options; 00092 return; 00093 } 00094 00095 #endif