1 #ifndef AliNetMessage_H
2 #define AliNetMessage_H
4 // adapted from AliHLTMessage
6 #include <TBufferFile.h>
8 #ifndef ROOT_MessageTypes
9 #include <MessageTypes.h>
15 class AliNetMessage : public TBufferFile
18 AliNetMessage(UInt_t what = kMESS_ANY);
19 AliNetMessage(void *buf, Int_t bufsize);
20 virtual ~AliNetMessage();
22 void ForceWriteInfo(TVirtualStreamerInfo *info, Bool_t force);
24 void TagStreamerInfo(TVirtualStreamerInfo *info);
25 TClass *GetClass() const { return fClass;}
26 void IncrementLevel(TVirtualStreamerInfo* info);
28 void Reset(UInt_t what) { SetWhat(what); Reset(); }
29 UInt_t What() const { return fWhat; }
30 void SetLength() const;
31 void SetWhat(UInt_t what);
33 void EnableSchemaEvolution(Bool_t enable = kTRUE) { fEvolution = enable; }
34 Bool_t UsesSchemaEvolution() const { return fEvolution; }
36 void WriteObject(const TObject *obj);
38 static void EnableSchemaEvolutionForAll(Bool_t enable = kTRUE);
39 static Bool_t UsesSchemaEvolutionForAll();
41 const TList* GetStreamerInfos() const {return fInfos;}
44 AliNetMessage(const AliNetMessage &);
45 void operator=(const AliNetMessage &);
47 UInt_t fWhat; //!Message type
48 TClass *fClass; //!If message is kMESS_OBJECT pointer to object's class
49 char *fBufUncompressed; //!Uncompressed buffer
50 TList *fInfos; //Array of TStreamerInfo used in WriteObject
51 Bool_t fEvolution; //True if support for schema evolution required
53 static Bool_t fgEvolution; //True if global support for schema evolution required
55 ClassDef(AliNetMessage, 1);