GSI Object Oriented Online Offline (Go4)  GO4-5.3.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Static Public Attributes | Protected Member Functions | Private Attributes | List of all members
TGo4Socket Class Reference

#include <TGo4Socket.h>

Public Member Functions

 TGo4Socket (Bool_t IsClient)
 
virtual ~TGo4Socket ()
 
virtual Int_t Open (const char *host, Int_t port, Bool_t keepservsock=kFALSE)
 
virtual Int_t Close (Option_t *opt="")
 
virtual Int_t Send (TObject *obj)
 
virtual Int_t Send (const char *name)
 
virtual TObject * Recv (const char *name=0)
 
virtual char * RecvRaw (const char *name=0)
 
Bool_t IsOpen () const
 
Bool_t IsClientMode () const
 
Int_t GetPort () const
 
Int_t SendBuffer (TBuffer *buf)
 
Int_t ReceiveBuffer ()
 
const TBuffer * GetBuffer () const
 

Static Public Attributes

static const Int_t fguOPENWAIT =200
 
static const Int_t fgiOPENCYCLES =6
 
static const Int_t fgiBUFLENGTH =256
 
static const Int_t fgiBUFINITSIZE =65536
 
static const Int_t fgiBUFEXTRASPACE =8
 
static const char * fgcGOON = "-I- go on"
 
static const Int_t fgiISOWNER = BIT(14)
 

Protected Member Functions

 TGo4Socket ()
 
void ReallocBuffer (TBuffer *buffer, Int_t oldsize, Int_t newsize)
 

Private Attributes

Bool_t fbClientMode
 
Bool_t fbOpen
 
TSocket * fxSocket
 
TServerSocket * fxServerSocket
 
Int_t fiPort
 
char * fxLocalBuffer
 
TBuffer * fxBuffer
 

Detailed Description

Definition at line 23 of file TGo4Socket.h.

Constructor & Destructor Documentation

TGo4Socket::TGo4Socket ( Bool_t  IsClient)
TGo4Socket::~TGo4Socket ( )
virtual

Definition at line 78 of file TGo4Socket.cxx.

References fxBuffer, fxLocalBuffer, fxServerSocket, fxSocket, and GO4TRACE.

TGo4Socket::TGo4Socket ( )
protected

Member Function Documentation

Int_t TGo4Socket::Close ( Option_t *  opt = "")
virtual
const TBuffer* TGo4Socket::GetBuffer ( ) const
inline

Access the internal receiving buffer of this socket.

Definition at line 58 of file TGo4Socket.h.

References fxBuffer.

Referenced by TGo4ObjClient::ReceiveBuffer(), TGo4StatusRunnable::Run(), TGo4DataRunnable::Run(), and TGo4CommandRunnable::Run().

Int_t TGo4Socket::GetPort ( ) const
inline
Bool_t TGo4Socket::IsClientMode ( ) const
inline

Definition at line 38 of file TGo4Socket.h.

References fbClientMode.

Bool_t TGo4Socket::IsOpen ( ) const
inline
Int_t TGo4Socket::Open ( const char *  host,
Int_t  port,
Bool_t  keepservsock = kFALSE 
)
virtual
void TGo4Socket::ReallocBuffer ( TBuffer *  buffer,
Int_t  oldsize,
Int_t  newsize 
)
protected

Reallocate the fixed input buffer if necessary

Definition at line 494 of file TGo4Socket.cxx.

References fgiBUFEXTRASPACE, and fgiISOWNER.

Referenced by ReceiveBuffer().

Int_t TGo4Socket::ReceiveBuffer ( )

Receive raw buffer and fill the internal TBuffer of this socket instance with it.

Definition at line 289 of file TGo4Socket.cxx.

References TGo4Log::Debug(), fgiBUFINITSIZE, fxBuffer, fxSocket, GO4TRACE, IsOpen(), and ReallocBuffer().

Referenced by TGo4ObjClient::ReceiveBuffer(), TGo4StatusRunnable::Run(), TGo4DataRunnable::Run(), and TGo4CommandRunnable::Run().

TObject * TGo4Socket::Recv ( const char *  name = 0)
virtual

Definition at line 452 of file TGo4Socket.cxx.

