lds_query.hpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:4k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: lds_query.hpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/04/12 17:35:03  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.6
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef LDS_QUERY_HPP__
  10. #define LDS_QUERY_HPP__
  11. /*  $Id: lds_query.hpp,v 1000.1 2004/04/12 17:35:03 gouriano Exp $
  12.  * ===========================================================================
  13.  *
  14.  *                            PUBLIC DOMAIN NOTICE
  15.  *               National Center for Biotechnology Information
  16.  *
  17.  *  This software/database is a "United States Government Work" under the
  18.  *  terms of the United States Copyright Act.  It was written as part of
  19.  *  the author's official duties as a United States Government employee and
  20.  *  thus cannot be copyrighted.  This software/database is freely available
  21.  *  to the public for use. The National Library of Medicine and the U.S.
  22.  *  Government have not placed any restriction on its use or reproduction.
  23.  *
  24.  *  Although all reasonable efforts have been taken to ensure the accuracy
  25.  *  and reliability of the software and data, the NLM and the U.S.
  26.  *  Government do not and cannot warrant the performance or results that
  27.  *  may be obtained by using this software or data. The NLM and the U.S.
  28.  *  Government disclaim all warranties, express or implied, including
  29.  *  warranties of performance, merchantability or fitness for any particular
  30.  *  purpose.
  31.  *
  32.  *  Please cite the author in any work or product based on this material.
  33.  *
  34.  * ===========================================================================
  35.  *
  36.  * Author: Anatoliy Kuznetsov
  37.  *
  38.  * File Description: Different query functions to LDS database.
  39.  *
  40.  */
  41. #include <objtools/lds/lds_db.hpp>
  42. #include <objtools/lds/lds_set.hpp>
  43. #include <objmgr/util/obj_sniff.hpp>
  44. BEGIN_NCBI_SCOPE
  45. BEGIN_SCOPE(objects)
  46. //////////////////////////////////////////////////////////////////
  47. ///
  48. /// CLDS_Query different queries to the LDS database.
  49. ///
  50. class NCBI_LDS_EXPORT CLDS_Query
  51. {
  52. public:
  53.     CLDS_Query(SLDS_TablesCollection& lds_tables)
  54.     : m_db(lds_tables)
  55.     {}
  56.     /// Scan the database, find the file, return TRUE if file exists.
  57.     /// Linear scan, no idx optimization.
  58.     bool FindFile(const string& path);
  59.     /// Scan the objects database, search for sequences.
  60.     /// All found ids are added to the obj_ids set.
  61.     void FindSequences(const vector<string>& seqids, CLDS_Set* obj_ids);
  62.     /// Scan seq_id_list, search for referred sequence ids .
  63.     void FindSeqIdList(const vector<string>& seqids, CLDS_Set* obj_ids);
  64.     /// Scan the objects database, search for sequences
  65.     /// All found ids are added to the obj_ids set.
  66.     void FindSequences(const string& query, CLDS_Set* obj_ids);
  67.     /// Structure describes the indexed object
  68.     struct SObjectDescr
  69.     {
  70.         int                     id;
  71.         bool                    is_object;
  72.         string                  type_str;
  73.         CFormatGuess::EFormat   format;
  74.         string                  file_name;
  75.         size_t                  offset;
  76.         string                  title;
  77.     };
  78.     // Return object's description.
  79.     // SObjectDescr.id == 0 if requested object cannot be found.
  80.     SObjectDescr GetObjectDescr(const map<string, int>& type_map, 
  81.                                 int id,
  82.                                 bool trace_to_top = false);
  83. private:
  84.     SLDS_TablesCollection& m_db;
  85. };
  86. END_SCOPE(objects)
  87. END_NCBI_SCOPE
  88. /*
  89.  * ===========================================================================
  90.  * $Log: lds_query.hpp,v $
  91.  * Revision 1000.1  2004/04/12 17:35:03  gouriano
  92.  * PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.6
  93.  *
  94.  * Revision 1.6  2004/03/11 18:43:10  kuznets
  95.  * + FindSequences (by a query string)
  96.  *
  97.  * Revision 1.5  2003/08/06 20:47:58  kuznets
  98.  * SObjectDescr receives title field to facilitate structure reuse in gbench UI component)
  99.  *
  100.  * Revision 1.4  2003/07/10 20:09:26  kuznets
  101.  * Implemented GetObjectDescr query. Searches both objects and annotations.
  102.  *
  103.  * Revision 1.3  2003/07/09 19:31:56  kuznets
  104.  * Added query scanning sequence id list.
  105.  *
  106.  * Revision 1.2  2003/06/20 19:55:50  kuznets
  107.  * Implemented new function "FindSequences"
  108.  *
  109.  * Revision 1.1  2003/06/16 14:54:08  kuznets
  110.  * lds splitted into "lds" and "lds_admin"
  111.  *
  112.  * ===========================================================================
  113.  */
  114. #endif