Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

TGo4Socket Class Reference

#include <TGo4Socket.h>

List of all members.

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 Text_t * RecvRaw (const char *name=0)
Bool_t IsOpen () const
Bool_t IsClientMode () const
Int_t GetPort () const
Int_t SendBuffer (TBuffer *buf)
 Send raw buffer of external TBuffer object.
Int_t ReceiveBuffer ()
 Receive raw buffer and fill the internal TBuffer of this socket instance with it.
const TBuffer * GetBuffer () const
 Access the internal receiving buffer of this socket.

Static Public Attributes

static const Int_t fguOPENWAIT = 200
 Time to sleep between client open retries.
static const Int_t fgiOPENCYCLES = 6
 Number of retries for client open.
static const Int_t fgiBUFLENGTH = 256
 Raw transport buffer size.
static const Int_t fgiBUFINITSIZE = 65536
 Initial size for object receive buffer (TBuffer).
static const Int_t fgiBUFEXTRASPACE = 8
 ROOT internal constant: extra space for reallocating object receive buffer (TBuffer).
static const char * fgcGOON = "-I- go on"
 First connection string, we are told to go on.
static const Int_t fgiISOWNER = BIT(14)
 We emulate the protected owner flag of the TBuffer class, needed for reallocation!

Protected Member Functions

 TGo4Socket ()
void ReallocBuffer (TBuffer *buffer, Int_t oldsize, Int_t newsize)
 Reallocate the fixed input buffer if necessary.

Private Attributes

Bool_t fbClientMode
 True if instance runs in as client.
Bool_t fbOpen
 True if connection is open.
TGo4SocketSignalHandlerfxSignalHandler
 1
TSocket * fxSocket
 root TSocket class doing the work
TServerSocket * fxServerSocket
 Server Socket (server mode only).
Int_t fiPort
 Connected port number (of server socket which opened with portnumberscan).
Text_t * fxLocalBuffer
TBuffer * fxBuffer
 1


Constructor & Destructor Documentation

TGo4Socket::TGo4Socket Bool_t  IsClient  ) 
 

Definition at line 51 of file TGo4Socket.cxx.

References TGo4Log::Debug(), fbClientMode, fgiBUFINITSIZE, fgiBUFLENGTH, fxBuffer, fxLocalBuffer, fxSignalHandler, TGo4Buffer, and TRACE.

TGo4Socket::~TGo4Socket  )  [virtual]
 

Definition at line 70 of file TGo4Socket.cxx.

References fxLocalBuffer, fxServerSocket, fxSignalHandler, fxSocket, and TRACE.

TGo4Socket::TGo4Socket  )  [protected]
 


Member Function Documentation

Int_t TGo4Socket::Open const char *  host,
Int_t  port,
Bool_t  keepservsock = kFALSE
[virtual]
 

Definition at line 88 of file TGo4Socket.cxx.

References TGo4Log::Debug(), fbClientMode, fbOpen, fgcGOON, fgiOPENCYCLES, fguOPENWAIT, fiPort, fxServerSocket, fxSocket, and TRACE.

Referenced by TGo4TaskHandler::ConnectClientChannel(), TGo4ObjClient::ConnectServer(), TGo4TaskHandler::ServerRequest(), TGo4ServerTask::StopConnectorThread(), TGo4TaskManager::TGo4TaskManager(), TGo4ServerTask::TimerConnect(), and TGo4HistogramServer::TimerConnect().

Int_t TGo4Socket::Close Option_t *  opt = ""  )  [virtual]
 

Definition at line 213 of file TGo4Socket.cxx.

References fbOpen, fxSocket, and TRACE.

Referenced by TGo4TaskHandler::CloseChannels(), TGo4TaskHandler::Connect(), TGo4TaskHandler::DisConnect(), TGo4ObjClient::DisconnectServer(), TGo4ServerTask::StopConnectorThread(), TGo4ServerTask::TimerConnect(), TGo4HistogramServer::TimerConnect(), TGo4HistogramServer::~TGo4HistogramServer(), and TGo4TaskManager::~TGo4TaskManager().

Int_t TGo4Socket::Send TObject *  obj  )  [virtual]
 

Definition at line 369 of file TGo4Socket.cxx.

References TGo4Log::Debug(), fxSocket, IsOpen(), TGo4LockGuard::LockMainMutex(), TRACE, and TGo4LockGuard::UnLockMainMutex().

Referenced by TGo4TaskManager::AddClient(), TGo4HistogramServer::CheckLogin(), TGo4TaskHandler::Connect(), TGo4TaskHandler::ConnectClientChannel(), TGo4ObjClient::ConnectServer(), TGo4TaskHandler::ConnectServerChannel(), TGo4TaskHandler::DisConnect(), TGo4ObjClient::ReceiveObject(), TGo4CommandRunnable::Run(), TGo4ObjClient::SendCommand(), TGo4HistogramServer::SendObject(), TGo4TaskManager::ServeClient(), TGo4TaskHandler::ServerLogin(), and TGo4ServerTask::StopConnectorThread().

Int_t TGo4Socket::Send const char *  name  )  [virtual]
 

