NCBI_NS_FTDS_CTLIB
161 boolIsAlive(
void);
163 boolIsOpen_native(
void);
183 return*m_CTL_Context;
188 return*m_CTL_Context;
255 friend classncbi::CDB_Connection;
267 virtual boolSetLoginTimeout (
unsigned intnof_secs = 0);
268 virtual boolSetTimeout (
unsigned intnof_secs = 0);
269 virtual boolSetMaxBlobSize (
size_tnof_bytes);
271 virtual voidInitApplicationName(
void);
273 virtual unsigned intGetLoginTimeout(
void)
const;
274 virtual unsigned intGetTimeout (
void)
const;
276 virtual stringGetDriverName(
void)
const;
287 virtual voidCTLIB_SetApplicationName(
const string& a_name);
290 virtual voidCTLIB_SetHostName(
const string& host_name);
291 virtual voidCTLIB_SetPacketSize(
CS_INTpacket_size);
292 virtual voidCTLIB_SetLoginRetryCount(
CS_INT n);
293 virtual voidCTLIB_SetLoginLoopDelay(
CS_INTnof_sec);
299 boolSetMaxConnect(
unsigned intnum);
300 unsigned intGetMaxConnect(
void);
302 virtual CS_CONTEXT* CTLIB_GetContext(
void)
const;
327 returnm_LoginRetryCount;
331 returnm_LoginLoopDelay;
334 virtual voidSetClientCharset(
const string& charset);
339 CRWLock& x_GetCtxLock(
void)
const;
351 voidx_AddToRegistry(
void);
352 voidx_RemoveFromRegistry(
void);
355 void x_Close(
booldelete_conn =
true);
356 boolx_SafeToFinalize(
void)
const;
358 #if defined(FTDS_IN_USE) && NCBI_FTDS_VERSION >= 95 359 typedef int(*FIntHandler)(
void*);
360FIntHandler m_OrigIntHandler;
378 friend classncbi::CDB_Connection;
399 CS_INTGetBLKVersion(
void)
const;
421 virtual boolIsAlive(
void);
424 returnm_Handle.IsOpen();
427 voidDeferTimeout(
void);
429 #if defined(FTDS_IN_USE) && NCBI_FTDS_VERSION >= 95 430 voidSetCancelTimedOut(
bool val)
432m_CancelTimedOut =
val;
435 boolGetCancelTimedOut(
void)
const 437 returnm_CancelTimedOut;
443 virtual CDB_LangCmd* LangCmd (
const string& lang_query);
444 virtual CDB_RPCCmd* RPC (
const string& rpc_name);
447 const string&
query,
448 unsigned intbatch_size = 1);
452 booldump_results =
true);
455 boollog_it =
true);
457 virtual boolRefresh(
void);
461 CTL_LangCmd* xLangCmd(
const string& lang_query);
469 virtual bool Abort(
void);
474 virtual bool Close(
void);
482 return!
IsValid() || GetNativeConnection().IsDead();
486GetNativeConnection().SetDead(flag);
491 virtual voidSetTimeout(
size_tnof_secs);
492 virtual voidSetCancelTimeout(
size_tnof_secs);
494 virtual size_tGetTimeout(
void)
const;
495 virtual size_tGetCancelTimeout(
void)
const;
497 virtual unsigned intGetRowsInCurrentBatch(
void)
const;
499 size_tPrepareToCancel(
void);
500 voidCancelFinished(
size_twas_timeout);
503 virtualTSockHandle GetLowLevelHandle(
void)
const;
504 virtual stringGetVersionString(
void)
const;
507 const string& cursor_name,
510 voidCompleteBlobDescriptors(vector<I_BlobDescriptor*>& descs,
511 const string& cursor_name);
514 voidx_LoadTextPtrProcs(
void);
518 boollog_it =
true);
523 boolx_IsLegacyBlobColumnType(
const string&
table_name,
524 const string& column_name);
567 classCAsyncCancelGuard
571~CAsyncCancelGuard(
void);
575 friend classCAsyncCancelGuard;
579 # if NCBI_FTDS_VERSION >= 95 580 static intx_IntHandler(
void* param);
581 typedef int(*FIntHandler)(
void*);
582FIntHandler m_OrigIntHandler;
591 boolm_CancelTimedOut;
593 static intx_TimeoutFunc(
void* param,
unsigned inttotal_timeout);
594 int(*m_OrigTimeoutFunc)(
void*,
unsigned int);
595 void*m_OrigTimeoutParam;
599 size_tm_OrigTimeout;
600 unsigned intm_BaseTimeout;
601 unsigned intm_TotalTimeout;
602 boolm_AsyncCancelAllowed;
603 boolm_AsyncCancelRequested;
620 const string&
query);
630 #ifdef USE_STRUCT_CS_VARCHAR 646 boollog_it =
true);
650 booldump_results =
true);
654 returnGetConnection().IsMultibyteClientEncoding();
659 returnGetConnection().GetClientEncoding();
678m_DbgInfo->extra_msg =
info;
682 returnm_DbgInfo->extra_msg;
687 returnGetConnection().IsDead();
691GetConnection().SetDead(flag);
698GetConnection(), GetLastParams());
703CBaseCmd::SetHasFailed(flag);
704 if(flag && !GetConnection().IsAlive()) {
707GetConnection(), GetLastParams());
738 voidEnsureActiveStatus(
void);
767 const string&
query);
775 const string& param_name,
777 booldeclare_only =
false 779 voidGetRowCount(
int*
cnt);
785 inline voidDeleteResult(
void);
786 inline voidDeleteResultInternal(
void);
787 inline voidMarkEndOfReply(
void);
789 inline boolHaveResult(
void)
const;
801 boolProcessResultInternal(
CDB_Result& res);
802 inline boolProcessResultInternal(
CS_INTres_type);
806 unsigned intmsg_num);
809 voidDropSybaseCmd(
void);
827 const string&
query);
833 boolCancel(
void)
override;
838 boolSendInternal(
void);
857 const string& lang_query);
863 virtual boolSend(
void);
865 virtual boolHasMoreResults(
void)
const;
866 virtual intRowCount(
void)
const;
869 boolx_AssignParams(
void);
888 const string& proc_name
893 virtual CDBParams& GetBindParams(
void);
895 virtual boolSend(
void);
897 virtual boolHasMoreResults(
void)
const;
898 virtual intRowCount(
void)
const;
901 boolx_AssignParams(
void);
920 const string& cursor_name,
921 const string&
query,
922 unsigned intfetch_size
926 voidCloseForever(
void);
930 virtual boolUpdate(
const string&
table_name,
const string& upd_query);
931 virtual boolUpdateBlob(
unsigned intitem_num,
CDB_Stream&
data,
932 boollog_it =
true);
935 booldump_results =
true);
936 virtual boolDelete(
const string&
table_name);
937 virtual intRowCount(
void)
const;
938 virtual boolCloseCursor(
void);
943 boolProcessResults(
void);
946 boolx_AssignParams(
booljust_declare =
false);
965 const string& cursor_name,
966 const string&
query,
967 unsigned intfetch_size);
972 virtual boolUpdate(
const string&
table_name,
const string& upd_query);
973 virtual boolUpdateBlob(
unsigned intitem_num,
CDB_Stream&
data,
974 boollog_it =
true);
977 booldump_results =
true);
978 virtual boolDelete(
const string&
table_name);
979 virtual intRowCount(
void)
const;
980 virtual boolCloseCursor(
void);
985 voidClearResultSet(
void);
988 returnm_CombinedQuery;
992 boolx_AssignParams(
void);
996unique_ptr<CTL_CursorResultExpl>
m_Res;
1016 void Close(
void);
1022 virtual boolBind(
unsigned intcolumn_num,
CDB_Object* param_ptr);
1023 virtual boolSend(
void);
1024 virtual boolCommitBCPTrans(
void);
1025 virtual boolCancel(
void);
1026 virtual boolEndBCP(
void);
1027 virtual intRowCount(
void)
const;
1034 boolx_AssignParams(
void);
1035 boolx_IsUnicodeClientAPI(
void)
const;
1041 voidx_BlkSetHints(
void);
1060 unsigned intparam_num = GetBindParamsImpl().NofParams();
1091 void Close(
void);
1092 virtual boolCancel(
void);
1095 virtual size_tSendChunk(
const void* chunk_ptr,
size_tnof_bytes);
1097 virtual boolHasMoreResults(
void)
const;
1098 virtual intRowCount(
void)
const;
1104 stringm_UTF8Fragment;
1129 void Close(
void);
1133 virtual bool Fetch(
void);
1139 bool* is_null = 0);
1305{ m_Descriptors.insert(&desc); }
1307{ m_Descriptors.erase(&desc); }
1311 const string& cursor_name) :
1319 virtual boolSkipItem(
void);
1320 virtual boolFetch(
void);
1322 voidx_InvalidateDescriptors(
void);
1341 virtual boolFetch(
void);
1342 virtual intCurrentItemNo(
void)
const;
1343 virtual intGetColumnNum(
void)
const;
1346 virtual size_tReadItem(
void*
buffer,
size_tbuffer_size,
1347 bool* is_null = 0);
1350 returnGetBlobDescriptor(m_CurItemNo);
1353 virtual boolSkipItem(
void);
1373 voidClearFields(
void);
1394 returnGetCTLConn().CheckWhileOpening(rc);
1405 returnm_ActiveCmd ? m_ActiveCmd->GetLastParams() :
NULL;
1411 returnm_ActiveCmd ? m_ActiveCmd->GetRowsInCurrentBatch() : 0
U;
1420 conn.m_OrigTimeout =
conn.GetTimeout();
1421 conn.m_BaseTimeout = 0;
1422 # if NCBI_FTDS_VERSION >= 95 1423 conn.m_TotalTimeout = 0;
1425 conn.m_AsyncCancelAllowed =
true;
1426 conn.m_AsyncCancelRequested =
false;
1427 # if NCBI_FTDS_VERSION < 95 1428 if(
conn.m_OrigTimeout == 0) {
1435CTL_Connection::CAsyncCancelGuard::~CAsyncCancelGuard(
void)
1438m_Conn.SetTimeout(m_Conn.m_OrigTimeout);
1439m_Conn.m_AsyncCancelAllowed =
false;
1443 #ifdef USE_STRUCT_CS_VARCHAR 1458 sizeof(
CS_VARCHAR) -
sizeof(m_Data->str) + m_Data->len);
1540 return(m_Res !=
NULL);
1600 if( HaveResult() ) {
1610m_Res->m_EOR =
true;
1634m_Res.reset(
NULL);
1644 #define CTL_BLOB_DESCRIPTOR_TYPE_MAGNUM 0xc00 1645 #define CTL_BLOB_DESCRIPTOR_TYPE_CURSOR 0xc01 1658 virtual intDescriptorType(
void)
const;
1676 const string& column_name,
1680 intDescriptorType(
void)
const;
1691 #define CTL_ITDESCRIPTOR_TYPE_MAGNUM CTL_BLOB_DESCRIPTOR_TYPE_MAGNUM 1692 #define CTL_ITDESCRIPTOR_TYPE_CURSOR CTL_BLOB_DESCRIPTOR_TYPE_CURSORAutoArray< SBcpBind > & GetBind(void)
AutoArray< SBcpBind > m_BindArray
CS_BLKDESC * x_GetSybaseCmd(void) const
map< CDB_BCPInCmd::EBCP_Hints, string > THintsMap
unique_ptr< CDB_Exception > m_Context
Set only when m_Desc lacks a valid textptr.
void SetValue(const CTempString &s)
CTempString GetValue(void) const
CDB_SendDataCmd * ConnSendDataCmd(I_BlobDescriptor &desc, size_t data_size, bool log_it=true, bool dump_results=true)
virtual bool x_Cancel(ECancelType)
CTL_Connection::TDbgInfo TDbgInfo
bool x_SendData(I_BlobDescriptor &desc, CDB_Stream &img, bool log_it=true)
void SetDead(bool flag=true)
void SetTimedOut(bool val)
void DropCmd(impl::CCommand &cmd)
CRef< TDbgInfo > m_DbgInfo
void SetRetriable(ERetriable val)
CTL_Connection & GetConnection(void)
bool IsMultibyteClientEncoding(void) const
const string & GetExecCntxInfo(void) const
ERetriable GetRetriable(void) const
bool GetTimedOut(void) const
virtual void SetHasFailed(bool flag=true)
void SetExecCntxInfo(const string &info)
const TDbgInfo & GetDbgInfo(void) const
EEncoding GetClientEncoding(void) const
CTL_RowResult * MakeStatusResult(void)
void SetResult(CTL_RowResult *result)
CTL_RowResult * MakeRowResult(void)
void MarkEndOfReply(void)
bool ProcessResultInternal(CDB_Result &res)
void SetSybaseCmd(CS_COMMAND *cmd)
bool HaveResult(void) const
CTL_RowResult * MakeComputeResult(void)
CTL_RowResult * MakeCursorResult(void)
CS_COMMAND * x_GetSybaseCmd(void) const
void DeleteResultInternal(void)
CTL_RowResult & GetResult(void)
CTL_RowResult * MakeParamResult(void)
CTL_ComputeResult(CS_COMMAND *pCmd, CTL_Connection &conn)
bool m_ForCancelInProgress
const TDbgInfo & GetDbgInfo()
bool IsForCancelInProgress(void)
CTL_Connection & GetConnection()
const CDBParams * GetLastParams()
const CDBParams * GetLastParams(void) const
const CTLibContext & GetCTLibContext(void) const
CS_RETCODE CheckSFB(CS_RETCODE rc, const char *msg, unsigned int msg_num)
friend class CTL_CursorCmdExpl
friend class CTL_SendDataCmd
CS_RETCODE Check(CS_RETCODE rc)
ctlib::Connection m_Handle
bool IsCancelInProgress(void) const
bool x_SendData(I_BlobDescriptor &desc, CDB_Stream &img, bool log_it=true)
void SetDead(bool flag=true)
friend class CTL_CursorCmd
bool m_TextPtrProcsLoaded
virtual unsigned int GetRowsInCurrentBatch(void) const
ctlib::Connection & GetNativeConnection(void)
CTL_CmdBase * m_ActiveCmd
unsigned int m_ActivityLevel
CMutex m_CancelLogisticsMutex
bool x_ProcessResultInternal(CS_COMMAND *cmd, CS_INT res_type)
const TDbgInfo & GetDbgInfo(void) const
CTLibContext & GetCTLibContext(void)
virtual CDB_SendDataCmd * SendDataCmd(I_BlobDescriptor &desc, size_t data_size, bool log_it=true, bool dump_results=true)
"Send-data" command
virtual bool Close(void)
Close an open connection.
const ctlib::Connection & GetNativeConnection(void) const
friend class CTL_BCPInCmd
CS_CONNECTION * x_GetSybaseConn(void) const
CTL_CursorResult * m_CursorResult
CTL_CursorResultExpl * GetResultSet(void) const
void ClearResultSet(void)
unique_ptr< CTL_LangCmd > m_LCmd
const string GetCombinedQuery(void) const
void SetResultSet(CTL_CursorResultExpl *res)
unique_ptr< CTL_CursorResultExpl > m_Res
virtual bool SkipItem(void)
Skip result item.
void ClearResultSet(void)
vector< I_BlobDescriptor * > m_BlobDescrs
virtual CDB_Object * GetItem(CDB_Object *item_buff=0, I_Result::EGetItem policy=I_Result::eAppendLOB)
Get a result item (you can use either GetItem or ReadItem).
CTL_LangCmd & GetCmd(void)
virtual size_t ReadItem(void *buffer, size_t buffer_size, bool *is_null=0)
Read a result item body (for BLOB columns, mostly).
CTL_LangCmd const & GetCmd(void) const
vector< CDB_Object * > m_Fields
virtual int GetColumnNum(void) const
Return number of columns in the recordset.
virtual I_BlobDescriptor * GetBlobDescriptor(void)
Get a descriptor for a BLOB column (for SendData).
void SetResultSet(CDB_Result *res)
virtual bool Fetch(void)
Fetch next row.
virtual EDB_ResType ResultType(void) const
Get type of the result.
void FetchAllResultSet(void)
CDB_Result * GetResultSet(void) const
virtual int CurrentItemNo(void) const
Return current item number we can retrieve (0,1,...) Return "-1" if no more items left (or available)...
const string & GetCursorName(void) const
CTL_CursorResult(CS_COMMAND *pCmd, CTL_Connection &conn, const string &cursor_name)
void RegisterDescriptor(CTL_CursorBlobDescriptor &desc)
void UnregisterDescriptor(CTL_CursorBlobDescriptor &desc)
set< CTL_CursorBlobDescriptor * > m_Descriptors
CTL_ParamResult(CS_COMMAND *pCmd, CTL_Connection &conn)
unique_ptr< CDBParams > m_InParams
unsigned char m_BindBuff[2048]
CTL_RowResult(CS_COMMAND *cmd, CTL_Connection &conn)
AutoArray< CS_VOID * > m_BindItem
AutoArray< CS_DATAFMT > m_ColFmt
AutoArray< ENullValue > m_NullValue
const CTL_Connection & GetConnection(void) const
void SetCurrentItemNum(int num)
void CheckIsDead(void) const
static EDB_Type ConvDataType_Ctlib2DBAPI(const CS_DATAFMT &fmt)
AutoArray< CS_SMALLINT > m_Indicator
virtual ~CTL_RowResult(void)
CDB_Object * GetItemInternal(I_Result::EGetItem policy, CS_COMMAND *cmd, CS_INT item_no, CS_DATAFMT &fmt, CDB_Object *item_buf)
CTL_Connection * m_Connect
CTL_Connection & GetConnection(void)
CS_RETCODE Check(CS_RETCODE rc)
AutoArray< CS_INT > m_Copied
CS_COMMAND * x_GetSybaseCmd(void) const
const CDBParams * GetLastParams(void) const
friend class CTL_Connection
const CTL_Connection::TDbgInfo & GetDbgInfo(void) const
void IncCurrentItemNum(void)
CS_RETCODE my_ct_get_data(CS_COMMAND *cmd, CS_INT item, CS_VOID *buffer, CS_INT buflen, CS_INT *outlen, bool &is_null)
int GetCurrentItemNum(void) const
CDB_BlobDescriptor::ETDescriptorType m_DescrType
CTL_StatusResult(CS_COMMAND *pCmd, CTL_Connection &conn)
CS_INT GetLoginRetryCount(void) const
CS_INT GetPacketSize(void) const
CTLibContextRegistry * m_Registry
CS_INT GetLoginLoopDelay(void) const
CS_INT GetTDSVersion(void) const
CS_LOCALE * GetLocale(void) const
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
const CTL_Connection & GetCTLConn(void) const
CS_COMMAND * GetNativeHandle(void) const
CTL_Connection & GetCTLConn(void)
CTL_Connection * m_CTL_Conn
CS_CONNECTION * GetNativeHandle(void) const
const CTLibContext & GetCTLContext(void) const
CTLibContext * m_CTL_Context
CTL_Connection * m_CTL_Conn
CTLibContext & GetCTLContext(void)
void SetDead(bool flag=true)
string GetCmdName(void) const
impl::CConnection & GetConnImpl(void) const
void DropCmd(impl::CCommand &cmd)
CTL_BlobDescriptor CTL_ITDescriptor
CTL_CursorBlobDescriptor CTL_CursorITDescriptor
CS_INT GetCtlibTdsVersion(int version=0)
static CS_CONNECTION * conn
static const char table_name[]
static const column_t columns[]
ERetriable
Can the action be retried?
#define NCBI_DATABASE_THROW_ANNOTATED(ex_class, message, err_code, severity, dbg_info, conn, params)
ECapability
Report if the driver supports this functionality.
EDB_ResType
EDB_ResType::
EBCP_Hints
Type of hint that can be set.
NCBI_XNCBI_EXPORT void Abort(void)
Smart abort function.
@ eDiag_Error
Error message.
bool IsValid(const CSeq_point &pt, CScope *scope)
Checks that point >= 0 and point < length of Bioseq.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
const char * data(void) const
Return a pointer to the array represented.
const char *const kEmptyCStr
Empty "C" string (points to a '\0').
size_type size(void) const
Return the length of the represented array.
#define NCBI_DBAPIDRIVER_CTLIB_EXPORT
unsigned int
A callback function used to compare two keys in a database.
const string version
version string
void Check(const string &value)
const struct ncbi::grid::netcache::search::fields::SIZE size
const GenericPointer< typename T::ValueType > T2 value
static void x_Close(SHttpConnector *uuu)
Static variables safety - create on demand, destroy on application termination.
CRef< T > MakeResult(CRef< T > result)
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
static CS_CONTEXT * context
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4