## NAME

ACE_Thread_Descriptor_Base - Basic information for thread descriptors. These information gets extracted out because we need it after a thread is terminated.

## SYNOPSIS

    #include <ace/Thread_Manager.h>

    class ACE_Thread_Descriptor_Base : public ACE_OS_Thread_Descriptor
    {
      public:
        friend class ACE_Thread_Manager;
        friend class ACE_Double_Linked_List<ACE_Thread_Descriptor_Base>;
            friend class ACE_Double_Linked_List_Iterator_Base<ACE_Thread_Descriptor_Base>;

            friend class ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor_Base>;

        friend class ACE_Double_Linked_List<ACE_Thread_Descriptor>;
            friend class ACE_Double_Linked_List_Iterator_Base<ACE_Thread_Descriptor>;

            friend class ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor>;

        ACE_Thread_Descriptor_Base (void);
        ~ACE_Thread_Descriptor_Base (void);
        int operator== (const ACE_Thread_Descriptor_Base &rhs) const;
        int operator!= (const ACE_Thread_Descriptor_Base &rhs) const;
        int grp_id (void);
        ACE_UINT32 state (void);
        ACE_Task_Base *task (void);
      protected:
        ACE_thread_t thr_id_;
        ACE_hthread_t thr_handle_;
        int grp_id_;
        ACE_UINT32 thr_state_;
        ACE_Task_Base *task_;
        ACE_Thread_Descriptor_Base *next_;
        ACE_Thread_Descriptor_Base *prev_;
    };

## We need the following operators to make Borland happy.

    int operator== (const ACE_Thread_Descriptor_Base &rhs) const;

Equality operator.

    int operator!= (const ACE_Thread_Descriptor_Base &rhs) const;

Inequality operator.

    int grp_id (void);

Group ID.

    ACE_UINT32 state (void);

Current state of the thread.

    ACE_Task_Base *task (void);

Return the pointer to an `ACE_Task_Base` or NULL if there's no `ACE_Task_Base` associated with this thread.;

## AUTHOR

Doug Schmidt

## LIBRARY

ace