#include "FairDbStreamer.h" #include "FairUtilStream.h" #include "TBufferFile.h" #include // for cout using std::cout; using std::endl; ClassImp(FairDbStreamer) FairDbStreamer::FairDbStreamer() : TObject(), fString(""), fSize(0), fType(FairDb::kInt) { } FairDbStreamer::FairDbStreamer(const TObject* obj,FairDb::DataTypes type) : TObject() { fString = FairDb::StreamAsString(obj,fSize); fType=type; } FairDbStreamer::FairDbStreamer(const Int_t* iarr, Int_t size, FairDb::DataTypes type) : TObject() { fString = FairDb::StreamAsString(iarr,size); fSize=size; fType=type; } FairDbStreamer::FairDbStreamer(const UInt_t* iarr, Int_t size, FairDb::DataTypes type) : TObject() { fString = FairDb::StreamAsString(iarr,size); fSize=size; fType=type; } FairDbStreamer::FairDbStreamer(const Short_t* iarr, Int_t size, FairDb::DataTypes type) : TObject() { fString = FairDb::StreamAsString(iarr,size); fSize=size; fType=type; } FairDbStreamer::FairDbStreamer(const UShort_t* iarr, Int_t size, FairDb::DataTypes type) : TObject() { fString = FairDb::StreamAsString(iarr,size); fSize=size; fType=type; } FairDbStreamer::FairDbStreamer(const Bool_t* iarr, Int_t size, FairDb::DataTypes type) : TObject() { fString = FairDb::StreamAsString(iarr,size); fSize=size; fType=type; } FairDbStreamer::FairDbStreamer(const Float_t* iarr, Int_t size, FairDb::DataTypes type) : TObject() { fString = FairDb::StreamAsString(iarr,size); fSize=size; fType=type; } FairDbStreamer::FairDbStreamer(const Double_t* iarr, Int_t size, FairDb::DataTypes type) : TObject() { fString = FairDb::StreamAsString(iarr,size); fSize=size; fType=type; } FairDbStreamer::FairDbStreamer(const FairDbStreamer& from) : TObject(from),fString(from.fString) { } FairDbStreamer& FairDbStreamer::operator=(const FairDbStreamer& from) { if (this == &from) { return *this; } TObject::operator=(from); fString=from.fString; return *this; } FairDbStreamer::~FairDbStreamer() { } void FairDbStreamer::Fill(Int_t* arr) { // Decrypt str Int_t arr_size = GetSize(); Int_t ll = arr_size * sizeof(Int_t); Char_t data[ll]; // Decryption str std::string str_hex(fString.Data()); Util::BinFromHex(str_hex,data); // Map to array Int_t r_array[arr_size]; for(int i=0; iClone(); TBufferFile b_write(TBuffer::kWrite); cobj->Streamer(b_write); Int_t ll = b_write.Length(); if (cobj) { delete cobj; } // Decryption str std::string str_hex(fString.Data()); Char_t read_buf[ll]; Util::BinFromHex(str_hex,read_buf); TBufferFile b_read(TBuffer::kRead,ll, read_buf,kFALSE); obj->Streamer(b_read); }