10#include <boost/program_options.hpp>
14#include <TBufferFile.h>
16#include <TClonesArray.h>
18#include <FairRootManager.h>
31namespace bpo = boost::program_options;
47 printf(
"\t\tType asked\n");
51 virtual void FillEventHeader(FairEventHeader* ) { printf(
"\t\tfill event header?\n"); }
55 printf(
"\t\tset out tree?\n");
61 virtual Int_t
Write(
const char* name, Int_t , Int_t )
63 printf(
"\t\twrite %s?\n", name);
68 virtual void RegisterAny(
const char* brname,
const std::type_info& oi,
const std::type_info& pi,
void* obj);
89 static_assert(std::is_pointer<T>::value,
"Return type of GetPersistentBranchAny has to be a pointer");
90 using P =
typename std::remove_pointer<T>::type;
91 auto iter = fPersistentBranchesMap.find(brname);
92 if (iter != fPersistentBranchesMap.end()) {
94 if (
typeid(P).hash_code() != iter->second->origtypeinfo.hash_code()) {
95 EmitPersistentBranchWrongTypeWarning(brname,
typeid(P).name(), iter->second->origtypeinfo.name());
98 return static_cast<T
>(iter->second->ptraddr);
107 std::string fOutChannel;
114 map<const char*, TObject*> fObjMap;
115 map<const char*, TClonesArray*> fArrMap;
118 void EmitPersistentBranchWrongTypeWarning(
const char* brname,
const char* typen1,
const char* typen2)
const;
virtual void WriteObject(TObject *f, const char *name, Int_t)
T GetPersistentBranchAny(const char *brname) const
virtual Bool_t InitSink()
virtual FairSink * CloneSink()
virtual void WriteFolder()
virtual void FillEventHeader(FairEventHeader *)
virtual void WriteGeometry()
virtual void RegisterAny(const char *brname, const std::type_info &oi, const std::type_info &pi, void *obj)
virtual Int_t Write(const char *name, Int_t, Int_t)
bool IsPersistentBranchAny(const char *name)
BmnMQSink(Int_t OutPort=6666)
virtual Sink_Type GetSinkType()
virtual void SetOutTree(TTree *)
virtual void RegisterImpl(const char *, const char *, void *)
virtual bool CreatePersistentBranchesAny()