37 #ifndef RTPMEMORYMANAGER_H 39 #define RTPMEMORYMANAGER_H 41 #include "rtpconfig.h" 45 #define RTPMEM_TYPE_OTHER 0 48 #define RTPMEM_TYPE_BUFFER_RECEIVEDRTPPACKET 1 51 #define RTPMEM_TYPE_BUFFER_RECEIVEDRTCPPACKET 2 54 #define RTPMEM_TYPE_BUFFER_RTCPAPPPACKET 3 57 #define RTPMEM_TYPE_BUFFER_RTCPBYEPACKET 4 60 #define RTPMEM_TYPE_BUFFER_RTCPBYEREASON 5 63 #define RTPMEM_TYPE_BUFFER_RTCPCOMPOUNDPACKET 6 66 #define RTPMEM_TYPE_BUFFER_RTCPSDESBLOCK 7 69 #define RTPMEM_TYPE_BUFFER_RTPPACKET 8 72 #define RTPMEM_TYPE_BUFFER_RTPPACKETBUILDERBUFFER 9 75 #define RTPMEM_TYPE_BUFFER_SDESITEM 10 78 #define RTPMEM_TYPE_CLASS_ACCEPTIGNOREHASHELEMENT 11 81 #define RTPMEM_TYPE_CLASS_ACCEPTIGNOREPORTINFO 12 84 #define RTPMEM_TYPE_CLASS_DESTINATIONLISTHASHELEMENT 13 87 #define RTPMEM_TYPE_CLASS_MULTICASTHASHELEMENT 14 90 #define RTPMEM_TYPE_CLASS_RTCPAPPPACKET 15 93 #define RTPMEM_TYPE_CLASS_RTCPBYEPACKET 16 96 #define RTPMEM_TYPE_CLASS_RTCPCOMPOUNDPACKETBUILDER 17 99 #define RTPMEM_TYPE_CLASS_RTCPRECEIVERREPORT 18 102 #define RTPMEM_TYPE_CLASS_RTCPRRPACKET 19 105 #define RTPMEM_TYPE_CLASS_RTCPSDESPACKET 20 108 #define RTPMEM_TYPE_CLASS_RTCPSRPACKET 21 111 #define RTPMEM_TYPE_CLASS_RTCPUNKNOWNPACKET 22 114 #define RTPMEM_TYPE_CLASS_RTPADDRESS 23 117 #define RTPMEM_TYPE_CLASS_RTPINTERNALSOURCEDATA 24 120 #define RTPMEM_TYPE_CLASS_RTPPACKET 25 123 #define RTPMEM_TYPE_CLASS_RTPPOLLTHREAD 26 126 #define RTPMEM_TYPE_CLASS_RTPRAWPACKET 27 129 #define RTPMEM_TYPE_CLASS_RTPTRANSMISSIONINFO 28 132 #define RTPMEM_TYPE_CLASS_RTPTRANSMITTER 29 135 #define RTPMEM_TYPE_CLASS_SDESPRIVATEITEM 30 138 #define RTPMEM_TYPE_CLASS_SDESSOURCE 31 141 #define RTPMEM_TYPE_CLASS_SOURCETABLEHASHELEMENT 32 163 #ifdef RTP_SUPPORT_MEMORYMANAGEMENT 167 inline void *
operator new(
size_t numbytes,
RTPMemoryManager *mgr,
int memtype)
170 return operator new(numbytes);
171 return mgr->AllocateBuffer(numbytes,memtype);
174 inline void operator delete(
void *buffer,
RTPMemoryManager *mgr,
int memtype)
177 operator delete(buffer);
179 mgr->FreeBuffer(buffer);
182 #if defined(WIN32) || defined(_WIN32_WCE) 184 inline void *
operator new[](
size_t numbytes,
RTPMemoryManager *mgr,
int memtype)
187 return operator new[](numbytes);
188 return mgr->AllocateBuffer(numbytes,memtype);
191 inline void operator delete[](
void *buffer,
RTPMemoryManager *mgr,
int memtype)
194 operator delete[](buffer);
196 mgr->FreeBuffer(buffer);
198 #endif // _MSC_VER >= 1300 200 inline void *
operator new[](
size_t numbytes,
RTPMemoryManager *mgr,
int memtype)
203 return operator new[](numbytes);
204 return mgr->AllocateBuffer(numbytes,memtype);
207 inline void operator delete[](
void *buffer,
RTPMemoryManager *mgr,
int memtype)
210 operator delete[](buffer);
212 mgr->FreeBuffer(buffer);
214 #endif // WIN32 || _WIN32_WCE 224 template<
class ClassName>
236 #define RTPNew(a,b) new(a,b) 240 #define RTPNew(a,b) new 241 #define RTPDelete(a,b) delete a 242 #define RTPDeleteByteArray(a,b) delete [] a; 244 #endif // RTP_SUPPORT_MEMORYMANAGEMENT 246 #endif // RTPMEMORYMANAGER_H virtual void FreeBuffer(void *buffer)=0
Frees the previously allocated memory block buffer.
virtual void * AllocateBuffer(size_t numbytes, int memtype)=0
Called to allocate numbytes of memory.
A memory manager.
Definition: rtpmemorymanager.h:144