library: libCore #include "TMessage.h" |
TMessage
class description - source file - inheritance tree (.pdf)
private:
TMessage(const TMessage&)
void operator=(const TMessage&)
protected:
TMessage(void* buf, Int_t bufsize)
void SetLength() const
public:
TMessage(UInt_t what = kMESS_ANY)
virtual ~TMessage()
static TClass* Class()
char* CompBuffer() const
Int_t CompLength() const
Int_t Compress()
void Forward()
TClass* GetClass() const
Int_t GetCompressionLevel() const
virtual TClass* IsA() const
virtual void Reset()
void Reset(UInt_t what)
void SetCompressionLevel(Int_t level = 1)
void SetWhat(UInt_t what)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
Int_t Uncompress()
UInt_t What() const
private:
UInt_t fWhat Message type
TClass* fClass If message is kMESS_OBJECT pointer to object's class
Int_t fCompress Compression level from 0 (not compressed) to 9 (max compression)
char* fBufComp Compressed buffer
char* fBufCompCur Current position in compressed buffer
char* fCompPos Position of fBufCur when message was compressed
TMessage
Message buffer class used for serializing objects and sending them
over a network. This class inherits from TBuffer the basic I/O
serializer.
TMessage(UInt_t what) : TBuffer(kWrite)
Create a TMessage object for storing objects. The "what" integer
describes the type of message. Predifined ROOT system message types
can be found in MessageTypes.h. Make sure your own message types are
unique from the ROOT defined message types (i.e. 0 - 10000 are
reserved by ROOT). In case you OR "what" with kMESS_ACK, the message
will wait for an acknowledgement from the remote side. This makes
the sending process synchronous. In case you OR "what" with kMESS_ZIP,
the message will be compressed in TSocket using the zip algorithm
(only if message is > 256 bytes).
TMessage(void *buf, Int_t bufsize) : TBuffer(kRead, bufsize, buf)
Create a TMessage object for reading objects. The objects will be
read from buf. Use the What() method to get the message type.
~TMessage()
Clean up compression buffer.
void Forward()
Change a buffer that was received into one that can be send, i.e.
forward a just received message.
void Reset()
Reset the message buffer so we can use (i.e. fill) it again.
void SetLength() const
Set the message length at the beginning of the message buffer.
This method is only called by TSocket::Send().
void SetWhat(UInt_t what)
Using this method one can change the message type a-posteriory.
In case you OR "what" with kMESS_ACK, the message will wait for
an acknowledgement from the remote side. This makes the sending
process synchronous.
void SetCompressionLevel(Int_t level)
Set the message compression level. Can be between 0 and 9 with 0
being no compression and 9 maximum compression. In general the default
level of 1 is the best compromise between achieved compression and
cpu time. Compression will only happen when the message is > 256 bytes.
Int_t Compress()
Compress the message. The message will only be compressed if the
compression level > 0 and the if the message is > 256 bytes.
Returns -1 in case of error (when compression fails or
when the message increases in size in some pathological cases),
otherwise returns 0.
Int_t Uncompress()
Uncompress the message. The message will only be uncompressed when
kMESS_ZIP is set. Returns -1 in case of error, 0 otherwise.
Inline Functions
void operator=(const TMessage&)
TMessage TMessage(UInt_t what = kMESS_ANY)
TClass* GetClass() const
void Reset(UInt_t what)
UInt_t What() const
Int_t GetCompressionLevel() const
char* CompBuffer() const
Int_t CompLength() const
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
Author: Fons Rademakers 19/12/96
Last update: root/net:$Name: $:$Id: TMessage.cxx,v 1.6 2004/05/07 09:51:58 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.