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

Search Toolkit Book for CPrimeCacheApplication

+ Inheritance diagram for CPrimeCacheApplication:
+ Collaboration diagram for CPrimeCacheApplication:

Classes

class  CCacheBioseq
 
struct  SOrgData
 

Public Member Functions

 CPrimeCacheApplication ()
 
- 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 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

virtual void Init (void)
 Initialize the application. More...
 
virtual int Run (void)
 Run the application. More...
 
virtual void Exit (void)
 Cleanup on application exit. More...
 
void x_Read_Ids (CNcbiIstream &istr, set< CSeq_id_Handle > &ids)
 
void x_Process_Ids (const set< CSeq_id_Handle > &ids, CNcbiOstream &ostr_seqids, unsigned delta_level, size_t count)
 
void x_Process_Fasta (CNcbiIstream &istr, CNcbiOstream &ostr_seqids)
 
void x_Process_SeqEntry (CNcbiIstream &istr, CNcbiOstream &ostr_seqids, ESerialDataFormat serial_fmt, set< CSeq_id_Handle > &delta_ids, size_t &count)
 
void x_ExtractAndIndex (const CSeq_entry &entry, CAsnIndex::TTimestamp timestamp, CAsnIndex::TChunkId chunk_id, CAsnIndex::TOffset offset, CAsnIndex::TSize size)
 
bool x_StripSeqEntry (CScope &scope, CSeq_entry &entry, set< CSeq_id_Handle > &trimmed_bioseqs)
 
void x_CacheSeqEntry (CNcbiIstream &istr, CNcbiOstream &ostr_seqids, ESerialDataFormat serial_fmt, set< CSeq_id_Handle > &delta_ids, size_t &count)
 
void x_SplitAndCacheSeqEntry (CNcbiIstream &istr, CNcbiOstream &ostr_seqids, ESerialDataFormat serial_fmt)
 
void x_ExtractDelta (CBioseq_Handle bsh, set< CSeq_id_Handle > &delta_ids)
 
void x_UpsertDescriptor (list< CRef< CSeqdesc > > &descs, CRef< CSeqdesc > new_desc)
 

Private Attributes

string m_CachePath
 
CChunkFile m_MainChunk
 
CSeqIdChunkFile m_SeqIdChunk
 
CAsnIndex m_MainIndex
 
CAsnIndex m_SeqIdIndex
 
CSeq_inst::EMol m_InstMol
 
CRef< CSeqdescm_MolInfo
 
map< TTaxId, SOrgDatam_Orgs
 
map< string, TTaxIdm_SequenceTaxids
 
map< string, stringm_SequenceUniprotSources
 
CBioSource::EGenome m_Genome
 
list< CRef< CSeqdesc > > m_other_descs
 
sequence::EGetIdType m_id_type
 
set< CSeq_inst::EMolm_StripInstMol
 
bool m_ExtractDelta
 
unsigned m_MaxDeltaLevel
 
set< CSeq_id_Handlem_CachedIds
 
set< CSeq_id_Handlem_PreviousExecutionIds
 
set< stringm_PreviousExecutionRuns
 

Friends

class CCacheBioseq
 

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...
 
virtual void SetupArgDescriptions (CArgDescriptions *arg_desc)
 Setup the command line argument descriptions. 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...
 
- 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

Definition at line 145 of file prime_cache.cpp.

Constructor & Destructor Documentation

◆ CPrimeCacheApplication()

CPrimeCacheApplication::CPrimeCacheApplication ( )
inline

Definition at line 148 of file prime_cache.cpp.

Referenced by main().

Member Function Documentation

◆ Exit()

void CPrimeCacheApplication::Exit ( void  )
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 1398 of file prime_cache.cpp.

References SetDiagStream().

◆ Init()

void CPrimeCacheApplication::Init ( void  )
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 281 of file prime_cache.cpp.

References CLocalTaxon::AddArguments(), CArgAllow_Strings::Allow(), CArgDescriptions::eExcludes, CArgDescriptions::eInputFile, CArgDescriptions::eInteger, CArgDescriptions::eOutputFile, CArgDescriptions::eRequires, CArgDescriptions::eString, CNcbiApplicationAPI::GetArguments(), ITERATE, and CNcbiApplicationAPI::SetupArgDescriptions().

