Project
Loading...
Searching...
No Matches
FairSink.h
Go to the documentation of this file.
1/********************************************************************************
2 * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
3 * *
4 * This software is distributed under the terms of the *
5 * GNU Lesser General Public Licence version 3 (LGPL) version 3, *
6 * copied verbatim in the file "LICENSE" *
7 ********************************************************************************/
8// Modified for ALICE O2 in 2026: parts not used by O2 were removed (see README.md in this directory).
9// -----------------------------------------------------------------------------
10// ----- -----
11// ----- FairSink -----
12// ----- Created 22.12.2017 by R. Karabowicz -----
13// ----- -----
14// -----------------------------------------------------------------------------
15
16#ifndef FAIRSINK_H
17#define FAIRSINK_H
18
19#include <Rtypes.h>
20#include <TString.h>
21#include <map> // map
22#include <memory> // unique_ptr
23#include <string> // string
24#include <typeinfo> // type_info
25
26#include <TFolder.h> // rootcling needs the complete type for the dictionary
27 // (it used to arrive via the now-deleted FairFileSource)
28
29class TObject;
30class TTree;
31
37
39{
40 public:
41 FairSink();
42 FairSink(const FairSink& sink);
43 virtual ~FairSink();
44
45 virtual Bool_t InitSink() = 0;
46 virtual void Close() = 0;
47 virtual void Reset() = 0;
48
49 virtual Sink_Type GetSinkType() = 0;
50 virtual TString GetFileName() { return ""; }
51
52 void SetRunId(Int_t runId) { fRunId = runId; }
53 Int_t GetRunId() const { return fRunId; }
54
55 virtual void SetOutTree(TTree* fTree) = 0;
56
57 virtual void Fill() = 0;
58
59 virtual Int_t Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) = 0;
60
61 virtual void RegisterImpl(const char*, const char*, void*) = 0;
62 virtual void RegisterAny(const char* brname, const std::type_info& oi, const std::type_info& pi, void* obj) = 0;
63
64 virtual void WriteFolder() = 0;
65 virtual bool CreatePersistentBranchesAny() = 0;
66
67 virtual void WriteObject(TObject* f, const char*, Int_t option = 0) = 0;
68 virtual void WriteGeometry() = 0;
69
70 virtual FairSink* CloneSink() = 0;
71
72 protected:
74 {
75 TypeAddressPair(const std::type_info& oi, const std::type_info& pi, void* a)
76 : origtypeinfo(oi)
78 , ptraddr(a)
79 {}
80 const std::type_info& origtypeinfo; // type_info of type addr points to
81 const std::type_info& persistenttypeinfo; // type_info of ROOT persistent branch (drops pointers)
82 void* ptraddr; // address of a pointer (pointing to origtypeinfo);
83 };
84
85 Int_t fRunId;
86
88 TFolder* fOutFolder;
92 std::map<std::string, std::unique_ptr<TypeAddressPair const>> fPersistentBranchesMap;
93
94 public:
96};
97
98#endif
Sink_Type
Definition FairSink.h:33
@ kFILESINK
Definition FairSink.h:35
@ kONLINESINK
Definition FairSink.h:34
virtual void Fill()=0
virtual void Close()=0
virtual ~FairSink()
Definition FairSink.cxx:30
std::map< std::string, std::unique_ptr< TypeAddressPair const > > fPersistentBranchesMap
Definition FairSink.h:92
virtual void RegisterImpl(const char *, const char *, void *)=0
virtual Sink_Type GetSinkType()=0
virtual bool CreatePersistentBranchesAny()=0
Int_t GetRunId() const
Definition FairSink.h:53
virtual TString GetFileName()
Definition FairSink.h:50
virtual FairSink * CloneSink()=0
Int_t fRunId
Definition FairSink.h:85
void SetRunId(Int_t runId)
Definition FairSink.h:52
TFolder * fOutFolder
Definition FairSink.h:88
virtual void WriteFolder()=0
virtual void SetOutTree(TTree *fTree)=0
virtual void RegisterAny(const char *brname, const std::type_info &oi, const std::type_info &pi, void *obj)=0
virtual void WriteObject(TObject *f, const char *, Int_t option=0)=0
virtual Bool_t InitSink()=0
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)=0
virtual void WriteGeometry()=0
ClassDef(FairSink, 1)
virtual void Reset()=0
GLuint const GLchar * name
Definition glcorearb.h:781
GLdouble f
Definition glcorearb.h:310
GLboolean GLboolean GLboolean GLboolean a
Definition glcorearb.h:1233
const std::type_info & origtypeinfo
Definition FairSink.h:80
const std::type_info & persistenttypeinfo
Definition FairSink.h:81
TypeAddressPair(const std::type_info &oi, const std::type_info &pi, void *a)
Definition FairSink.h:75