Definition at line 405 of file TGo4Socket.cxx.

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

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

Definition at line 473 of file TGo4Socket.cxx.

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

Text_t * TGo4Socket::RecvRaw const char *  name = 0  )  [virtual]
 

Definition at line 435 of file TGo4Socket.cxx.

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

Referenced by TGo4HistogramServer::CheckLogin(), TGo4TaskManager::ClientLogin(), TGo4TaskHandler::Connect(), TGo4TaskHandler::ConnectClientChannel(), TGo4ObjClient::ConnectServer(), TGo4TaskHandler::ConnectServerChannel(), TGo4TaskManager::DisConnectClient(), TGo4HistogramServer::HandleObjectRequest(), TGo4ObjClient::ReceiveObject(), TGo4CommandRunnable::Run(), TGo4HistogramServer::SendObject(), TGo4TaskManager::ServeClient(), and TGo4TaskHandler::ServerLogin().

Bool_t TGo4Socket::IsOpen  )  const [inline]
 

Definition at line 39 of file TGo4Socket.h.

References fbOpen.

Referenced by TGo4TaskHandlerRunnable::CheckTransportOpen(), TGo4TaskHandler::ConnectClientChannel(), TGo4TaskHandler::ConnectServerChannel(), ReceiveBuffer(), Recv(), RecvRaw(), Send(), SendBuffer(), TGo4ServerTask::TimerConnect(), and TGo4HistogramServer::TimerConnect().

Bool_t TGo4Socket::IsClientMode  )  const [inline]
 

Definition at line 41 of file TGo4Socket.h.

References fbClientMode.

Int_t TGo4Socket::GetPort  )  const [inline]
 

Definition at line 43 of file TGo4Socket.h.

References fiPort.

Referenced by TGo4TaskManager::GetNegotiationPort(), TGo4HistogramServer::GetObjPort(), and TGo4TaskHandler::WaitGetPort().

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 230 of file TGo4Socket.cxx.

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

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

Int_t TGo4Socket::ReceiveBuffer  ) 
 

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

Definition at line 295 of file TGo4Socket.cxx.

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

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

const TBuffer* TGo4Socket::GetBuffer  )  const [inline]
 

Access the internal receiving buffer of this socket.

Definition at line 61 of file TGo4Socket.h.

References fxBuffer.

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

void TGo4Socket::ReallocBuffer TBuffer *  buffer,
Int_t  oldsize,
Int_t  newsize
[protected]
 

Reallocate the fixed input buffer if necessary.

Definition at line 515 of file TGo4Socket.cxx.

References fgiBUFEXTRASPACE, and fgiISOWNER.

Referenced by ReceiveBuffer().


Member Data Documentation

const Int_t TGo4Socket::fguOPENWAIT = 200 [static]
 

Time to sleep between client open retries.

Definition at line 33 of file TGo4Socket.cxx.

Referenced by Open().

const Int_t TGo4Socket::fgiOPENCYCLES = 6 [static]
 

Number of retries for client open.

Definition at line 34 of file TGo4Socket.cxx.

Referenced by Open().

const Int_t TGo4Socket::fgiBUFLENGTH = 256 [static]
 

Raw transport buffer size.

Definition at line 35 of file TGo4Socket.cxx.

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

const Int_t TGo4Socket::fgiBUFINITSIZE = 65536 [static]
 

Initial size for object receive buffer (TBuffer).

Definition at line 36 of file TGo4Socket.cxx.

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

const Int_t TGo4Socket::fgiBUFEXTRASPACE = 8 [static]
 

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

Definition at line 37 of file TGo4Socket.cxx.

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

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

First connection string, we are told to go on.

..

Definition at line 38 of file TGo4Socket.cxx.

Referenced by Open().

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

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

Definition at line 45 of file TGo4Socket.cxx.

Referenced by ReallocBuffer().

Bool_t TGo4Socket::fbClientMode [private]
 

True if instance runs in as client.

Definition at line 93 of file TGo4Socket.h.

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

Bool_t TGo4Socket::fbOpen [private]
 

True if connection is open.

Definition at line 96 of file TGo4Socket.h.

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

TGo4SocketSignalHandler* TGo4Socket::fxSignalHandler [private]
 

1

Definition at line 100 of file TGo4Socket.h.

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

TSocket* TGo4Socket::fxSocket [private]
 

root TSocket class doing the work

Definition at line 103 of file TGo4Socket.h.

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

TServerSocket* TGo4Socket::fxServerSocket [private]
 

Server Socket (server mode only).

Definition at line 106 of file TGo4Socket.h.

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

Int_t TGo4Socket::fiPort [private]
 

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

Definition at line 109 of file TGo4Socket.h.

Referenced by GetPort(), and Open().

Text_t* TGo4Socket::fxLocalBuffer [private]
 

Definition at line 111 of file TGo4Socket.h.

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

TBuffer* TGo4Socket::fxBuffer [private]
 

1

Definition at line 115 of file TGo4Socket.h.

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


The documentation for this class was generated from the following files:
Generated on Fri Nov 28 13:01:17 2008 for Go4-v3.04-1 by  doxygen 1.4.2