00001 #ifndef MEMORY_CHECKER_CLASS
00002 #define MEMORY_CHECKER_CLASS
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "definitions.h"
00019
00020 #ifdef ENABLE_MEMORY_HOOK
00021
00022 #include "build_configuration.h"
00023
00024
00025 class allocation_memories;
00026 class memory_checker;
00027
00029
00030 memory_checker BASIS_EXTERN &program_wide_memories();
00032
00036
00037
00039
00050 class memory_checker
00051 {
00052 public:
00053 void construct();
00054
00055 void destruct();
00056
00058 void disable() { _enabled = false; }
00060 void enable() { _enabled = true; }
00062 bool enabled() const { return _enabled; }
00063
00064 void *provide_memory(size_t size, char *file, int line);
00066
00072 int release_memory(void *ptr);
00074
00079 char *text_form(bool show_outstanding);
00081
00085 private:
00086 allocation_memories *_mems;
00087 bool _unusable;
00088 bool _enabled;
00089 };
00090
00091 #else // enable memory hook.
00092
00093 #define program_wide_memories()
00094
00095 #endif // enable memory hook.
00096
00097 #endif // outer guard.
00098