GSI Object Oriented Online Offline (Go4) GO4-6.4.0
Loading...
Searching...
No Matches
TGo4TaskHandler Class Reference

This class is responsible for the interconnection of two tasks: provided are three communication channels (data, command, status), one thread runnable is acting on each transport channel (e.g. More...

#include <TGo4TaskHandler.h>

+ Inheritance diagram for TGo4TaskHandler:

Public Member Functions

 TGo4TaskHandler (const char *name, TGo4ThreadManager *threadmanager, Bool_t clientmode=kFALSE, Bool_t mastermode=kTRUE, UInt_t negotiationport=0)
 
virtual ~TGo4TaskHandler ()
 
void ClearQueues ()
 Clear all entries of queues.
 
void CloseChannels (Option_t *opt="")
 Close transport channels and clear queues.
 
Bool_t Connect (const char *host="localhost", TGo4Socket *negotiator=nullptr)
 establishes the connections of all three transport channels and starts the service threads
 
Bool_t ConnectClientChannel (const char *name, TGo4Socket *negotiator, TGo4Socket *channel, const char *host)
 method defining the connection protocol of one data transport channel (data, status, or command).
 
Bool_t ConnectServerChannel (const char *name, TGo4Socket *negotiator, TGo4Socket *channel, const char *host)
 Method defining the connection protocol of one data transport channel (data, status, or command).
 
virtual TGo4TaskHandlerStatusCreateStatus ()
 create a status object with information on the current taskhandler state.
 
Bool_t DisConnect (Bool_t waitforclient=kTRUE)
 Closes the connections of all three transport channels.
 
TGo4QueueGetCommandQueue () const
 
TGo4SocketGetCommandTransport () const
 
const char * GetComName () const
 
Int_t GetComPort () const
 
TGo4QueueGetDataQueue () const
 
TGo4SocketGetDataTransport () const
 
const char * GetDatName () const
 
Int_t GetDatPort () const
 
const char * GetHostName () const
 
TGo4CommandInvokerGetInvoker () const
 returns pointer to copy of client invoker which may be used by server to check the valid command clients
 
Go4CommandMode_t GetRole ()
 
const char * GetStatName () const
 
Int_t GetStatPort () const
 
TGo4QueueGetStatusQueue () const
 
TGo4SocketGetStatusTransport () const
 
TGo4ThreadManagerGetThreadManager () const
 
Bool_t IsAborting () const
 Check whether this instance is currently being aborted.
 
Bool_t IsClientMode () const
 Check whether this instance is client or server taskhandler.
 
Bool_t IsMasterMode () const
 Check whether this instance is client or server taskhandler.
 
Bool_t ServerLogin (TGo4Socket *connector, Go4CommandMode_t account)
 Negotiate login to requested server channel with account type.
 
TGo4SocketServerRequest (const char *host="localhost")
 request to server at host to connect or disconnect us, returns negotiation channel
 
void SetAborting (Bool_t isaborting=kTRUE)
 sets the internal aborting state of this taskhandler instance; will be checked before an exception tries to cancel this taskhandler
 
void SetInvoker (TGo4CommandInvoker *inv)
 sets pointer to client invoker which may be used by server to check the valid command clients
 
void SetNegotiationPort (UInt_t port)
 Set port for the negotiation channel (client mode).
 
void SetRole (Go4CommandMode_t role)
 
void StartTransportThreads ()
 Start all transport threads of this taskhandler (command, data, status).
 
Bool_t StopTransportThreads (Bool_t wait=kTRUE)
 Stop all transport threads of this taskhandler (command, data, status).
 
Int_t WaitGetPort (TGo4Socket *sock)
 Get actual local port number of specified Go4 socket.
 
Bool_t WaitThreadStop (const char *name)
 Wait for the thread of name to be stopped.
 

Static Public Member Functions

static const char * Get_fgcERROR ()
 
static const char * Get_fgcOK ()
 
static Int_t Get_fgiPORTWAITCYCLES ()
 
static UInt_t Get_fguPORTWAITTIME ()
 
static void SetAdminAccount (const char *name, const char *passwd)
 Specify login name and password for administrator account.
 
static void SetCtrlAccount (const char *name, const char *passwd)
 Specify login name and password for controller account.
 
static void SetObservAccount (const char *name, const char *passwd)
 Specify login name and password for observer account.
 

Static Protected Attributes

static const char * fgcCOMMANDTHREAD ="COMMAND-"
 Suffix for command thread name.
 
static const char * fgcCONNECT ="CONNECT-VERSION-300"
 Initial string for connect request (raw transport)
 
static const char * fgcDATATHREAD ="DATA-"
 Suffix for data thread name.
 
static const char * fgcDISCONNECT ="DISCONNECT-VERSION-300"
 Initial string for disconnect request (raw transport)
 
static const char * fgcMASTER ="Master-VERSION-300"
 Task identifier for client connect negotiations (raw transport)
 
static const char * fgcSLAVE ="Slave-VERSION-300"
 Task identifier for client connect negotiations (raw transport)
 
static const char * fgcSTATUSTHREAD ="STATUS-"
 Suffix for status thread name.
 
static const Int_t fgiTHREADSTOPCYCLES =6
 cycles to wait for taskhandler thread stop on disconnection
 
static const UInt_t fguCOMMANDQUEUESIZE =1000
 Maximum entries allowed for command queue.
 
static const UInt_t fguCONNECTORPORT =5000
 Default port number of negotiation connection (raw transport)
 
static const UInt_t fguDATAQUEUESIZE =1000
 Maximum entries allowed for data queue.
 
static const UInt_t fguSTATUSQUEUESIZE =1000
 Maximum entries allowed for status queue.
 
static const UInt_t fguTHREADSTOPTIME =500
 time for each threadstop wait cycle
 
static const UInt_t fguTRANSPORTCHECKDELAY =5000
 Delay time (ms) to wait between two checks of transport connection.
 

Private Member Functions

 TGo4TaskHandler ()
 

Private Attributes

Bool_t fbClientMode {kFALSE}
 True if taskhandler runs in client mode.
 
Bool_t fbIsAborting {kFALSE}
 True if taskhandler is being aborted e.g.
 
Bool_t fbMasterMode {kFALSE}
 True if taskhandler runs in master mode (sends commands, receives data and status).
 
Int_t fiComPort {0}
 Command connection port number.
 
Int_t fiDatPort {0}
 Data connection port number.
 
Go4CommandMode_t fiRole
 For server connection to client: This indicates role of connected client, if client is master.
 
Int_t fiStatPort {0}
 Status connection port number.
 
UInt_t fuNegPort {0}
 Actual port number of negotiation connection (raw transport)
 
TGo4QueuefxCommandQueue {nullptr}
 Buffers (queues) for the three transport channels:
 
TGo4CommandRunnablefxCommandRun {nullptr}
 link to command runnable which is managed by thread handler 1 1
 
TGo4SocketfxCommandTransport {nullptr}
 Transport channels (e.g.
 
TString fxComName
 Remember name of command thread.
 
TGo4QueuefxDataQueue {nullptr}
 
TGo4DataRunnablefxDataRun {nullptr}
 link to data runnable which is managed by thread handler 1 1
 
TGo4SocketfxDataTransport {nullptr}
 
TString fxDatName
 Remember name of data thread.
 
TString fxHostName
 Remember name of remote task handler.
 
TGo4CommandInvokerfxInvoker {nullptr}
 Link to external command invoker instance used for direct command in client mode:
 
TString fxStatName
 Remember name of status thread.
 
TGo4QueuefxStatusQueue {nullptr}
 
TGo4StatusRunnablefxStatusRun {nullptr}
 link to status runnable which is managed by thread handler 1 1
 
TGo4SocketfxStatusTransport {nullptr}
 
TGo4ThreadHandlerfxThreadHandler {nullptr}
 link to external threadhandler which is used for the transport service threads (runnables); these runnables are instantiated from the task handler ctor and passed to the thread handler who takes over the responsibility for the runnables (threadhandler internal mode threads) <{TGo4ThreadHandler}>
 
TGo4ThreadManagerfxThreadManager {nullptr}
 Link to threadmanager that owns the task handler, used for runnable ctors.
 

Static Private Attributes

static const char * fgcERROR = "ERROR-VERSION-300"
 Error string for client connect negotiations (raw transport)
 
static const char * fgcOK = "OK-VERSION-300"
 Ok string for client connect negotiations (raw transport)
 
static const Int_t fgiPORTWAITCYCLES =150
 Cycles to wait for a nonzero portnumber.
 
static const UInt_t fguPORTWAITTIME =200
 Time for each waitgetport cycle.
 
static TNamed fgxADMINISTRATORACCOUNT
 This keeps account for admin connection.
 
static TNamed fgxCONTROLLERACCOUNT
 This keeps account for controller connection.
 
static TNamed fgxOBSERVERACCOUNT
 This keeps account for observer connection.
 

Friends

class TGo4TaskManager
 

Detailed Description

This class is responsible for the interconnection of two tasks: provided are three communication channels (data, command, status), one thread runnable is acting on each transport channel (e.g.

socket); one queue (buffer) is assigned to each channel depending on client or server mode of the task handler, the threads get objects from transport and put them into the queue, or vice versa. (servertask sends commands, but receives data and status objects) task handler is named such that it can be found in a list (i.e. task manager) by the server task which may serve more than one client tasks

Definition at line 43 of file TGo4TaskHandler.h.

Constructor & Destructor Documentation

◆ TGo4TaskHandler() [1/2]

◆ ~TGo4TaskHandler()

TGo4TaskHandler::~TGo4TaskHandler ( )
virtual

◆ TGo4TaskHandler() [2/2]

TGo4TaskHandler::TGo4TaskHandler ( )
private

Member Function Documentation

◆ ClearQueues()

void TGo4TaskHandler::ClearQueues ( )

Clear all entries of queues.

Definition at line 411 of file TGo4TaskHandler.cxx.

References fxCommandQueue, fxDataQueue, and fxStatusQueue.

Referenced by CloseChannels().

◆ CloseChannels()

void TGo4TaskHandler::CloseChannels ( Option_t * opt = "")

Close transport channels and clear queues.

Option may indicate root TSocket Close option, e.g. "force" to force socket close

Definition at line 385 of file TGo4TaskHandler.cxx.

References ClearQueues(), fxCommandTransport, fxDataTransport, and fxStatusTransport.

Referenced by DisConnect().

◆ Connect()

Bool_t TGo4TaskHandler::Connect ( const char * host = "localhost",
TGo4Socket * negotiator = nullptr )

◆ ConnectClientChannel()

Bool_t TGo4TaskHandler::ConnectClientChannel ( const char * name,
TGo4Socket * negotiator,
TGo4Socket * channel,
const char * host )

method defining the connection protocol of one data transport channel (data, status, or command).

For client socket mode (used by taskhandler)

Definition at line 507 of file TGo4TaskHandler.cxx.

References TGo4Log::Debug(), fgcOK, TGo4Socket::IsOpen(), TGo4Socket::Open(), TGo4Socket::RecvRaw(), and TGo4Socket::Send().

Referenced by Connect().

◆ ConnectServerChannel()

Bool_t TGo4TaskHandler::ConnectServerChannel ( const char * name,
TGo4Socket * negotiator,
TGo4Socket * channel,
const char * host )

Method defining the connection protocol of one data transport channel (data, status, or command).

For server socket mode (used by taskmanager)

Definition at line 431 of file TGo4TaskHandler.cxx.

References TGo4Log::Debug(), fgcOK, fxThreadManager, TGo4Socket::IsOpen(), TGo4Socket::RecvRaw(), TGo4Socket::Send(), TGo4ServerTask::SetConnect(), TGo4ServerTask::WaitForConnection(), TGo4ServerTask::WaitForOpen(), and WaitGetPort().

Referenced by Connect().

◆ CreateStatus()

TGo4TaskHandlerStatus * TGo4TaskHandler::CreateStatus ( )
virtual

create a status object with information on the current taskhandler state.

this object may be sent to the server or may be used to restore current status by memento mechanism

Definition at line 419 of file TGo4TaskHandler.cxx.

References fbIsAborting, fiComPort, fiDatPort, fiStatPort, fuNegPort, GetComName(), GetDatName(), GetHostName(), GetStatName(), TGo4TaskHandlerStatus::SetFlags(), TGo4TaskHandlerStatus::SetNames(), and TGo4TaskHandlerStatus::SetPorts().

Referenced by TGo4Task::UpdateStatus().

◆ DisConnect()

Bool_t TGo4TaskHandler::DisConnect ( Bool_t waitforclient = kTRUE)

Closes the connections of all three transport channels.

Argument waitforclient specifies if server shall wait for client handshake over negotiation channel before shutting down the sockets.

Definition at line 326 of file TGo4TaskHandler.cxx.

References TGo4Socket::Close(), CloseChannels(), TGo4Log::Debug(), fbClientMode, fgcDISCONNECT, fgcOK, GetHostName(), IsAborting(), TGo4Socket::Send(), ServerRequest(), and StopTransportThreads().

Referenced by TGo4TaskManager::DisConnectClient().

◆ Get_fgcERROR()

◆ Get_fgcOK()

◆ Get_fgiPORTWAITCYCLES()

Int_t TGo4TaskHandler::Get_fgiPORTWAITCYCLES ( )
static

◆ Get_fguPORTWAITTIME()

UInt_t TGo4TaskHandler::Get_fguPORTWAITTIME ( )
static

◆ GetCommandQueue()

TGo4Queue * TGo4TaskHandler::GetCommandQueue ( ) const
inline

◆ GetCommandTransport()

TGo4Socket * TGo4TaskHandler::GetCommandTransport ( ) const
inline

Definition at line 104 of file TGo4TaskHandler.h.

References fxCommandTransport.

◆ GetComName()

const char * TGo4TaskHandler::GetComName ( ) const
inline

◆ GetComPort()

Int_t TGo4TaskHandler::GetComPort ( ) const
inline

Definition at line 124 of file TGo4TaskHandler.h.

References fiComPort.

Referenced by TGo4TaskManager::AddClient().

◆ GetDataQueue()

TGo4Queue * TGo4TaskHandler::GetDataQueue ( ) const
inline

Definition at line 114 of file TGo4TaskHandler.h.

References fxDataQueue.

Referenced by TGo4ClientTask::TGo4ClientTask(), and TGo4ServerTask::GetDataQueue().

◆ GetDataTransport()

TGo4Socket * TGo4TaskHandler::GetDataTransport ( ) const
inline

Definition at line 108 of file TGo4TaskHandler.h.

References fxDataTransport.

◆ GetDatName()

const char * TGo4TaskHandler::GetDatName ( ) const
inline

◆ GetDatPort()

Int_t TGo4TaskHandler::GetDatPort ( ) const
inline

Definition at line 126 of file TGo4TaskHandler.h.

References fiDatPort.

Referenced by TGo4TaskManager::AddClient().

◆ GetHostName()

const char * TGo4TaskHandler::GetHostName ( ) const
inline

Definition at line 116 of file TGo4TaskHandler.h.

References fxHostName.

Referenced by CreateStatus(), and DisConnect().

◆ GetInvoker()

TGo4CommandInvoker * TGo4TaskHandler::GetInvoker ( ) const
inline

returns pointer to copy of client invoker which may be used by server to check the valid command clients

Definition at line 137 of file TGo4TaskHandler.h.

References fxInvoker.

◆ GetRole()

Go4CommandMode_t TGo4TaskHandler::GetRole ( )
inline

◆ GetStatName()

const char * TGo4TaskHandler::GetStatName ( ) const
inline

◆ GetStatPort()

Int_t TGo4TaskHandler::GetStatPort ( ) const
inline

Definition at line 128 of file TGo4TaskHandler.h.

References fiStatPort.

Referenced by TGo4TaskManager::AddClient().

◆ GetStatusQueue()

TGo4Queue * TGo4TaskHandler::GetStatusQueue ( ) const
inline

Definition at line 112 of file TGo4TaskHandler.h.

References fxStatusQueue.

Referenced by TGo4ClientTask::TGo4ClientTask(), and TGo4ServerTask::GetStatusQueue().

◆ GetStatusTransport()

TGo4Socket * TGo4TaskHandler::GetStatusTransport ( ) const
inline

Definition at line 106 of file TGo4TaskHandler.h.

References fxStatusTransport.

◆ GetThreadManager()

TGo4ThreadManager * TGo4TaskHandler::GetThreadManager ( ) const
inline

Definition at line 88 of file TGo4TaskHandler.h.

References fxThreadManager.

◆ IsAborting()

Bool_t TGo4TaskHandler::IsAborting ( ) const
inline

Check whether this instance is currently being aborted.

Definition at line 152 of file TGo4TaskHandler.h.

References fbIsAborting.

Referenced by DisConnect(), TGo4Task::SendStopBuffers(), and TGo4Task::WakeCommandQueue().

◆ IsClientMode()

Bool_t TGo4TaskHandler::IsClientMode ( ) const
inline

Check whether this instance is client or server taskhandler.

Definition at line 140 of file TGo4TaskHandler.h.

References fbClientMode.

Referenced by TGo4TaskHandler().

◆ IsMasterMode()

Bool_t TGo4TaskHandler::IsMasterMode ( ) const
inline

Check whether this instance is client or server taskhandler.

Definition at line 143 of file TGo4TaskHandler.h.

References fbMasterMode.

Referenced by TGo4TaskHandler(), and StopTransportThreads().

◆ ServerLogin()

Bool_t TGo4TaskHandler::ServerLogin ( TGo4Socket * connector,
Go4CommandMode_t account )

◆ ServerRequest()

TGo4Socket * TGo4TaskHandler::ServerRequest ( const char * host = "localhost")

request to server at host to connect or disconnect us, returns negotiation channel

Definition at line 145 of file TGo4TaskHandler.cxx.

References TGo4Socket::Close(), TGo4Log::Debug(), fbClientMode, fuNegPort, fxThreadManager, Get_fgcERROR(), GetRole(), TGo4Socket::Open(), TGo4Socket::Send(), and ServerLogin().

Referenced by Connect(), and DisConnect().

◆ SetAborting()

void TGo4TaskHandler::SetAborting ( Bool_t isaborting = kTRUE)
inline

sets the internal aborting state of this taskhandler instance; will be checked before an exception tries to cancel this taskhandler

Definition at line 149 of file TGo4TaskHandler.h.

References fbIsAborting.

Referenced by Connect().

◆ SetAdminAccount()

void TGo4TaskHandler::SetAdminAccount ( const char * name,
const char * passwd )
static

Specify login name and password for administrator account.

This is used when client requests for a server connection. For multiple master clients at a slave server, there can be only one controller, but many observers with restricted command rights.

Definition at line 618 of file TGo4TaskHandler.cxx.

References fgxADMINISTRATORACCOUNT.

Referenced by TGo4ClientTask::ConnectServer(), and TGo4AnalysisClient::Constructor().

◆ SetCtrlAccount()

void TGo4TaskHandler::SetCtrlAccount ( const char * name,
const char * passwd )
static

Specify login name and password for controller account.

This is used when client requests for a server connection. For multiple master clients at a slave server, there can be only one controller. Master server at slave client has always controller role.

Definition at line 624 of file TGo4TaskHandler.cxx.

References fgxCONTROLLERACCOUNT.

Referenced by TGo4ClientTask::ConnectServer(), and TGo4AnalysisClient::Constructor().

◆ SetInvoker()

void TGo4TaskHandler::SetInvoker ( TGo4CommandInvoker * inv)
inline

sets pointer to client invoker which may be used by server to check the valid command clients

Definition at line 158 of file TGo4TaskHandler.h.

References fxInvoker.

◆ SetNegotiationPort()

void TGo4TaskHandler::SetNegotiationPort ( UInt_t port)
inline

Set port for the negotiation channel (client mode).

Required if connection should be done on different port after taskhandler was created.

Definition at line 102 of file TGo4TaskHandler.h.

References fuNegPort.

◆ SetObservAccount()

void TGo4TaskHandler::SetObservAccount ( const char * name,
const char * passwd )
static

Specify login name and password for observer account.

This is used when client requests for a server connection. For multiple master clients at a slave server, there can be only one controller, but many observers with restricted command rights.

Definition at line 630 of file TGo4TaskHandler.cxx.

References fgxOBSERVERACCOUNT.

Referenced by TGo4ClientTask::ConnectServer(), and TGo4AnalysisClient::Constructor().

◆ SetRole()

void TGo4TaskHandler::SetRole ( Go4CommandMode_t role)
inline

Definition at line 131 of file TGo4TaskHandler.h.

References fiRole.

Referenced by TGo4TaskManager::AddClient().

◆ StartTransportThreads()

void TGo4TaskHandler::StartTransportThreads ( )

Start all transport threads of this taskhandler (command, data, status).

Definition at line 570 of file TGo4TaskHandler.cxx.

References fxThreadHandler, GetComName(), GetDatName(), and GetStatName().

Referenced by Connect().

◆ StopTransportThreads()

Bool_t TGo4TaskHandler::StopTransportThreads ( Bool_t wait = kTRUE)

Stop all transport threads of this taskhandler (command, data, status).

If wait is true, wait until threads are really stopped before return. If not all threads were stopped within defined stoptime and waitcycles, return value is false.

Definition at line 577 of file TGo4TaskHandler.cxx.

References fxThreadHandler, GetCommandQueue(), GetComName(), GetDatName(), GetStatName(), IsMasterMode(), WaitThreadStop(), and TGo4Queue::Wake().

Referenced by DisConnect().

◆ WaitGetPort()

Int_t TGo4TaskHandler::WaitGetPort ( TGo4Socket * sock)

Get actual local port number of specified Go4 socket.

Method polls until the port number is not zero, i.e. the created server socket has been bound to that number. Used by the Connect protocol to find out server port before sending it to the client.

Definition at line 545 of file TGo4TaskHandler.cxx.

References fgiPORTWAITCYCLES, fguPORTWAITTIME, fxThreadManager, TGo4Socket::GetPort(), and TGo4Thread::Sleep().

Referenced by Connect(), and ConnectServerChannel().

◆ WaitThreadStop()

Bool_t TGo4TaskHandler::WaitThreadStop ( const char * name)

Wait for the thread of name to be stopped.

Returns false if thread has not reached stopped state within the defined stoptime and cycles.

Definition at line 598 of file TGo4TaskHandler.cxx.

References TGo4Log::Debug(), fgiTHREADSTOPCYCLES, fguTHREADSTOPTIME, fxThreadHandler, TGo4Thread::IsWaiting(), and TGo4Thread::Sleep().

Referenced by StopTransportThreads().

Friends And Related Symbol Documentation

◆ TGo4TaskManager

friend class TGo4TaskManager
friend

Definition at line 47 of file TGo4TaskHandler.h.

References TGo4TaskManager.

Referenced by TGo4TaskManager.

Field Documentation

◆ fbClientMode

Bool_t TGo4TaskHandler::fbClientMode {kFALSE}
private

True if taskhandler runs in client mode.

Definition at line 304 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), Connect(), DisConnect(), IsClientMode(), and ServerRequest().

◆ fbIsAborting

Bool_t TGo4TaskHandler::fbIsAborting {kFALSE}
private

True if taskhandler is being aborted e.g.

by remove exception

Definition at line 310 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), CreateStatus(), IsAborting(), and SetAborting().

