1 /*  $Id: cass_blob_id.cpp 612246 2020-07-17 14:23:22Z satskyse $
2  * ===========================================================================
3  *
4  *                            PUBLIC DOMAIN NOTICE
5  *               National Center for Biotechnology Information
6  *
7  *  This software/database is a "United States Government Work" under the
8  *  terms of the United States Copyright Act.  It was written as part of
9  *  the author's official duties as a United States Government employee and
10  *  thus cannot be copyrighted.  This software/database is freely available
11  *  to the public for use. The National Library of Medicine and the U.S.
12  *  Government have not placed any restriction on its use or reproduction.
13  *
14  *  Although all reasonable efforts have been taken to ensure the accuracy
15  *  and reliability of the software and data, the NLM and the U.S.
16  *  Government do not and cannot warrant the performance or results that
17  *  may be obtained by using this software or data. The NLM and the U.S.
18  *  Government disclaim all warranties, express or implied, including
19  *  warranties of performance, merchantability or fitness for any particular
20  *  purpose.
21  *
22  *  Please cite the author in any work or product based on this material.
23  *
24  * ===========================================================================
25  *
26  * Authors: Sergey Satskiy
27  *
28  * File Description:
29  *
30  */
31 #include <ncbi_pch.hpp>
32 
33 #include <corelib/ncbistr.hpp>
34 
35 #include "cass_blob_id.hpp"
36 #include "pubseq_gateway.hpp"
37 
38 USING_NCBI_SCOPE;
39 
40 
SCass_BlobId(const string & blob_id)41 SCass_BlobId::SCass_BlobId(const string &  blob_id) :
42     m_Sat(-1), m_SatKey(-1)
43 {
44     list<string>    parts;
45     NStr::Split(blob_id, ".", parts);
46 
47     if (parts.size() == 2) {
48         try {
49             m_Sat = NStr::StringToNumeric<int>(parts.front());
50             m_SatKey = NStr::StringToNumeric<int>(parts.back());
51         } catch (...) {
52         }
53     }
54 }
55 
56 
57 // Maps integer sat to a
MapSatToKeyspace(void)58 bool SCass_BlobId::MapSatToKeyspace(void)
59 {
60     auto * app = CPubseqGatewayApp::GetInstance();
61     return app->SatToKeyspace(m_Sat, m_Keyspace);
62 }
63 
64