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

#include <TGo4HistogramServer.h>

+ Inheritance diagram for TGo4HistogramServer:

Public Member Functions

 TGo4HistogramServer ()
 
 TGo4HistogramServer (TGo4AnalysisClient *owner, const char *servername="localhost", const char *password="go4", Bool_t useobjectserver=kFALSE)
 
virtual ~TGo4HistogramServer ()
 
Int_t ServeObjectClient ()
 
UInt_t GetObjPort ()
 
virtual Int_t TimerConnect ()
 
TGo4AnalysisClientGetAnalysisClient () const
 
TGo4AnalysisGetAnalysis () const
 
- Public Member Functions inherited from TGo4CommandReceiver
 TGo4CommandReceiver ()
 
virtual ~TGo4CommandReceiver ()
 

Static Public Attributes

static const char * fgcCONTHREADNAME = "HISTOSERV-"
 
static const char * fgcOBJTHREADNAME = "OBJECTSERV-"
 
static const char * fgcSHUTDOWNNAME = "__HServLast__"
 
static const char * fgcCOMGETLIST = "__OServNamesList__"
 
static const UInt_t fguTIMERPERIOD = 200
 
static const Int_t fgiOPENWAITCYCLES = 100
 
static const UInt_t fguOPENWAITCYCLETIME = 500
 
static const Int_t fgiCLOSEWAITCYCLES = 100
 
static const UInt_t fguCLOSEWAITCYCLETIME = 500
 
static const Int_t fgiCONNECTWAITCYCLES = 20
 
static const UInt_t fguCONNECTWAITCYCLETIME = 500
 

Private Member Functions

const char * ConnectorName () const
 
const char * ObjectThreadName () const
 
const char * ConnectHost () const
 
void SetConnect (TGo4Socket *trans, const char *host, UInt_t port)
 
void SetDisConnect (TGo4Socket *trans)
 
Int_t WaitForOpen ()
 
Int_t WaitForClose ()
 
Int_t WaitForConnection ()
 
void DisconnectObjectClient ()
 
Bool_t CheckLogin ()
 
Int_t ConnectObjectClient ()
 
Bool_t HandleObjectRequest ()
 
Bool_t SendObject (TObject *obj)
 

Private Attributes

TGo4AnalysisClientfxAnalysisClient
 
TGo4AnalysisfxAnalysis
 
TGo4ThreadHandlerfxThreadHandler
 
TString fxServerName
 
TString fxServerPass
 
TString fxConnectorName
 
TString fxObjectThreadName
 
Int_t fiServerPort
 
TGo4SocketfxTransport
 
UInt_t fuObjectPort
 
TGo4SocketfxConnectTransport
 
TGo4SocketfxDisConnectTransport
 
TString fcConnectHost
 
UInt_t fuConnectPort
 
Bool_t fbConnectRequest
 
Bool_t fbDisConnectRequest
 
Bool_t fbConnectIsOpen
 
Bool_t fbConnectIsDone
 
Bool_t fbConnectIsClose
 
TGo4ObjConnectorTimerfxConnectorTimer
 
Bool_t fbUseObjectServer
 

Friends

class TGo4HisConnectorRunnable
 

Detailed Description

Handles a histogram server (mbs histogram protocol) for the histograms registered in the analysis. Optionally, object server for root may be started using Go4 protocol style. This was disabled for V3 by default 09/2005

Author
J. Adamczewski
Since
23-Sep-2002, reduced 14-Jan-2003

Definition at line 35 of file TGo4HistogramServer.h.

Constructor & Destructor Documentation

TGo4HistogramServer::TGo4HistogramServer ( )
TGo4HistogramServer::TGo4HistogramServer ( TGo4AnalysisClient owner,
const char *  servername = "localhost",
const char *  password = "go4",
Bool_t  useobjectserver = kFALSE 
)
TGo4HistogramServer::~TGo4HistogramServer ( )
virtual

Member Function Documentation

Bool_t TGo4HistogramServer::CheckLogin ( )
private
const char* TGo4HistogramServer::ConnectHost ( ) const
inlineprivate

Definition at line 104 of file TGo4HistogramServer.h.

References fcConnectHost.

Referenced by TimerConnect().

Int_t TGo4HistogramServer::ConnectObjectClient ( )
private
const char* TGo4HistogramServer::ConnectorName ( ) const
inlineprivate

Definition at line 100 of file TGo4HistogramServer.h.

References fxConnectorName.

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

void TGo4HistogramServer::DisconnectObjectClient ( )
private

Terminate connection to current object client, keep waiting for the next one

Definition at line 173 of file TGo4HistogramServer.cxx.

References fxTransport, SetDisConnect(), and WaitForClose().

Referenced by CheckLogin(), and ServeObjectClient().

TGo4Analysis* TGo4HistogramServer::GetAnalysis ( ) const
inline

Definition at line 63 of file TGo4HistogramServer.h.

References fxAnalysis.

Referenced by TGo4HisConnectorRunnable::Run().

TGo4AnalysisClient* TGo4HistogramServer::GetAnalysisClient ( ) const
inline

