// exception.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <exception>
#include <vector>
#include <windows.h>
#include <list>
#include <vector>
using namespace std;
typedef struct client_t{
int fd;
int iMode;
std::string file;
}CLIENT_T;
typedef struct cliInfo{
cliInfo(int fd,int iMode, string file) : fd(fd), iMode(iMode), file(file){}
void clearRegCode()
{
lsMsgCode.clear();
}
void delMsgCode(int msgcode)
{
list<int>::iterator it = lsMsgCode.begin();
while(it != lsMsgCode.end())
{
// if();
}
}
bool addMsgCode(int code)
{
if(isExist(code))
{
return false;
}
else
{
lsMsgCode.push_back(code);
printf("add code %d \n", code);
return true;
}
}
bool isExist(int code)
{
list<int>::iterator it = lsMsgCode.begin();
while(it != lsMsgCode.end())
{
if(code == *it)
{
return true;
}
++it;
}
return false;
}
int fd;
int iMode;
std::string file;
std::list<int> lsMsgCode;
}CLIINFO_T;
class CClientsManager{
public:
CClientsManager(){}
~CClientsManager(){}
bool addClient(CLIINFO_T cliifo)
{
list<CLIINFO_T>::iterator it = registed.begin();
while(it != registed.end())
{
if(cliifo.fd == it->fd)
{
printf("该fd已存在,注册失败。\n");
return false;
}
++it;
}
registed.push_back(cliifo);
printf("fd:%d已经注册成功\n", cliifo.fd);
return true;
}
bool delClient(int fd)
{
return true;
}
//给客户端注册消息码
bool clientRegMsgCode(int fd, int msgcode)
{
list<CLIINFO_T>::iterator it = registed.begin();
while(it!=registed.end())
{
++it;
}
}
//现实所有客户端注册信息
void showClientInfo()
{
list<CLIINFO_T>::iterator it = registed.begin();
while(it != registed.end())
{
printf("client[1] : fd = %d, iMode = %d, file = %s. reg Code:", it->fd, it->iMode, it->file.c_str());
list<int>::iterator msgCodeIt = it->lsMsgCode.begin();
while(msgCodeIt!=it->lsMsgCode.end())
{
printf("%d ", *msgCodeIt);
++msgCodeIt;
}
++it;
}
}
private:
std::list<CLIINFO_T> registed;
};
int _tmain(int argc, _TCHAR* argv[])
{
CClientsManager clients;
CLIINFO_T cliifo(1,100,"socket1");
cliifo.addMsgCode(1);
cliifo.addMsgCode(2);
cliifo.addMsgCode(3);
cliifo.addMsgCode(4);
cliifo.addMsgCode(5);
clients.addClient(cliifo);
clients.showClientInfo();
Sleep(10);
exit(0);
}