◆ fbMasterMode

Bool_t TGo4TaskHandler::fbMasterMode {kFALSE}
private

True if taskhandler runs in master mode (sends commands, receives data and status).

Otherwise false.

Definition at line 307 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), IsMasterMode(), and ServerLogin().

◆ fgcCOMMANDTHREAD

const char * TGo4TaskHandler::fgcCOMMANDTHREAD ="COMMAND-"
staticprotected

Suffix for command thread name.

Definition at line 261 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler().

◆ fgcCONNECT

const char * TGo4TaskHandler::fgcCONNECT ="CONNECT-VERSION-300"
staticprotected

Initial string for connect request (raw transport)

Definition at line 249 of file TGo4TaskHandler.h.

Referenced by Connect(), and TGo4TaskManager::ServeClient().

◆ fgcDATATHREAD

const char * TGo4TaskHandler::fgcDATATHREAD ="DATA-"
staticprotected

Suffix for data thread name.

Definition at line 267 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler().

◆ fgcDISCONNECT

const char * TGo4TaskHandler::fgcDISCONNECT ="DISCONNECT-VERSION-300"
staticprotected

Initial string for disconnect request (raw transport)

Definition at line 252 of file TGo4TaskHandler.h.

Referenced by DisConnect(), and TGo4TaskManager::ServeClient().

