Hi Rene,
TDirectory::ReadKeys() says
//-----
Every directory has a linked list (fKeys). This linked list has been
written on the file via WriteKeys as a single data record.
It is interesting to call this function in the following situation.
Assume another process1 is connecting this directory in Update mode
-Process1 is adding/updating objects in this directory
-You want to see the latest status from process1.
Example Process1:
obj1.Write();
obj2.Write();
gDirectory->SaveSelf();
Example Process2
gDirectory->ReadKeys();
obj1->Draw();
This is an efficient way (without opening/closing files) to view
the latest updates of a file being modified by another process
as it is typically the case in a data acquisition system.
// ----
In my application I do
fTree->Write("CHICSiTree",TObject::kOverwrite);
EventFile->SaveSelf();
EventFile->Flush();
on the writer side and
fEventFile->ReadKeys();
fNEvent = Int_t(fTree->GetEntries());
on the reader side. It does not work as expected, i.e. the number of
events stays the same all the time. On the other hand if on the reader
side I add
delete fTree;
fTree = (TTree*) fEventFile->Get("CHICSiTree");
it works even without having SaveSelf() on the writer side.
Could you explane this ReadKeys() behavior and how I can avoid deleting and
reading the tree back?
Regards,
Anton
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:35 MET