12 #ifndef ROOT_TBufferMerger 13 #define ROOT_TBufferMerger 17 #include <condition_variable> 27 namespace Experimental {
29 class TBufferMergerFile;
67 std::shared_ptr<TBufferMergerFile>
GetFile();
137 virtual Int_t Write(
const char *
name =
nullptr,
Int_t opt = 0,
Int_t bufsize = 0)
override;
The concrete implementation of TBuffer for writing/reading to/from a ROOT file or socket...
std::vector< std::weak_ptr< TBufferMergerFile > > fAttachedFiles
Namespace for new ROOT classes and functions.
void Push(TBufferFile *buffer)
A TMemFile is like a normal TFile except that it reads and writes only from memory.
std::queue< TBufferFile * > fQueue
#define ClassDef(name, id)
TBufferMerger & operator=(const TBufferMerger &)
TBufferMerger has no copy operator.
virtual ~TBufferMerger()
Destructor.
std::condition_variable fDataAvailable
virtual Int_t Write(const char *name=0, Int_t opt=0, Int_t bufsiz=0)
Write memory objects to this file.
TBufferMerger is a class to facilitate writing data in parallel from multiple threads, while writing to a single output file.
std::unique_ptr< std::thread > fMergingThread
TBufferMerger()
TBufferMerger has no default constructor.
friend class TBufferMergerFile
std::shared_ptr< TBufferMergerFile > GetFile()
Returns a TBufferMergerFile to which data can be written.
const std::string fOption
#define ClassDefOverride(name, id)
Array of chars or bytes (8 bits per element).