forked from p308945/MyNetWorkLib
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMyServer.cpp
More file actions
71 lines (67 loc) · 1.72 KB
/
MyServer.cpp
File metadata and controls
71 lines (67 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*************************************************************************
> File Name: MyServer.cpp
> Author: huangyun
> Mail: 895175589@qq.com
> Created Time: Sat 08 Aug 2015 04:56:34 PM
************************************************************************/
#include "MyServer.h"
#include "../base/MySockTaskManager.h"
#include "MyServerMsgProcess.h"
#include "MyServerTask.h"
namespace MyNameSpace
{
bool MyServer::init(int port)
{
//TODO inti load config... and so on
if (!mTaskPool.init())
{
std::cerr<<__FUNCTION__<<"("<<__LINE__<<"): MySockTaskPool init fail"<<std::endl;
return false;
}
if (!MyBaseServer::init(port))
{
std::cerr<<__FUNCTION__<<"("<<__LINE__<<"): MyBaseServer init fail"<<std::endl;
return false;
}
if (!MyServerMsgProcess::getInstance().start())
{
std::cerr<<__FUNCTION__<<"("<<__LINE__<<"): MyServerMsgProcess start fail"<<std::endl;
return false;
}
return true;
}
bool MyServer::reload()
{
//TODO reload config
return true;
}
void MyServer::initCallBack()
{
}
bool MyServer::newTask(int sock)
{
std::cerr<<__FUNCTION__<<"("<<__LINE__<<"): new task"<<std::endl;
++mUniqueId;
MyServerTask *task = new MyServerTask(sock, mUniqueId);
if (NULL == task)
{
std::cerr<<__FUNCTION__<<"("<<__LINE__<<"): new task fail"<<std::endl;
return false;
}
MySockTaskManager::getInstance().addTask(task);
if (!mTaskPool.addTask(task))
{
MySockTaskManager::getInstance().removeTask(task);
delete task;
std::cerr<<__FUNCTION__<<"("<<__LINE__<<"): add task fail"<<std::endl;
return false;
}
return true;
}
void MyServer::fini()
{
MyBaseServer::fini();
mTaskPool.fini();
MyServerMsgProcess::getInstance().terminate();
}
}