forked from root-project/root
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
25 lines (22 loc) · 2.33 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<br/>
<hr/>
<a name="io"></a>
<h3>I/O Libraries</h3>
<h4>TFileCacheRead</h4>
<ul>
<li>Support for multiple <tt>TFileCacheRead</tt> per <tt>TFile</tt>.<p/>
Multiple <tt>TFileCacheRead</tt> per <tt>TFile</tt> are supported by augmenting the existing <tt>TFile::SetCacheRead()</tt> function with an optional <tt>TObject*</tt> argument specifying the owner (i.e. tree) of the cache. This function will assign a <tt>TFileCacheRead</tt> to a <tt>TFile</tt> for the given <tt>TTree</tt>. A cache can be removed by setting the pointer <tt>TFileCacheRead</tt> to 0.<p/>
Similarly, in <tt>TFile::GetCacheRead()</tt> an optional <tt>TObject*</tt> argument was added to obtain the <tt>TFileCacheRead</tt> from a <tt>TFile</tt>.<p/>
In addition to the unassigned <tt>TFileCacheRead</tt> pointer, <tt>TFile</tt> will maintain a map of tree specific cache pointers.<p/>
Backward compatibility in both functions is handled by making the <tt>TObject*</tt> argument optional. If it is not specified in the <tt>TFile::SetCacheRead()</tt> call, only the unassigned <tt>TFileCacheRead</tt> pointer is updated, otherwise the map and the unassigned cache are updated. In <tt>TFile::GetCacheRead()</tt>, if an owner is not specified or doesn't exist in the file's cache map, the unassigned cache is returned, unless it is 0 and there is exactly one entry in the cache map.<p/>
Distinguish counter for bytes read and read calls for learning phase.
</li>
</ul>
<h4>TFileMerger</h4>
<ul>
<li>Improve efficiency of <tt>TFileMerger</tt> when merging a single file by doing a <tt>TFile::Cp</tt> rather than a load/write of the objects.</li>
<li>In <tt>TFileMerger</tt> and hadd when objects can not be merged do <em>not</em> overwrite the last object in the set with the first!</li>
<li>Renable warning about not being able to merge objects in <tt>TFileMerger</tt> and hadd.</li>
<li>Fix <tt>hadd</tt> problem where the incremental merging fails if the <tt>TTree</tt> are stored in sub-directories.</li>
<li>Improve the code used for forward compatibility (record the type as <tt>TDirectory</tt> even-though the class is now <tt>TDirectoryFile</tt>) by delaying the switching of the class name until it is written (to the buffer). This avoids problem where a <tt>TKey</tt> is created (by <tt>TFile::mkdir</tt>) and then immediately used for reading (this happens in the incremental file merger).</li>
</ul>