## NAME

ACE_Malloc_Iterator - Iterator for names stored in Malloc'd memory.

## SYNOPSIS

    #include <ace/Malloc_T.h>

    template<ACE_MEM_POOL_1, class ACE_LOCK>
    class ACE_Malloc_Iterator
    {
      public:
        ACE_Malloc_Iterator (
            ACE_Malloc<ACE_MEM_POOL_2, ACE_LOCK> &malloc,
            const char *name = 0
            );
        ~ACE_Malloc_Iterator (void);
        int next (void *&next_entry);
        int done (void) const;
        int next (void *&next_entry, const char *&name);
        int advance (void);
        void dump (void) const;
        ACE_ALLOC_HOOK_DECLARE;
      private:
        ACE_Malloc<ACE_MEM_POOL_2, ACE_LOCK> &malloc_;
        ACE_Name_Node *curr_;
        ACE_Read_Guard<ACE_LOCK> guard_;
        const char *name_;
    };

## DESCRIPTION

Does not allows deletions while iteration is occurring.

## Initialization method.

    ACE_Malloc_Iterator (
        ACE_Malloc<ACE_MEM_POOL_2, ACE_LOCK> &malloc,
        const char *name = 0
        );

if `name` = 0 it will iterate through everything else only through those entries whose `name` match.

    ~ACE_Malloc_Iterator (void);

## Iteration methods.

    int next (void *&next_entry);

Pass back the next `entry` in the set that hasn't yet been visited. Returns 0 when all items have been seen, else 1.

    int done (void) const;

Returns 1 when all items have been seen, else 0.

    int next (void *&next_entry, const char *&name);

Pass back the next `entry` (and the `name` associated with it) in the set that hasn't yet been visited. Returns 0 when all items have been seen, else 1.

    int advance (void);

Move forward by one element in the set. Returns 0 when all the items in the set have been seen, else 1.

    void dump (void) const;

Dump the state of an object.

    ACE_ALLOC_HOOK_DECLARE;

Declare the dynamic allocation hooks.

## AUTHOR

Doug Schmidt and Irfan Pyarali

## LIBRARY

ace