◆ Run()

int CPrimeCacheApplication::Run ( void  )
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.

Returns
Exit code.

Implements CNcbiApplicationAPI.

Definition at line 1039 of file prime_cache.cpp.

References CSerialObject::Assign(), CSeq_id_Handle::AsString(), CPrimeCacheApplication::SOrgData::biosource, CDir::CreatePath(), CSeq_id_Base::e_General, CAsnIndex::e_main, CSeqdesc_Base::e_Molinfo, CAsnIndex::e_seq_id, CSeqdesc_Base::e_Source, eGetId_Best, eGetId_Canonical, set< Key, Compare >::empty(), CBDB_RawFile::eReadWriteCreate, eSerial_AsnBinary, eSerial_AsnText, CSignal::eSignal_HUP, CSignal::eSignal_INT, CSignal::eSignal_QUIT, CSignal::eSignal_TERM, eUnknown, CFile::Exists(), CDir::Exists(), CArgValue::fAppend, CNcbiApplicationAPI::GetArgs(), NASNCacheFileName::GetBDBIndex(), GetDiagContext(), CSeq_id_Handle::GetHandle(), CObjectManager::GetInstance(), CBioSource_Base::GetOrg(), CLocalTaxon::GetOrgRef(), CDirEntry::GetPath(), CDiagContext::GetRequestContext(), CRequestContext::GetRequestTimer(), GetSeqId(), CSeqdesc_Base::GetSource(), i, CInputStreamSource::InitManifest(), CInputStreamSource::InitStream(), set< Key, Compare >::insert(), ncbi::grid::netcache::search::fields::key, m_CachePath, m_ExtractDelta, m_Genome, m_id_type, m_InstMol, m_MainIndex, m_MaxDeltaLevel, m_MolInfo, m_Orgs, m_other_descs, m_PreviousExecutionIds, m_PreviousExecutionRuns, m_SeqIdChunk, m_SeqIdIndex, m_SequenceTaxids, m_SequenceUniprotSources, m_StripInstMol, NCBI_THROW, NcbiGetlineEOL(), NStr::NumericToString(), om, CBDB_File::Open(), CObjectIStream::Open(), CSeqIdChunkFile::OpenForWrite(), CPrimeCacheApplication::SOrgData::orgref, CDiagContext::PrintRequestStart(), CDiagContext::PrintRequestStop(), CRef< C, Locker >::Reset(), CMolInfo_Base::SetBiomol(), CBDB_RawFile::SetCacheSize(), CSeqdesc_Base::SetMolinfo(), CRequestContext::SetRequestStatus(), NStr::Split(), CStopWatch::Start(), NStr::StartsWith(), NStr::StringToInt(), tag, TAX_ID_FROM, CSignal::TrapSignals(), NStr::TruncateSpaces(), NStr::TruncateSpacesInPlace(), CSeqdesc_Base::Which(), x_Process_Fasta(), x_Process_Ids(), x_Process_SeqEntry(), x_Read_Ids(), and ZERO_TAX_ID.

◆ x_CacheSeqEntry()

void CPrimeCacheApplication::x_CacheSeqEntry ( CNcbiIstream istr,
CNcbiOstream ostr_seqids,
ESerialDataFormat  serial_fmt,
set< CSeq_id_Handle > &  delta_ids,
size_t &  count 
)
private

◆ x_ExtractAndIndex()

void CPrimeCacheApplication::x_ExtractAndIndex ( const CSeq_entry entry,
CAsnIndex::TTimestamp  timestamp,
CAsnIndex::TChunkId  chunk_id,
CAsnIndex::TOffset  offset,
CAsnIndex::TSize  size 
)
private

◆ x_ExtractDelta()

void CPrimeCacheApplication::x_ExtractDelta ( CBioseq_Handle  bsh,
set< CSeq_id_Handle > &  delta_ids 
)
private

◆ x_Process_Fasta()

void CPrimeCacheApplication::x_Process_Fasta ( CNcbiIstream istr,
CNcbiOstream ostr_seqids 
)
private

Definition at line 506 of file prime_cache.cpp.

