8#include <framework/utilities/Stream.h>
18 class StreamMsg :
public TMessage {
20 StreamMsg(
const void* buf,
int len) : TMessage(const_cast<void*>(buf), len)
22 this->SetBit(kIsOwner,
false);
29 TMessage::EnableSchemaEvolutionForAll();
31 TMessage msg(kMESS_OBJECT);
34 msg.SetCompressionLevel(1);
40 char* buf = msg.Buffer();
41 UInt_t len = msg.Length();
50 const std::string& encodedStr(TBase64::Encode(buf, len).Data());
56 if (base64Data.empty())
60 const TString& data(TBase64::Decode(base64Data.c_str()));
62 StreamMsg msg(data.Data(), data.Length());
64 if (msg.What() != kMESS_OBJECT or msg.GetClass() ==
nullptr) {
67 auto* obj =
static_cast<TObject*
>(msg.ReadObjectAny(msg.GetClass()));
std::string serializeAndEncode(const TObject *obj)
Convert given TObject into encoded byte stream (for storing in XML).
TObject * deserializeEncodedRawData(const std::string &base64Data)
Convert given serialized raw data back into TObject.
Abstract base class for different kinds of events.