logthread.cpp

来自「基于Linux下Epoll技术的EchoSvr」· C++ 代码 · 共 88 行

CPP
88
字号
#include "LogThread.h"
#include "Log.h"

LogThread::LogThread(int maxLog,char* ip,int port,char* username,char* password,char*dbname) 
{
	this->maxLog = maxLog;
	strcpy(this->ip,ip);
	this->port= port;
	strcpy(this->username,username);
	strcpy(this->password,password);
	strcpy(this->dbname,dbname);
}

LogThread::~LogThread()
{
	
}
void LogThread::ReportMO(unsigned short id,int size)
{
		//clients[id]->MO+=size;
		char t[20];
		char sql[100];
		current(t);
		sprintf(sql,"call REPORT_TRANSFER(%u,0,%d,'%s',0,'DGS01')",
					id,
					size,
					t);
		pushLog(sql);	
}
void LogThread::ReportMT(unsigned short id,int size)
{
		//clients[id]->MT+=size;
		char t[20];
		char sql[100];
		current(t);
		sprintf(sql,"call REPORT_TRANSFER(%u,1,%d,'%s',0,'DGS01')",
					id,
					size,
					t);
		pushLog(sql);		
}
void LogThread::ReportAuthResult(unsigned short id,int result)
{	
	char t[20];
	char sql[100];
	current(t);
	sprintf(sql,"call REPORT_AUTH_RESULT(%u,%d,'%s','DGS01')",id,result,t);
	pushLog(sql);
}	

void LogThread::ReportOnline(unsigned short id,char* ip,int port)
{	
	char t[20];
	char sql[100];
	current(t);	
	sprintf(sql,"call REPORT_STATUS(%u,'%s','%s','%s',%d,'DGS01',0)",id,t,t,ip,port);
	pushLog(sql);
}	

void LogThread::ReportOffline(unsigned short id)
{	
	char t[20];
	char sql[100];
	current(t);	
	sprintf(sql,"call REPORT_STATUS(%u,'%s','%s',' ',0,'DGS01',1)",id,t,t,ip,port);
	pushLog(sql);
}	
void LogThread::pushLog(char* log)
{
	if(g_sqls.size()<maxLog)
		g_sqls.push(log);
}		
void LogThread::Run()
{
	while(1)
	{
		string sql;
		//debug_output("sqls:%d ...........\n",g_sqls.size());
		if(g_sqls.pop(sql))
		{
		   //debug_output("%s\n",sql.c_str());
		   usleep(200000);
		}
		else
			sleep(2);
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?