NAME

ACE_Locked_Free_List - Implements a free list.

SYNOPSIS

#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> &) ); };

DESCRIPTION

This class maintains a free list of nodes of type T. It depends on the type T having a get_next () and set_next () method. It maintains a mutex so the freelist can be used in a multithreaded program .

Initialization and termination.

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);

Don't allow these operations for now.

inline ACE_UNIMPLEMENTED_FUNC (
    ACE_Locked_Free_List (const ACE_Locked_Free_List<T, ACE_LOCK> &)
    );

AUTHOR

Darrell Brunsch (brunsch@cs.wustl.edu)

LIBRARY

ace