NCBI C++ ToolKit
|
Search Toolkit Book for CBlastVdbCmdApp
The application class. More...
Public Member Functions | |
CBlastVdbCmdApp () | |
@inheritDoc More... | |
~CBlastVdbCmdApp () | |
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 CNcbiArguments & | GetArguments (void) const |
Get the application's cached unprocessed command-line arguments. More... | |
virtual const CArgs & | GetArgs (void) const |
Get parsed command line arguments. More... | |
const CNcbiEnvironment & | GetEnvironment (void) const |
Get the application's cached environment. More... | |
CNcbiEnvironment & | SetEnvironment (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 CNcbiRegistry & | GetConfig (void) const |
Get the application's cached configuration parameters (read-only). More... | |
CNcbiRegistry & | GetConfig (void) |
const string & | GetConfigPath (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 string & | GetProgramDisplayName (void) const |
Get the application's "display" name. More... | |
const string & | GetProgramExecutablePath (EFollowLinks follow_links=eIgnoreLinks) const |
Get the application's executable path. More... | |
CVersionInfo | GetVersion (void) const |
Get the program version information. More... | |
const CVersionAPI & | GetFullVersion (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 | |
virtual void | Init () |
@inheritDoc More... | |
virtual int | Run () |
@inheritDoc More... | |
void | x_InitApplicationData () |
Initializes the application's data members. More... | |
CRef< CVDBBlastUtil > | x_GetVDBBlastUtil (bool isCSRA) |
Get vdb util. More... | |
int | x_PrintBlastDatabaseInformation () |
Prints the BLAST database information (e.g. More... | |
int | x_ProcessSearchRequest () |
Processes all requests except printing the BLAST database information. More... | |
int | x_PrintVDBPaths (bool recursive) |
Print vdb paths. More... | |
void | x_GetFullPaths () |
Resolve vdb paths. More... | |
vector< string > | x_GetQueries () |
Retrieve the queries from the command line arguments. More... | |
string | x_FormatRuntime (const CStopWatch &sw) const |
void | x_AddCmdOptions () |
Private Attributes | |
string | m_allDbs |
string | m_origDbs |
bool | m_isRef |
bool | m_includeFilteredReads |
CBlastUsageReport | m_UsageReport |
CStopWatch | m_StopWatch |
Additional Inherited Members | |
Public Types inherited from CNcbiApplicationAPI | |
enum | EAppNameType { eBaseName , eFullName , eRealName } |
Static Public Member Functions inherited from CNcbiApplication | |
static CNcbiApplication * | Instance (void) |
Singleton method. More... | |
Static Public Member Functions inherited from CNcbiApplicationAPI | |
static CNcbiApplicationAPI * | Instance (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... | |
virtual void | SetupArgDescriptions (CArgDescriptions *arg_desc) |
Setup the command line argument descriptions. More... | |
const CArgDescriptions * | GetArgDescriptions (void) const |
Get argument descriptions (set by SetupArgDescriptions) More... | |
bool | SetupDiag (EAppDiagStream diag) |
Setup the application diagnostic stream. More... | |
virtual bool | LoadConfig (CNcbiRegistry ®, const string *conf, CNcbiRegistry::TFlags reg_flags) |
Load settings from the configuration file to the registry. More... | |
virtual bool | LoadConfig (CNcbiRegistry ®, const string *conf) |
Load settings from the configuration file to the registry. More... | |
CNcbiRegistry & | GetRWConfig (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... | |
IPhoneHomePolicy * | GetPhoneHomePolicy () const |
Return pointer to current Phone Home Policy or NULL. More... | |
Static Protected Member Functions inherited from CNcbiApplicationAPI | |
static CRWLock & | GetInstanceLock (void) |
static string | FindProgramExecutablePath (int argc, const char *const *argv, string *real_path=0) |
Find the application's executable file. More... | |
The application class.
Definition at line 47 of file blast_vdb_cmd.cpp.
CBlastVdbCmdApp::CBlastVdbCmdApp | ( | ) |
@inheritDoc
Definition at line 98 of file blast_vdb_cmd.cpp.
References CBlastUsageReport::AddParam(), CVersion, CBlastUsageReport::eProgram, CBlastUsageReport::eVersion, CNcbiApplicationAPI::GetVersion(), CUsageReport::IsEnabled(), m_StopWatch, m_UsageReport, Print(), CNcbiApplicationAPI::SetFullVersion(), CStopWatch::Start(), and version.
|
inline |
Definition at line 52 of file blast_vdb_cmd.cpp.
References CBlastUsageReport::AddParam(), CStopWatch::Elapsed(), CBlastUsageReport::eRunTime, m_StopWatch, and m_UsageReport.
|
privatevirtual |
@inheritDoc
Reimplemented from CNcbiApplicationAPI.
Definition at line 641 of file blast_vdb_cmd.cpp.
References CArgDescriptions::eExcludes, CArgDescriptions::eInputFile, CArgDescriptions::eInteger, CArgDescriptions::eOutputFile, CArgDescriptions::eString, CNcbiApplicationAPI::fHideConffile, CNcbiApplicationAPI::fHideDryRun, CNcbiApplicationAPI::fHideFullVersion, CNcbiApplicationAPI::fHideXmlHelp, CNcbiApplicationAPI::GetArguments(), CNcbiApplicationAPI::HideStdArgs(), i, NStr::IntToString(), and CNcbiApplicationAPI::SetupArgDescriptions().
|
privatevirtual |
@inheritDoc
Implements CNcbiApplicationAPI.
Definition at line 719 of file blast_vdb_cmd.cpp.
References CBlastUsageReport::AddParam(), eDiag_Warning, CBlastUsageReport::eExitStatus, Error(), CNcbiApplicationAPI::GetArgs(), CException::GetMsg(), LOG_POST, m_UsageReport, SetDiagPostLevel(), SetDiagPostPrefix(), x_AddCmdOptions(), x_GetFullPaths(), x_InitApplicationData(), x_PrintBlastDatabaseInformation(), x_PrintVDBPaths(), and x_ProcessSearchRequest().
|
private |
Definition at line 758 of file blast_vdb_cmd.cpp.
References CBlastUsageReport::AddParam(), CBlastUsageReport::eDBDumpAll, CBlastUsageReport::eDBEntry, CBlastUsageReport::eDBInfo, CBlastUsageReport::eDBName, CBlastUsageReport::eOutputFmt, CNcbiApplicationAPI::GetArgs(), kEmptyStr, m_origDbs, and m_UsageReport.
Referenced by Run().
|
private |
Definition at line 445 of file blast_vdb_cmd.cpp.
References CStopWatch::AsSmartString(), and sw.
Referenced by x_GetVDBBlastUtil(), x_PrintBlastDatabaseInformation(), and x_PrintVDBPaths().
|
private |
Resolve vdb paths.
Definition at line 484 of file blast_vdb_cmd.cpp.
References CVDBAliasUtil::FindVDBPaths(), NStr::Join(), m_allDbs, and m_origDbs.
Referenced by Run().
|
private |
Retrieve the queries from the command line arguments.
Definition at line 323 of file blast_vdb_cmd.cpp.
References CNcbiApplicationAPI::GetArgs(), input(), NCBI_THROW, NcbiGetlineEOL(), and NStr::Split().
Referenced by x_ProcessSearchRequest().
|
private |
Get vdb util.
Definition at line 495 of file blast_vdb_cmd.cpp.
References Info(), kEmptyStr, LOG_POST, m_allDbs, m_includeFilteredReads, s_GetCSRADBs(), CStopWatch::Start(), CStopWatch::Stop(), sw, and x_FormatRuntime().
Referenced by x_ProcessSearchRequest().
|
private |
Initializes the application's data members.
Definition at line 451 of file blast_vdb_cmd.cpp.
References NStr::fSplit_Tokenize, CNcbiApplicationAPI::GetArgs(), in(), NStr::Join(), m_includeFilteredReads, m_isRef, m_origDbs, NcbiGetline(), NStr::Split(), and tmp.
Referenced by Run().
|
private |
Prints the BLAST database information (e.g.
: handles -info command line option)
Definition at line 531 of file blast_vdb_cmd.cpp.
References CNcbiApplicationAPI::GetArgs(), CVDBBlastUtil::GetVDBStats(), Info(), kEmptyStr, kFlags, LOG_POST, m_allDbs, m_origDbs, out(), s_GetCSRADBs(), s_PrintStr(), CStopWatch::Start(), CStopWatch::Stop(), sw, NStr::ULongToString(), and x_FormatRuntime().
Referenced by Run().
Print vdb paths.
Definition at line 592 of file blast_vdb_cmd.cpp.
References CVDBAliasUtil::FindVDBPaths(), CNcbiApplicationAPI::GetArgs(), Info(), ITERATE, LOG_POST, m_origDbs, out(), CStopWatch::Start(), CStopWatch::Stop(), sw, and x_FormatRuntime().
Referenced by Run().
|
private |
Processes all requests except printing the BLAST database information.
Definition at line 366 of file blast_vdb_cmd.cpp.
References _ASSERT, CVdbFastaExtractor::DumpAll(), CVDBBlastUtil::eCSRALocalRefId, CVDBBlastUtil::eCSRARefId, ERR_POST, Error(), CVDBBlastUtil::eSRAId, CVDBBlastUtil::eWGSId, CNcbiApplicationAPI::GetArgs(), CException::GetMsg(), m_isRef, NCBI_THROW, NON_CONST_ITERATE, CRef< C, Locker >::NotEmpty(), NULL, out(), CRef< C, Locker >::Reset(), CVDBBlastUtil::VDBIdType(), CVdbFastaExtractor::Write(), x_GetQueries(), and x_GetVDBBlastUtil().
Referenced by Run().
|
private |
Definition at line 89 of file blast_vdb_cmd.cpp.
Referenced by x_GetFullPaths(), x_GetVDBBlastUtil(), and x_PrintBlastDatabaseInformation().
|
private |
Definition at line 92 of file blast_vdb_cmd.cpp.
Referenced by x_GetVDBBlastUtil(), and x_InitApplicationData().
|
private |
Definition at line 91 of file blast_vdb_cmd.cpp.
Referenced by x_InitApplicationData(), and x_ProcessSearchRequest().
|
private |
Definition at line 90 of file blast_vdb_cmd.cpp.
Referenced by x_AddCmdOptions(), x_GetFullPaths(), x_InitApplicationData(), x_PrintBlastDatabaseInformation(), and x_PrintVDBPaths().
|
private |
Definition at line 94 of file blast_vdb_cmd.cpp.
Referenced by CBlastVdbCmdApp(), and ~CBlastVdbCmdApp().
|
private |
Definition at line 93 of file blast_vdb_cmd.cpp.
Referenced by CBlastVdbCmdApp(), Run(), x_AddCmdOptions(), and ~CBlastVdbCmdApp().