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)41SCass_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)58bool SCass_BlobId::MapSatToKeyspace(void) 59 { 60 auto * app = CPubseqGatewayApp::GetInstance(); 61 return app->SatToKeyspace(m_Sat, m_Keyspace); 62 } 63 64