References CSeq_id_Handle::AsString(), CFastaReader::AtEOF(), CPrimeCacheApplication::SOrgData::biosource, CSeqdesc_Base::e_Molinfo, CSeqdesc_Base::e_Source, CTime::eCurrent, CBioSource_Base::eGenome_unknown, CSeq_inst_Base::eMol_aa, Error(), eUnknown, CFastaReader::fAddMods, CFastaReader::fAssumeNuc, CFastaReader::fAssumeProt, CFastaReader::fDisableParseRange, CFastaReader::fForceType, flags, CFastaReader::fNoUserObjs, CFastaReader::fRequireID, CSeq_descr_Base::Get(), CNcbiApplicationAPI::GetArgs(), CMolInfo_Base::GetBiomol(), CChunkFile::GetChunkSerialNum(), CMolInfo_Base::GetCompleteness(), CSeq_entry::GetDescr(), GetId(), CObjectManager::GetInstance(), CSeqdesc_Base::GetMolinfo(), CChunkFile::GetOffset(), CSeq_entry_Base::GetSeq(), CTime::GetTimeT(), CMolInfo_Base::IsSetBiomol(), CMolInfo_Base::IsSetCompleteness(), CSeq_entry::IsSetDescr(), CSignal::IsSignaled(), LOG_POST, m_CachePath, m_Genome, m_id_type, m_InstMol, m_MainChunk, m_MolInfo, m_Orgs, m_other_descs, m_PreviousExecutionIds, m_SequenceTaxids, m_SequenceUniprotSources, NCBI_THROW, NON_CONST_ITERATE, NStr::NumericToString(), offset, om, CChunkFile::OpenForWrite(), CPrimeCacheApplication::SOrgData::orgref, CCache_blob::Pack(), CSeq_entry::Parentize(), CFastaReader::ReadOneSeq(), CBioseq_Base::ResetDescr(), CSeqdesc_Base::SetComment(), CBioseq_Base::SetDescr(), CBioseq_Base::SetId(), CBioseq_Base::SetInst(), CFastaReader::SetMaxIDLength(), CSeq_entry_Base::SetSeq(), CCache_blob_Base::SetTimestamp(), ncbi::grid::netcache::search::fields::size, CStopWatch::Start(), sw, CChunkFile::Write(), x_ExtractAndIndex(), x_UpsertDescriptor(), and ZERO_TAX_ID.

Referenced by Run().

◆ x_Process_Ids()

void CPrimeCacheApplication::x_Process_Ids ( const set< CSeq_id_Handle > &  ids,
CNcbiOstream ostr_seqids,
unsigned  delta_level,
size_t  count 
)
private

◆ x_Process_SeqEntry()

void CPrimeCacheApplication::x_Process_SeqEntry ( CNcbiIstream istr,
CNcbiOstream ostr_seqids,
ESerialDataFormat  serial_fmt,
set< CSeq_id_Handle > &  delta_ids,
size_t &  count 
)
private

Definition at line 753 of file prime_cache.cpp.

References CNcbiApplicationAPI::GetArgs(), x_CacheSeqEntry(), and x_SplitAndCacheSeqEntry().

Referenced by Run().

◆ x_Read_Ids()

void CPrimeCacheApplication::x_Read_Ids ( CNcbiIstream istr,
set< CSeq_id_Handle > &  ids 
)
private

◆ x_SplitAndCacheSeqEntry()

void CPrimeCacheApplication::x_SplitAndCacheSeqEntry ( CNcbiIstream istr,
CNcbiOstream ostr_seqids,
ESerialDataFormat  serial_fmt 
)
private

◆ x_StripSeqEntry()

bool CPrimeCacheApplication::x_StripSeqEntry ( CScope scope,
CSeq_entry entry,
set< CSeq_id_Handle > &  trimmed_bioseqs 
)
private

◆ x_UpsertDescriptor()

void CPrimeCacheApplication::x_UpsertDescriptor ( list< CRef< CSeqdesc > > &  descs,
CRef< CSeqdesc new_desc 
)
private

Friends And Related Function Documentation

◆ CCacheBioseq

friend class CCacheBioseq
friend

Definition at line 222 of file prime_cache.cpp.

Member Data Documentation

◆ m_CachedIds

set<CSeq_id_Handle> CPrimeCacheApplication::m_CachedIds
private