◆ fgcERROR

const char * TGo4TaskHandler::fgcERROR = "ERROR-VERSION-300"
staticprivate

Error string for client connect negotiations (raw transport)

Definition at line 292 of file TGo4TaskHandler.h.

Referenced by Get_fgcERROR().

◆ fgcMASTER

const char * TGo4TaskHandler::fgcMASTER ="Master-VERSION-300"
staticprotected

Task identifier for client connect negotiations (raw transport)

Definition at line 255 of file TGo4TaskHandler.h.

Referenced by TGo4TaskManager::ClientLogin(), and ServerLogin().

◆ fgcOK

const char * TGo4TaskHandler::fgcOK = "OK-VERSION-300"
staticprivate

Ok string for client connect negotiations (raw transport)

Definition at line 295 of file TGo4TaskHandler.h.

Referenced by Connect(), ConnectClientChannel(), ConnectServerChannel(), DisConnect(), Get_fgcOK(), and ServerLogin().

◆ fgcSLAVE

const char * TGo4TaskHandler::fgcSLAVE ="Slave-VERSION-300"
staticprotected

Task identifier for client connect negotiations (raw transport)

Definition at line 258 of file TGo4TaskHandler.h.

Referenced by TGo4TaskManager::ClientLogin(), and ServerLogin().

