]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliArrayI.cxx
Forward declarations.
[u/mrichter/AliRoot.git] / TPC / AliArrayI.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /*
17 $Log$
18 Revision 1.1.4.2  2000/04/10 11:32:37  kowal2
19
20 "ROOT"-based class with some extra functionality
21
22 */
23
24 ///////////////////////////////////////////////////////////////////////
25 //   Added additional functionality  to original TArrayI              //
26 //   multiple inheritance from TObject to be possible use automatic   //
27 //   branch mechanism for tree
28 //   function Expand to be possible expand array without deleting     //
29 //   array contents                                                  //
30 //                                                                   //
31 //  Origin:  Marian Ivanov, Uni. of Bratislava, ivanov@fmph.uniba.sk // 
32 //                                                                   //  
33 ///////////////////////////////////////////////////////////////////////
34 #include "AliArrayI.h"
35 ClassImp(AliArrayI)
36 void AliArrayI::Expand(Int_t n)
37 {
38   //
39   // Set array size of TArrayI object to n integers and copy old array
40   // If n<0 leave array unchanged.
41   // user are responsible for appopiate size of array
42   //
43   if (n < 0) return;  
44   fArray = (Int_t*)  TStorage::ReAlloc(fArray, n * sizeof(Int_t),fN * sizeof(Int_t));
45   if (fArray!=0) fN= n; 
46 }
47
48 void AliArrayI::Streamer(TBuffer &R__b)
49 {
50    // Stream an object of class AliTPC.
51
52    if (R__b.IsReading()) {
53       Version_t R__v = R__b.ReadVersion(); if (R__v) { }
54       TObject::Streamer(R__b);     
55       //read pad parameters
56       R__b >> fN;
57       if (fArray!=0) {
58         delete [] fArray;
59         fArray = 0;
60       }
61       if (fN>0){
62         fArray = new Int_t[fN];
63         R__b.ReadFastArray(fArray,fN); 
64       }
65    } else {
66       R__b.WriteVersion(AliArrayI::IsA());
67       TObject::Streamer(R__b);   
68       R__b << fN;     
69       if (fN>0) R__b.WriteFastArray(fArray,fN); 
70    }
71 }