00001 00035 #ifndef ABA_CONCLASS_H 00036 #define ABA_CONCLASS_H 00037 #include <iostream> 00038 using namespace std; 00039 00040 #include "abacus/abacusroot.h" 00041 00042 class ABA_MASTER; 00043 00044 #ifdef ABACUS_PARALLEL 00045 class ABA_MESSAGE; 00046 #endif 00047 00048 class ABA_CONCLASS : public ABA_ABACUSROOT { 00049 public: 00050 00059 ABA_CONCLASS(const ABA_MASTER *master, bool discrete, bool allVarBinary, 00060 bool trivial, bool bound, bool varBound); 00061 #ifdef ABACUS_PARALLEL 00062 00068 ABA_CONCLASS (const ABA_MASTER *master, ABA_MESSAGE &msg); 00069 00074 void pack(ABA_MESSAGE &msg) const; 00075 #endif 00076 00077 friend ostream &operator<<(ostream &out, const ABA_CONCLASS &rhs); 00078 00082 bool allVarBinary() const; 00083 00087 bool trivial() const; 00088 00089 private: 00090 00093 const ABA_MASTER *master_; 00094 bool discrete_; 00095 00098 bool allVarBinary_; 00099 00102 bool trivial_; 00103 00106 bool bound_; 00107 00110 bool varBound_; 00111 }; 00112 00113 00114 inline bool ABA_CONCLASS::allVarBinary() const 00115 { 00116 return allVarBinary_; 00117 } 00118 00119 inline bool ABA_CONCLASS::trivial() const 00120 { 00121 return trivial_; 00122 } 00123 00124 00125 #endif // !ABA_CONCLASS_H 00126