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 + -
显示快捷键?