SqlServer
SqlServer 类执行客户端的 SQL 请求。
以下描述了 SqlServer 的构造函数。
SqlServer(
engine,
port,
bufferSize = 64 * 1024,
nThreads = 8,
listenQueueSize = 5,
handler = NULL,
localDomain = false,
sslParameters = NULL,
authenticationRequired = false,
interruptTimeout = 100,
compressionLevel = 0
);
参数
engine
McoSqlEngine*
本地的 McoSqlEngine 实例。
port
int
服务器端口。
bufferSize
size_t
传输缓冲区的大小。客户端查询执行的结果将被放置在此缓冲区中。如果结果数据源无法放入缓冲区,则查询结果将分批发送给客户端。期间,事务将一直保持锁定,直到所有结果都发送给客户端。
nThreads
size_t
服务器生成的最优线程数。服务器会根据客户端请求的到达情况生成相应数量的线程。每个线程都会处理来自客户端的请求,直到客户端关闭连接。之后,该线程会被返回到空闲线程池中,或者在生成的线程数超过指定的最优数量时被终止。
listenQueueSize
int
服务器可同时接受的最大连接数。
handler
error_handler_t
一个可选的错误处理程序。
localDomain
bool
表示RSQL通信使用Unix域套接字而不是网络TCP套接字,仅适用于服务器和客户端在同一台主机上时。
sslParameters
void*
指向包含 SSL 连接设置的 mco_ssl_params_t 结构的指针。
authenticationRequired
bool
指示客户端是否需要进行身份验证。
interruptTimeout
int
从客户端轮询中断的周期(以毫秒为单位)。若为 0,则禁用中断。
compressionLevel
int
压缩级别:0 = 不压缩;1 = 最高速度,9 = 最佳压缩。默认值为 0 。
此构造函数使用的 OpenParameters 结构中指定参数与上述构造函数中定义一致。
SqlServer(const OpenParameters ¶ms);
struct OpenParameters {
McoSqlEngine *engine;
int port;
size_t bufferSize;
size_t nThreads;
int listenQueueSize;
error_handler_t handler;
bool localDomain;
void * sslParameters;
bool authenticationRequired;
int interruptTimeout;
const char *netInterface;
int nGcThreads;
int gcPeriod;
OpenParameters(McoSqlEngine *eng, int p) :
engine(eng), port(p),
bufferSize(64 * 1024),
nThreads(8),
listenQueueSize(5),
handler(0),
localDomain(false),
sslParameters(0),
authenticationRequired(false),
interruptTimeout(100),
netInterface(0),
nGcThreads(0),
gcPeriod(100) {}
};
以下列出了 SqlServer 提供的方法:
start
void start()
在指定端口打开一个套接字并接受客户端连接请求启动服务器。
stop
void stop()
停止接受连接请求并关闭服务器套接字。
getSessionsInfo
void getSessionsInfo(session_info_handler_t handler, void* context = NULL)
枚举处于等待状态的会话,然后是活动会话。
regSessionEvent
void regSessionEvent(session_info_handler_t handler, void* context = NULL)
注册一个回调函数以接收新会话开始/停止事件。
regQueryInfoEvent
void regQueryInfoEvent(query_info_handler_t handler, void* context = NULL)
注册一个回调函数以接收查询统计事件。
~SqlServer
~SqlServer()
析构函数。