52 shared_ptr<CCassConnection> connection,
53 const string & keyspace,
57 const vector<string> & annot_names,
62 , m_Accession(std::move(accession))
64 , m_SeqIdType(seq_id_type)
65 , m_AnnotNames(annot_names)
66 , m_Consume(std::move(consume_callback))
70 shared_ptr<CCassConnection> connection,
71 const string & keyspace,
75 const vector<CTempString> & annot_names,
80 , m_Accession(std::move(accession))
82 , m_SeqIdType(seq_id_type)
83 , m_AnnotNamesTemp(annot_names)
84 , m_Consume(std::move(consume_callback))
88 shared_ptr<CCassConnection> connection,
89 const string & keyspace,
97 , m_Accession(std::move(accession))
99 , m_SeqIdType(seq_id_type)
100 , m_Consume(std::move(consume_callback))
112 "CCassNAnnotTaskFetch: DataReadyCB can't be assigned "
113 "after the loading process has started");
140 [&more](
string const &
val) {
148 shared_ptr<CCassQuery>&
query,
string const & more,
unsigned int first
184 " annot_name, sat_key, last_modified, start, stop, seq_annot_info, annot_info_modified, state, writetime(stop) "
187 " accession = ? AND version = ? AND seq_id_type = ?";
188 unsigned int params = 3, names_count = 0;
191 if (names_count > 0) {
192 sql +=
" AND annot_name in (" +
NStr::Join(vector<string>(names_count,
"?"),
",") +
")";
200 sql +=
" AND annot_name > ?";
209 if (names_count > 0) {
242 const unsigned char * rawdata =
nullptr;
250 do_next =
m_Consume(std::move(record),
false);
264 }
else if (restarted) {
275 snprintf(
msg,
sizeof(
msg),
"Failed to fetch named annot (key=%s.%s|%hd|%hd) unexpected state (%d)",
#define BEGIN_IDBLOB_SCOPE
BEGIN_IDBLOB_SCOPE USING_NCBI_SCOPE
function< void(CRequestStatus::ECode status, int code, EDiagSev severity, const string &message)> TDataErrorCallback
atomic< int32_t > m_State
string GetKeySpace() const
void SetDataReadyCB3(shared_ptr< CCassDataCallbackReceiver > datareadycb3)
TCassConsistency GetReadConsistency() const
void SetupQueryCB3(shared_ptr< CCassQuery > &query)
bool CheckReady(shared_ptr< CCassQuery > qry, unsigned int restart_counter, bool &need_repeat)
vector< SQueryRec > m_QueryArr
shared_ptr< CCassQuery > ProduceQuery() const
void Error(CRequestStatus::ECode status, int code, EDiagSev severity, const string &message)
TNAnnotConsumeCallback m_Consume
void SetDataReadyCB(shared_ptr< CCassDataCallbackReceiver > callback)
vector< CTempString > m_AnnotNamesTemp
void x_AnnotNamesBind(shared_ptr< CCassQuery > &query, string const &more, unsigned int first) const
size_t x_AnnotNamesCount(string const &more) const
CCassNAnnotTaskFetch(shared_ptr< CCassConnection > connection, const string &keyspace, string accession, int16_t version, int16_t seq_id_type, const vector< string > &annot_names, TNAnnotConsumeCallback consume_callback, TDataErrorCallback data_error_cb)
string m_LastConsumedAnnot
unsigned int m_RestartCounter
void SetConsumeCallback(TNAnnotConsumeCallback callback)
vector< string > m_AnnotNames
size_t x_AnnotNamesSize() const
CNAnnotRecord & SetAccession(string value)
CNAnnotRecord & SetModified(TTimestamp value)
CNAnnotRecord & SetAnnotName(string value)
CNAnnotRecord & SetStop(TCoord value)
string const & GetAnnotName() const
CNAnnotRecord & SetSeqAnnotInfo(TAnnotInfo const &value)
CNAnnotRecord & SetStart(TCoord value)
CNAnnotRecord & SetSeqIdType(int16_t value)
CNAnnotRecord & SetSatKey(TSatKey value)
CNAnnotRecord & SetState(TState value)
CNAnnotRecord & SetVersion(int16_t value)
CNAnnotRecord & SetWritetime(TWritetime value)
CNAnnotRecord & SetAnnotInfoModified(TTimestamp value)
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
static DLIST_TYPE *DLIST_NAME() first(DLIST_LIST_TYPE *list)
@ eDiag_Error
Error message.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
static string Join(const TContainer &arr, const CTempString &delim)
Join strings using the specified delimiter.
const string version
version string
function< bool(CNAnnotRecord &&, bool last)> TNAnnotConsumeCallback
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)