NCBI C++ ToolKit
Public Member Functions | Private Member Functions | Private Attributes | List of all members
CGridWorkerApp Class Reference

Search Toolkit Book for CGridWorkerApp

Main Worker Node application. More...

#include <connect/services/grid_worker_app.hpp>

+ Inheritance diagram for CGridWorkerApp:
+ Collaboration diagram for CGridWorkerApp:

Public Member Functions

 CGridWorkerApp (IWorkerNodeJobFactory *job_factory, const SBuildInfo &build_info=NCBI_SBUILDINFO_DEFAULT())
 
 CGridWorkerApp (IWorkerNodeJobFactory *job_factory, const CVersionInfo &version_info, const SBuildInfo &build_info=NCBI_SBUILDINFO_DEFAULT())
 
void SetListener (IGridWorkerNodeApp_Listener *listener)
 Register a listener of events of this class. More...
 
virtual void Init (void)
 If you override this method, do call CGridWorkerApp::Init() from inside of your overriding method. More...
 
virtual int Run (void)
 Do not override this method yourself! It includes all the Worker Node specific machinery. More...
 
virtual void SetupArgDescriptions (CArgDescriptions *arg_desc)
 Setup the command line argument descriptions. More...
 
void RequestShutdown ()
 
CGridWorkerNode GetWorkerNode () const
 
- Public Member Functions inherited from CNcbiApplication
virtual ~CNcbiApplication (void)
 Destructor. More...
 
 CNcbiApplication (const SBuildInfo &build_info=NCBI_SBUILDINFO_DEFAULT())
 Constructor. More...
 
- Public Member Functions inherited from CNcbiApplicationAPI
 CNcbiApplicationAPI (const SBuildInfo &build_info)
 Constructor. More...
 
virtual ~CNcbiApplicationAPI (void)
 Destructor. More...
 
int AppMain (int argc, const char *const *argv, const char *const *envp=0, EAppDiagStream diag=eDS_Default, const char *conf=NcbiEmptyCStr, const string &name=NcbiEmptyString)
 Main function (entry point) for the NCBI application. More...
 
virtual int DryRun (void)
 Test run the application. More...
 
virtual void Exit (void)
 Cleanup on application exit. More...
 
const CNcbiArgumentsGetArguments (void) const
 Get the application's cached unprocessed command-line arguments. More...
 
virtual const CArgsGetArgs (void) const
 Get parsed command line arguments. More...
 
const CNcbiEnvironmentGetEnvironment (void) const
 Get the application's cached environment. More...
 
CNcbiEnvironmentSetEnvironment (void)
 Get a non-const copy of the application's cached environment. More...
 
void SetEnvironment (const string &name, const string &value)
 Set a specified environment variable by name. More...
 
bool HasLoadedConfig (void) const
 Check if the config file has been loaded. More...
 
bool FinishedLoadingConfig (void) const
 Check if the application has finished loading config file (successfully or not). More...
 
const CNcbiRegistryGetConfig (void) const
 Get the application's cached configuration parameters (read-only). More...
 
CNcbiRegistryGetConfig (void)
 
const stringGetConfigPath (void) const
 Get the full path to the configuration file (if any) we ended up using. More...
 
bool ReloadConfig (CMetaRegistry::TFlags flags=CMetaRegistry::fReloadIfChanged, IRegistry::TFlags reg_flags=IRegistry::fWithNcbirc)
 Reload the configuration file. More...
 
SIZE_TYPE FlushDiag (CNcbiOstream *os, bool close_diag=false)
 Flush the in-memory diagnostic stream (for "eDS_ToMemory" case only). More...
 
const stringGetProgramDisplayName (void) const
 Get the application's "display" name. More...
 
const stringGetProgramExecutablePath (EFollowLinks follow_links=eIgnoreLinks) const
 Get the application's executable path. More...
 
CVersionInfo GetVersion (void) const
 Get the program version information. More...
 
const CVersionAPIGetFullVersion (void) const
 Get the program version information. More...
 
bool IsDryRun (void) const
 Check if it is a test run. More...
 
virtual bool SetupDiag_AppSpecific (void)
 Setup application specific diagnostic stream. More...
 
template<class TFunc >
void AddOnExitAction (TFunc func)
 Add callback to be executed from CNcbiApplicationAPI destructor. More...
 

Private Member Functions

void Construct (IWorkerNodeJobFactory *job_factory)
 
 CGridWorkerApp (const CGridWorkerApp &)
 
CGridWorkerAppoperator= (const CGridWorkerApp &)
 

Private Attributes

CGridWorkerNode m_WorkerNode
 

Additional Inherited Members

- Public Types inherited from CNcbiApplicationAPI
enum  EAppNameType { eBaseName , eFullName , eRealName }
 
- Static Public Member Functions inherited from CNcbiApplication
static CNcbiApplicationInstance (void)
 Singleton method. More...
 
