/* TrashTracker.h */

#ifndef Included_TrashTracker_h
#define Included_TrashTracker_h

/* TrashTracker module depends on */
/* MiscInfo.h */
/* Audit */
/* Debug */
/* Definitions */
/* Memory */

struct TrashTrackRec;
typedef struct TrashTrackRec TrashTrackRec;

/* create a trash tracking record */
TrashTrackRec*		NewTrashTracker(void);

/* dispose a trash tracking record & delete all blocks it contains */
void							DisposeTrashTracker(TrashTrackRec* Trash);

/* allocate a new block & store a reference in the trash record */
/* blocks allocated from this routine are normal heap blocks which may be */
/* used anywhere a block from AllocPtrCanFail() may be used. */
char*							AllocTrackedBlock(long NumBytes, TrashTrackRec* Trash);

#endif