◆ fgcSTATUSTHREAD

const char * TGo4TaskHandler::fgcSTATUSTHREAD ="STATUS-"
staticprotected

Suffix for status thread name.

Definition at line 264 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler().

◆ fgiPORTWAITCYCLES

const Int_t TGo4TaskHandler::fgiPORTWAITCYCLES =150
staticprivate

Cycles to wait for a nonzero portnumber.

Definition at line 301 of file TGo4TaskHandler.h.

Referenced by Get_fgiPORTWAITCYCLES(), and WaitGetPort().

◆ fgiTHREADSTOPCYCLES

const Int_t TGo4TaskHandler::fgiTHREADSTOPCYCLES =6
staticprotected

cycles to wait for taskhandler thread stop on disconnection

Definition at line 231 of file TGo4TaskHandler.h.

Referenced by WaitThreadStop().

◆ fguCOMMANDQUEUESIZE

const UInt_t TGo4TaskHandler::fguCOMMANDQUEUESIZE =1000
staticprotected

Maximum entries allowed for command queue.

Definition at line 246 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler().

◆ fguCONNECTORPORT

const UInt_t TGo4TaskHandler::fguCONNECTORPORT =5000
staticprotected

Default port number of negotiation connection (raw transport)

Definition at line 228 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), and TGo4TaskManager::TGo4TaskManager().

