g4tools  5.4.0
Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
tools::rroot::file Class Reference
Inheritance diagram for tools::rroot::file:
Inheritance graph
[legend]
Collaboration diagram for tools::rroot::file:
Collaboration graph
[legend]

Public Member Functions

virtual const std::string & s_cls () const
 
virtual const std::string & path () const
 
virtual bool verbose () const
 
virtual std::ostream & out () const
 
virtual bool byte_swap () const
 
virtual bool set_pos (seek a_offset=0, from a_from=begin)
 
virtual bool read_buffer (char *a_buffer, uint32 a_length)
 
virtual bool unziper (char a_key, decompress_func &a_func) const
 
virtual keysinfos_key ()
 
 file (std::ostream &a_out, const std::string &a_path, bool a_verbose=false)
 
virtual ~file ()
 
uint32 version () const
 
bool is_open () const
 
void close ()
 
directorydir ()
 
const directorydir () const
 
bool add_unziper (char a_key, decompress_func a_func)
 
bool dump_streamer_infos ()
 
streamer_infofind_streamer_info (const std::string &a_class)
 
- Public Member Functions inherited from tools::rroot::ifile
virtual ~ifile ()
 

Static Public Member Functions

static const std::string & s_class ()
 

Protected Member Functions

 file (const file &a_from)
 
fileoperator= (const file &)
 
bool initialize ()
 
bool read_header ()
 
bool read_streamer_infos_key ()
 
bool read_streamer_infos_data ()
 
int error_number ()
 
void reset_error_number ()
 

Static Protected Member Functions

static int _open (const char *a_name, int a_flags, uint32 a_mode)
 
static std::string sout (const std::string &a_string)
 

Protected Attributes

std::ostream & m_out
 
std::string m_path
 
bool m_verbose
 
int m_file
 
uint64 m_bytes_read
 
directory m_root_directory
 
key m_streamer_infos_key
 
streamer_fac m_streamer_fac
 
obj_list m_streamer_infos
 
std::map< char, decompress_funcm_unzipers
 
std::string m_title
 
uint32 m_version
 
seek m_BEGIN
 
seek m_END
 
seek m_seek_free
 
seek m_seek_info
 
uint32 m_nbytes_free
 
uint32 m_nbytes_info
 
uint32 m_nbytes_name
 

Additional Inherited Members

- Public Types inherited from tools::rroot::ifile
enum  from { begin, current, end }
 

Detailed Description

Definition at line 31 of file file.

Constructor & Destructor Documentation

◆ file() [1/2]

tools::rroot::file::file ( std::ostream &  a_out,
const std::string &  a_path,
bool  a_verbose = false 
)
inline

Definition at line 115 of file file.

116  :m_out(a_out)
117  ,m_path(a_path)
118  ,m_verbose(a_verbose)
119  ,m_file(not_open())
120  ,m_bytes_read(0)
121  ,m_root_directory(get_me())
122  ,m_streamer_infos_key(a_out)
123  ,m_streamer_fac(a_out)
125  // begin of record :
126  ,m_version(0)
127  ,m_BEGIN(0)
128  ,m_END(0)
129  ,m_seek_free(0)
130  ,m_seek_info(0)
131  ,m_nbytes_free(0)
132  ,m_nbytes_info(0)
133  ,m_nbytes_name(0)
134  {
135 #ifdef TOOLS_MEM
136  mem::increment(s_class().c_str());
137 #endif
138 
139  m_file = _open(a_path.c_str(),
140 #ifdef _MSC_VER
141  O_RDONLY | O_BINARY,S_IREAD | S_IWRITE
142 #else
143  O_RDONLY,0644
144 #endif
145  );
146  if(m_file==not_open()) {
147  m_out << "tools::rroot::file::file :"
148  << " can't open " << sout(a_path) << "."
149  << std::endl;
150  return;
151  }
152  initialize();
153  }

◆ ~file()

virtual tools::rroot::file::~file ( )
inlinevirtual

