00001 // -*- c++ -*- 00002 // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 00003 00004 // O S C L _ H E A P B A S E 00005 00006 // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 00007 00017 #ifndef OSCL_HEAPBASE_H_INCLUDED 00018 #define OSCL_HEAPBASE_H_INCLUDED 00019 00020 #ifndef OSCLCONFIG_ERROR_H_INCLUDED 00021 #include "osclconfig_error.h" 00022 #endif 00023 00024 #ifndef OSCL_BASE_H_INCLUDED 00025 #include "oscl_base.h" 00026 #endif 00027 00034 class _OsclHeapBase 00035 { 00036 public: 00037 virtual ~_OsclHeapBase() {} 00038 00039 protected: 00040 _OsclHeapBase() {} 00041 _OsclHeapBase(const _OsclHeapBase&) {} 00042 private: 00043 _OsclHeapBase& operator=(const _OsclHeapBase&); 00044 friend class PVCleanupStack; 00045 }; 00046 00052 typedef void (*OsclTrapOperation)(OsclAny*); 00053 00054 class OsclTrapItem 00055 { 00056 public: 00057 OSCL_INLINE OsclTrapItem(OsclTrapOperation anOperation); 00058 OSCL_INLINE OsclTrapItem(OsclTrapOperation anOperation, OsclAny* aPtr); 00059 private: 00060 OsclTrapOperation iOperation; 00061 OsclAny* iPtr; 00062 friend class OsclTrapStackItem; 00063 friend class OsclTrapStack; 00064 }; 00065 00066 00067 00068 #if !(OSCL_DISABLE_INLINES) 00069 #include "oscl_heapbase.inl" 00070 #endif 00071 00072 #endif // 00073 00074