并行处理之引用计数与状态的使用(三)
r(long Attrib, const char* AValue, long ALen);
private:
// 执行初始化/释放
void DoInit();
void DoFreeing() { FEventObj->DoFreeing(this); }
// 执行打开/关闭
long DoOpen();
void DoClose(bool ANeedClose);
// 执行断开连接
void DoDisconnect();
void CallOnDisconnect();
// 执行 RC 事件的回调方法
void DoRecvData(const void* AData, long ASize);
private:
void* FData; // 自定义数据
TKYCritSect* FLock; // 状态锁
TRCConnection* FConnObj; // RC 连接对象
TRFConnEvent* FEventObj; // 事件对象
TObjState FState; // 状态
long FObjTimes; // 对象次数
long FRefCount; // 引用计数
Longword FCallTimeout; // 调用超时时长(毫秒)
TRFInfo FRFInfo; // 存储服务器信息
Longword FLastTick; // 读取最后一次 RFDateTime 的 tick 值
TDateTime FDeltaTime; // 存储服务器的当前时间差值
TRFCOnDisconnect FOnDisconnect; // OnDisconnect 回调事件函数
private:
// RC 连接的回调函数
static void __stdcall _DoRCCallback(long AConnID, long AEvent,
long ACmdID, long AReturn);
static void __stdcall _DoRCRecvData(long AConnID, long ASize, const void* AData);
};