Definition at line 154 of file file.

154  {
155  close();
156 #ifdef TOOLS_MEM
157  mem::decrement(s_class().c_str());
158 #endif
159  }

◆ file() [2/2]

tools::rroot::file::file ( const file a_from)
inlineprotected

Definition at line 161 of file file.

162  :ifile(a_from)
163  ,m_out(a_from.m_out)
164  ,m_root_directory(get_me())
165  ,m_streamer_infos_key(a_from.m_out)
166  ,m_streamer_fac(a_from.m_out)
168  {
169 #ifdef TOOLS_MEM
170  mem::increment(s_class().c_str());
171 #endif
172  }

Member Function Documentation

◆ _open()

static int tools::rroot::file::_open ( const char *  a_name,
int  a_flags,
uint32  a_mode 
)
inlinestaticprotected

Definition at line 224 of file file.

224  {
225 #if defined(__linux__) && (__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 2)
226  return ::open64(a_name,a_flags,a_mode);
227 #else
228  return ::open(a_name,a_flags,a_mode);
229 #endif
230  }

◆ add_unziper()

bool tools::rroot::file::add_unziper ( char  a_key,
decompress_func  a_func 
)
inline

Definition at line 190 of file file.

190  {
191  std::map<char,decompress_func>::const_iterator it = m_unzipers.find(a_key);
192  if(it!=m_unzipers.end()) {
193  //(*it).second = a_func; //override ?
194  return false;
195  } else {
196  m_unzipers[a_key] = a_func;
197  return true;
198  }
199  }

◆ byte_swap()

virtual bool tools::rroot::file::byte_swap ( ) const
inlinevirtual

Implements tools::rroot::ifile.

Definition at line 46 of file file.

46 {return is_little_endian();}

◆ close()

void tools::rroot::file::close ( )
inline

Definition at line 181 of file file.

181  {
182  if(m_file!=not_open()) ::close(m_file);
183  m_file = not_open();
185  }

◆ dir() [1/2]

directory& tools::rroot::file::dir ( )
inline

Definition at line 187 of file file.

187 {return m_root_directory;}

◆ dir() [2/2]

const directory& tools::rroot::file::dir ( ) const
inline

Definition at line 188 of file file.

188 {return m_root_directory;}

◆ dump_streamer_infos()

bool tools::rroot::file::dump_streamer_infos ( )
inline

Definition at line 201 of file file.

201  {
202  // read_streamer_infos_data() done here (and not in initialize) since it may need to have unziper declared.
203  if(m_streamer_infos.empty()) {if(!read_streamer_infos_data()) return false;}
205  streamer_info* info = safe_cast<iro,streamer_info>(*(*it));
206  if(!info) return false;
207  info->out(m_out);
208  }
209  return true;
210  }

◆ error_number()

int tools::rroot::file::error_number ( )
inlineprotected

Definition at line 485 of file file.

485 {return errno;}

◆ find_streamer_info()

streamer_info* tools::rroot::file::find_streamer_info ( const std::string &  a_class)
inlinevirtual

Implements tools::rroot::ifile.

Definition at line 211 of file file.

211  {
212  // read_streamer_infos_data() done here (and not in initialize) since it may need to have unziper declared.
213  if(m_streamer_infos.empty()) {if(!read_streamer_infos_data()) return 0;}
215  streamer_info* info = safe_cast<iro,streamer_info>(*(*it));
216  if(info) {
217  if(info->name()==a_class) return info;
218  }
219  }
220  return 0;
221  }

◆ initialize()

bool tools::rroot::file::initialize ( )
inlineprotected

Definition at line 232 of file file.

