poolslotref.h

Go to the documentation of this file.
00001 
00035 #ifndef ABA_POOLSLOTREF_H
00036 #define ABA_POOLSLOTREF_H
00037 
00038 #include "abacus/abacusroot.h"
00039 
00040 #include <iostream>
00041 class ABA_MASTER;
00042 template<class BaseType, class CoType> 
00043 class ABA_POOLSLOT;
00044 
00045 #ifdef ABACUS_NEW_TEMPLATE_SYNTAX
00046 template<class BaseType, class CoType>
00047 class  ABA_POOLSLOTREF;
00048 
00049 template<class BaseType, class CoType>
00050 ostream &operator<< (ostream &out, const ABA_POOLSLOTREF<BaseType, CoType> &rhs);
00051 #endif
00052 
00053 template<class BaseType, class CoType>
00054 class  ABA_POOLSLOTREF :  public ABA_ABACUSROOT {
00055     public:
00056 
00061       ABA_POOLSLOTREF(ABA_MASTER *master);
00062 
00070       ABA_POOLSLOTREF(ABA_POOLSLOT<BaseType, CoType> *slot);
00071 
00080       ABA_POOLSLOTREF(const ABA_POOLSLOTREF<BaseType, CoType> &rhs);
00081 
00091       ~ABA_POOLSLOTREF();
00092 #ifdef ABACUS_NEW_TEMPLATE_SYNTAX
00093 
00103       friend ostream &operator<< <> (ostream &, const ABA_POOLSLOTREF &);
00104 #else
00105 
00115       friend ostream &operator<< (ostream &out, const ABA_POOLSLOTREF &rhs);
00116 #endif
00117 
00123       BaseType *conVar() const;
00124 
00129       unsigned long version() const;
00130 
00133       ABA_POOLSLOT<BaseType, CoType> *slot() const;
00134 
00145       void slot(ABA_POOLSLOT<BaseType, CoType> *s);
00146 
00147     private:
00148 
00151       ABA_MASTER *master_;
00152 
00155       ABA_POOLSLOT<BaseType, CoType> *slot_;
00156 
00160       unsigned long version_;
00161       void printDifferentVersionError() const;
00162       const ABA_POOLSLOTREF<BaseType, CoType>
00163                       &operator=(const ABA_POOLSLOTREF<BaseType, CoType> &rhs);
00164   };
00165 
00166 #include "abacus/poolslotref.inc"
00167 
00168 #endif  // ABA_POOLSLOTREF_H
00169 

Generated on Tue Aug 14 18:09:54 2007 for ABACUS by  doxygen 1.5.1