reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
HeapInstanceCounter.hxx
Go to the documentation of this file.
1
#ifndef RESIP_HeapInstanceCounter_hxx
2
#define RESIP_HeapInstanceCounter_hxx
3
4
#ifdef RESIP_HEAP_COUNT
5
6
#include <typeinfo>
7
#include <cstddef>
8
18
#define RESIP_HeapCount(type_) \
19
static void* operator new (size_t bytes) \
20
{ \
21
return resip::HeapInstanceCounter::allocate(bytes, typeid(type_)); \
22
} \
23
static void* operator new (size_t bytes, void* p) \
24
{ \
25
return p; \
26
} \
27
static void* operator new[] (size_t bytes) \
28
{ \
29
return resip::HeapInstanceCounter::allocate(bytes, typeid(type_)); \
30
} \
31
static void operator delete (void* addr) \
32
{ \
33
resip::HeapInstanceCounter::deallocate(addr, typeid(type_)); \
34
} \
35
static void operator delete[] (void* addr) \
36
{ \
37
resip::HeapInstanceCounter::deallocate(addr, typeid(type_)); \
38
}
39
#else
40
#if defined (__SUNPRO_CC)
41
#define RESIP_HeapCount(type_)class type_
42
#else
43
#define RESIP_HeapCount(type_)
44
#endif
45
#endif
// RESIP_HEAP_COUNT
46
47
namespace
resip
48
{
49
50
class
HeapInstanceCounter
51
{
52
public
:
53
static
void
dump
();
54
55
#ifdef RESIP_HEAP_COUNT
56
static
void
* allocate(
size_t
bytes,
const
std::type_info& ti);
57
static
void
deallocate(
void
* addr,
const
std::type_info& ti);
58
#endif
59
60
};
61
62
}
63
64
#endif
65
66
/* ====================================================================
67
* The Vovida Software License, Version 1.0
68
*
69
* Copyright (c) 2000 Vovida Networks, Inc. All rights reserved.
70
*
71
* Redistribution and use in source and binary forms, with or without
72
* modification, are permitted provided that the following conditions
73
* are met:
74
*
75
* 1. Redistributions of source code must retain the above copyright
76
* notice, this list of conditions and the following disclaimer.
77
*
78
* 2. Redistributions in binary form must reproduce the above copyright
79
* notice, this list of conditions and the following disclaimer in
80
* the documentation and/or other materials provided with the
81
* distribution.
82
*
83
* 3. The names "VOCAL", "Vovida Open Communication Application Library",
84
* and "Vovida Open Communication Application Library (VOCAL)" must
85
* not be used to endorse or promote products derived from this
86
* software without prior written permission. For written
87
* permission, please contact vocal@vovida.org.
88
*
89
* 4. Products derived from this software may not be called "VOCAL", nor
90
* may "VOCAL" appear in their name, without prior written
91
* permission of Vovida Networks, Inc.
92
*
93
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
94
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
95
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
96
* NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL VOVIDA
97
* NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
98
* IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
99
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
100
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
101
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
102
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
103
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
104
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
105
* DAMAGE.
106
*
107
* ====================================================================
108
*
109
* This software consists of voluntary contributions made by Vovida
110
* Networks, Inc. and many individuals on behalf of Vovida Networks,
111
* Inc. For more information on Vovida Networks, Inc., please see
112
* <http://www.vovida.org/>.
113
*
114
*/
resip::HeapInstanceCounter
Definition
HeapInstanceCounter.hxx:51
resip::HeapInstanceCounter::dump
static void dump()
Definition
HeapInstanceCounter.cxx:109
resip
dcm! – add UnusedChecking(_enum) below;
Definition
AbstractFifo.hxx:16
rutil
HeapInstanceCounter.hxx
Generated by
1.9.8