Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
CERN ROOT
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Model registry
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Rutherford Experiment Lab Course Online
CERN ROOT
Commits
06f6f863
Commit
06f6f863
authored
4 years ago
by
Philippe Canal
Browse files
Options
Downloads
Patches
Plain Diff
TBufferMerger: Allow to disable explict call to Flush when no tree in file
parent
e23c00a4
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
io/io/inc/ROOT/TBufferMerger.hxx
+14
-0
14 additions, 0 deletions
io/io/inc/ROOT/TBufferMerger.hxx
io/io/inc/TFileMerger.h
+1
-0
1 addition, 0 deletions
io/io/inc/TFileMerger.h
io/io/src/TBufferMergerFile.cxx
+2
-1
2 additions, 1 deletion
io/io/src/TBufferMergerFile.cxx
with
17 additions
and
1 deletion
io/io/inc/ROOT/TBufferMerger.hxx
+
14
−
0
View file @
06f6f863
...
...
@@ -96,6 +96,20 @@ public:
*/
void
SetMergeOptions
(
const
TString
&
options
);
/** Indicates that the file will not contain any TTree objects
* and thus that steps that are specific to TTree can be skipped */
void
SetNotrees
(
Bool_t
notrees
=
kFALSE
)
{
fMerger
.
SetNotrees
(
notrees
);
}
/** Returns whether the the file has been marked as not containing any TTree objects
* and thus that steps that are specific to TTree can be skipped */
Bool_t
GetNotrees
()
const
{
return
fMerger
.
GetNotrees
();
}
friend
class
TBufferMergerFile
;
private
:
...
...
This diff is collapsed.
Click to expand it.
io/io/inc/TFileMerger.h
+
1
−
0
View file @
06f6f863
...
...
@@ -122,6 +122,7 @@ public:
virtual
Bool_t
Merge
(
Bool_t
=
kTRUE
);
virtual
Bool_t
PartialMerge
(
Int_t
type
=
kAll
|
kIncremental
);
virtual
void
SetFastMethod
(
Bool_t
fast
=
kTRUE
)
{
fFastMethod
=
fast
;}
Bool_t
GetNotrees
()
const
{
return
fNoTrees
;
}
virtual
void
SetNotrees
(
Bool_t
notrees
=
kFALSE
)
{
fNoTrees
=
notrees
;}
virtual
void
RecursiveRemove
(
TObject
*
obj
);
...
...
This diff is collapsed.
Click to expand it.
io/io/src/TBufferMergerFile.cxx
+
2
−
1
View file @
06f6f863
...
...
@@ -31,7 +31,8 @@ Int_t TBufferMergerFile::Write(const char *name, Int_t opt, Int_t bufsize)
{
// Make sure the compression of the basket is done in the unlocked thread and
// not in the locked section.
TMemFile
::
Write
(
name
,
opt
|
TObject
::
kOnlyPrepStep
,
bufsize
);
if
(
!
fMerger
.
GetNotrees
())
TMemFile
::
Write
(
name
,
opt
|
TObject
::
kOnlyPrepStep
,
bufsize
);
// Instead of Writing the TTree, doing a memcpy, Pushing to the queue
// then Reading and then deleting, let's see if we can just merge using
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment