00001 00036 #ifndef ABA_ID_H 00037 #define ABA_ID_H 00038 #include <iostream> 00039 using namespace std; 00040 00041 #include "abacus/abacusroot.h" 00042 00043 class ABA_MESSAGE; 00044 class ABA_ID : public ABA_ABACUSROOT { 00045 public: 00046 00051 ABA_ID(); 00052 00057 ABA_ID(ABA_MESSAGE &msg); 00058 00063 void pack(ABA_MESSAGE &msg) const; 00064 00072 friend ostream &operator<<(ostream &out, const ABA_ID &id); 00073 00082 friend int operator==(const ABA_ID &lhs, const ABA_ID &rhs); 00083 00092 void initialize(unsigned long sequence, int proc, int index); 00093 00096 void uninitialize(); 00097 00103 bool isInitialized() const; 00104 unsigned long sequence() const; 00105 int proc() const; 00106 int index() const; 00107 00108 private: 00109 unsigned long sequence_; 00110 short proc_; 00111 short index_; 00112 }; 00113 inline unsigned long ABA_ID::sequence() const { return sequence_; } 00114 inline int ABA_ID::proc() const { return proc_; } 00115 inline int ABA_ID::index() const { return index_; } 00116 #endif // ABA_ID_H 00117 00118