1 #ifndef CASSBLOBOP__HPP
2 #define CASSBLOBOP__HPP
83 shared_ptr<CCassConnection>
conn,
84 const string & keyspace,
101 shared_ptr<CCassConnection>
conn,
102 const string & keyspace,
145 return m_State.load(std::memory_order_relaxed);
165 }
catch (
const exception& e) {
265 it.restart_count = 0;
273 query->SetOnData3(DataReadyCb3);
276 snprintf(
msg,
sizeof(
msg),
"Failed to setup data ready callback (expired)");
284 using wt = weak_ptr<CCassDataCallbackReceiver>;
291 const string & message)
302 bool is_out_of_retries = (max_retries > 0) &&
303 (restart_count >=
static_cast<unsigned int>(max_retries) - 1);
305 " out_of_retries=" << is_out_of_retries <<
306 ", time=" <<
gettime() / 1000L <<
307 ", timeout=" <<
query->Timeout() <<
"ms");
319 bool CheckReady(shared_ptr<CCassQuery> qry,
unsigned int restart_counter,
bool& need_repeat)
344 bool need_restart =
false;
346 if (!rv && need_restart) {
351 }
catch (
const exception& ex) {
420 NCBI_STD_DEPRECATED(
"GetBlobChunkSize() is deprecated and will be deleted after 08/01/2023")
#define BEGIN_IDBLOB_SCOPE
void(*)(void *) TDataReadyCallback
function< void(const SBlobStat &stat, bool isFound)> TPropsCallback
function< void(const unsigned char *data, unsigned int size, int chunk_no)> TBlobChunkCallback
function< void(CRequestStatus::ECode status, int code, EDiagSev severity, const string &message)> TDataErrorCallback
CassConsistency TCassConsistency
CCassBlobOp(const CCassBlobOp &)=delete
string GetKeyspace() const
void SetKeyspace(const string &keyspace)
It is unsafe to use this function.
void GetBigBlobSizeLimit(unsigned int timeout_ms, const string &keyspace, int64_t *value)
CCassBlobOp(CCassBlobOp &&)=default
CCassBlobOp & operator=(const CCassBlobOp &)=delete
bool GetSetting(unsigned int op_timeout_ms, const string &domain, const string &name, string &value)
shared_ptr< CCassConnection > m_Conn
CCassBlobOp(shared_ptr< CCassConnection > conn)
void GetBlobChunkSize(unsigned int timeout_ms, const string &keyspace, int64_t *chunk_size)
shared_ptr< CCassConnection > GetConn()
CCassBlobOp & operator=(CCassBlobOp &&)=default
bool CheckMaxActive()
CCassBlobWaiter.
void SetWriteConsistency(TCassConsistency value)
atomic< int32_t > m_State
void SetErrorCB(TDataErrorCallback error_cb)
CCassBlobWaiter(shared_ptr< CCassConnection > conn, const string &keyspace, int32_t key, bool async, TDataErrorCallback error_cb)
std::chrono::milliseconds m_QueryTimeout
void SetMaxRetries(int value)
Set connection point parameters.
void SetKeySpace(string const &keyspace)
shared_ptr< CCassConnection > m_Conn
string GetKeySpace() const
CCassBlobWaiter & operator=(CCassBlobWaiter &&)=delete
TCassConsistency GetWriteConsistency() const
int32_t GetStateDebug() const noexcept
Get internal state for debug purposes.
void SetDataReadyCB3(shared_ptr< CCassDataCallbackReceiver > datareadycb3)
TCassConsistency m_ReadConsistency
bool Finished() const noexcept
TCassConsistency GetReadConsistency() const
weak_ptr< CCassDataCallbackReceiver > m_DataReadyCb3
void SetupQueryCB3(shared_ptr< CCassQuery > &query)
CCassBlobWaiter(const CCassBlobWaiter &other)
bool CheckReady(SQueryRec &it)
bool CheckReady(shared_ptr< CCassQuery > qry, unsigned int restart_counter, bool &need_repeat)
TCassConsistency m_WriteConsistency
int GetMaxRetries() const
bool IsDataReadyCallbackExpired() const
void SetReadConsistency(TCassConsistency value)
CCassBlobWaiter & operator=(const CCassBlobWaiter &)=delete
vector< SQueryRec > m_QueryArr
bool CanRestart(shared_ptr< CCassQuery > query, unsigned int restart_count) const
shared_ptr< CCassQuery > ProduceQuery() const
virtual std::chrono::milliseconds GetQueryTimeout() const
virtual void SetQueryTimeout(std::chrono::milliseconds value)
Experimental!!! May conflict with CCassConnection::SetQueryTimeoutRetry() when query timed out and CC...
TDataErrorCallback m_ErrorCb
bool CanRestart(SQueryRec &it) const
virtual ~CCassBlobWaiter()
void Error(CRequestStatus::ECode status, int code, EDiagSev severity, const string &message)
CCassBlobWaiter(CCassBlobWaiter &&)=delete
CCassBlobWaiter(shared_ptr< CCassConnection > conn, const string &keyspace, bool async, TDataErrorCallback error_cb)
static constexpr TCassConsistency kLocalQuorum
@ eQueryFailedRestartable
static const int chunk_size
static CS_CONNECTION * conn
#define ERR_POST(message)
Error posting with file, line number information but without error codes.
EDiagSev
Severity level for the posted diagnostics.
@ eDiag_Error
Error message.
@ e500_InternalServerError
void Error(CExceptionArgs_Base &args)
TErrCode GetErrCode(void) const
Get error code.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
void Warning(CExceptionArgs_Base &args)
virtual const char * what(void) const noexcept
Standard report (includes full backlog).
void Info(CExceptionArgs_Base &args)
#define NCBI_STD_DEPRECATED(message)
const struct ncbi::grid::netcache::search::fields::SIZE size
const struct ncbi::grid::netcache::search::fields::KEY key
const GenericPointer< typename T::ValueType > T2 value
Defines NCBI C++ diagnostic APIs, classes, and macros.
Defines CRequestStatus class for NCBI C++ diagnostic API.
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
shared_ptr< CCassQuery > query
unsigned int restart_count