00001 #if !defined(__MCBASE_H_)
00002 #define __MCBASE_H_
00003
00004 #ident "@(#)$Id: MCBase.h,v 1.3 2004/11/08 07:56:22 mike Exp $"
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 namespace mclpriv
00026 {
00027
00028 class MCBaseAccessor;
00029 };
00030
00031 namespace mcllib
00032 {
00042 class MCBase
00043 {
00044 public:
00046 MCBase();
00048 ~MCBase();
00050 MCBase(const MCBase&);
00052 MCBase& operator=(const MCBase&);
00054 bool operator==(const MCBase&) const;
00056 bool operator!=(const MCBase&) const;
00061 bool operator<(const MCBase&) const;
00062 protected:
00068 MCBase(void* impl);
00073 void attach(void* impl);
00077 void detach();
00078 private:
00079 friend class mclpriv::MCBaseAccessor;
00080
00082 void attachImpl(void* impl);
00084 void detachImpl();
00086 void* m_impl;
00087 };
00088 };
00089
00090 #endif