test_validator.cpp
来自「ncbi源码」· C++ 代码 · 共 611 行 · 第 1/2 页
CPP
611 行
for ( CValidError_CI vit(*errors); vit; ++vit ) { if ( vit->GetSeverity() < show ) { continue; } PrintBatchItem(*vit, *os); ++reported; } return reported;}CRef<CSeq_entry> CTest_validatorApplication::ReadSeqEntry(void){ CRef<CSeq_entry> se(new CSeq_entry); m_In->Read(ObjectInfo(*se), CObjectIStream::eNoFileHeader); return se;}CConstRef<CValidError> CTest_validatorApplication::ProcessSeqEntry(void){ // Get seq-entry to validate CRef<CSeq_entry> se(ReadSeqEntry()); // Validate Seq-entry CValidator validator(*m_ObjMgr); return validator.Validate(*se, 0, m_Options);}CConstRef<CValidError> CTest_validatorApplication::ProcessSeqSubmit(void){ CRef<CSeq_submit> ss(new CSeq_submit); // Get seq-submit to validate m_In->Read(ObjectInfo(*ss), CObjectIStream::eNoFileHeader); // Validae Seq-submit CValidator validator(*m_ObjMgr); return validator.Validate(*ss, 0, m_Options);}CConstRef<CValidError> CTest_validatorApplication::ProcessSeqAnnot(void){ CRef<CSeq_annot> sa(new CSeq_annot); // Get seq-annot to validate m_In->Read(ObjectInfo(*sa), CObjectIStream::eNoFileHeader); // Validae Seq-annot CValidator validator(*m_ObjMgr); return validator.Validate(*sa, 0, m_Options);}void CTest_validatorApplication::Setup(const CArgs& args){ // Setup application registry and logs for CONNECT library CORE_SetLOG(LOG_cxx2c()); CORE_SetREG(REG_cxx2c(&GetConfig(), false)); // Setup MT-safety for CONNECT library // CORE_SetLOCK(MT_LOCK_cxx2c()); // Create object manager m_ObjMgr.Reset(new CObjectManager); if ( args["g"] ) { // Create GenBank data loader and register it with the OM. // The last argument "eDefault" informs the OM that the loader must // be included in scopes during the CScope::AddDefaults() call. m_ObjMgr->RegisterDataLoader(*new CGBDataLoader("ID"), CObjectManager::eDefault); } SetupValidatorOptions(args);}void CTest_validatorApplication::SetupValidatorOptions(const CArgs& args){ // Set validator options m_Options = 0; m_Options |= args["nonascii"] ? CValidator::eVal_non_ascii : 0; m_Options |= args["context"] ? CValidator::eVal_no_context : 0; m_Options |= args["align"] ? CValidator::eVal_val_align : 0; m_Options |= args["exon"] ? CValidator::eVal_val_exons : 0; m_Options |= args["splice"] ? CValidator::eVal_splice_err : 0; m_Options |= args["ovlpep"] ? CValidator::eVal_ovl_pep_err : 0; m_Options |= args["taxid"] ? CValidator::eVal_need_taxid : 0; m_Options |= args["isojta"] ? CValidator::eVal_need_isojta : 0; m_Options |= args["g"] ? CValidator::eVal_remote_fetch : 0; // !!! DEBUG { // For testing only. Should be removed in the future m_Options |= args["debug"].HasValue() ? CValidator::eVal_perf_bottlenecks : 0; // }}CObjectIStream* CTest_validatorApplication::OpenFile(const CArgs& args){ // file name string fname = args["i"].AsString(); // file format ESerialDataFormat format = eSerial_AsnText; if ( args["b"] ) { format = eSerial_AsnBinary; } return CObjectIStream::Open(fname, format);}SIZE_TYPE CTest_validatorApplication::PrintValidError(CConstRef<CValidError> errors, const CArgs& args){ EDiagSev show = static_cast<EDiagSev>(args["q"].AsInteger()); EDiagSev count = static_cast<EDiagSev>(args["r"].AsInteger()); CNcbiOstream* os = args["x"] ? &(args["x"].AsOutputFile()) : &NcbiCout; if ( errors->TotalSize() == 0 ) { *os << "All entries are OK!" << endl; os->flush(); return 0; } SIZE_TYPE result = 0; SIZE_TYPE reported = 0; for ( CValidError_CI vit(*errors); vit; ++vit) { if ( vit->GetSeverity() >= count ) { ++result; } if ( vit->GetSeverity() < show ) { continue; } PrintValidErrItem(*vit, *os); ++reported; } *os << reported << " messages reported" << endl; os->flush(); *os << "Total number of errors: " << errors->TotalSize() << endl << "Info: " << errors->InfoSize() << endl << "Warning: " << errors->WarningSize() << endl << "Error: " << errors->ErrorSize() << endl << "Critical: " << errors->CriticalSize() << endl << "Fatal: " << errors->FatalSize() << endl; return result;}void CTest_validatorApplication::PrintValidErrItem(const CValidErrItem& item, CNcbiOstream& os){ os << item.GetSevAsStr() << ": " << item.GetErrCode() << endl << endl << "Message: " << item.GetMsg() << endl << endl; //<< "Verbose: " << item.GetVerbose() << endl << endl;}void CTest_validatorApplication::PrintBatchItem(const CValidErrItem& item, CNcbiOstream&os){ os << item.GetSevAsStr() << ": [" << item.GetErrCode() <<"] [" << item.GetMsg() << "]" << endl;}/////////////////////////////////////////////////////////////////////////////// MAINint main(int argc, const char* argv[]){ return CTest_validatorApplication().AppMain(argc, argv, 0, eDS_Default, 0);}/* * =========================================================================== * * $Log: test_validator.cpp,v $ * Revision 1000.2 2004/06/01 19:48:09 gouriano * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.27 * * Revision 1.27 2004/05/21 21:42:56 gorelenk * Added PCH ncbi_pch.hpp * * Revision 1.26 2004/02/09 19:18:58 grichenk * Renamed CDesc_CI to CSeq_descr_CI. Redesigned CSeq_descr_CI * and CSeqdesc_CI to avoid using data directly. * * Revision 1.25 2004/01/07 17:37:39 vasilche * Fixed include path to genbank loader. * Moved split_cache application. * * Revision 1.24 2003/08/06 15:07:22 shomrat * Added fix for batch processing * * Revision 1.23 2003/06/02 16:06:43 dicuccio * Rearranged src/objects/ subtree. This includes the following shifts: * - src/objects/asn2asn --> arc/app/asn2asn * - src/objects/testmedline --> src/objects/ncbimime/test * - src/objects/objmgr --> src/objmgr * - src/objects/util --> src/objmgr/util * - src/objects/alnmgr --> src/objtools/alnmgr * - src/objects/flat --> src/objtools/flat * - src/objects/validator --> src/objtools/validator * - src/objects/cddalignview --> src/objtools/cddalignview * In addition, libseq now includes six of the objects/seq... libs, and libmmdb * replaces the three libmmdb? libs. * * Revision 1.22 2003/05/28 16:39:19 shomrat * Indentation corrections * * Revision 1.21 2003/05/15 02:10:05 ucko * Be consistent about SIZE_TYPE vs. unsigned int in PrintValidError. * * Revision 1.20 2003/05/14 21:16:48 shomrat * Using CRef instead of auto_ptr; changed to output format * * Revision 1.19 2003/04/24 16:16:00 vasilche * Added missing includes and forward class declarations. * * Revision 1.18 2003/04/15 14:56:52 shomrat * cout -> NcbiCout; test before derefernce * * Revision 1.17 2003/04/15 14:22:42 vasilche * Added missing includes. * * Revision 1.16 2003/04/04 18:44:42 shomrat * Added remote fetch flag * * Revision 1.15 2003/03/20 18:58:22 shomrat * Added support for validation of standalone Seq-annot files * * Revision 1.14 2003/03/10 18:13:14 shomrat * Print extended statistics * * Revision 1.13 2003/03/06 19:41:15 shomrat * Changed eval from auto_ptr to CRef * * Revision 1.12 2003/02/24 20:36:15 shomrat * Added several application flags, including batch processing * * Revision 1.11 2003/02/14 21:55:13 shomrat * Output the severity of an error * * Revision 1.10 2003/02/07 21:26:01 shomrat * More detailed error report * * Revision 1.9 2003/02/05 00:28:07 ucko * +<serial/objistr.hpp> (formerly pulled in via reader_id1.hpp) * * Revision 1.8 2003/02/03 20:22:25 shomrat * Added flag to supress performance bottlenecks * * Revision 1.7 2003/02/03 17:51:06 shomrat * Bug fix - Trailing comma in a parameter list * * Revision 1.6 2003/02/03 17:06:48 shomrat * Changed parameters to CGBDataLoader * * Revision 1.5 2003/01/28 16:01:22 shomrat * Bug fixes * * Revision 1.4 2003/01/24 22:04:33 shomrat * Added flags to specify input format (Seq-entry or Seq-submit) * * Revision 1.3 2003/01/07 20:04:26 shomrat * GetMessage changed to GetMsg * * Revision 1.2 2003/01/07 17:57:05 ucko * Use the new path to the validator's public header. * * Revision 1.1 2002/12/23 21:11:59 shomrat * Moved from objects/objmgr/test * * Revision 1.3 2002/11/04 21:29:14 grichenk * Fixed usage of const CRef<> and CRef<> constructor * * Revision 1.2 2002/10/08 13:40:38 clausen * Changed current.asn to current.prt * * Revision 1.1 2002/10/03 18:34:13 clausen * Initial version * * * =========================================================================== */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?