- Static Public Member Functions inherited from CNcbiApplicationAPI
static CNcbiApplicationAPIInstance (void)
 Singleton method. More...
 
static CNcbiApplicationGuard InstanceGuard (void)
 Singleton method. More...
 
static SSystemMutex & GetInstanceMutex (void)
 Mutex for application singleton object. More...
 
static string GetAppName (EAppNameType name_type=eBaseName, int argc=0, const char *const *argv=NULL)
 
- Protected Types inherited from CNcbiApplicationAPI
enum  EPreparseArgs { ePreparse_Continue , ePreparse_Exit }
 Result of PreparseArgs() More...
 
enum  EDisableArgDesc { fDisableStdArgs = 0x01 }
 Disable argument descriptions. More...
 
enum  EHideStdArgs {
  fHideLogfile = CArgDescriptions::fHideLogfile , fHideConffile = CArgDescriptions::fHideConffile , fHideVersion = CArgDescriptions::fHideVersion , fHideFullVersion = CArgDescriptions::fHideFullVersion ,
  fHideDryRun = CArgDescriptions::fHideDryRun , fHideHelp = CArgDescriptions::fHideHelp , fHideFullHelp = CArgDescriptions::fHideFullHelp , fHideXmlHelp = CArgDescriptions::fHideXmlHelp ,
  fHideAll = CArgDescriptions::fHideAll
}
 Which standard flag's descriptions should not be displayed in the usage message. More...
 
enum  EStdioSetup {
  fNoSyncWithStdio = 0x01 , fDefault_CinBufferSize = 0x02 , fBinaryCin = 0x04 , fBinaryCout = 0x08 ,
  fDefault_SyncWithStdio = 0x00
}
 Flags to adjust standard I/O streams' behaviour. More...
 
enum  EExitMode { eNoExits , eExceptionalExits , eAllExits }
 When to return a user-set exit code. More...
 
enum  EAppFlags { fSkipSafeStaticDestroy = 1 << 0 }
 
typedef int TDisableArgDesc
 Binary OR of "EDisableArgDesc". More...
 
typedef int THideStdArgs
 Binary OR of "EHideStdArgs". More...
 
typedef int TStdioSetupFlags
 Binary OR of "EStdioSetup". More...
 
typedef int TAppFlags
 
- Protected Member Functions inherited from CNcbiApplicationAPI
virtual EPreparseArgs PreparseArgs (int argc, const char *const *argv)
 Check the command line arguments before parsing them. More...
 
void DisableArgDescriptions (TDisableArgDesc disable=fDisableStdArgs)
 
void HideStdArgs (THideStdArgs hide_mask)
 Set the hide mask for the Hide Std Flags. More...
 
void SetStdioFlags (TStdioSetupFlags stdio_flags)
 Adjust the behavior of standard I/O streams. More...
 
void SetVersion (const CVersionInfo &version)
 Set the version number for the program. More...
 
void SetVersion (const CVersionInfo &version, const SBuildInfo &build_info)
 
void SetVersionByBuild (int major)
 
void SetFullVersion (CRef< CVersionAPI > version)
 Set version data for the program. More...
 
const CArgDescriptionsGetArgDescriptions (void) const
 Get argument descriptions (set by SetupArgDescriptions) More...
 
bool SetupDiag (EAppDiagStream diag)
 Setup the application diagnostic stream. More...
 
virtual bool LoadConfig (CNcbiRegistry &reg, const string *conf, CNcbiRegistry::TFlags reg_flags)
 Load settings from the configuration file to the registry. More...
 
virtual bool LoadConfig (CNcbiRegistry &reg, const string *conf)
 Load settings from the configuration file to the registry. More...
 
CNcbiRegistryGetRWConfig (void)
 Get the application's cached configuration parameters, accessible for read-write for an application's internal use only. More...
 
void SetProgramDisplayName (const string &app_name)
 Set program's display name. More...
 
virtual void AppStart (void)
 Method to be called before application start. More...
 
virtual void AppStop (int exit_code)
 Method to be called before application exit. More...
 
void SetExitCode (int exit_code, EExitMode when=eExceptionalExits)
 Force the program to return a specific exit code later, either when it exits due to an exception or unconditionally. More...
 
void SetAppFlags (TAppFlags flags)
 
void ExecuteOnExitActions ()
 Should only be called from the destructors of classes derived from CNcbiApplicationAPI - if it is necessary to access their data members and virtual methods; or to dynamic_cast<> from the base app class. More...
 
void SetPhoneHomePolicy (IPhoneHomePolicy *policy, ENcbiOwnership ownership=eNoOwnership)
 Set Phone Home Policy. More...
 
IPhoneHomePolicyGetPhoneHomePolicy () const
 Return pointer to current Phone Home Policy or NULL. More...
 
- Static Protected Member Functions inherited from CNcbiApplicationAPI
static CRWLockGetInstanceLock (void)
 
