GSI Object Oriented Online Offline (Go4)
GO4-5.3.2
|
#include <TGo4ClientTask.h>
Public Member Functions | |
TGo4ClientTask (const char *name, const char *serverhost="localhost", UInt_t negotiationport=0, Bool_t blockingmode=kTRUE, Bool_t standalone=kFALSE, Bool_t autostart=kFALSE, Bool_t autocreate=kTRUE, Bool_t ismaster=kFALSE, Bool_t autoconnect=kTRUE) | |
virtual | ~TGo4ClientTask () |
virtual Int_t | Initialization () |
virtual void | Quit () |
virtual TGo4TaskStatus * | CreateStatus () |
TGo4TaskHandler * | GetTaskHandler () |
void | AddLocalCommand (TGo4Command *com) |
TGo4BufferQueue * | GetCommandQueue (const char *task=0) |
TGo4BufferQueue * | GetStatusQueue (const char *task=0) |
TGo4BufferQueue * | GetDataQueue (const char *task=0) |
Bool_t | ConnectServer (const char *node, UInt_t negport, Go4CommandMode_t role=kGo4ComModeRefused, const char *passwd=0) |
Bool_t | DisconnectServer (Bool_t isterminating=kFALSE) |
const char * | GetServerHostName () |
Bool_t | IsConnected () const |
Public Member Functions inherited from TGo4Task | |
TGo4Task (const char *name, Bool_t blockingmode, Bool_t autostart=kFALSE, Bool_t autocreate=kTRUE, Bool_t ismaster=kFALSE) | |
virtual | ~TGo4Task () |
virtual void | Start () |
virtual void | Stop () |
virtual void | KillMain () |
virtual void | RestartMain () |
virtual void | Terminate (Bool_t termapp=kTRUE) |
virtual void | TerminateFast () |
virtual void | ExecuteString (const char *command) |
Bool_t | IsMaster () |
void | SetOwner (TGo4TaskOwner *owner) |
void | AddUserCommand (TGo4Command *com) |
void | AddUserCommandList (TGo4CommandProtoList *comlist) |
TGo4Status * | NextStatus (Bool_t wait=kTRUE) |
TObject * | NextObject (Bool_t wait=kTRUE) |
virtual TGo4Command * | NextCommand () |
void | SendObject (TObject *obj, const char *receiver=0) |
virtual void | SendStatus (TGo4Status *stat, const char *receiver=0) |
virtual void | SendStatusBuffer () |
TMutex * | GetStatusBufferMutex () |
void | SendStatusMessage (Int_t level, Bool_t printout, const char *text,...) |
void | UpdateStatusBuffer () |
Bool_t | SubmitCommand (const char *name) |
Bool_t | SubmitEmergencyCommand (Go4EmergencyCommand_t val) |
Bool_t | SubmitEmergencyData (Go4EmergencyCommand_t val, const char *receiver=0) |
Bool_t | SubmitLocalCommand (TGo4Command *com) |
Bool_t | SubmitCommand (TGo4Command *com) |
TGo4Command * | MakeCommand (const char *name) |
void | WakeCommandQueue (Int_t id=0) |
virtual Int_t | StartWorkThreads () |
virtual Int_t | StopWorkThreads () |
Bool_t | IsWorkStopped () |
virtual void | GetStatus () |
const char * | GetCommanderName () const |
TGo4Master * | GetMaster () |
TGo4Slave * | GetSlave () |
void | SendStopBuffers (const char *taskname=0) |
TBuffer * | GetAbortBuffer () |
Public Member Functions inherited from TGo4ThreadManager | |
TGo4ThreadManager (const TGo4ThreadManager &right) | |
TGo4ThreadManager (const char *name, Bool_t blockingmode=kTRUE, Bool_t autostart=kTRUE, Bool_t autocreate=kTRUE) | |
virtual | ~TGo4ThreadManager () |
void | SetTimer (TGo4AppControlTimer *ctrltimer) |
TGo4ThreadHandler * | GetWorkHandler () const |
Bool_t | BlockApp () |
Bool_t | UnBlockApp (Int_t mode=0) |
Bool_t | IsInitDone () const |
Bool_t | IsTerminating () const |
Bool_t | IsTerminateApp () const |
Bool_t | IsAppBlocking () const |
Bool_t | IsBeingQuit () const |
void | SetBeingQuit (Bool_t on) |
void | Launch () |
Public Member Functions inherited from TGo4CommandReceiver | |
virtual | ~TGo4CommandReceiver () |
TGo4CommandReceiver () | |
Protected Member Functions | |
virtual void | UpdateStatus (TGo4TaskStatus *state) |
Protected Member Functions inherited from TGo4Task | |
virtual TGo4TaskHandlerCommandList * | CreateCommandList () |
TGo4TaskHandlerCommandList * | GetPrototype () |
TGo4ObjectQueue * | GetLocalCommandQueue () |
void | SetMaster (Bool_t on=kTRUE) |
void | SetWorkIsStopped (Bool_t on) |
Private Attributes | |
TGo4BufferQueue * | fxStatusQ |
TGo4BufferQueue * | fxDataQ |
TGo4BufferQueue * | fxCommandQ |
TGo4TaskHandler * | fxTaskHandler |
TString | fxServerHostname |
Bool_t | fbAutoConnect |
Bool_t | fbServerConnected |
Additional Inherited Members | |
Public Types inherited from TGo4ThreadManager | |
enum | { fguTEXTLENGTH = 256 } |
Static Public Member Functions inherited from TGo4Task | |
static Int_t | Get_fgiTERMID () |
Static Public Attributes inherited from TGo4ThreadManager | |
static const Long_t | fglTIMERPERIOD = 200 |
Protected Attributes inherited from TGo4Task | |
TMutex * | fxStatusMutex |
TBuffer * | fxStatusBuffer |
Protected Attributes inherited from TGo4ThreadManager | |
Bool_t | fbInitDone |
Bool_t | fbTerminating |
Bool_t | fbTerminateApplication |
Bool_t | fbAppBlocking |
Bool_t | fbAutoCreate |
Bool_t | fbAutoStart |
Int_t | fbBeingQuit |
TGo4AppControlTimer * | fxBlocker |
TGo4ThreadHandler * | fxWorkHandler |
This class controls a client application running in a task which is controlled by another server task via transport channels which are held by a task handler object. Apart from the transport threads, the application class which inherits from client task may provide working threads to serve the data queues and do the actual work
Definition at line 34 of file TGo4ClientTask.h.
TGo4ClientTask::TGo4ClientTask | ( | const char * | name, |
const char * | serverhost = "localhost" , |
||
UInt_t | negotiationport = 0 , |
||
Bool_t | blockingmode = kTRUE , |
||
Bool_t | standalone = kFALSE , |
||
Bool_t | autostart = kFALSE , |
||
Bool_t | autocreate = kTRUE , |
||
Bool_t | ismaster = kFALSE , |
||
Bool_t | autoconnect = kTRUE |
||
) |
Definition at line 25 of file TGo4ClientTask.cxx.
References fxCommandQ, fxDataQ, fxServerHostname, fxStatusQ, fxTaskHandler, TGo4TaskHandler::GetCommandQueue(), TGo4TaskHandler::GetDataQueue(), TGo4TaskHandler::GetStatusQueue(), GetTaskHandler(), TGo4Task::IsMaster(), and TGo4ThreadManager::Launch().
|
virtual |
Definition at line 52 of file TGo4ClientTask.cxx.
References DisconnectServer(), and fxTaskHandler.
void TGo4ClientTask::AddLocalCommand | ( | TGo4Command * | com | ) |
Put command into the command queue for local execution in main thread
Definition at line 197 of file TGo4ClientTask.cxx.
References TGo4BufferQueue::AddBufferFromObject(), TGo4Log::Debug(), and fxCommandQ.
Bool_t TGo4ClientTask::ConnectServer | ( | const char * | node, |
UInt_t | negport, | ||
Go4CommandMode_t | role = kGo4ComModeRefused , |
||
const char * | passwd = 0 |
||
) |
Connect this client to a waiting server task on node with negotiation channel negport. Returns connection state, true if connection is established, otherwise false.
Definition at line 92 of file TGo4ClientTask.cxx.
References TGo4TaskHandler::ClearQueues(), TGo4TaskHandler::Connect(), TGo4Log::Error(), fbServerConnected, fxTaskHandler, TGo4ThreadManager::fxWorkHandler, TGo4Task::IsMaster(), kGo4ComModeAdministrator, kGo4ComModeController, kGo4ComModeObserver, TGo4Task::SendStatusMessage(), TGo4TaskHandler::SetAdminAccount(), TGo4TaskHandler::SetCtrlAccount(), TGo4TaskHandler::SetNegotiationPort(), TGo4TaskHandler::SetObservAccount(), TGo4TaskHandler::SetRole(), TGo4ThreadHandler::StartAll(), and TGo4Log::Warn().
Referenced by TGo4AnalysisProxy::ConnectToServer(), and Initialization().
|
virtual |
create a status object with information on the current client state. this object may be sent to the server or may be used to restore current status by memento mechanism
Reimplemented from TGo4Task.
Reimplemented in TGo4ExampleClient.
Definition at line 181 of file TGo4ClientTask.cxx.
References UpdateStatus().
Bool_t TGo4ClientTask::DisconnectServer | ( | Bool_t | isterminating = kFALSE | ) |
Disconnect the current server task, but do not terminate the client. Return value indicates success state: true if disconnected, false if connection is still existing. If isterminating=true, work threads are not restarted again.
Definition at line 147 of file TGo4ClientTask.cxx.
References TGo4Queue::Clear(), TGo4TaskHandler::DisConnect(), fbServerConnected, fxTaskHandler, TGo4Task::Get_fgiTERMID(), GetCommandQueue(), TGo4Task::IsMaster(), TGo4Task::SendStopBuffers(), TGo4Task::StartWorkThreads(), TGo4Task::StopWorkThreads(), and TGo4Task::WakeCommandQueue().
Referenced by TGo4Master::DisconnectSlave(), Quit(), and ~TGo4ClientTask().
|
virtual |
Reimplemented from TGo4Task.
Definition at line 210 of file TGo4ClientTask.cxx.
References fxCommandQ.
Referenced by DisconnectServer().
|
virtual |
Reimplemented from TGo4Task.
Definition at line 219 of file TGo4ClientTask.cxx.
References fxDataQ.
Referenced by TGo4ExampleClient::TGo4ExampleClient().
|
inline |
Definition at line 101 of file TGo4ClientTask.h.
References fxServerHostname.
Referenced by Initialization(), and UpdateStatus().
|
virtual |
Reimplemented from TGo4Task.
Definition at line 215 of file TGo4ClientTask.cxx.
References fxStatusQ.
|
virtual |
Reimplemented from TGo4Task.
Definition at line 58 of file TGo4ClientTask.cxx.
References fxTaskHandler.
Referenced by TGo4ClientTask(), and TGo4ExampleClient::TGo4ExampleClient().
|
virtual |
override the ThreadManager Initialization used by AppControlTimer to let this thing initialize the client transport connection
Reimplemented from TGo4Task.
Definition at line 63 of file TGo4ClientTask.cxx.
References ConnectServer(), fbAutoConnect, TGo4ThreadManager::fbInitDone, GetServerHostName(), TGo4Task::Initialization(), and TGo4Task::Terminate().
|
inline |
Definition at line 103 of file TGo4ClientTask.h.
References fbServerConnected.
Referenced by TGo4TaskOwner::IsConnected().
|
virtual |
Quit the client; method to be called from command object, may be overridden in user implementation
Reimplemented from TGo4Task.
Definition at line 171 of file TGo4ClientTask.cxx.
References TGo4Log::Debug(), DisconnectServer(), TGo4Task::IsMaster(), TGo4Task::Quit(), TGo4Task::SendStatusMessage(), and TGo4Task::Terminate().
|
protectedvirtual |
method needed by method CreateStatus of any status subclasses to set the values of the clienttask specific part of the status object.
Reimplemented from TGo4Task.
Definition at line 189 of file TGo4ClientTask.cxx.
References GetServerHostName(), TGo4ClientStatus::SetNames(), and TGo4Task::UpdateStatus().
Referenced by CreateStatus(), and TGo4ExampleClient::UpdateStatus().
|
private |
!True if client task shall try to connect automatically at Initialization. This is the previous behaviour with standalone client. If false, connection will be done on ConnectServer method.
Definition at line 133 of file TGo4ClientTask.h.
Referenced by Initialization().
|
private |
true if connection to server is established, otherwise false
Definition at line 138 of file TGo4ClientTask.h.
Referenced by ConnectServer(), DisconnectServer(), and IsConnected().
|
private |
Definition at line 118 of file TGo4ClientTask.h.
Referenced by AddLocalCommand(), GetCommandQueue(), and TGo4ClientTask().
|
private |
Definition at line 117 of file TGo4ClientTask.h.
Referenced by GetDataQueue(), and TGo4ClientTask().
|
private |
hostname of server machine
Definition at line 127 of file TGo4ClientTask.h.
Referenced by GetServerHostName(), and TGo4ClientTask().
|
private |
Definition at line 116 of file TGo4ClientTask.h.
Referenced by GetStatusQueue(), and TGo4ClientTask().
|
private |
Definition at line 124 of file TGo4ClientTask.h.
Referenced by ConnectServer(), DisconnectServer(), GetTaskHandler(), TGo4ClientTask(), and ~TGo4ClientTask().