GSI Object Oriented Online Offline (Go4) GO4-6.4.0
|
Handles a histogram server (mbs histogram protocol) for the histograms registered in the analysis. More...
#include <TGo4HistogramServer.h>
Public Member Functions | |
TGo4HistogramServer () | |
TGo4HistogramServer (TGo4AnalysisClient *owner, const char *servername="localhost", const char *password="go4", Bool_t useobjectserver=kFALSE) | |
virtual | ~TGo4HistogramServer () |
TGo4Analysis * | GetAnalysis () const |
TGo4AnalysisClient * | GetAnalysisClient () const |
UInt_t | GetObjPort () |
returns the portnumber for object server connection | |
Int_t | ServeObjectClient () |
Used by object connector runnable to serve client request. | |
virtual Int_t | TimerConnect () |
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. | |
![]() | |
TGo4CommandReceiver () | |
virtual | ~TGo4CommandReceiver () |
Static Public Attributes | |
static const char * | fgcCOMGETLIST = "__OServNamesList__" |
command string for object server nameslist request | |
static const char * | fgcCONTHREADNAME = "HISTOSERV-" |
histogram server connector thread name | |
static const char * | fgcOBJTHREADNAME = "OBJECTSERV-" |
object server connector thread name | |
static const char * | fgcSHUTDOWNNAME = "__HServLast__" |
This string is send as histogram name for termination connection. | |
static const Int_t | fgiCLOSEWAITCYCLES = 100 |
Maximum cycles to wait until transport is closed. | |
static const Int_t | fgiCONNECTWAITCYCLES = 20 |
Maximum cycles to wait until transport is connected. | |
static const Int_t | fgiOPENWAITCYCLES = 100 |
Maximum cycles to wait until transport is open. | |
static const UInt_t | fguCLOSEWAITCYCLETIME = 500 |
Time for each close wait cycle, in ms. | |
static const UInt_t | fguCONNECTWAITCYCLETIME = 500 |
Time for each connect wait cycle, in ms. | |
static const UInt_t | fguOPENWAITCYCLETIME = 500 |
Time for each open wait cycle, in ms. | |
static const UInt_t | fguTIMERPERIOD = 200 |
Period of connector timer, in ms. | |
Private Member Functions | |
Bool_t | CheckLogin () |
Checks basename and passwd login of connected client. | |
const char * | ConnectHost () const |
Int_t | ConnectObjectClient () |
Starts server socket waiting for the next client. | |
const char * | ConnectorName () const |
void | DisconnectObjectClient () |
Terminate connection to current object client, keep waiting for the next one. | |
Bool_t | HandleObjectRequest () |
Ask for which object to send and give it to the client. | |
const char * | ObjectThreadName () const |
Bool_t | SendObject (TObject *obj) |
Send object to the current object client. | |
void | SetConnect (TGo4Socket *trans, const char *host, UInt_t port) |
void | SetDisConnect (TGo4Socket *trans) |
Int_t | WaitForClose () |
Int_t | WaitForConnection () |
Int_t | WaitForOpen () |
Private Attributes | |
Bool_t | fbConnectIsClose {kFALSE} |
True if fxConnectTransport has returned from Close(), i.e. | |
Bool_t | fbConnectIsDone {kFALSE} |
True if fxConnectTransport has returned from Open(), i.e. | |
Bool_t | fbConnectIsOpen {kFALSE} |
True if fxConnectTransport waits in server Open() call. | |
Bool_t | fbConnectRequest {kFALSE} |
True if fxConnectTransport shall be Open() by Timer. | |
Bool_t | fbDisConnectRequest {kFALSE} |
True if fxConnectTransport shall be Close() by Timer. | |
Bool_t | fbUseObjectServer {kFALSE} |
Switches Go4 objectserver option on/off. | |
TString | fcConnectHost |
hostname for timer connect | |
Int_t | fiServerPort {0} |
port number for server socket | |
UInt_t | fuConnectPort {0} |
port number for timer connect | |
UInt_t | fuObjectPort {0} |
port number for the object server connections | |
TGo4Analysis * | fxAnalysis {nullptr} |
TGo4AnalysisClient * | fxAnalysisClient {nullptr} |
TString | fxConnectorName |
Name of connector thread. | |
TGo4ObjConnectorTimer * | fxConnectorTimer {nullptr} |
timer responsible for the connection/disconnection of clients; independent of application control timer aggregationByValue 1 | |
TGo4Socket * | fxConnectTransport {nullptr} |
link to the next TaskHandler transport instance that shall be connected by the Object connector Timer with the client | |
TGo4Socket * | fxDisConnectTransport {nullptr} |
link to the next TaskHandler transport instance that shall be disconnected by the connector Timer with the client | |
TString | fxObjectThreadName |
Name of object server thread. | |
TString | fxServerName |
contains api server name | |
TString | fxServerPass |
contains api server password | |
TGo4ThreadHandler * | fxThreadHandler {nullptr} |
TGo4Socket * | fxTransport {nullptr} |
socket for object server | |
Friends | |
class | TGo4HisConnectorRunnable |
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
Definition at line 35 of file TGo4HistogramServer.h.
TGo4HistogramServer::TGo4HistogramServer | ( | ) |
Definition at line 113 of file TGo4HistogramServer.cxx.
References fbConnectIsClose, fbConnectIsDone, fbConnectIsOpen, fbConnectRequest, fbDisConnectRequest, fbUseObjectServer, fcConnectHost, fiServerPort, fuConnectPort, fuObjectPort, fxAnalysisClient, fxConnectTransport, fxDisConnectTransport, fxThreadHandler, fxTransport, TGo4CommandInvoker::Instance(), and TGo4CommandInvoker::Register().
TGo4HistogramServer::TGo4HistogramServer | ( | TGo4AnalysisClient * | owner, |
const char * | servername = "localhost", | ||
const char * | password = "go4", | ||
Bool_t | useobjectserver = kFALSE ) |
Definition at line 55 of file TGo4HistogramServer.cxx.
References COMM__SUCCESS, ConnectorName(), f_his_server(), fbConnectIsClose, fbConnectIsDone, fbConnectIsOpen, fbConnectRequest, fbDisConnectRequest, fbUseObjectServer, fgcCONTHREADNAME, fgcOBJTHREADNAME, fguTIMERPERIOD, fiServerPort, fuConnectPort, fuObjectPort, fxAnalysis, fxAnalysisClient, fxConnectorName, fxConnectorTimer, fxConnectTransport, fxDisConnectTransport, fxObjectThreadName, fxServerName, fxServerPass, fxThreadHandler, fxTransport, TGo4Analysis::Instance(), TGo4CommandInvoker::Instance(), TGo4Analysis::Message(), ObjectThreadName(), TGo4CommandInvoker::Register(), and TGo4HisConnectorRunnable.
|
virtual |
remove and delete the objectserver thread:
Definition at line 123 of file TGo4HistogramServer.cxx.
References ConnectorName(), f_his_close(), f_his_gethis(), fbUseObjectServer, fgcSHUTDOWNNAME, fiServerPort, fxConnectorTimer, fxServerName, fxServerPass, fxThreadHandler, fxTransport, ObjectThreadName(), and TGo4CommandInvoker::UnRegister().
|
private |
Checks basename and passwd login of connected client.
Definition at line 230 of file TGo4HistogramServer.cxx.
References DisconnectObjectClient(), fxServerName, fxServerPass, fxTransport, TGo4TaskHandler::Get_fgcERROR(), and TGo4TaskHandler::Get_fgcOK().
Referenced by ServeObjectClient().
|
inlineprivate |
Definition at line 104 of file TGo4HistogramServer.h.
References fcConnectHost.
Referenced by TimerConnect().
|
private |
Starts server socket waiting for the next client.
Definition at line 181 of file TGo4HistogramServer.cxx.
References TGo4Log::Debug(), fuObjectPort, fxAnalysisClient, fxServerName, fxTransport, TGo4TaskHandler::Get_fgiPORTWAITCYCLES(), TGo4TaskHandler::Get_fguPORTWAITTIME(), GetObjPort(), TGo4Analysis::Instance(), TGo4ThreadManager::IsTerminating(), TGo4Analysis::Message(), SetConnect(), TGo4Thread::Sleep(), WaitForConnection(), and WaitForOpen().
Referenced by ServeObjectClient().
|
inlineprivate |
Definition at line 100 of file TGo4HistogramServer.h.
References fxConnectorName.
Referenced by TGo4HistogramServer(), and ~TGo4HistogramServer().
|
private |
Terminate connection to current object client, keep waiting for the next one.
Definition at line 172 of file TGo4HistogramServer.cxx.
References fxTransport, SetDisConnect(), and WaitForClose().
Referenced by CheckLogin(), and ServeObjectClient().
|
inline |
Definition at line 63 of file TGo4HistogramServer.h.
References fxAnalysis.
|
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 455 of file TGo4HistogramServer.cxx.
References fuObjectPort, and fxTransport.
Referenced by ConnectObjectClient().
|
private |
Ask for which object to send and give it to the client.
Definition at line 260 of file TGo4HistogramServer.cxx.
References fgcCOMGETLIST, TGo4ThreadManager::fguTEXTLENGTH, fxAnalysis, fxTransport, SendObject(), and TGo4LockGuard.
Referenced by ServeObjectClient().
|
inlineprivate |
Definition at line 102 of file TGo4HistogramServer.h.
References fxObjectThreadName.
Referenced by TGo4HistogramServer(), and ~TGo4HistogramServer().
|
private |
Send object to the current object client.
Protocol matches TGo4ObjectClient::ReceiveObject()
Definition at line 284 of file TGo4HistogramServer.cxx.
References TGo4Log::Debug(), fxTransport, TGo4TaskHandler::Get_fgcERROR(), TGo4TaskHandler::Get_fgcOK(), and TGo4LockGuard.
Referenced by HandleObjectRequest().
Int_t TGo4HistogramServer::ServeObjectClient | ( | ) |
Used by object connector runnable to serve client request.
Definition at line 159 of file TGo4HistogramServer.cxx.
References CheckLogin(), ConnectObjectClient(), DisconnectObjectClient(), and HandleObjectRequest().
|
private |
Definition at line 316 of file TGo4HistogramServer.cxx.
References fbConnectRequest, fcConnectHost, fuConnectPort, fxConnectTransport, and GO4TRACE.
Referenced by ConnectObjectClient().
|
private |
Definition at line 325 of file TGo4HistogramServer.cxx.
References fbDisConnectRequest, fxDisConnectTransport, and GO4TRACE.
Referenced by DisconnectObjectClient().
|
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 332 of file TGo4HistogramServer.cxx.
References ConnectHost(), fbConnectIsClose, fbConnectIsDone, fbConnectIsOpen, fbConnectRequest, fbDisConnectRequest, fuConnectPort, fxConnectTransport, fxDisConnectTransport, and GO4TRACE.
|
private |
Definition at line 418 of file TGo4HistogramServer.cxx.
References fbConnectIsClose, fgiCLOSEWAITCYCLES, fguCLOSEWAITCYCLETIME, GO4TRACE, and TGo4Thread::Sleep().
Referenced by DisconnectObjectClient().
|
private |
Definition at line 436 of file TGo4HistogramServer.cxx.
References fbConnectIsDone, fguCONNECTWAITCYCLETIME, fxAnalysisClient, GO4TRACE, TGo4ThreadManager::IsTerminating(), and TGo4Thread::Sleep().
Referenced by ConnectObjectClient().
|
private |
Definition at line 396 of file TGo4HistogramServer.cxx.
References fbConnectIsOpen, fgiOPENWAITCYCLES, fguOPENWAITCYCLETIME, fxAnalysisClient, GO4TRACE, TGo4ThreadManager::IsTerminating(), and TGo4Thread::Sleep().
Referenced by ConnectObjectClient().
|
friend |
Definition at line 37 of file TGo4HistogramServer.h.
References TGo4HisConnectorRunnable.
Referenced by TGo4HistogramServer(), and TGo4HisConnectorRunnable.
|
private |
True if fxConnectTransport has returned from Close(), i.e.
connection was closed
Definition at line 186 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), TGo4HistogramServer(), TimerConnect(), and WaitForClose().
|
private |
True if fxConnectTransport has returned from Open(), i.e.
connection was established
Definition at line 182 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), TGo4HistogramServer(), TimerConnect(), and WaitForConnection().
|
private |
True if fxConnectTransport waits in server Open() call.
Definition at line 178 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), TGo4HistogramServer(), TimerConnect(), and WaitForOpen().
|
private |
True if fxConnectTransport shall be Open() by Timer.
Definition at line 172 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), TGo4HistogramServer(), SetConnect(), and TimerConnect().
|
private |
True if fxConnectTransport shall be Close() by Timer.
Definition at line 175 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), TGo4HistogramServer(), SetDisConnect(), and TimerConnect().
|
private |
Switches Go4 objectserver option on/off.
Definition at line 195 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), TGo4HistogramServer(), and ~TGo4HistogramServer().
|
private |
hostname for timer connect
Definition at line 166 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), ConnectHost(), and SetConnect().
|
static |
command string for object server nameslist request
Definition at line 75 of file TGo4HistogramServer.h.
Referenced by HandleObjectRequest(), and TGo4ObjClient::RequestNamesList().
|
static |
histogram server connector thread name
Definition at line 66 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer().
|
static |
object server connector thread name
Definition at line 69 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer().
|
static |
This string is send as histogram name for termination connection.
Definition at line 72 of file TGo4HistogramServer.h.
Referenced by ~TGo4HistogramServer(), and TGo4HisConnectorRunnable::Run().
|
static |
Maximum cycles to wait until transport is closed.
Definition at line 87 of file TGo4HistogramServer.h.
Referenced by WaitForClose().
|
static |
Maximum cycles to wait until transport is connected.
Definition at line 93 of file TGo4HistogramServer.h.
|
static |
Maximum cycles to wait until transport is open.
Definition at line 81 of file TGo4HistogramServer.h.
Referenced by WaitForOpen().
|
static |
Time for each close wait cycle, in ms.
Definition at line 90 of file TGo4HistogramServer.h.
Referenced by WaitForClose().
|
static |
Time for each connect wait cycle, in ms.
Definition at line 96 of file TGo4HistogramServer.h.
Referenced by WaitForConnection().
|
static |
Time for each open wait cycle, in ms.
Definition at line 84 of file TGo4HistogramServer.h.
Referenced by WaitForOpen().
|
static |
Period of connector timer, in ms.
Definition at line 78 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer().
|
private |
port number for server socket
Definition at line 149 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), TGo4HistogramServer(), and ~TGo4HistogramServer().
|
private |
port number for timer connect
Definition at line 169 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), TGo4HistogramServer(), SetConnect(), and TimerConnect().
|
private |
port number for the object server connections
Definition at line 155 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), TGo4HistogramServer(), ConnectObjectClient(), and GetObjPort().
|
private |
Definition at line 133 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), GetAnalysis(), and HandleObjectRequest().
|
private |
Definition at line 132 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), TGo4HistogramServer(), ConnectObjectClient(), GetAnalysisClient(), WaitForConnection(), and WaitForOpen().
|
private |
Name of connector thread.
Definition at line 143 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), and ConnectorName().
|
private |
timer responsible for the connection/disconnection of clients; independent of application control timer aggregationByValue 1
Definition at line 192 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), and ~TGo4HistogramServer().
|
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 TGo4HistogramServer(), TGo4HistogramServer(), SetConnect(), and TimerConnect().
|
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 TGo4HistogramServer(), TGo4HistogramServer(), SetDisConnect(), and TimerConnect().
|
private |
Name of object server thread.
Definition at line 146 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), and ObjectThreadName().
|
private |
contains api server name
Definition at line 137 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), ~TGo4HistogramServer(), CheckLogin(), and ConnectObjectClient().
|
private |
contains api server password
Definition at line 140 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), ~TGo4HistogramServer(), and CheckLogin().
|
private |
Definition at line 134 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), TGo4HistogramServer(), and ~TGo4HistogramServer().
|
private |
socket for object server
Definition at line 152 of file TGo4HistogramServer.h.
Referenced by TGo4HistogramServer(), TGo4HistogramServer(), ~TGo4HistogramServer(), CheckLogin(), ConnectObjectClient(), DisconnectObjectClient(), GetObjPort(), HandleObjectRequest(), and SendObject().