◆ fguDATAQUEUESIZE

const UInt_t TGo4TaskHandler::fguDATAQUEUESIZE =1000
staticprotected

Maximum entries allowed for data queue.

Definition at line 243 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler().

◆ fguPORTWAITTIME

const UInt_t TGo4TaskHandler::fguPORTWAITTIME =200
staticprivate

Time for each waitgetport cycle.

Definition at line 298 of file TGo4TaskHandler.h.

Referenced by Get_fguPORTWAITTIME(), and WaitGetPort().

◆ fguSTATUSQUEUESIZE

const UInt_t TGo4TaskHandler::fguSTATUSQUEUESIZE =1000
staticprotected

Maximum entries allowed for status queue.

Definition at line 240 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler().

◆ fguTHREADSTOPTIME

const UInt_t TGo4TaskHandler::fguTHREADSTOPTIME =500
staticprotected

time for each threadstop wait cycle

Definition at line 234 of file TGo4TaskHandler.h.

Referenced by WaitThreadStop().

◆ fguTRANSPORTCHECKDELAY

const UInt_t TGo4TaskHandler::fguTRANSPORTCHECKDELAY =5000
staticprotected

Delay time (ms) to wait between two checks of transport connection.

Definition at line 237 of file TGo4TaskHandler.h.

