RE: [ROOT] "the same I/O operation"

From: Philippe Canal (pcanal@fnal.gov)
Date: Thu Jul 31 2003 - 16:05:25 MEST


Hi David,

> 1/ What does mean "the same I/O operation" ?

There is basically 2 main entry point into the I/O system: object->Write and
tree->Fill().
'object->Write()' will save the object and its data member in one buffer and
in the 'same I/O operation'.  'tree->Fill()' will have one 'I/O operation'
per end branch (branch that have no sub-branches.  Each branch has its own
buffer and the buffer are not sharing information.  So If you do not split
your top level branch you will have only 'one I/O operation'.  You split the
branch with level 1, you will get one independant 'I/O operation' per data
members. etc.

> 2/ Does it work with foreign classes ?

Yes.

Cheers,
Philippe
-----Original Message-----
From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of David Chamont
Sent: Thursday, July 31, 2003 4:21 AM
To: roottalk@pcroot.cern.ch
Subject: [ROOT] "the same I/O operation"



Hi Rooters,

I am trying the persistency of a net of objects with C++ pointers within.
As usual, I search for the less intrusive solution.

>From what I read, when several objects are pointing
to another shared one, the storage will work if this is done in
"the same I/O operation".

1/ What does mean "the same I/O operation" ?

2/ Does it work with foreign classes ?

David.

P.S.: In chapter "Input/Output", section "How does it work ?",
after "When statement P = R is executed, the following happens:", it is
said that in the fPID object, fObjects[ObjectNumber] is set to P...
Perhaps it should be R instead ?



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:14 MET