## NAME

ACE_DLList - A double-linked list container class.

## SYNOPSIS

    #include <ace/Containers.h>

    template<class T>
    class ACE_DLList : public ACE_DLList_Base
    {
      public:
        friend class ACE_DLList_Node;
        friend class ACE_Double_Linked_List_Iterator<T>;
        friend class ACE_DLList_Iterator<T>;
        friend class ACE_DLList_Reverse_Iterator<T>;
        void operator= (ACE_DLList<T> &l);
        T *insert_tail (T *new_item);
        T *insert_head (T *new_item);
        T *delete_head (void);
        T *delete_tail (void);
        int get (T *&item, size_t slot = 0);
        void dump (void) const;
        int remove (ACE_DLList_Node *n);
        ACE_DLList (ACE_Allocator *alloc = 0);
        ACE_DLList (ACE_DLList<T> &l);
        ~ACE_DLList (void);
    };

## DESCRIPTION

This implementation uses ACE_Double_Linked_List to perform the logic behind this container class. It delegates all of its calls to ACE_Double_Linked_List.

## Classic queue operations.

    T *insert_tail (T *new_item);

Delegates to ACE_Double_Linked_List.

    T *insert_head (T *new_item);

Delegates to ACE_Double_Linked_List.

    T *delete_head (void);

Delegates to ACE_Double_Linked_List.

    T *delete_tail (void);

Delegates to ACE_Double_Linked_List.

## Additional utility methods.

    int get (T *&item, size_t slot = 0);

Delegates to ACE_Double_Linked_List, but where ACE_Double_Linked_List returns the node as the item, this get returns the contents of the node in item.

    void dump (void) const;

Delegates to ACE_Double_Linked_List.

    int remove (ACE_DLList_Node *n);

Delegates to ACE_Double_Linked_List.

## Initialization and termination methods.

    ACE_DLList (ACE_Allocator *alloc = 0);

Delegates to ACE_Double_Linked_List.

    ACE_DLList (ACE_DLList<T> &l);

Delegates to ACE_Double_Linked_List.

    ~ACE_DLList (void);

Deletes the list starting from the head.

## AUTHOR

Doug Schmidt

## LIBRARY

ace