00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _EREF_H
00011 #define _EREF_H
00012
00013 #ifdef CYMOOSE
00014
00015 #include <iostream>
00016 #include <vector>
00017 using namespace std;
00018
00019 class Element;
00020 class Id;
00021 class ObjId;
00022 class MsgDigest;
00023
00024 #endif
00025
00026 class Eref
00027 {
00028 public:
00029
00030 friend ostream& operator <<( ostream& s, const Eref& e );
00031 Eref();
00032 Eref( Element* e, unsigned int index, unsigned int field = 0 );
00033
00037 char* data() const;
00038
00042 Element* element() const {
00043 return e_;
00044 }
00045
00049 unsigned int dataIndex() const {
00050 return i_;
00051 }
00052
00059 unsigned int fieldIndex() const {
00060 return f_;
00061 }
00062
00066 ObjId objId() const;
00067
00071 Id id() const;
00072
00077 const vector< MsgDigest >& msgDigest(unsigned int bindIndex ) const;
00078
00082 bool isDataHere() const;
00083
00088 unsigned int getNode() const;
00089 private:
00090 Element* e_;
00091 unsigned int i_;
00092 unsigned int f_;
00093 };
00094
00095 #endif // _EREF_H