◆ fgxADMINISTRATORACCOUNT

TNamed TGo4TaskHandler::fgxADMINISTRATORACCOUNT
staticprivate

This keeps account for admin connection.

Name is accountname, title is password. May be set from outside by public methods SetObservAccount and SetObservPasswd. Later we might keep this with encryption...

Definition at line 277 of file TGo4TaskHandler.h.

Referenced by TGo4TaskManager::ClientLogin(), ServerLogin(), and SetAdminAccount().

◆ fgxCONTROLLERACCOUNT

TNamed TGo4TaskHandler::fgxCONTROLLERACCOUNT
staticprivate

This keeps account for controller connection.

Name is accountname, title is password. May be set from outside by public methods SetCtrlAccount and SetCtrlPasswd. Later we might keep this with encryption...

Definition at line 289 of file TGo4TaskHandler.h.

Referenced by TGo4TaskManager::ClientLogin(), ServerLogin(), and SetCtrlAccount().

◆ fgxOBSERVERACCOUNT

TNamed TGo4TaskHandler::fgxOBSERVERACCOUNT
staticprivate

This keeps account for observer connection.

Name is accountname, title is password. May be set from outside by public methods SetObservAccount and SetObservPasswd. Later we might keep this with encryption...

Definition at line 283 of file TGo4TaskHandler.h.

