00001
00005 class HandleId
00006
00007 {
00008 protected:
00009 static int name_counter;
00010 int refcount;
00011 char dynamic_object;
00012
00013 #ifdef SAFETY_CHECKS
00014 int name_code;
00015 String name_str;
00016 String class_tp;
00017 size_t mem_size;
00018 bool trace_me;
00019 #endif
00020
00021 public:
00022 HandleId ();
00023 virtual ~HandleId ();
00024
00025 static int howManyHandles() { return name_counter; }
00026 bool isReferenced () const { return getbool(refcount != 0); }
00027 int getNoRefs () const { return refcount; }
00028 bool dynamicObj () const { return getbool(dynamic_object=='1'); }
00029
00030 #ifdef SAFETY_CHECKS
00031 int getNameCode () const { return name_code; }
00032 bool hasClassType () const;
00033 void setClassType (const char* class_tp);
00034
00035 void increment ();
00036 void decrement ();
00037 private:
00038 void identity ();
00039 public:
00040 #else
00041
00042 void increment () { refcount++; }
00043 void decrement () { refcount--; }
00044 #endif
00045
00046 void traceMe (const char* name_of_variable);
00047 void* operator new (size_t t);
00048 #ifdef WIN32
00049 void* operator new (size_t t, const char* , int );
00050 #endif
00051 void operator delete (void* v);
00052 };
00053
00054 , int )
00159 See documentation of one of the overloaded functions.
00160 */
00161 , int )
00273 See documentation of one of the overloaded functions.
00274 */
00275