ROOT logo
// @(#)root/tree:$Id$
// Author: Rene Brun   11/02/97

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// A TChainElement describes a component of a TChain.                   //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#include "TTree.h"
#include "TChainElement.h"
#include "Riostream.h"
#include "TROOT.h"

ClassImp(TChainElement)

//______________________________________________________________________________
TChainElement::TChainElement() : TNamed(),fBaddress(0),fBaddressType(0),
                                 fBaddressIsPtr(kFALSE), fBranchPtr(0)
{
   // Default constructor for a chain element.

   fNPackets   = 0;
   fPackets    = 0;
   fEntries    = 0;
   fPacketSize = 100;
   fStatus     = -1;
   ResetBit(kHasBeenLookedUp);
}

//______________________________________________________________________________
TChainElement::TChainElement(const char *name, const char *title)
   :TNamed(name,title),fBaddress(0),fBaddressType(0),
    fBaddressIsPtr(kFALSE), fBranchPtr(0)
{
   // Create a chain element.

   fNPackets   = 0;
   fPackets    = 0;
   fEntries    = 0;
   fPacketSize = 100;
   fStatus     = -1;
   ResetBit(kHasBeenLookedUp);
}

//______________________________________________________________________________
TChainElement::~TChainElement()
{
   // Default destructor for a chain element.

   delete [] fPackets;
}

//_______________________________________________________________________
void TChainElement::CreatePackets()
{
   // Initialize the packet descriptor string.

   fNPackets = 1 + Int_t(fEntries/fPacketSize);
   delete [] fPackets;
   fPackets = new char[fNPackets+1];
   for (Int_t i=0;i<fNPackets;i++) fPackets[i] = ' ';
   fPackets[fNPackets] = 0;

}

//_______________________________________________________________________
void TChainElement::ls(Option_t *) const
{
   // List files in the chain.

   TROOT::IndentLevel();
   cout << GetTitle() << "tree:" << GetName() << " entries=" << fEntries << '\n';
}

//_______________________________________________________________________
void TChainElement::SetPacketSize(Int_t size)
{
   // Set number of entries per packet for parallel root.

   fPacketSize = size;
}

//_______________________________________________________________________
void TChainElement::SetLookedUp(Bool_t y)
{
   // Set/Reset the looked-up bit
   if (y)
      SetBit(kHasBeenLookedUp);
   else
      ResetBit(kHasBeenLookedUp);
}

 TChainElement.cxx:1
 TChainElement.cxx:2
 TChainElement.cxx:3
 TChainElement.cxx:4
 TChainElement.cxx:5
 TChainElement.cxx:6
 TChainElement.cxx:7
 TChainElement.cxx:8
 TChainElement.cxx:9
 TChainElement.cxx:10
 TChainElement.cxx:11
 TChainElement.cxx:12
 TChainElement.cxx:13
 TChainElement.cxx:14
 TChainElement.cxx:15
 TChainElement.cxx:16
 TChainElement.cxx:17
 TChainElement.cxx:18
 TChainElement.cxx:19
 TChainElement.cxx:20
 TChainElement.cxx:21
 TChainElement.cxx:22
 TChainElement.cxx:23
 TChainElement.cxx:24
 TChainElement.cxx:25
 TChainElement.cxx:26
 TChainElement.cxx:27
 TChainElement.cxx:28
 TChainElement.cxx:29
 TChainElement.cxx:30
 TChainElement.cxx:31
 TChainElement.cxx:32
 TChainElement.cxx:33
 TChainElement.cxx:34
 TChainElement.cxx:35
 TChainElement.cxx:36
 TChainElement.cxx:37
 TChainElement.cxx:38
 TChainElement.cxx:39
 TChainElement.cxx:40
 TChainElement.cxx:41
 TChainElement.cxx:42
 TChainElement.cxx:43
 TChainElement.cxx:44
 TChainElement.cxx:45
 TChainElement.cxx:46
 TChainElement.cxx:47
 TChainElement.cxx:48
 TChainElement.cxx:49
 TChainElement.cxx:50
 TChainElement.cxx:51
 TChainElement.cxx:52
 TChainElement.cxx:53
 TChainElement.cxx:54
 TChainElement.cxx:55
 TChainElement.cxx:56
 TChainElement.cxx:57
 TChainElement.cxx:58
 TChainElement.cxx:59
 TChainElement.cxx:60
 TChainElement.cxx:61
 TChainElement.cxx:62
 TChainElement.cxx:63
 TChainElement.cxx:64
 TChainElement.cxx:65
 TChainElement.cxx:66
 TChainElement.cxx:67
 TChainElement.cxx:68
 TChainElement.cxx:69
 TChainElement.cxx:70
 TChainElement.cxx:71
 TChainElement.cxx:72
 TChainElement.cxx:73
 TChainElement.cxx:74
 TChainElement.cxx:75
 TChainElement.cxx:76
 TChainElement.cxx:77
 TChainElement.cxx:78
 TChainElement.cxx:79
 TChainElement.cxx:80
 TChainElement.cxx:81
 TChainElement.cxx:82
 TChainElement.cxx:83
 TChainElement.cxx:84
 TChainElement.cxx:85
 TChainElement.cxx:86
 TChainElement.cxx:87
 TChainElement.cxx:88
 TChainElement.cxx:89
 TChainElement.cxx:90
 TChainElement.cxx:91
 TChainElement.cxx:92
 TChainElement.cxx:93
 TChainElement.cxx:94
 TChainElement.cxx:95
 TChainElement.cxx:96
 TChainElement.cxx:97
 TChainElement.cxx:98
 TChainElement.cxx:99
 TChainElement.cxx:100
 TChainElement.cxx:101