ROOT  6.06/09
Reference Guide
TArrayC.h
Go to the documentation of this file.
1 // @(#)root/cont:$Id$
2 // Author: Rene Brun 06/03/95
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TArrayC
13 #define ROOT_TArrayC
14 
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TArrayC //
19 // //
20 // Array of chars or bytes (8 bits per element). //
21 // //
22 //////////////////////////////////////////////////////////////////////////
23 
24 #ifndef ROOT_TArray
25 #include "TArray.h"
26 #endif
27 
28 
29 class TArrayC : public TArray {
30 
31 public:
32  Char_t *fArray; //[fN] Array of fN chars
33 
34  TArrayC();
35  TArrayC(Int_t n);
36  TArrayC(Int_t n, const Char_t *array);
37  TArrayC(const TArrayC &array);
38  TArrayC &operator=(const TArrayC &rhs);
39  virtual ~TArrayC();
40 
41  void Adopt(Int_t n, Char_t *array);
42  void AddAt(Char_t c, Int_t i);
43  Char_t At(Int_t i) const ;
44  void Copy(TArrayC &array) const {array.Set(fN,fArray);}
45  const Char_t *GetArray() const { return fArray; }
46  Char_t *GetArray() { return fArray; }
47  Double_t GetAt(Int_t i) const { return At(i); }
48  Stat_t GetSum() const {Stat_t sum=0; for (Int_t i=0;i<fN;i++) sum+=fArray[i]; return sum;}
49  void Reset(Char_t val=0) {memset(fArray,val,fN*sizeof(Char_t));}
50  void Set(Int_t n);
51  void Set(Int_t n, const Char_t *array);
52  void SetAt(Double_t v, Int_t i) { AddAt((Char_t)v, i); }
54  Char_t operator[](Int_t i) const;
55 
56  ClassDef(TArrayC,1) //Array of chars
57 };
58 
59 
60 #if defined R__TEMPLATE_OVERLOAD_BUG
61 template <>
62 #endif
64 {
65  // Read TArrayC object from buffer.
66 
67  obj = (TArrayC *) TArray::ReadArray(buf, TArrayC::Class());
68  return buf;
69 }
70 
71 #if defined R__TEMPLATE_OVERLOAD_BUG
72 template <>
73 #endif
74 inline TBuffer &operator<<(TBuffer &buf, const TArrayC *obj)
75 {
76  // Write a TArrayC object into buffer
77  return buf << (const TArray*)obj;
78 }
79 
80 inline Char_t TArrayC::At(Int_t i) const
81 {
82  if (!BoundsOk("TArrayC::At", i)) return 0;
83  return fArray[i];
84 }
85 
87 {
88  if (!BoundsOk("TArrayC::operator[]", i))
89  i = 0;
90  return fArray[i];
91 }
92 
94 {
95  if (!BoundsOk("TArrayC::operator[]", i)) return 0;
96  return fArray[i];
97 }
98 
99 #endif
Abstract array base class.
Definition: TArray.h:33
virtual ~TArrayC()
Delete TArrayC object.
Definition: TArrayC.cxx:70
void Set(Int_t n)
Set size of this array to n chars.
Definition: TArrayC.cxx:104
void Adopt(Int_t n, Char_t *array)
Adopt array arr into TArrayC, i.e.
Definition: TArrayC.cxx:80
void SetAt(Double_t v, Int_t i)
Definition: TArrayC.h:52
Buffer base class used for serializing objects.
Definition: TBuffer.h:40
TArrayC & operator=(const TArrayC &rhs)
TArrayC assignment operator.
Definition: TArrayC.cxx:60
TBuffer & operator>>(TBuffer &buf, TArrayC *&obj)
Definition: TArrayC.h:63
int Int_t
Definition: RtypesCore.h:41
void Reset(Char_t val=0)
Definition: TArrayC.h:49
#define ClassDef(name, id)
Definition: Rtypes.h:254
void Class()
Definition: Class.C:29
Char_t * GetArray()
Definition: TArrayC.h:46
const Char_t * GetArray() const
Definition: TArrayC.h:45
Char_t & operator[](Int_t i)
Definition: TArrayC.h:86
Char_t At(Int_t i) const
Definition: TArrayC.h:80
Int_t fN
Definition: TArray.h:40
Bool_t BoundsOk(const char *where, Int_t at) const
Definition: TArray.h:79
SVector< double, 2 > v
Definition: Dict.h:5
static TArray * ReadArray(TBuffer &b, const TClass *clReq)
Read TArray object from buffer.
Definition: TArray.cxx:40
void Copy(TArrayC &array) const
Definition: TArrayC.h:44
double Double_t
Definition: RtypesCore.h:55
Stat_t GetSum() const
Definition: TArrayC.h:48
double Stat_t
Definition: RtypesCore.h:73
char Char_t
Definition: RtypesCore.h:29
void AddAt(Char_t c, Int_t i)
Add char c at position i. Check for out of bounds.
Definition: TArrayC.cxx:92
Char_t * fArray
Definition: TArrayC.h:32
Double_t GetAt(Int_t i) const
Definition: TArrayC.h:47
TObject * obj
const Int_t n
Definition: legend1.C:16
TBuffer & operator<<(TBuffer &buf, const TArrayC *obj)
Definition: TArrayC.h:74
Array of chars or bytes (8 bits per element).
Definition: TArrayC.h:29