232  {
233  if(!read_header()) {
234  m_out << "tools::rroot::file::initialize :"
235  << " can't read header."
236  << std::endl;
237  return false;
238  }
239 /*
240  fRootDirectory->setSeekDirectory(fBEGIN);
241  // Read Free segments structure if file is writable :
242  if (fWritable) {
243  if (fSeekFree > fBEGIN) {
244  if(!readFreeSegments()) {
245  m_out << "tools::rroot::file::initialize : Cannot read free segments."
246  << std::endl;
247  return false;
248  }
249  } else {
250  m_out << "tools::rroot::file::initialize : file \"" << fName
251  << "\" probably not closed, cannot read free segments" << std::endl;
252  }
253  }
254 */
255  // Read Directory info :
257  char* header = new char[nbytes];
258  char* buffer = header;
259  if(!set_pos(m_BEGIN)) {
260  m_out << "tools::rroot::file::initialize :"
261  << " can't set position."
262  << std::endl;
263  delete [] header;
264  return false;
265  }
266  if(!read_buffer(buffer,nbytes)) {
267  m_out << "tools::rroot::file::initialize :"
268  << " can't read buffer."
269  << std::endl;
270  delete [] header;
271  return false;
272  }
273  buffer = header+m_nbytes_name;
274  const char* eob = header+nbytes;
275  if(!m_root_directory.from_buffer(eob,buffer)) {
276  m_out << "tools::rroot::file::initialize :"
277  << " can't read buffer (2)."
278  << std::endl;
279  delete [] header;
280  return false;
281  }
282  uint32 nk = //size of Key
283  sizeof(int) + //Key::fNumberOfBytes
284  sizeof(short) + //Key::fVersion
285  2*sizeof(int) + //Key::fObjectSize, Date
286  2*sizeof(short) + //Key::fKeyLength,fCycle
287  2*sizeof(seek32); //Key::fSeekKey,fSeekParentDirectory
288  //WARNING : the upper is seek32 since at begin of file.
289  buffer = header+nk;
290  std::string cname;
291  rbuf rb(m_out,byte_swap(),eob,buffer);
292  // Should be "TFile".
293  if(!rb.read(cname)) {
294  m_out << "tools::rroot::file::initialize :"
295  << " can't read buffer (3)."
296  << std::endl;
297  delete [] header;
298  return false;
299  }
300  if(cname!="TFile") {
301  m_out << "tools::rroot::file::initialize : TFile expected." << std::endl;
302  delete [] header;
303  return false;
304  }
305  if(m_verbose) {
306  m_out << "tools::rroot::file::initialize :"
307  << " " << sout("TFile") << " found."
308  << std::endl;
309  }
310  if(!rb.read(cname)) {
311  m_out << "tools::rroot::file::initialize :"
312  << " can't read buffer (4)."
313  << std::endl;
314  delete [] header;
315  return false;
316  }
317  if(m_verbose) {
318  m_out << "tools::rroot::file::initialize :"
319  << " found file name " << sout(cname)
320  << std::endl;
321  }
322  if(!rb.read(m_title)) {
323  m_out << "tools::rroot::file::initialize :"
324  << " can't read buffer (5)."
325  << std::endl;
326  delete [] header;
327  return false;
328  }
329  delete [] header;
330  if(m_verbose) {
331  m_out << "tools::rroot::file::initialize :"
332  << " found title " << sout(m_title)
333  << std::endl;
334  }
335  uint32 dirNbytesName = m_root_directory.nbytes_name();
336  if (dirNbytesName < 10 || dirNbytesName > 1000) {
337  m_out << "tools::rroot::file::initialize :"
338  << " can't read directory info."
339  << std::endl;
340  return false;
341  }
342  // Read keys of the top directory :
344  uint32 n;
345  if(!m_root_directory.read_keys(n)) {
346  m_out << "tools::rroot::file::initialize :"
347  << " can't read keys."
348  << std::endl;
349  return false;
350  }
351  } else {
352  m_out << "tools::rroot::file::initialize :"
353  << " file " << sout(m_path)
354  << " probably not closed."
355  << std::endl;
356  return false;
357  }
358 
359  // Create StreamerInfo index
360  if(m_seek_info > m_BEGIN) {
361  if(!read_streamer_infos_key()) {
362  m_out << "tools::rroot::file::initialize :"
363  << " read_streamer_infos_key() failed."
364  << std::endl;
365  return false;
366  }
367  } else {
368  m_out << "tools::rroot::file::initialize :"
369  << " file " << sout(m_path)
370  << " probably not closed."
371  << std::endl;
372  return false;
373  }
374 
375  return true;
376  }