Definition at line 61 of file TGo4HistogramServer.h.

References fxAnalysisClient.

UInt_t TGo4HistogramServer::GetObjPort ( )

returns the portnumber for object server connection

Definition at line 464 of file TGo4HistogramServer.cxx.

References fuObjectPort, fxTransport, and TGo4Socket::GetPort().

Referenced by ConnectObjectClient().

Bool_t TGo4HistogramServer::HandleObjectRequest ( )
private
const char* TGo4HistogramServer::ObjectThreadName ( ) const
inlineprivate

Definition at line 102 of file TGo4HistogramServer.h.

References fxObjectThreadName.

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

Bool_t TGo4HistogramServer::SendObject ( TObject *  obj)
private

Send object to the current object client. Protocol matches TGo4ObjectClient::ReceiveObject()

Definition at line 287 of file TGo4HistogramServer.cxx.

References TGo4Log::Debug(), fxTransport, TGo4TaskHandler::Get_fgcERROR(), TGo4TaskHandler::Get_fgcOK(), TGo4Socket::RecvRaw(), TGo4Socket::Send(), TGo4Socket::SendBuffer(), and TGo4Buffer.

Referenced by HandleObjectRequest().

Int_t TGo4HistogramServer::ServeObjectClient ( )

Used by object connector runnable to serve client request

Definition at line 160 of file TGo4HistogramServer.cxx.

References CheckLogin(), ConnectObjectClient(), DisconnectObjectClient(), and HandleObjectRequest().

Referenced by TGo4ObjConnectorRunnable::Run().

void TGo4HistogramServer::SetConnect ( TGo4Socket trans,
const char *  host,
UInt_t  port 
)
private
void TGo4HistogramServer::SetDisConnect ( TGo4Socket trans)
private

Definition at line 329 of file TGo4HistogramServer.cxx.

References fbDisConnectRequest, fxDisConnectTransport, and GO4TRACE.

Referenced by DisconnectObjectClient().

Int_t TGo4HistogramServer::TimerConnect ( )
virtual

This method is used by the object connectortimer Notify to connect or disconnect a transportchannel (TSocket) on demand; the connection process itself is handled by the connector runnable

Definition at line 336 of file TGo4HistogramServer.cxx.

References TGo4Socket::Close(), ConnectHost(), fbConnectIsClose, fbConnectIsDone, fbConnectIsOpen, fbConnectRequest, fbDisConnectRequest, fuConnectPort, fxConnectTransport, fxDisConnectTransport, GO4TRACE, TGo4Socket::IsOpen(), and TGo4Socket::Open().

Referenced by TGo4ObjConnectorTimer::Notify().

Int_t TGo4HistogramServer::WaitForClose ( )
private
Int_t TGo4HistogramServer::WaitForConnection ( )
private
Int_t TGo4HistogramServer::WaitForOpen ( )
private

Friends And Related Function Documentation

friend class TGo4HisConnectorRunnable
friend

Definition at line 37 of file TGo4HistogramServer.h.

Referenced by TGo4HistogramServer().

Member Data Documentation

Bool_t TGo4HistogramServer::fbConnectIsClose
private

True if fxConnectTransport has returned from Close(), i.e. connection was closed

Definition at line 186 of file TGo4HistogramServer.h.

Referenced by TimerConnect(), and WaitForClose().

Bool_t TGo4HistogramServer::fbConnectIsDone
private

True if fxConnectTransport has returned from Open(), i.e. connection was established

Definition at line 182 of file TGo4HistogramServer.h.

Referenced by TimerConnect(), and WaitForConnection().

Bool_t TGo4HistogramServer::fbConnectIsOpen
private

True if fxConnectTransport waits in server Open() call

Definition at line 178 of file TGo4HistogramServer.h.

Referenced by TimerConnect(), and WaitForOpen().

Bool_t TGo4HistogramServer::fbConnectRequest
private

True if fxConnectTransport shall be Open() by Timer

Definition at line 172 of file TGo4HistogramServer.h.

Referenced by SetConnect(), and TimerConnect().

Bool_t TGo4HistogramServer::fbDisConnectRequest
private

True if fxConnectTransport shall be Close() by Timer

Definition at line 175 of file TGo4HistogramServer.h.

Referenced by SetDisConnect(), and TimerConnect().

Bool_t TGo4HistogramServer::fbUseObjectServer
private

Switches Go4 objectserver option on/off

Definition at line 195 of file TGo4HistogramServer.h.

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

TString TGo4HistogramServer::fcConnectHost
private

hostname for timer connect

Definition at line 166 of file TGo4HistogramServer.h.

Referenced by ConnectHost(), and SetConnect().

const char * TGo4HistogramServer::fgcCOMGETLIST = "__OServNamesList__"
static

command string for object server nameslist request

Definition at line 75 of file TGo4HistogramServer.h.

Referenced by HandleObjectRequest(), and TGo4ObjClient::RequestNamesList().

const char * TGo4HistogramServer::fgcCONTHREADNAME = "HISTOSERV-"
static

