16 #ifndef FAIRONLINESINK_H_
17 #define FAIRONLINESINK_H_
48 virtual Int_t
Write(
const char* , Int_t , Int_t ) {
return -1; }
50 virtual void RegisterImpl(
const char*,
const char*,
void*);
51 virtual void RegisterAny(
const char* brname,
const std::type_info& oi,
const std::type_info& pi,
void* obj);
76 void EmitPersistentBranchWrongTypeWarning(
const char* brname,
const char* typen1,
const char* typen2)
const;
86 static_assert(std::is_pointer<T>::value,
"Return type of GetPersistentBranchAny has to be a pointer");
87 using P =
typename std::remove_pointer<T>::type;
91 if (
typeid(P).hash_code() != iter->second->origtypeinfo.hash_code()) {
92 EmitPersistentBranchWrongTypeWarning(brname,
typeid(P).name(), iter->second->origtypeinfo.name());
95 return static_cast<T
>(iter->second->ptraddr);
virtual void WriteObject(TObject *, const char *, Int_t)
virtual void WriteFolder()
virtual Bool_t InitSink()
virtual bool CreatePersistentBranchesAny()
virtual ~FairOnlineSink()
T GetPersistentBranchAny(const char *name) const
virtual Int_t Write(const char *, Int_t, Int_t)
virtual FairMQRunDevice * GetMQRunDevice()
virtual void RegisterImpl(const char *, const char *, void *)
virtual void SetOutTree(TTree *)
virtual void RegisterAny(const char *brname, const std::type_info &oi, const std::type_info &pi, void *obj)
virtual void SetMQRunDevice(FairMQRunDevice *mrs)
virtual void WriteGeometry()
virtual void FillEventHeader(FairEventHeader *)
bool IsPersistentBranchAny(const char *name)
std::map< std::string, std::unique_ptr< TypeAddressPair const > > fPersistentBranchesMap
virtual FairSink * CloneSink()
virtual Sink_Type GetSinkType()