|
用C++npv2 Select_Reactor_Log_Server 改写的例子
class Logging_Event_Handler :public QObject,public ACE_Event_Handler
{
Q_OBJECT
protected:
// File where log records are written.
ACE_FILE_IO log_file_,data_file_,para_file_;
ACE_FILE_Connector connector_data,connector_para,connector_log;
// Connection to remote peer.
Logging_Handler logging_handler_;
QTimer* _timer_checkdb;
QTimer* _timer_dealdata;
otl_connect db_handle_; /*数据库句柄*/
string connStr_; /*数据库连接串*/
bool wr_fileflag;
typedef ACE_Message_Queue<ACE_NULL_SYNCH> ACEMESQUE;
ACEMESQUE *msg_queue_;
ACE_Message_Block *data_block_;
public:
// Initialize the base class and logging handler.
Logging_Event_Handler (ACE_Reactor *reactor)
: ACE_Event_Handler (reactor),
logging_handler_ (log_file_) {
connStr_=dbconnStr_;
_timer_checkdb=new QTimer(this);
_timer_dealdata=new QTimer(this);
wr_fileflag=0;
msg_queue_=new ACEMESQUE;
};
问题是在每个新链接到来的时候都会重新执行构造函数!
open代码:
if (!connect(_timer_checkdb, SIGNAL(timeout()), this, SLOT(On_timer_checkdb())))
ACE_ERROR_RETURN((LM_ERROR,ACE_TEXT("定时器错误")),-1);
if(!connect(_timer_dealdata,SIGNAL(timeout()),this,SLO |
|