histogram server connector thread name

Definition at line 66 of file TGo4HistogramServer.h.

Referenced by TGo4HistogramServer().

const char * TGo4HistogramServer::fgcOBJTHREADNAME = "OBJECTSERV-"
static

object server connector thread name

Definition at line 69 of file TGo4HistogramServer.h.

Referenced by TGo4HistogramServer().

const char * TGo4HistogramServer::fgcSHUTDOWNNAME = "__HServLast__"
static

This string is send as histogram name for termination connection

Definition at line 72 of file TGo4HistogramServer.h.

Referenced by TGo4HisConnectorRunnable::Run(), and ~TGo4HistogramServer().

const Int_t TGo4HistogramServer::fgiCLOSEWAITCYCLES = 100
static

Maximum cycles to wait until transport is closed

Definition at line 87 of file TGo4HistogramServer.h.

Referenced by WaitForClose().

const Int_t TGo4HistogramServer::fgiCONNECTWAITCYCLES = 20
static

Maximum cycles to wait until transport is connected

Definition at line 93 of file TGo4HistogramServer.h.

const Int_t TGo4HistogramServer::fgiOPENWAITCYCLES = 100
static

Maximum cycles to wait until transport is open

Definition at line 81 of file TGo4HistogramServer.h.

Referenced by WaitForOpen().

const UInt_t TGo4HistogramServer::fguCLOSEWAITCYCLETIME = 500
static

Time for each close wait cycle, in ms

Definition at line 90 of file TGo4HistogramServer.h.

Referenced by WaitForClose().

const UInt_t TGo4HistogramServer::fguCONNECTWAITCYCLETIME = 500
static

Time for each connect wait cycle, in ms

Definition at line 96 of file TGo4HistogramServer.h.

Referenced by WaitForConnection().

const UInt_t TGo4HistogramServer::fguOPENWAITCYCLETIME = 500
static

Time for each open wait cycle, in ms

Definition at line 84 of file TGo4HistogramServer.h.

Referenced by WaitForOpen().

const UInt_t TGo4HistogramServer::fguTIMERPERIOD = 200
static

Period of connector timer, in ms

Definition at line 78 of file TGo4HistogramServer.h.

Referenced by TGo4HistogramServer().

Int_t TGo4HistogramServer::fiServerPort
private

port number for server socket

Definition at line 149 of file TGo4HistogramServer.h.

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

UInt_t TGo4HistogramServer::fuConnectPort
private

port number for timer connect

Definition at line 169 of file TGo4HistogramServer.h.

Referenced by SetConnect(), and TimerConnect().

UInt_t TGo4HistogramServer::fuObjectPort
private

port number for the object server connections

Definition at line 155 of file TGo4HistogramServer.h.

Referenced by ConnectObjectClient(), and GetObjPort().

TGo4Analysis* TGo4HistogramServer::fxAnalysis
private

Definition at line 133 of file TGo4HistogramServer.h.

Referenced by GetAnalysis(), HandleObjectRequest(), and TGo4HistogramServer().

TGo4AnalysisClient* TGo4HistogramServer::fxAnalysisClient
private
TString TGo4HistogramServer::fxConnectorName
private

Name of connector thread

Definition at line 143 of file TGo4HistogramServer.h.

Referenced by ConnectorName(), and TGo4HistogramServer().

TGo4ObjConnectorTimer* TGo4HistogramServer::fxConnectorTimer
private

timer responsible for the connection/disconnection of clients; independent of application control timer 1

Definition at line 192 of file TGo4HistogramServer.h.

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

TGo4Socket* TGo4HistogramServer::fxConnectTransport
private

link to the next TaskHandler transport instance that shall be connected by the Object connector Timer with the client

Definition at line 159 of file TGo4HistogramServer.h.

Referenced by SetConnect(), and TimerConnect().

TGo4Socket* TGo4HistogramServer::fxDisConnectTransport
private

link to the next TaskHandler transport instance that shall be disconnected by the connector Timer with the client

Definition at line 163 of file TGo4HistogramServer.h.

Referenced by SetDisConnect(), and TimerConnect().

TString TGo4HistogramServer::fxObjectThreadName
private

Name of object server thread

Definition at line 146 of file TGo4HistogramServer.h.

Referenced by ObjectThreadName(), and TGo4HistogramServer().

TString TGo4HistogramServer::fxServerName
private

contains api server name

Definition at line 137 of file TGo4HistogramServer.h.

Referenced by CheckLogin(), ConnectObjectClient(), TGo4HistogramServer(), and ~TGo4HistogramServer().

TString TGo4HistogramServer::fxServerPass
private

contains api server password

Definition at line 140 of file TGo4HistogramServer.h.

Referenced by CheckLogin(), TGo4HistogramServer(), and ~TGo4HistogramServer().

TGo4ThreadHandler* TGo4HistogramServer::fxThreadHandler
private

Definition at line 134 of file TGo4HistogramServer.h.

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

TGo4Socket* TGo4HistogramServer::fxTransport
private

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