library: libCore #include "TProcessUUID.h"

# TProcessUUID

class description - source file - inheritance tree (.pdf)

## class TProcessUUID : public TProcessID

| Inheritance Chart:
`TObject`
| <- | `TNamed`
| <- | `TProcessID`
| <- | `TProcessUUID` |

        public:

                          TProcessUUID()
                          TProcessUUID(const TProcessUUID&)
                  virtual ~TProcessUUID()
                   UInt_t AddUUID(TUUID& uuid, TObject* obj)
                   UInt_t AddUUID(const char* uuids)
           static TClass* Class()
              TObjString* FindUUID(UInt_t number) const
                   TBits* GetActive() const
               THashList* GetUUIDs() const
          virtual TClass* IsA() const
            TProcessUUID& operator=(const TProcessUUID&)
                     void RemoveUUID(UInt_t number)
             virtual void ShowMembers(TMemberInspector& insp, char* parent)
             virtual void Streamer(TBuffer& b)
                     void StreamerNVirtual(TBuffer& b)

### Data Members

        protected:

          THashList* fUUIDs   Global list of TUUIDs
              TBits* fActive  Table of active UUIDs

## Class Description

     TProcessUUID

     This class is a specialized TProcessID managing the list of UUIDs.
     In addition to TProcessID, this object has the following members:
       - fUUIDs  : a THashlist of TUUIDs in string format (using a TObjString)
       - fActive : a TBits table with one bit per TUUID in the table
     When a new TUUID is entered into the list fUUIDs, it is assigned
     the first free slot in the list of bits and the TUUID UUIDNumber
     is set to this slot number.
     When a TUUID is removed from the list, the corresponding bit
     is reset in fActive.
     The object corresponding to a TUUID at slot I can be found
     via fObjects->At(I).
     One can use two mechanisms to find the object corresponding to a TUUID:
      1- the input is the TUUID.AsString. One can find the corresponding
         TObjString object objs in fUUIDs via THashList::FindObject(name).
         The slot number is then objs->GetUniqueID().
      2- The input is the UUIDNumber. The slot number is UIUIDNumber

     When a TRef points to an object having a TUUID, both the TRef and the
     referenced object have their bit kHasUUID set. In this case, the pointer
     TProcessID *fPID in TRef points to the unique object TProcessUUID.
     The TRef uniqueID is directly the UUIDNumber=slot number.

TProcessUUID() : TProcessID()

~TProcessUUID()

UInt_t AddUUID(TUUID &uuid, TObject *obj)

     Add uuid to the table of UUIDs
     The TObject *obj has its uniqueID set to the UUID number
     return entry number in the table

UInt_t AddUUID(const char *uuids)

     Add uuid with name uuids to the table of UUIDs
     return entry number in the table

TObjString* FindUUID(UInt_t number) const

    Find the TObjString by slot number

void RemoveUUID(UInt_t number)

    Remove entry number in the list of uuids

### Inline Functions

                   TBits* GetActive() const
               THashList* GetUUIDs() const
                  TClass* Class()
                  TClass* IsA() const
                     void ShowMembers(TMemberInspector& insp, char* parent)
                     void Streamer(TBuffer& b)
                     void StreamerNVirtual(TBuffer& b)
             TProcessUUID TProcessUUID(const TProcessUUID&)
            TProcessUUID& operator=(const TProcessUUID&)

Author: Rene Brun 06/07/2002
Last update: root/base:$Name: $:$Id: TProcessUUID.cxx,v 1.1 2002/07/09 21:17:02 brun Exp $
Copyright (C) 1995-2001, Rene Brun and Fons Rademakers. *