Definition at line 246 of file prime_cache.cpp.

Referenced by x_ExtractAndIndex(), and x_Process_Ids().

◆ m_CachePath

string CPrimeCacheApplication::m_CachePath
private

Definition at line 230 of file prime_cache.cpp.

Referenced by Run(), x_CacheSeqEntry(), x_Process_Fasta(), and x_Process_Ids().

◆ m_ExtractDelta

bool CPrimeCacheApplication::m_ExtractDelta
private

Definition at line 244 of file prime_cache.cpp.

Referenced by Run(), x_CacheSeqEntry(), and x_Process_Ids().

◆ m_Genome

CBioSource::EGenome CPrimeCacheApplication::m_Genome
private

Definition at line 240 of file prime_cache.cpp.

Referenced by Run(), and x_Process_Fasta().

◆ m_id_type

sequence::EGetIdType CPrimeCacheApplication::m_id_type
private

◆ m_InstMol

CSeq_inst::EMol CPrimeCacheApplication::m_InstMol
private

Definition at line 235 of file prime_cache.cpp.

Referenced by Run(), and x_Process_Fasta().

◆ m_MainChunk

CChunkFile CPrimeCacheApplication::m_MainChunk
private

Definition at line 231 of file prime_cache.cpp.

Referenced by x_CacheSeqEntry(), x_Process_Fasta(), and x_Process_Ids().

◆ m_MainIndex

CAsnIndex CPrimeCacheApplication::m_MainIndex
private

Definition at line 233 of file prime_cache.cpp.

Referenced by Run(), and x_ExtractAndIndex().

◆ m_MaxDeltaLevel

unsigned CPrimeCacheApplication::m_MaxDeltaLevel
private

Definition at line 245 of file prime_cache.cpp.

Referenced by Run(), and x_Process_Ids().

◆ m_MolInfo

CRef<CSeqdesc> CPrimeCacheApplication::m_MolInfo
private

Definition at line 236 of file prime_cache.cpp.

Referenced by Run(), and x_Process_Fasta().

◆ m_Orgs

map<TTaxId, SOrgData> CPrimeCacheApplication::m_Orgs
private

Definition at line 237 of file prime_cache.cpp.

Referenced by Run(), and x_Process_Fasta().

◆ m_other_descs

list< CRef<CSeqdesc> > CPrimeCacheApplication::m_other_descs
private

Definition at line 241 of file prime_cache.cpp.

Referenced by Run(), and x_Process_Fasta().

◆ m_PreviousExecutionIds

set<CSeq_id_Handle> CPrimeCacheApplication::m_PreviousExecutionIds
private

Definition at line 247 of file prime_cache.cpp.

Referenced by Run(), and x_Process_Fasta().

◆ m_PreviousExecutionRuns

set<string> CPrimeCacheApplication::m_PreviousExecutionRuns
private

Definition at line 248 of file prime_cache.cpp.

Referenced by Run().

◆ m_SeqIdChunk

CSeqIdChunkFile CPrimeCacheApplication::m_SeqIdChunk
private

Definition at line 232 of file prime_cache.cpp.

Referenced by Run(), and x_ExtractAndIndex().

◆ m_SeqIdIndex

CAsnIndex CPrimeCacheApplication::m_SeqIdIndex
private

Definition at line 234 of file prime_cache.cpp.

Referenced by Run(), and x_ExtractAndIndex().

◆ m_SequenceTaxids

map<string, TTaxId> CPrimeCacheApplication::m_SequenceTaxids
private

Definition at line 238 of file prime_cache.cpp.

Referenced by Run(), and x_Process_Fasta().

◆ m_SequenceUniprotSources

map<string, string> CPrimeCacheApplication::m_SequenceUniprotSources
private

Definition at line 239 of file prime_cache.cpp.

Referenced by Run(), and x_Process_Fasta().

◆ m_StripInstMol

set<CSeq_inst::EMol> CPrimeCacheApplication::m_StripInstMol
private

Definition at line 243 of file prime_cache.cpp.

Referenced by Run(), x_CacheSeqEntry(), x_Process_Ids(), and x_StripSeqEntry().


The documentation for this class was generated from the following file:
Modified on Fri Feb 23 11:48:45 2024 by modify_doxy.py rev. 669887