◆ is_open()

bool tools::rroot::file::is_open ( ) const
inline

Definition at line 177 of file file.

177  {
178  return (m_file==not_open()?false:true);
179  }

◆ operator=()

file& tools::rroot::file::operator= ( const file )
inlineprotected

Definition at line 173 of file file.

173 {return *this;}

◆ out()

virtual std::ostream& tools::rroot::file::out ( ) const
inlinevirtual

Implements tools::rroot::ifile.

Definition at line 44 of file file.

44 {return m_out;}

◆ path()

virtual const std::string& tools::rroot::file::path ( ) const
inlinevirtual

Implements tools::rroot::ifile.

Definition at line 41 of file file.

41 {return m_path;}

◆ read_buffer()

virtual bool tools::rroot::file::read_buffer ( char *  a_buffer,
uint32  a_length 
)
inlinevirtual

Implements tools::rroot::ifile.

Definition at line 76 of file file.

76  {
77  // Read a buffer from the file.
78  // This is the basic low level read operation.
79 #ifdef _MSC_VER
80  typedef int ssize_t;
81 #endif
82  ssize_t siz;
83  while ((siz = ::read(m_file,a_buffer,a_length)) < 0 &&
84  error_number() == EINTR) reset_error_number();
85  if (siz < 0) {
86  m_out << "tools::rroot::file::read_buffer :"
87  << " error reading from file " << sout(m_path) << "."
88  << std::endl;
89  return false;
90  }
91  if (siz != ssize_t(a_length)) {
92  m_out << "tools::rroot::file::read_buffer :"
93  << " error reading all requested bytes from file "
94  << sout(m_path) << ", got " << long_out(siz)
95  << " of " << a_length
96  << std::endl;
97  return false;
98  }
99  m_bytes_read += siz;
100  return true;
101  }

◆ read_header()

bool tools::rroot::file::read_header ( )
inlineprotected

Definition at line 377 of file file.

377  {
378  static const uint32 kBegin = 64;
379  char header[kBegin];
380  if(!set_pos()) return false;
381  if(!read_buffer(header,kBegin)) return false;
382  // make sure this is a root file
383  if(::strncmp(header, "root", 4)) {
384  m_out << "tools::rroot::file::read_header :"
385  << " " << sout(m_path) << " not a file at the CERN-ROOT format."
386  << std::endl;
387  return false;
388  }
389  if(m_verbose) {
390  m_out << "tools::rroot::file::read_header :"
391  << " file signature is " << sout("root")
392  << std::endl;
393  }
394  char* buffer = header + 4; // skip the "root" file identifier
395  const char* eob = header + kBegin;
396  rbuf rb(m_out,byte_swap(),eob,buffer);
397  {int v;
398  if(!rb.read(v)) return false;
399  m_version = v;}
400  {seek32 i;
401  if(!rb.read(i)) return false;
402  m_BEGIN = i;}
403  if(m_version>1000000) {
404  if(!rb.read(m_END)) return false;
405  if(!rb.read(m_seek_free)) return false;
406  } else {
407  {seek32 i;
408  if(!rb.read(i)) return false;
409  m_END = i;}
410  {seek32 i;
411  if(!rb.read(i)) return false;
412  m_seek_free = i;}
413  }
414  if(m_verbose) {
415  m_out << "tools::rroot::file::read_header :"
416  << " begin " << m_BEGIN
417  << " end " << m_END
418  << std::endl;
419  }
420  {int v;
421  if(!rb.read(v)) return false;
422  m_nbytes_free = v;}
423  int nfree = 0;
424  if(!rb.read(nfree)) return false;
425  {int v;
426  if(!rb.read(v)) return false;
427  m_nbytes_name = v;}
428  //m_out << "debug : 1002 " << m_nbytes_name << std::endl;
429  {char fUnits;
430  if(!rb.read(fUnits)) return false;}
431  {int fCompress;
432  if(!rb.read(fCompress)) return false;}
433  if(m_version>1000000) {
434  if(!rb.read(m_seek_info)) return false;
435  } else {
436  {seek32 i;
437  if(!rb.read(i)) return false;
438  m_seek_info = i;}
439  }
440  if(!rb.read(m_nbytes_info)) return false;
441  //m_out << "debug : seek_info " << m_seek_info << " nbytes_info " << m_nbytes_info << std::endl;
442  return true;
443  }

