31 class TVirtualStreamerInfo;
33 class TMessage :
public TBufferFile {
35 friend class TAuthenticate;
37 friend class TUDPSocket;
38 friend class TPSocket;
39 friend class TXSocket;
42 TList *fInfos{
nullptr};
45 TClass *fClass{
nullptr};
47 char *fBufComp{
nullptr};
48 char *fBufCompCur{
nullptr};
49 char *fCompPos{
nullptr};
50 Bool_t fEvolution{kFALSE};
52 static Bool_t fgEvolution;
55 TMessage(
const TMessage &);
56 void operator=(
const TMessage &);
59 Bool_t TestBitNumber(UInt_t bitnumber)
const {
return fBitsPIDs.TestBitNumber(bitnumber); }
62 TMessage(
void *buf, Int_t bufsize);
63 void SetLength()
const;
66 TMessage(UInt_t what = kMESS_ANY, Int_t bufsiz = TBuffer::kInitialSize);
69 void ForceWriteInfo(TVirtualStreamerInfo *info, Bool_t force)
override;
71 TClass *GetClass()
const {
return fClass;}
72 void TagStreamerInfo(TVirtualStreamerInfo* info)
override;
73 void Reset()
override;
74 void Reset(UInt_t what) { SetWhat(what); Reset(); }
75 UInt_t What()
const {
return fWhat; }
76 void SetWhat(UInt_t what);
78 void EnableSchemaEvolution(Bool_t enable = kTRUE) { fEvolution = enable; }
79 Bool_t UsesSchemaEvolution()
const {
return fEvolution; }
80 TList *GetStreamerInfos()
const {
return fInfos; }
81 Int_t GetCompressionAlgorithm()
const;
82 Int_t GetCompressionLevel()
const;
83 Int_t GetCompressionSettings()
const;
84 void SetCompressionAlgorithm(Int_t algorithm = ROOT::RCompressionSetting::EAlgorithm::kUseGlobal);
85 void SetCompressionLevel(Int_t level = ROOT::RCompressionSetting::ELevel::kUseMin);
86 void SetCompressionSettings(Int_t settings = ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault);
89 char *CompBuffer()
const {
return fBufComp; }
90 Int_t CompLength()
const {
return (Int_t)(fBufCompCur - fBufComp); }
91 UShort_t WriteProcessID(TProcessID *pid)
override;
93 static void EnableSchemaEvolutionForAll(Bool_t enable = kTRUE);
94 static Bool_t UsesSchemaEvolutionForAll();
96 ClassDefOverride(TMessage,0)
100 inline Int_t TMessage::GetCompressionAlgorithm()
const
102 return (fCompress < 0) ? -1 : fCompress / 100;
106 inline Int_t TMessage::GetCompressionLevel()
const
108 return (fCompress < 0) ? -1 : fCompress % 100;
112 inline Int_t TMessage::GetCompressionSettings()
const
114 return (fCompress < 0) ? -1 : fCompress;