Referenced by TGo4TaskManager::ClientLogin(), ServerLogin(), and SetObservAccount().

◆ fiComPort

Int_t TGo4TaskHandler::fiComPort {0}
private

Command connection port number.

Definition at line 352 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), Connect(), CreateStatus(), and GetComPort().

◆ fiDatPort

Int_t TGo4TaskHandler::fiDatPort {0}
private

Data connection port number.

Definition at line 358 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), Connect(), CreateStatus(), and GetDatPort().

◆ fiRole

Go4CommandMode_t TGo4TaskHandler::fiRole
private

For server connection to client: This indicates role of connected client, if client is master.

Depending on role, some actions may be forbidden. Role is equivalent to allowed command execution mode.

Definition at line 364 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), GetRole(), and SetRole().

◆ fiStatPort

Int_t TGo4TaskHandler::fiStatPort {0}
private

Status connection port number.

Definition at line 355 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), Connect(), CreateStatus(), and GetStatPort().

◆ fuNegPort

UInt_t TGo4TaskHandler::fuNegPort {0}
private

Actual port number of negotiation connection (raw transport)

Definition at line 349 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), CreateStatus(), ServerRequest(), and SetNegotiationPort().

◆ fxCommandQueue

TGo4Queue* TGo4TaskHandler::fxCommandQueue {nullptr}
private