◆ read_streamer_infos_data()

bool tools::rroot::file::read_streamer_infos_data ( )
inlineprotected

Definition at line 463 of file file.

463  {
464  key& k = m_streamer_infos_key;
465  if(k.object_class()!="TList") {
466  m_out << "tools::rroot::file::read_streamer_infos_data : key not a TList." << std::endl;
467  return false;
468  }
469  unsigned int sz;
470  char* buf = k.get_object_buffer(*this,sz); //we don't have ownership of buf.
471  if(!buf) {
472  m_out << "tools::rroot::file::read_streamer_infos :"
473  << " can't get data buffer of " << k.object_name() << "."
474  << std::endl;
475  return false;
476  }
477  buffer b(m_out,byte_swap(),sz,buf,k.key_length(),false);
478  return m_streamer_infos.stream(b);
479  }

◆ read_streamer_infos_key()

bool tools::rroot::file::read_streamer_infos_key ( )
inlineprotected

Definition at line 445 of file file.

445  {
446  // Read the list of StreamerInfo from this file
447  // The key with name holding the list of TStreamerInfo objects is read.
448  // The corresponding TClass objects are updated.
449  if(m_seek_info<=0) return false;
450  if(m_seek_info>=m_END) return false;
451  if(!set_pos(m_seek_info)) return false;
452  char* buffer = new char[m_nbytes_info+1];
453  if(!read_buffer(buffer,m_nbytes_info)) {delete [] buffer;return false;}
454  char* buf = buffer;
456  delete [] buffer;
457  return false;
458  }
459  delete [] buffer;
460  return true;
461  }

◆ reset_error_number()

void tools::rroot::file::reset_error_number ( )
inlineprotected

Definition at line 486 of file file.

486 {errno = 0;}

◆ s_class()

static const std::string& tools::rroot::file::s_class ( )
inlinestatic

Definition at line 35 of file file.

35  {
36  static const std::string s_v("tools::rroot::file");
37  return s_v;
38  }

◆ s_cls()

virtual const std::string& tools::rroot::file::s_cls ( ) const
inlinevirtual

Definition at line 39 of file file.

39 {return s_class();}

◆ set_pos()

virtual bool tools::rroot::file::set_pos ( seek  a_offset = 0,
from  a_from = begin 
)
inlinevirtual

Implements tools::rroot::ifile.

Definition at line 47 of file file.

