00001 /* 00002 * This file contains override operators NEW,DELETE for memory allocation. 00003 * 00004 * Author: 00005 * Tomas Mrkvicka 00006 * xmrkvi03@stud.fit.vutbr.cz 00007 * 00008 */ 00009 00010 #include <cstdlib> 00011 00012 #ifndef _MEMORYALLOC_HH_ 00013 #define _MEMORYALLOC_HH_ 00014 00015 //////////////////////////////////////////////////////////////////////////////// 00016 //////////////////////////////////////////////////////////////////////////////// 00017 //////////////////////////////////////////////////////////////////////////////// 00018 // TMemoryAllocStats 00019 00020 /** Tato trid slouzi pro alokaci a dealokaci pameti. 00021 * 00022 * Ve skutecnosti trida pouze zapouzdruje volani standardnich alokacnich operatoru 00023 * new a delete. Diky tomuto zapouzdreni je mozne kontrolovat mnozstvi alokaci a dealokaci 00024 * a kontrolovat tak alespon castecne praci s pameti. 00025 * 00026 * Trida v podstate pouze pocita vyskyty, v souboru MemoryAlloc lze definovat 00027 * zda budou operatory pretizene nebo ne. 00028 */ 00029 class TMemoryAllocStats 00030 { 00031 //PUBLIC STATIC METHODS 00032 public: 00033 static void New_Normal(void) { m_alloc_normal++; }; 00034 static void New_Array(void) { m_alloc_array++; }; 00035 static void Delete_Normal(void) { m_alloc_normal--; }; 00036 static void Delete_Array(void) { m_alloc_array--; }; 00037 00038 //PUBLIC STATIC COMPONENTS 00039 public: 00040 static int m_alloc_normal; ///< pocet alokaci pomoci operatoru NEW 00041 static int m_alloc_array; ///< pocet alokaci pomoci operatoru NEW[] 00042 }; 00043 00044 // TMemoryAllocStats 00045 //////////////////////////////////////////////////////////////////////////////// 00046 //////////////////////////////////////////////////////////////////////////////// 00047 //////////////////////////////////////////////////////////////////////////////// 00048 00049 #endif