summaryrefslogtreecommitdiff
path: root/cpp/include/IceUtil/MemoryPool.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/IceUtil/MemoryPool.h')
-rwxr-xr-xcpp/include/IceUtil/MemoryPool.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/cpp/include/IceUtil/MemoryPool.h b/cpp/include/IceUtil/MemoryPool.h
new file mode 100755
index 00000000000..8b04bf6fe9b
--- /dev/null
+++ b/cpp/include/IceUtil/MemoryPool.h
@@ -0,0 +1,56 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#ifndef UTIL_MEMORY_POOL_H
+#define UTIL_MEMORY_POOL_H
+
+#include <IceUtil/Mutex.h>
+
+namespace IceUtil
+{
+
+class ICE_UTIL_API SimpleMemoryPool
+{
+public:
+
+ SimpleMemoryPool(const char*, int);
+
+ void* operatorNew(size_t);
+ void operatorDelete(void*);
+
+ static void usePool(bool);
+ static void traceLevel(int);
+
+protected:
+
+ static bool _usePool;
+
+private:
+
+ const char* _name;
+ const int _num;
+
+ void* _pool;
+
+ static int _traceLevel;
+};
+
+class ICE_UTIL_API MemoryPool : public SimpleMemoryPool, IceUtil::Mutex
+{
+public:
+
+ MemoryPool(const char*, int);
+
+ void* operatorNew(size_t);
+ void operatorDelete(void*);
+};
+
+}
+
+#endif