47  {
48  int whence = 0;
49  switch(a_from) {
50  case begin:
51  whence = SEEK_SET;
52  break;
53  case current:
54  whence = SEEK_CUR;
55  break;
56  case end:
57  whence = SEEK_END;
58  break;
59  }
60 
61 #if defined(__linux__) && (__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 2)
62  if (::lseek64(m_file, a_offset, whence) < 0) {
63 #elif defined(_MSC_VER)
64  if (::_lseeki64(m_file, a_offset, whence) < 0) {
65 #else
66  if (::lseek(m_file, a_offset, whence) < 0) {
67 #endif
68  m_out << "tools::rroot::file::set_pos :"
69  << " cannot set position " << a_offset
70  << " in file " << sout(m_path) << "."
71  << std::endl;
72  return false;
73  }
74  return true;
75  }

◆ sinfos_key()

virtual key& tools::rroot::file::sinfos_key ( )
inlinevirtual

Implements tools::rroot::ifile.

Definition at line 112 of file file.

112 {return m_streamer_infos_key;}

◆ sout()

static std::string tools::rroot::file::sout ( const std::string &  a_string)
inlinestaticprotected

Definition at line 231 of file file.

231 {return "\""+a_string+"\"";}

◆ unziper()

virtual bool tools::rroot::file::unziper ( char  a_key,
decompress_func a_func 
) const
inlinevirtual

Implements tools::rroot::ifile.

Definition at line 102 of file file.

102  {
103  std::map<char,decompress_func>::const_iterator it = m_unzipers.find(a_key);
104  if(it==m_unzipers.end()) {
105  a_func = 0;
106  return false;
107  }
108  a_func = (*it).second;
109  return true;
110  }

◆ verbose()

virtual bool tools::rroot::file::verbose ( ) const
inlinevirtual

Implements tools::rroot::ifile.

Definition at line 43 of file file.

43 {return m_verbose;}

◆ version()

uint32 tools::rroot::file::version ( ) const
inline

Definition at line 175 of file file.

175 {return m_version;}

Member Data Documentation

◆ m_BEGIN

seek tools::rroot::file::m_BEGIN
protected

Definition at line 503 of file file.

◆ m_bytes_read

uint64 tools::rroot::file::m_bytes_read
protected

Definition at line 494 of file file.

◆ m_END

seek tools::rroot::file::m_END
protected

Definition at line 504 of file file.

◆ m_file

int tools::rroot::file::m_file
protected

Definition at line 493 of file file.

◆ m_nbytes_free

uint32 tools::rroot::file::m_nbytes_free
protected

Definition at line 507 of file file.

◆ m_nbytes_info

uint32 tools::rroot::file::m_nbytes_info
protected

Definition at line 508 of file file.

◆ m_nbytes_name

uint32 tools::rroot::file::m_nbytes_name
protected

Definition at line 510 of file file.

◆ m_out

std::ostream& tools::rroot::file::m_out
protected

Definition at line 490 of file file.

◆ m_path

std::string tools::rroot::file::m_path
protected

Definition at line 491 of file file.

◆ m_root_directory

directory tools::rroot::file::m_root_directory
protected

Definition at line 495 of file file.

◆ m_seek_free

seek tools::rroot::file::m_seek_free
protected

Definition at line 505 of file file.

◆ m_seek_info

seek tools::rroot::file::m_seek_info
protected

Definition at line 506 of file file.

◆ m_streamer_fac

streamer_fac tools::rroot::file::m_streamer_fac
protected

Definition at line 497 of file file.

◆ m_streamer_infos

obj_list tools::rroot::file::m_streamer_infos
protected

Definition at line 498 of file file.

◆ m_streamer_infos_key

key tools::rroot::file::m_streamer_infos_key
protected

Definition at line 496 of file file.

◆ m_title

std::string tools::rroot::file::m_title
protected

Definition at line 500 of file file.

◆ m_unzipers

std::map<char,decompress_func> tools::rroot::file::m_unzipers
protected

Definition at line 499 of file file.

◆ m_verbose

bool tools::rroot::file::m_verbose
protected

Definition at line 492 of file file.

◆ m_version

uint32 tools::rroot::file::m_version
protected

Definition at line 502 of file file.


The documentation for this class was generated from the following file:
tools::rroot::file::read_buffer
virtual bool read_buffer(char *a_buffer, uint32 a_length)
Definition: file:76
tools::rroot::file::m_verbose
bool m_verbose
Definition: file:492
tools::rroot::file::close
void close()
Definition: file:181
tools::rroot::file::sout
static std::string sout(const std::string &a_string)
Definition: file:231
tools::rroot::obj_list::empty
bool empty() const
Definition: obj_list:144
tools::rroot::seek32
int seek32
Definition: seek:17
tools::rroot::ifile::current
@ current
Definition: ifile:27
tools::rroot::file::m_BEGIN
seek m_BEGIN
Definition: file:503
tools::rroot::file::m_nbytes_free
uint32 m_nbytes_free
Definition: file:507
tools::rroot::file::error_number
int error_number()
Definition: file:485
tools::rroot::file::m_version
uint32 m_version
Definition: file:502
tools::rroot::directory::from_buffer
bool from_buffer(const char *aEOB, char *&a_buffer)
Definition: directory:102
tools::is_little_endian
bool is_little_endian()
Definition: platform:13
tools::rroot::directory::clear_keys
void clear_keys()
Definition: directory:177
tools::rroot::file::m_streamer_infos_key
key m_streamer_infos_key
Definition: file:496
tools::rroot::read
void read(std::ostream &a_out, ifile &a_file, const std::vector< key * > &a_keys, bool a_recursive, bool a_ls, bool a_dump, unsigned int a_spaces)
Definition: rall:467
tools::rroot::file::m_streamer_fac
streamer_fac m_streamer_fac
Definition: file:497
tools::rroot::file::set_pos
virtual bool set_pos(seek a_offset=0, from a_from=begin)
Definition: file:47
tools::rroot::file::read_header
bool read_header()
Definition: file:377
tools::rroot::ifile::begin
@ begin
Definition: ifile:26
tools::rroot::file::byte_swap
virtual bool byte_swap() const
Definition: file:46
tools::rroot::file::m_path
std::string m_path
Definition: file:491
tools::rroot::directory::record_size
uint32 record_size(uint32 a_version) const
Definition: directory:85
tools::rroot::directory::seek_keys
seek seek_keys() const
Definition: directory:84
tools::rroot::ifile::end
@ end
Definition: ifile:28
tools::rroot::file::m_END
seek m_END
Definition: file:504
tools::rroot::file::m_seek_info
seek m_seek_info
Definition: file:506
tools::rroot::file::read_streamer_infos_key
bool read_streamer_infos_key()
Definition: file:445
tools::rroot::file::m_streamer_infos
obj_list m_streamer_infos
Definition: file:498
tools::rroot::file::m_seek_free
seek m_seek_free
Definition: file:505
tools::rroot::directory::nbytes_name
uint32 nbytes_name() const
Definition: directory:83
tools::rroot::file::s_class
static const std::string & s_class()
Definition: file:35
tools::rroot::file::m_root_directory
directory m_root_directory
Definition: file:495
tools::rroot::obj_list::stream
virtual bool stream(buffer &a_buffer)
Definition: obj_list:47
tools::rroot::directory::read_keys
bool read_keys(uint32 &a_number)
Definition: directory:144
tools::rroot::file::initialize
bool initialize()
Definition: file:232
tools::rroot::file::m_unzipers
std::map< char, decompress_func > m_unzipers
Definition: file:499
tools::rroot::file::read_streamer_infos_data
bool read_streamer_infos_data()
Definition: file:463
tools::rroot::file::m_nbytes_info
uint32 m_nbytes_info
Definition: file:508
tools_vforcit
#define tools_vforcit(a__T, a__v, a__it)
Definition: forit:7
tools::rroot::file::m_bytes_read
uint64 m_bytes_read
Definition: file:494
tools::rroot::file::reset_error_number
void reset_error_number()
Definition: file:486
tools::uint32
unsigned int uint32
Definition: typedefs:71
tools::rroot::file::_open
static int _open(const char *a_name, int a_flags, uint32 a_mode)
Definition: file:224
tools::rroot::key::from_buffer
bool from_buffer(bool a_byte_swap, const char *aEOB, char *&a_pos, bool a_verbose)
Definition: key:206
tools::rroot::file::m_out
std::ostream & m_out
Definition: file:490
tools::rroot::file::m_nbytes_name
uint32 m_nbytes_name
Definition: file:510
tools::rroot::file::m_title
std::string m_title
Definition: file:500
tools::rroot::file::m_file
int m_file
Definition: file:493