00001 00035 #ifndef ABA_OPTSENSE_H 00036 #define ABA_OPTSENSE_H 00037 00038 #include <iostream> 00039 using namespace std; 00040 00041 #include "abacus/abacusroot.h" 00042 00043 class ABA_OPTSENSE : public ABA_ABACUSROOT { 00044 public: 00045 00053 enum SENSE {Min, Max, Unknown}; 00054 00059 ABA_OPTSENSE(SENSE s = Unknown); 00060 00071 friend ostream &operator<<(ostream& out, const ABA_OPTSENSE &rhs); 00072 00078 void sense(SENSE s); 00079 00082 SENSE sense() const; 00083 00087 bool min() const; 00088 00092 bool max() const; 00093 00097 bool unknown() const; 00098 private: 00099 00102 SENSE sense_; 00103 }; 00104 00105 00106 inline ABA_OPTSENSE::ABA_OPTSENSE(SENSE s) 00107 : 00108 sense_(s) 00109 { } 00110 00111 inline ABA_OPTSENSE::SENSE ABA_OPTSENSE::sense() const 00112 { 00113 return sense_; 00114 } 00115 00116 inline void ABA_OPTSENSE::sense(SENSE s) 00117 { 00118 sense_ = s; 00119 } 00120 00121 inline bool ABA_OPTSENSE::min() const 00122 { 00123 return sense_ == Min ? true : false; 00124 } 00125 00126 inline bool ABA_OPTSENSE::max() const 00127 { 00128 return sense_ == Max ? true : false; 00129 } 00130 00131 inline bool ABA_OPTSENSE::unknown() const 00132 { 00133 return sense_ == Unknown ? true : false; 00134 } 00135 00136 00137 #endif // ABA_OPTSENSE_H 00138 00139