GSI Object Oriented Online Offline (Go4) GO4-6.4.0
|
#include <TGo4Socket.h>
Public Member Functions | |
TGo4Socket (Bool_t IsClient) | |
virtual | ~TGo4Socket () |
virtual Int_t | Close (Option_t *opt="") |
const TBuffer * | GetBuffer () const |
Access the internal receiving buffer of this socket. | |
Int_t | GetPort () const |
Bool_t | IsClientMode () const |
Bool_t | IsOpen () const |
virtual Int_t | Open (const char *host, Int_t port, Bool_t keepservsock=kFALSE) |
Int_t | ReceiveBuffer () |
Receive raw buffer and fill the internal TBuffer of this socket instance with it. | |
virtual TObject * | Recv (const char *name=nullptr) |
virtual char * | RecvRaw (const char *name=nullptr) |
virtual Int_t | Send (const char *name) |
virtual Int_t | Send (TObject *obj) |
Int_t | SendBuffer (TBuffer *buf) |
Send raw buffer of external TBuffer object. | |
Static Public Attributes | |
static const char * | fgcGOON = "-I- go on" |
First connection string, we are told to go on... | |
static const Int_t | fgiBUFEXTRASPACE =8 |
ROOT internal constant: extra space for reallocating object receive buffer (TBuffer) | |
static const Int_t | fgiBUFINITSIZE =65536 |
Initial size for object receive buffer (TBuffer) | |
static const Int_t | fgiBUFLENGTH =256 |
Raw transport buffer size. | |
static const Int_t | fgiOPENCYCLES =6 |
Number of retries for client open. | |
static const Int_t | fguOPENWAIT =200 |
Time to sleep between client open retries. | |
Protected Member Functions | |
TGo4Socket ()=delete | |
void | ReallocBuffer (TBuffer *buffer, Int_t oldsize, Int_t newsize) |
Reallocate the fixed input buffer if necessary. | |
Private Attributes | |
Bool_t | fbClientMode {kFALSE} |
True if instance runs in as client. | |
Bool_t | fbOpen {kFALSE} |
True if connection is open. | |
Int_t | fiPort {0} |
Connected port number (of server socket which opened with portnumberscan) | |
TBuffer * | fxBuffer {nullptr} |
aggregation 1 | |
char * | fxLocalBuffer {nullptr} |
TServerSocket * | fxServerSocket {nullptr} |
Server Socket (server mode only) | |
TSocket * | fxSocket {nullptr} |
root TSocket class doing the work | |
Definition at line 24 of file TGo4Socket.h.
TGo4Socket::TGo4Socket | ( | Bool_t | IsClient | ) |
Definition at line 38 of file TGo4Socket.cxx.
References TGo4Log::Debug(), TGo4SocketSignalHandler::DisableSigPipe(), fbClientMode, fbOpen, fgiBUFINITSIZE, fgiBUFLENGTH, fiPort, fxBuffer, fxLocalBuffer, fxServerSocket, fxSocket, GO4TRACE, and TGo4SocketSignalHandler::SetSigWINCH().
|
virtual |
Definition at line 64 of file TGo4Socket.cxx.
References fxBuffer, fxLocalBuffer, fxServerSocket, fxSocket, and GO4TRACE.
|
protecteddelete |
|
virtual |
Definition at line 210 of file TGo4Socket.cxx.
References fbOpen, fxSocket, and GO4TRACE.
Referenced by TGo4TaskHandler::Connect(), TGo4TaskHandler::DisConnect(), TGo4TaskHandler::ServerRequest(), and TGo4ServerTask::StopConnectorThread().
|
inline |
Access the internal receiving buffer of this socket.
Definition at line 59 of file TGo4Socket.h.
References fxBuffer.
|
inline |
Definition at line 41 of file TGo4Socket.h.
References fiPort.
Referenced by TGo4TaskHandler::WaitGetPort().
|
inline |
Definition at line 39 of file TGo4Socket.h.
References fbClientMode.
|
inline |
Definition at line 37 of file TGo4Socket.h.
References fbOpen.
Referenced by TGo4TaskHandler::ConnectClientChannel(), TGo4TaskHandler::ConnectServerChannel(), ReceiveBuffer(), Recv(), RecvRaw(), Send(), Send(), and SendBuffer().
|
virtual |
Definition at line 92 of file TGo4Socket.cxx.
References TGo4Log::Debug(), fbClientMode, fbOpen, fgcGOON, fgiOPENCYCLES, fguOPENWAIT, fiPort, fxServerSocket, fxSocket, and GO4TRACE.
Referenced by TGo4TaskHandler::ConnectClientChannel(), TGo4TaskHandler::ServerRequest(), and TGo4ServerTask::StopConnectorThread().
|
protected |
Reallocate the fixed input buffer if necessary.
Definition at line 461 of file TGo4Socket.cxx.
References fgiBUFEXTRASPACE, and TGo4LockGuard.
Referenced by ReceiveBuffer().
Int_t TGo4Socket::ReceiveBuffer | ( | ) |
Receive raw buffer and fill the internal TBuffer of this socket instance with it.
Definition at line 273 of file TGo4Socket.cxx.
References TGo4Log::Debug(), fgiBUFINITSIZE, fxBuffer, fxSocket, GO4TRACE, IsOpen(), and ReallocBuffer().
|
virtual |
Definition at line 431 of file TGo4Socket.cxx.
References TGo4Log::Debug(), fxSocket, GO4TRACE, IsOpen(), and TGo4LockGuard.
|
virtual |
Definition at line 401 of file TGo4Socket.cxx.
References TGo4Log::Debug(), fgiBUFLENGTH, fxLocalBuffer, fxSocket, GO4TRACE, and IsOpen().
Referenced by TGo4TaskHandler::Connect(), TGo4TaskHandler::ConnectClientChannel(), TGo4TaskHandler::ConnectServerChannel(), and TGo4TaskHandler::ServerLogin().
|
virtual |
Definition at line 366 of file TGo4Socket.cxx.
References TGo4Log::Debug(), fgiBUFLENGTH, fxLocalBuffer, fxSocket, GO4TRACE, and IsOpen().
|
virtual |
Definition at line 332 of file TGo4Socket.cxx.
References TGo4Log::Debug(), fxSocket, GO4TRACE, IsOpen(), and TGo4LockGuard.
Referenced by TGo4TaskHandler::Connect(), TGo4TaskHandler::ConnectClientChannel(), TGo4TaskHandler::ConnectServerChannel(), TGo4TaskHandler::DisConnect(), TGo4TaskHandler::ServerLogin(), TGo4TaskHandler::ServerRequest(), and TGo4ServerTask::StopConnectorThread().
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 220 of file TGo4Socket.cxx.
References TGo4Log::Debug(), fxSocket, GO4TRACE, and IsOpen().
|
private |
True if instance runs in as client.
Definition at line 88 of file TGo4Socket.h.
Referenced by TGo4Socket(), IsClientMode(), and Open().
|
private |
True if connection is open.
Definition at line 91 of file TGo4Socket.h.
Referenced by TGo4Socket(), Close(), IsOpen(), and Open().
|
static |
First connection string, we are told to go on...
Definition at line 77 of file TGo4Socket.h.
Referenced by Open().
|
static |
ROOT internal constant: extra space for reallocating object receive buffer (TBuffer)
Definition at line 74 of file TGo4Socket.h.
Referenced by ReallocBuffer().
|
static |
Initial size for object receive buffer (TBuffer)
Definition at line 71 of file TGo4Socket.h.
Referenced by TGo4Socket(), TGo4BufferQueue::FreeBuffer(), TGo4BufferQueue::NewEntry(), and ReceiveBuffer().
|
static |
Raw transport buffer size.
Definition at line 68 of file TGo4Socket.h.
Referenced by TGo4Socket(), RecvRaw(), and Send().
|
static |
Number of retries for client open.
Definition at line 65 of file TGo4Socket.h.
Referenced by Open().
|
static |
Time to sleep between client open retries.
Definition at line 62 of file TGo4Socket.h.
Referenced by Open().
|
private |
Connected port number (of server socket which opened with portnumberscan)
Definition at line 100 of file TGo4Socket.h.
Referenced by TGo4Socket(), GetPort(), and Open().
|
private |
aggregation 1
Definition at line 106 of file TGo4Socket.h.
Referenced by TGo4Socket(), ~TGo4Socket(), GetBuffer(), and ReceiveBuffer().
|
private |
Definition at line 102 of file TGo4Socket.h.
Referenced by TGo4Socket(), ~TGo4Socket(), RecvRaw(), and Send().
|
private |
Server Socket (server mode only)
Definition at line 97 of file TGo4Socket.h.
Referenced by TGo4Socket(), ~TGo4Socket(), and Open().
|
private |
root TSocket class doing the work
Definition at line 94 of file TGo4Socket.h.
Referenced by TGo4Socket(), ~TGo4Socket(), Close(), Open(), ReceiveBuffer(), Recv(), RecvRaw(), Send(), Send(), and SendBuffer().