00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef FALCON_GARBAGELOCK_H
00017 #define FALCON_GARBAGELOCK_H
00018
00019 #include <falcon/setup.h>
00020 #include <falcon/types.h>
00021 #include <falcon/basealloc.h>
00022 #include <falcon/item.h>
00023
00024 namespace Falcon {
00025
00026 class MemPool;
00027
00028
00029
00042 class FALCON_DYN_CLASS GarbageLock: public BaseAlloc
00043 {
00044 GarbageLock *m_garbage_next;
00045 GarbageLock *m_garbage_prev;
00046
00047 Item m_item;
00048
00049 friend class MemPool;
00050 GarbageLock *next() const { return m_garbage_next; }
00051 GarbageLock *prev() const { return m_garbage_prev; }
00052 void next( GarbageLock *next ) { m_garbage_next = next; }
00053 void prev( GarbageLock *prev ) { m_garbage_prev = prev; }
00054
00055
00056 GarbageLock( bool );
00057
00058 public:
00063 GarbageLock();
00064
00066 GarbageLock( const Item &itm );
00067
00069 ~GarbageLock();
00070
00072 const Item &item() const { return m_item; }
00073
00080 Item &item() { return m_item; }
00081 };
00082
00083
00084
00085 }
00086
00087 #endif
00088
00089