Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_CSUTIL_ALLOCATORIMPL_H__
00020 #define __CS_CSUTIL_ALLOCATORIMPL_H__
00021
00026 #include "csutil/scf_implementation.h"
00027 #include "iutil/allocator.h"
00028
00032 namespace CS
00033 {
00034 namespace Memory
00035 {
00040 template<typename Allocator>
00041 class AllocatorImplementation :
00042 public scfImplementation1<AllocatorImplementation<Allocator>,
00043 iAllocator>
00044 {
00045 Allocator alloc;
00046
00047 typedef scfImplementation1<AllocatorImplementation<Allocator>,
00048 iAllocator> scfImplementationType;
00049 public:
00050 AllocatorImplementation (const Allocator& alloc)
00051 : scfImplementationType (this), alloc (alloc) {}
00052
00053 void Free (void* p)
00054 {
00055 return alloc.Free (p);
00056 }
00057
00058 CS_ATTRIBUTE_MALLOC void* Alloc (const size_t n)
00059 {
00060 return alloc.Alloc (n);
00061 }
00062
00063 void* Realloc (void* p, size_t newSize)
00064 {
00065 return alloc.Realloc (p, newSize);
00066 }
00067
00068 void SetMemTrackerInfo (const char* info)
00069 {
00070 alloc.SetMemTrackerInfo (info);
00071 }
00072 };
00073 }
00074 }
00075
00078 #endif // __CS_CSUTIL_ALLOCATORIMPL_H__