Buffers (queues) for the three transport channels:

Definition at line 327 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), ~TGo4TaskHandler(), ClearQueues(), and GetCommandQueue().

◆ fxCommandRun

TGo4CommandRunnable* TGo4TaskHandler::fxCommandRun {nullptr}
private

link to command runnable which is managed by thread handler 1 1

Definition at line 379 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler().

◆ fxCommandTransport

TGo4Socket* TGo4TaskHandler::fxCommandTransport {nullptr}
private

Transport channels (e.g.

sockets) for command, status, data

Definition at line 332 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), ~TGo4TaskHandler(), CloseChannels(), Connect(), and GetCommandTransport().

◆ fxComName

TString TGo4TaskHandler::fxComName
private

Remember name of command thread.

Definition at line 337 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), and GetComName().

◆ fxDataQueue

TGo4Queue* TGo4TaskHandler::fxDataQueue {nullptr}
private

Definition at line 329 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), ~TGo4TaskHandler(), ClearQueues(), and GetDataQueue().

◆ fxDataRun

TGo4DataRunnable* TGo4TaskHandler::fxDataRun {nullptr}
private

link to data runnable which is managed by thread handler 1 1

Definition at line 374 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler().

◆ fxDataTransport

TGo4Socket* TGo4TaskHandler::fxDataTransport {nullptr}
private

◆ fxDatName

TString TGo4TaskHandler::fxDatName
private

Remember name of data thread.

Definition at line 343 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), and GetDatName().

◆ fxHostName

TString TGo4TaskHandler::fxHostName
private

Remember name of remote task handler.

Definition at line 346 of file TGo4TaskHandler.h.

Referenced by Connect(), and GetHostName().

◆ fxInvoker

TGo4CommandInvoker* TGo4TaskHandler::fxInvoker {nullptr}
private

Link to external command invoker instance used for direct command in client mode:

Definition at line 324 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), GetInvoker(), and SetInvoker().

◆ fxStatName

TString TGo4TaskHandler::fxStatName
private

Remember name of status thread.

Definition at line 340 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), and GetStatName().

◆ fxStatusQueue

TGo4Queue* TGo4TaskHandler::fxStatusQueue {nullptr}
private

Definition at line 328 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), ~TGo4TaskHandler(), ClearQueues(), and GetStatusQueue().

◆ fxStatusRun

TGo4StatusRunnable* TGo4TaskHandler::fxStatusRun {nullptr}
private

link to status runnable which is managed by thread handler 1 1

Definition at line 369 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler().

◆ fxStatusTransport

TGo4Socket* TGo4TaskHandler::fxStatusTransport {nullptr}
private

◆ fxThreadHandler

TGo4ThreadHandler* TGo4TaskHandler::fxThreadHandler {nullptr}
private

link to external threadhandler which is used for the transport service threads (runnables); these runnables are instantiated from the task handler ctor and passed to the thread handler who takes over the responsibility for the runnables (threadhandler internal mode threads) <{TGo4ThreadHandler}>

Definition at line 321 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), ~TGo4TaskHandler(), StartTransportThreads(), StopTransportThreads(), and WaitThreadStop().

◆ fxThreadManager

TGo4ThreadManager* TGo4TaskHandler::fxThreadManager {nullptr}
private

Link to threadmanager that owns the task handler, used for runnable ctors.

Definition at line 313 of file TGo4TaskHandler.h.

Referenced by TGo4TaskHandler(), ConnectServerChannel(), GetThreadManager(), ServerRequest(), and WaitGetPort().


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