static string FindProgramExecutablePath (int argc, const char *const *argv, string *real_path=0)
 Find the application's executable file. More...
 

Detailed Description

Main Worker Node application.

Note
Worker node application is parameterized using INI file settings. Please read the sample ".ini" file for more information.

Definition at line 85 of file grid_worker_app.hpp.

Constructor & Destructor Documentation

◆ CGridWorkerApp() [1/3]

CGridWorkerApp::CGridWorkerApp ( IWorkerNodeJobFactory job_factory,
const SBuildInfo build_info = NCBI_SBUILDINFO_DEFAULT() 
)

Definition at line 76 of file grid_worker_app.cpp.

References Construct().

◆ CGridWorkerApp() [2/3]

CGridWorkerApp::CGridWorkerApp ( IWorkerNodeJobFactory job_factory,
const CVersionInfo version_info,
const SBuildInfo build_info = NCBI_SBUILDINFO_DEFAULT() 
)

Definition at line 83 of file grid_worker_app.cpp.

References Construct(), and CNcbiApplicationAPI::SetVersion().

◆ CGridWorkerApp() [3/3]

CGridWorkerApp::CGridWorkerApp ( const CGridWorkerApp )
private

Member Function Documentation

◆ Construct()

void CGridWorkerApp::Construct ( IWorkerNodeJobFactory job_factory)
private

Definition at line 63 of file grid_worker_app.cpp.

References g_GridWorker_TermHandler(), and m_WorkerNode.

Referenced by CGridWorkerApp().

◆ GetWorkerNode()

CGridWorkerNode CGridWorkerApp::GetWorkerNode ( ) const
inline

Definition at line 119 of file grid_worker_app.hpp.

References m_WorkerNode.

◆ Init()

void CGridWorkerApp::Init ( void  )
virtual

If you override this method, do call CGridWorkerApp::Init() from inside of your overriding method.

Reimplemented from CNcbiApplicationAPI.

Definition at line 92 of file grid_worker_app.cpp.

References eOn, CNcbiApplicationAPI::GetArguments(), CGridWorkerNode::Init(), CNcbiApplicationAPI::Init(), m_WorkerNode, CFileAPI::SetDeleteReadOnlyFiles(), and SetupArgDescriptions().

◆ operator=()

CGridWorkerApp& CGridWorkerApp::operator= ( const CGridWorkerApp )
private

◆ RequestShutdown()

void CGridWorkerApp::RequestShutdown ( void  )

Definition at line 153 of file grid_worker_app.cpp.

References m_WorkerNode, and CGridWorkerNode::RequestShutdown().

◆ Run()

int CGridWorkerApp::Run ( void  )
virtual

Do not override this method yourself! It includes all the Worker Node specific machinery.

If you override it, do call CGridWorkerApp::Run() from inside your overriding method.

Implements CNcbiApplicationAPI.

Definition at line 139 of file grid_worker_app.cpp.

References eDefault, eOff, eOn, CNcbiApplicationAPI::GetArgs(), kEmptyStr, m_WorkerNode, NCBI_OS_UNIX, SGridWorkerNodeImpl::OfflineRun(), and CGridWorkerNode::Run().

◆ SetListener()

void CGridWorkerApp::SetListener ( IGridWorkerNodeApp_Listener listener)
inline

Register a listener of events of this class.

Note
This object takes ownership over the listener object and will automatically 'delete' it.
Parameters
listenerA pointer to the listener object. NULL can be passed to stop listening and reset the internal pointer to the default handler.

Definition at line 130 of file grid_worker_app.hpp.

References m_WorkerNode, and CGridWorkerNode::SetListener().

Referenced by Main().

◆ SetupArgDescriptions()

void CGridWorkerApp::SetupArgDescriptions ( CArgDescriptions arg_desc)
virtual

Setup the command line argument descriptions.

Call from the Init() method. The passed "arg_desc" will be owned by this class, and it will be deleted by ~CNcbiApplicationAPI(), or if SetupArgDescriptions() is called again.

Reimplemented from CNcbiApplicationAPI.

Definition at line 109 of file grid_worker_app.cpp.

References CArgDescriptions::AddFlag(), CArgDescriptions::AddOptionalKey(), CArgDescriptions::eInteger, CArgDescriptions::eOutputFile, CArgDescriptions::eString, and CNcbiApplicationAPI::SetupArgDescriptions().

Referenced by Init().

Member Data Documentation

◆ m_WorkerNode

CGridWorkerNode CGridWorkerApp::m_WorkerNode
private

Definition at line 124 of file grid_worker_app.hpp.

Referenced by Construct(), GetWorkerNode(), Init(), RequestShutdown(), Run(), and SetListener().


The documentation for this class was generated from the following files:
Modified on Sun May 05 05:19:42 2024 by modify_doxy.py rev. 669887