1 #ifndef DBAPI_DRIVER_IMPL___DBAPI_IMPL_CONNECTION__HPP
2 #define DBAPI_DRIVER_IMPL___DBAPI_IMPL_CONNECTION__HPP
66 friend class ncbi::CDBConnectionFactory;
67 friend class ncbi::CDB_Connection;
72 bool isBCPable =
false
84 return *m_DriverContext;
89 return *m_DriverContext;
92 bool IsMultibyteClientEncoding(
void)
const;
97 m_ExceptionContext->extra_msg =
msg;
101 return m_ExceptionContext->extra_msg;
117 const string& GetDatabaseName(
void)
const;
122 return *m_ExceptionContext;
127 return m_RequestedServer;
137 return m_OpenFinished;
141 m_OpenFinished =
true;
162 unsigned int batch_size = 1) = 0;
167 bool dump_results =
true)
173 bool log_it =
true) = 0;
175 virtual void SetDatabaseName(
const string& name);
185 const string& ServerName(
void)
const;
186 Uint4 Host(
void)
const;
187 Uint2 Port(
void)
const;
188 const string& UserName(
void)
const;
189 const string& Password(
void)
const;
195 bool IsReusable(
void)
const;
198 const string& PoolName(
void)
const;
227 virtual void SetBlobSize(
size_t nof_bytes);
230 virtual size_t GetTimeout(
void)
const;
231 virtual size_t GetCancelTimeout(
void)
const;
233 virtual TSockHandle GetLowLevelHandle(
void)
const;
235 virtual string GetDriverName(
void)
const;
236 virtual string GetVersionString(
void)
const;
248 m_UserData.Reset(
data);
267 _ASSERT(m_MsgHandlers.GetSize() > 0);
268 return m_MsgHandlers;
272 _ASSERT(m_MsgHandlers.GetSize() > 0);
273 return m_MsgHandlers;
277 void DeleteAllCommands(
void);
282 void ReleaseInterface(
void);
285 void DetachResultProcessor(
void);
287 void CheckCanOpen(
void);
288 void MarkClosed(
void);
302 return m_SecureLogin;
307 return *m_ExceptionContext;
318 return m_OpeningMsgHandlers;
323 return const_cast<CObject*
>(m_UserData.GetPointerOrNull());
326 void x_RecordServer(
const CDBServer& server);
328 void x_DisableReuse(
void);
bool IsBCPable(void) const
unsigned int m_PoolMinSize
virtual bool Close(void)=0
Close an open connection.
CDBHandlerStack & GetMsgHandlers(void)
virtual bool Abort(void)=0
abort the connection Attention: it is not recommended to use this method unless you absolutely have t...
virtual void SetTimeout(size_t nof_secs)=0
const string & GetRequestedServer(void) const
const CDriverContext & GetCDriverContext(void) const
const string & GetPassword(void) const
virtual CDB_SendDataCmd * SendDataCmd(I_BlobDescriptor &desc, size_t data_size, bool log_it=true, bool dump_results=true)=0
"Send-data" command
const CDBHandlerStack & GetMsgHandlers(void) const
CRef< TDbgInfo > m_ExceptionContext
const string & GetServerName(void) const
CDB_ResultProcessor * GetResultProcessor(void) const
virtual CDB_RPCCmd * RPC(const string &rpc_name)=0
Remote procedure call.
CDBConnParams::EServerType m_ServerType
const CDBHandlerStack & GetOpeningMsgHandlers(void) const
void SetTextImageSize(size_t nof_bytes)
CDriverContext * m_DriverContext
unsigned int GetReuseCount(void) const
void SetServerType(CDBConnParams::EServerType type)
bool HasSecureLogin(void) const
void SetExtraMsg(const string &msg)
CDBHandlerStack m_MsgHandlers
virtual void SetCancelTimeout(size_t nof_secs)=0
virtual bool IsAlive(void)=0
Check out if connection is alive (this function doesn't ping the server, it just checks the status of...
unsigned int m_ReuseCount
virtual CDB_BCPInCmd * BCPIn(const string &table_name)=0
"Bulk copy in" command
CDB_Exception::SContext TDbgInfo
CTimeSpan m_PoolIdleTimeParam
const string & GetExtraMsg(void) const
virtual I_DriverContext::TConnectionMode ConnectMode(void) const =0
Get the bitmask for the connection mode (BCP, secure login, ...)
unsigned int m_PoolMaxConnUse
virtual bool Refresh(void)=0
Reset the connection to the "ready" state (cancel all active commands)
deque< impl::CCommand * > TCommandList
virtual unsigned int GetRowsInCurrentBatch(void) const
CDriverContext & GetCDriverContext(void)
const string & GetUserName(void) const
CInterfaceHook< CDB_Connection > m_Interface
virtual bool SendData(I_BlobDescriptor &desc, CDB_Stream &lob, bool log_it=true)=0
Shortcut to send text and image to the server without using the "Send-data" command (SendDataCmd)
void SetUserData(CObject *data)
unsigned int m_PoolMaxSize
bool IsOpeningFinished(void) const
CDBHandlerStack m_OpeningMsgHandlers
const string m_RequestedServer
virtual CDB_CursorCmd * Cursor(const string &cursor_name, const string &query, unsigned int batch_size=1)=0
Cursor.
virtual const TDbgInfo & GetDbgInfo(void) const
CObject * x_GetUserData(void) const
TDbgInfo & SetDbgInfo(void)
CRef< CObject > m_UserData
CDB_ResultProcessor * m_ResProc
virtual CDB_LangCmd * LangCmd(const string &lang_query)=0
These methods: LangCmd(), RPC(), BCPIn(), Cursor() and SendDataCmd() create and return a "command" ob...
static const char table_name[]
@ eNoOwnership
No ownership is assumed.
uint32_t Uint4
4-byte (32-bit) unsigned integer
uint16_t Uint2
2-byte (16-bit) unsigned integer
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
enum ENcbiOwnership EOwnership
Ownership relations between objects.
#define NCBI_DBAPIDRIVER_EXPORT
Defines: CTimeFormat - storage class for time format.
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)