NCBI C++ ToolKit
|
Search Toolkit Book for CDbapiSampleApp
#include "dbapi_sample_base.hpp"
(Private to src/dbapi/driver/samples
.)
Public Types | |
enum | EUseSampleDatabase { eUseSampleDatabase , eDoNotUseSampleDatabase } |
Public Types inherited from CNcbiApplicationAPI | |
enum | EAppNameType { eBaseName , eFullName , eRealName } |
Public Member Functions | |
CDbapiSampleApp (EUseSampleDatabase sd=eUseSampleDatabase) | |
virtual | ~CDbapiSampleApp (void) |
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... | |
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... | |
Protected Types | |
enum | EServerType { eUnknown , eSybase , eMsSql } |
typedef map< string, string > | TDatabaseParameters |
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 | |
virtual void | InitSample (CArgDescriptions &arg_desc) |
Override these 3 to suit your test's needs. More... | |
virtual int | RunSample (void)=0 |
virtual void | ExitSample (void) |
CDB_Connection & | GetConnection (void) |
Get connection created using server, username and password specified in the application command line. More... | |
void | ShowResults (const string &query) |
Delete table if it exists ShowResults is printing resuts on screen. More... | |
void | DeleteTable (const string &table_name) |
void | CreateTable (const string &table_name) |
function CreateTable is creating table in the database More... | |
I_DriverContext & | GetDriverContext (void) |
Get the driver context (for the driver specified in the command line) More... | |
CDB_Connection * | CreateConnection (IConnValidator *validator=NULL, I_DriverContext::TConnectionMode mode=I_DriverContext::fBcpIn, bool reusable=false, const string &pool_name=kEmptyStr) |
Create new connection using server, username and password specified in the application command line. More... | |
void | DeleteLostTables (void) |
Delete tables which are lost after previous tests. More... | |
const string & | GetTableUID (void) const |
Return an unique identificatot which contains host name, process id and current date. More... | |
const string & | GetDriverName (void) const |
Return current driver name. More... | |
void | SetDriverName (const string &name) |
Set driver name. More... | |
const string & | GetServerName (void) const |
Return current server name. More... | |
EServerType | GetServerType (void) const |
Return current server type. More... | |
const string & | GetUserName (void) const |
Return current user name. More... | |
const string & | GetPassword (void) const |
Return current password. More... | |
void | SetDatabaseParameter (const string &name, const string &value) |
Set database connection parameter. More... | |
const TDatabaseParameters & | GetDatabaseParameters (void) const |
Return database conection parameters. More... | |
bool | UseSvcMapper (void) const |
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... | |
Private Member Functions | |
virtual void | Init () |
Initialize the application. More... | |
virtual int | Run () |
Run the application. More... | |
virtual void | Exit () |
Cleanup on application exit. More... | |
Private Attributes | |
unique_ptr< I_DriverContext > | m_DriverContext |
unique_ptr< CDB_Connection > | m_Connection |
string | m_TableUID |
EUseSampleDatabase | m_UseSampleDatabase |
string | m_DriverName |
string | m_ServerName |
string | m_UserName |
string | m_Password |
string | m_TDSVersion |
bool | m_UseSvcMapper |
TDatabaseParameters | m_DatabaseParameters |
Additional Inherited Members | |
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) |
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... | |
Definition at line 61 of file dbapi_sample_base.hpp.
|
protected |
Definition at line 120 of file dbapi_sample_base.hpp.
|
protected |
Enumerator | |
---|---|
eUnknown | |
eSybase | |
eMsSql |
Definition at line 115 of file dbapi_sample_base.hpp.
Enumerator | |
---|---|
eUseSampleDatabase | |
eDoNotUseSampleDatabase |
Definition at line 64 of file dbapi_sample_base.hpp.
CDbapiSampleApp::CDbapiSampleApp | ( | EUseSampleDatabase | sd = eUseSampleDatabase | ) |
Definition at line 80 of file dbapi_sample_base.cpp.
References CTime::AsString(), DBAPI_RegisterDriver_CTLIB(), DBAPI_RegisterDriver_FTDS(), DBAPI_RegisterDriver_FTDS100(), DBAPI_RegisterDriver_FTDS14(), DBAPI_RegisterDriver_ODBC(), CTime::eCurrent, CPluginManager_DllResolver::EnableGlobally(), CSmallDNS::GetLocalHost(), CPluginManagerGetterImpl::GetMutex(), CCurrentProcess::GetPid(), m_TableUID, and NStr::NumericToString().
|
virtual |
Definition at line 117 of file dbapi_sample_base.cpp.
|
protected |
Create new connection using server, username and password specified in the application command line.
Definition at line 297 of file dbapi_sample_base.cpp.
References CDB_String::AsString(), conn, I_DriverContext::Connect(), I_DriverContext::ConnectValidated(), eDB_RowResult, ERR_POST_X, eUseSampleDatabase, Fatal(), GetDriverContext(), GetPassword(), GetServerName(), GetUserName(), LOG_POST_X, m_UseSampleDatabase, result, sql, stmt, and NStr::TruncateSpaces().
Referenced by CConnectPolicyApp::RunSample().
function CreateTable is creating table in the database
Definition at line 517 of file dbapi_sample_base.cpp.
Referenced by CDbapiBcpApp::RunSample(), CDbapiQueryApp::RunSample(), CDbapiSendDataApp::RunSample(), and CDbapiTestSpeedApp::RunSample().
|
protected |
Delete tables which are lost after previous tests.
Definition at line 372 of file dbapi_sample_base.cpp.
References CDB_String::AsString(), DeleteTable(), CTime::eCurrent, eDB_Char, eDB_RowResult, eDB_VarChar, GetConnection(), CDB_Object::IsNULL(), r(), sql, and table_name.
Referenced by CDbapiBcpApp::RunSample(), CDbapiQueryApp::RunSample(), and CDbapiTestSpeedApp::RunSample().
Definition at line 356 of file dbapi_sample_base.cpp.
References GetConnection(), sql, and table_name.
Referenced by DeleteLostTables(), CDbapiCursorApp::RunOneSample(), CDbapiBcpApp::RunSample(), CDbapiQueryApp::RunSample(), CDbapiSendDataApp::RunSample(), and CDbapiTestSpeedApp::RunSample().
|
privatevirtual |
Cleanup on application exit.
Perform cleanup before exiting. The default behavior of this is "do nothing". If you have special cleanup logic that needs to be performed, then you must override this method with your own logic.
Reimplemented from CNcbiApplicationAPI.
Definition at line 267 of file dbapi_sample_base.cpp.
References ExitSample().
|
protectedvirtual |
Definition at line 132 of file dbapi_sample_base.cpp.
Referenced by Exit().
|
protected |
Get connection created using server, username and password specified in the application command line.
Definition at line 547 of file dbapi_sample_base.cpp.
Referenced by CDbapiCursorApp::CreateTable(), DeleteLostTables(), DeleteTable(), CDbapiTestSpeedApp::FetchFile(), CDbapiTestSpeedApp::FetchResults(), CDbapiCursorApp::RunOneSample(), CDbapiBcpApp::RunSample(), CDbapiSendDataApp::RunSample(), CDbapiTestSpeedApp::RunSample(), and ShowResults().
|
inlineprotected |
Return database conection parameters.
Definition at line 165 of file dbapi_sample_base.hpp.
References m_DatabaseParameters.
Referenced by GetDriverContext().
|
protected |
Get the driver context (for the driver specified in the command line)
Definition at line 274 of file dbapi_sample_base.cpp.
References ERR_POST_X, Fatal(), GetDatabaseParameters(), C_DriverMgr::GetDriverContext(), GetDriverName(), and m_DriverContext.
Referenced by CreateConnection(), CDbapiCursorApp::RunOneSample(), and CDbapiSendDataApp::RunSample().
Return current driver name.
Definition at line 124 of file dbapi_sample_base.hpp.
References _ASSERT, and m_DriverName.
Referenced by GetDriverContext(), CDbapiCursorApp::RunSample(), CDbapiTestSpeedApp::RunSample(), and CLangQueryApp::RunSample().
Return current password.
Definition at line 150 of file dbapi_sample_base.hpp.
References _ASSERT, and m_Password.
Referenced by CreateConnection().
Return current server name.
Definition at line 136 of file dbapi_sample_base.hpp.
References _ASSERT, and m_ServerName.
Referenced by CreateConnection(), GetServerType(), and CLangQueryApp::RunSample().
|
protected |
Return current server type.
Definition at line 138 of file dbapi_sample_base.cpp.
References eMsSql, CDBConnParams::eMSSqlServer, eSybase, CDBConnParams::eSybaseOpenServer, CDBConnParams::eSybaseSQLServer, eUnknown, GetServerName(), and CCPPToolkitConnParams::GetServerType().
Referenced by CDbapiCursorApp::RunSample().
Return an unique identificatot which contains host name, process id and current date.
Definition at line 109 of file dbapi_sample_base.hpp.
References m_TableUID.
Return current user name.
Definition at line 144 of file dbapi_sample_base.hpp.
References _ASSERT, and m_UserName.
Referenced by CreateConnection().
|
privatevirtual |
Initialize the application.
The default behavior of this is "do nothing". If you have special initialization logic that needs to be peformed, then you must override this method with your own logic.
Reimplemented from CNcbiApplicationAPI.
Definition at line 153 of file dbapi_sample_base.cpp.
References ALL_DRIVERS, DEF_DRIVER, DEF_SERVER, CArgDescriptions::eInteger, CArgDescriptions::eString, CNcbiApplicationAPI::GetArguments(), InitSample(), and CNcbiApplicationAPI::SetupArgDescriptions().
|
protectedvirtual |
Override these 3 to suit your test's needs.
Reimplemented in CLangQueryApp, and CDbapiTestSpeedApp.
Definition at line 125 of file dbapi_sample_base.cpp.
Referenced by Init().
|
privatevirtual |
Run the application.
It is defined as a pure virtual method – so you must(!) supply the Run() method to implement the application-specific logic.
Implements CNcbiApplicationAPI.
Definition at line 216 of file dbapi_sample_base.cpp.
References DBLB_INSTALL_DEFAULT, CNcbiApplicationAPI::GetArgs(), CDB_UserHandler::GetDefault(), CRandom::GetRand(), CDB_UserHandler::HandleIt(), LOG_POST_X, m_DriverName, m_Password, m_ServerName, m_TDSVersion, m_UserName, m_UseSvcMapper, NULL, RunSample(), SetDatabaseParameter(), and UseSvcMapper().
|
protectedpure virtual |
Implemented in CLangQueryApp, CDbapiTestSpeedApp, CDbapiSendDataApp, CDbapiQueryApp, CDbapiCursorApp, CConnectPolicyApp, and CDbapiBcpApp.
Referenced by Run().
|
inlineprotected |
Set database connection parameter.
NOTE: Database parameters will affect a connection only is you set them before actual connect.
Definition at line 159 of file dbapi_sample_base.hpp.
References _ASSERT, m_DatabaseParameters, and rapidjson::value.
Referenced by Run(), CDbapiCursorApp::RunSample(), and CDbapiTestSpeedApp::RunSample().
Set driver name.
Definition at line 130 of file dbapi_sample_base.hpp.
References _ASSERT, and m_DriverName.
Referenced by CDbapiTestSpeedApp::RunSample().
Delete table if it exists ShowResults is printing resuts on screen.
Definition at line 425 of file dbapi_sample_base.cpp.
References eDB_RowResult, GetConnection(), query, and r().
Referenced by CDbapiCursorApp::RunOneSample(), CDbapiBcpApp::RunSample(), CDbapiQueryApp::RunSample(), CDbapiSendDataApp::RunSample(), and CLangQueryApp::RunSample().
|
inlineprotected |
Definition at line 170 of file dbapi_sample_base.hpp.
References m_UseSvcMapper.
Referenced by Run().
|
private |
Definition at line 182 of file dbapi_sample_base.hpp.
|
private |
Definition at line 193 of file dbapi_sample_base.hpp.
Referenced by GetDatabaseParameters(), and SetDatabaseParameter().
|
private |
Definition at line 181 of file dbapi_sample_base.hpp.
Referenced by GetDriverContext().
|
private |
Definition at line 186 of file dbapi_sample_base.hpp.
Referenced by GetDriverName(), Run(), and SetDriverName().
|
private |
Definition at line 189 of file dbapi_sample_base.hpp.
Referenced by GetPassword(), and Run().
|
private |
Definition at line 187 of file dbapi_sample_base.hpp.
Referenced by GetServerName(), and Run().
|
private |
Definition at line 183 of file dbapi_sample_base.hpp.
Referenced by CDbapiSampleApp(), and GetTableUID().
|
private |
Definition at line 190 of file dbapi_sample_base.hpp.
Referenced by Run().
|
private |
Definition at line 188 of file dbapi_sample_base.hpp.
Referenced by GetUserName(), and Run().
|
private |
Definition at line 184 of file dbapi_sample_base.hpp.
Referenced by CreateConnection().
|
private |
Definition at line 191 of file dbapi_sample_base.hpp.
Referenced by Run(), and UseSvcMapper().