References TGo4Log::Debug(), fxSocket, GO4TRACE, and IsOpen().

char * TGo4Socket::RecvRaw ( const char *  name = 0)
virtual
Int_t TGo4Socket::Send ( TObject *  obj)
virtual
Int_t TGo4Socket::Send ( const char *  name)
virtual

Definition at line 386 of file TGo4Socket.cxx.

References TGo4Log::Debug(), fgiBUFLENGTH, fxLocalBuffer, fxSocket, GO4TRACE, and IsOpen().

Int_t TGo4Socket::SendBuffer ( TBuffer *  buf)

Send raw buffer of external TBuffer object. Method will prepare raw buffer as a TMessage, i.e. the receiving side should be able to receive it by root TSocket message protocol.

Definition at line 236 of file TGo4Socket.cxx.

References TGo4Log::Debug(), fxSocket, GO4TRACE, and IsOpen().

Referenced by TGo4StatusRunnable::Run(), TGo4DataRunnable::Run(), TGo4CommandRunnable::Run(), and TGo4HistogramServer::SendObject().

Member Data Documentation

Bool_t TGo4Socket::fbClientMode
private

True if instance runs in as client

Definition at line 90 of file TGo4Socket.h.

Referenced by IsClientMode(), Open(), and TGo4Socket().

Bool_t TGo4Socket::fbOpen
private

True if connection is open

Definition at line 93 of file TGo4Socket.h.

Referenced by Close(), IsOpen(), and Open().

const char * TGo4Socket::fgcGOON = "-I- go on"
static

First connection string, we are told to go on...

Definition at line 76 of file TGo4Socket.h.

Referenced by Open().

const Int_t TGo4Socket::fgiBUFEXTRASPACE =8
static

ROOT internal constant: extra space for reallocating object receive buffer (TBuffer)

Definition at line 73 of file TGo4Socket.h.

Referenced by TGo4BufferQueue::Realloc(), and ReallocBuffer().

const Int_t TGo4Socket::fgiBUFINITSIZE =65536
static

Initial size for object receive buffer (TBuffer)

Definition at line 70 of file TGo4Socket.h.

Referenced by TGo4BufferQueue::FreeBuffer(), TGo4BufferQueue::NewEntry(), ReceiveBuffer(), and TGo4Socket().

const Int_t TGo4Socket::fgiBUFLENGTH =256
static

Raw transport buffer size

Definition at line 67 of file TGo4Socket.h.

Referenced by RecvRaw(), Send(), and TGo4Socket().

const Int_t TGo4Socket::fgiISOWNER = BIT(14)
static

We emulate the protected owner flag of the TBuffer class, needed for reallocation!

Definition at line 79 of file TGo4Socket.h.

Referenced by ReallocBuffer().

const Int_t TGo4Socket::fgiOPENCYCLES =6
static

Number of retries for client open

Definition at line 64 of file TGo4Socket.h.

Referenced by Open().

const Int_t TGo4Socket::fguOPENWAIT =200
static

Time to sleep between client open retries

Definition at line 61 of file TGo4Socket.h.

Referenced by Open().

Int_t TGo4Socket::fiPort
private

Connected port number (of server socket which opened with portnumberscan)

Definition at line 102 of file TGo4Socket.h.

Referenced by GetPort(), and Open().

TBuffer* TGo4Socket::fxBuffer
private

1

Definition at line 108 of file TGo4Socket.h.

Referenced by GetBuffer(), ReceiveBuffer(), TGo4Socket(), and ~TGo4Socket().

char* TGo4Socket::fxLocalBuffer
private

Definition at line 104 of file TGo4Socket.h.

Referenced by RecvRaw(), Send(), TGo4Socket(), and ~TGo4Socket().

TServerSocket* TGo4Socket::fxServerSocket
private

Server Socket (server mode only)

Definition at line 99 of file TGo4Socket.h.

Referenced by Open(), and ~TGo4Socket().

TSocket* TGo4Socket::fxSocket
private

root TSocket class doing the work

Definition at line 96 of file TGo4Socket.h.

Referenced by Close(), Open(), ReceiveBuffer(), Recv(), RecvRaw(), Send(), SendBuffer(), and ~TGo4Socket().


The documentation for this class was generated from the following files: