//*CMZ : 2.22/02 25/05/99 19.19.04 by Fons Rademakers
//*CMZ : 1.03/06 24/10/97 13.18.02 by Fons Rademakers
//*-- Author : Fons Rademakers 21/10/97
//*KEEP,CopyRight,T=C.
/*************************************************************************
* Copyright(c) 1995-1999, The ROOT System, All rights reserved. *
* Authors: Rene Brun, Fons Rademakers. *
* For list of contributors see $ROOTSYS/AA_CREDITS. *
* *
* Permission to use, copy, modify and distribute this software and its *
* documentation for non-commercial purposes is hereby granted without *
* fee, provided that the above copyright notice appears in all copies *
* and that both the copyright notice and this permission notice appear *
* in the supporting documentation. The authors make no claims about the *
* suitability of this software for any purpose. It is provided "as is" *
* without express or implied warranty. *
*************************************************************************/
//*KEND.
//////////////////////////////////////////////////////////////////////////
// //
// TArray //
// //
// Abstract array base class. Used by TArrayC, TArrayS, TArrayI, //
// TArrayL, TArrayF and TArrayD. //
// Data member is public for historical reasons. //
// //
//////////////////////////////////////////////////////////////////////////
//*KEEP,TArray,T=C++.
#include "TArray.h"
//*KEEP,TError.
#include "TError.h"
//*KEEP,TClass.
#include "TClass.h"
//*KEEP,TBuffer.
#include "TBuffer.h"
//*KEND.
ClassImp(TArray)
//______________________________________________________________________________
Bool_t TArray::OutOfBoundsError(const char *where, Int_t i) const
{
// Generate an out-of-bounds error. Always returns false.
::Error(where, "index %d out of bounds (size: %d, this: 0x%08x)", i, fN, this);
return kFALSE;
}
//______________________________________________________________________________
TArray *TArray::ReadArray(TBuffer &b, const TClass *clReq)
{
// Read TArray object from buffer.
Assert(b.IsReading());
// Make sure ReadArray is initialized
b.InitMap();
UInt_t tag;
TClass *clRef = b.ReadClass(clReq, &tag);
TArray *a;
if (!clRef) {
a = 0;
} else {
a = (TArray *) clRef->New();
if (!a) {
::Error("TArray::ReadArray", "could not create object of class %s",
clRef->GetName());
// Exception
}
a->Streamer(b);
}
return a;
}
//______________________________________________________________________________
void TArray::WriteArray(TBuffer &b, const TArray *a)
{
// Write TArray object to buffer.
Assert(b.IsWriting());
// Make sure WriteMap is initialized
b.InitMap();
if (!a) {
b << (UInt_t) 0;
} else {
TClass *cl = a->IsA();
b.WriteClass(cl);
((TArray *)a)->Streamer(b);
}
}
//______________________________________________________________________________
TBuffer &operator>>(TBuffer &buf, TArray *&obj)
{
// Read TArray object from buffer. Function declared in ClassDef.
obj = (TArray *) TArray::ReadArray(buf, TArray::Class());
return buf;
}
//______________________________________________________________________________
TBuffer &operator<<(TBuffer &buf, const TArray *obj)
{
// Write TArray or derived object to buffer.
TArray::WriteArray(buf, obj);
return buf;
}
ROOT page - Class index - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.