#include <ace/Free_List.h>
template<class T, class ACE_LOCK> class ACE_Locked_Free_List : public ACE_Free_List<T> {
public:ACE_Locked_Free_List ( int mode = ACE_FREE_LIST_WITH_POOL, size_t prealloc = ACE_DEFAULT_FREE_LIST_PREALLOC, size_t lwm = ACE_DEFAULT_FREE_LIST_LWM, size_t hwm = ACE_DEFAULT_FREE_LIST_HWM, size_t inc = ACE_DEFAULT_FREE_LIST_INC );virtual ~ACE_Locked_Free_List (void);virtual void add (T *element);virtual T *remove (void);virtual size_t size (void);virtual void resize (size_t newsize);protected:virtual void alloc (size_t n);virtual void dealloc (size_t n);int mode_;T *free_list_;size_t lwm_;size_t hwm_;size_t inc_;size_t size_;ACE_LOCK mutex_;private:inline ACE_UNIMPLEMENTED_FUNC ( ACE_Locked_Free_List (const ACE_Locked_Free_List<T, ACE_LOCK> &) );};
ACE_Locked_Free_List (
int mode = ACE_FREE_LIST_WITH_POOL,
size_t prealloc = ACE_DEFAULT_FREE_LIST_PREALLOC,
size_t lwm = ACE_DEFAULT_FREE_LIST_LWM,
size_t hwm = ACE_DEFAULT_FREE_LIST_HWM,
size_t inc = ACE_DEFAULT_FREE_LIST_INC
);
mode (i.e., ACE_FREE_LIST_WITH_POOL or
ACE_PURE_FREE_LIST), a count of the number of nodes to
prealloc, a low and high water mark (lwm and hwm) that
indicate when to allocate more nodes, an increment value (inc)
that indicates how many nodes to allocate when the list must
grow.
virtual ~ACE_Locked_Free_List (void);
virtual void add (T *element);
virtual T *remove (void);
inc new elements if the size is at or below the low water mark.
virtual size_t size (void);
virtual void resize (size_t newsize);
newsize.
inline ACE_UNIMPLEMENTED_FUNC (
ACE_Locked_Free_List (const ACE_Locked_Free_List<T, ACE_LOCK> &)
);