00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _DECAF_INTERNAL_APRPOOL_H_
00019 #define _DECAF_INTERNAL_APRPOOL_H_
00020
00021 #include <decaf/util/Config.h>
00022
00023 #include <apr_pools.h>
00024
00025 namespace decaf{
00026 namespace internal{
00027
00033 class DECAF_API AprPool {
00034 private:
00035
00039 mutable apr_pool_t* aprPool;
00040
00041 private:
00042
00043 AprPool(const AprPool& pool);
00044 AprPool& operator=(const AprPool& pool);
00045
00046 public:
00047
00048 AprPool();
00049 virtual ~AprPool();
00050
00055 apr_pool_t* getAprPool() const;
00056
00062 void cleanup();
00063
00068 static apr_pool_t* getGlobalPool();
00069
00070 private:
00071
00075 void allocatePool() const;
00076
00080 void destroyPool();
00081
00082 };
00083
00084 }}
00085
00086 #endif