summaryrefslogtreecommitdiffstats
path: root/lib/libUPnP/Neptune/Source/System/Apple/NptAppleAutoreleasePool.mm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libUPnP/Neptune/Source/System/Apple/NptAppleAutoreleasePool.mm')
-rw-r--r--lib/libUPnP/Neptune/Source/System/Apple/NptAppleAutoreleasePool.mm61
1 files changed, 61 insertions, 0 deletions
diff --git a/lib/libUPnP/Neptune/Source/System/Apple/NptAppleAutoreleasePool.mm b/lib/libUPnP/Neptune/Source/System/Apple/NptAppleAutoreleasePool.mm
new file mode 100644
index 0000000..edced15
--- /dev/null
+++ b/lib/libUPnP/Neptune/Source/System/Apple/NptAppleAutoreleasePool.mm
@@ -0,0 +1,61 @@
+/*****************************************************************
+|
+| Neptune - Autorelease Pool :: Apple Implementation
+|
+| (c) 2001-2008 Gilles Boccon-Gibod
+| Author: Gilles Boccon-Gibod (bok@bok.net)
+|
+****************************************************************/
+
+/*----------------------------------------------------------------------
+| includes
++---------------------------------------------------------------------*/
+#include <Foundation/Foundation.h>
+#include "NptAutoreleasePool.h"
+
+/*----------------------------------------------------------------------
+| AppleAutoReleasePool
++---------------------------------------------------------------------*/
+class AppleAutoreleasePool : public NPT_AutoreleasePoolInterface
+{
+public:
+ AppleAutoreleasePool();
+ virtual ~AppleAutoreleasePool();
+
+private:
+ NSAutoreleasePool* m_Pool;
+};
+
+/*----------------------------------------------------------------------
+| AppleAutoreleasePool::AppleAutoreleasePool
++---------------------------------------------------------------------*/
+AppleAutoreleasePool::AppleAutoreleasePool()
+{
+ m_Pool = [[NSAutoreleasePool alloc] init];
+}
+
+/*----------------------------------------------------------------------
+| AppleAutoreleasePool::~AppleAutoreleasePool
++---------------------------------------------------------------------*/
+AppleAutoreleasePool::~AppleAutoreleasePool()
+{
+ [m_Pool drain];
+ m_Pool = NULL;
+}
+
+/*----------------------------------------------------------------------
+| NPT_AutoreleasePool::NPT_AutoreleasePool
++---------------------------------------------------------------------*/
+NPT_AutoreleasePool::NPT_AutoreleasePool()
+{
+ m_Delegate = new AppleAutoreleasePool;
+}
+
+/*----------------------------------------------------------------------
+| NPT_AutoreleasePool::~NPT_AutoreleasePool
++---------------------------------------------------------------------*/
+NPT_AutoreleasePool::~NPT_AutoreleasePool()
+{
+ delete m_Delegate;
+ m_Delegate = NULL;
+}