1 ///////////////////////////////////////////////////////////////////////////////
2 // $Source: x:/prj/tech/libsrc/lgalloc/RCS/membase.h $
4 // $Date: 1998/06/10 13:58:03 $
14 ///////////////////////////////////////////////////////////////////////////////
18 // Provides core allocator chaining functionality, some basic implementations
21 class cMallocBase
: public IAllocator
24 ///////////////////////////////////
26 // Constructor and destructor
32 ///////////////////////////////////
34 // Set/Get next in chain
36 void SetNext(IAllocator
*);
37 IAllocator
* GetNext();
39 ///////////////////////////////////
41 // IUnknown methods: we do nothing with these!
43 STDMETHOD(QueryInterface
)(REFIID
, void **);
44 STDMETHOD_(ULONG
, AddRef
)();
45 STDMETHOD_(ULONG
, Release
)();
47 ///////////////////////////////////
51 STDMETHOD_(void *, Alloc
) (ULONG cb
) = 0;
52 STDMETHOD_(void *, Realloc
) (void * pv
, ULONG cb
) = 0;
53 STDMETHOD_(void, Free
) (void * pv
) = 0;
54 STDMETHOD_(ULONG
, GetSize
) (void * pv
);
55 STDMETHOD_(int, DidAlloc
)(void * pv
);
56 STDMETHOD_(void, HeapMinimize
)();
59 ///////////////////////////////////
61 // IDebugMalloc extensions to IMalloc
63 STDMETHOD_(void *, AllocEx
) (ULONG cb
, const char * pszFile
, int line
);
64 STDMETHOD_(void *, ReallocEx
)(void * pv
, ULONG cb
, const char * pszFile
, int line
);
65 STDMETHOD_(void, FreeEx
) (void * pv
, const char * pszFile
, int line
);
67 STDMETHOD (VerifyAlloc
)(void * pv
);
68 STDMETHOD (VerifyHeap
)();
70 STDMETHOD_(void, DumpHeapInfo
)();
72 STDMETHOD_(void, DumpStats
)();
73 STDMETHOD_(void, DumpBlocks
)();
74 STDMETHOD_(void, DumpModules
)();
76 STDMETHOD_(void, PushCredit
)(const char * pszFile
, int line
);
77 STDMETHOD_(void, PopCredit
)();
85 ///////////////////////////////////////////////////////////////////////////////
87 // CLASS: cMallocBase, inline functions
90 inline cMallocBase::cMallocBase()
96 ///////////////////////////////////////
98 inline cMallocBase::~cMallocBase()
102 ///////////////////////////////////////
104 inline void cMallocBase::SetNext(IAllocator
* pNext
)
109 ///////////////////////////////////////
111 inline IAllocator
* cMallocBase::GetNext()
116 ///////////////////////////////////////////////////////////////////////////////
118 #endif /* !__MEMBASE_H */