author | unc0rr |
Wed, 25 Jan 2017 23:48:23 +0300 | |
changeset 12144 | 589a2d7d3dc5 |
parent 12143 | 7e874846afe3 |
child 12145 | a482c7a5f6e3 |
permissions | -rw-r--r-- |
12144 | 1 |
use mio; |
2 |
use std::io::Write; |
|
3 |
use std::io; |
|
4 |
||
5 |
use super::server::HWServer; |
|
6 |
use protocol::messages::HWProtocolMessage; |
|
7 |
use protocol::messages::HWServerMessage::*; |
|
8 |
use super::handlers; |
|
12138 | 9 |
|
10 |
pub enum Action { |
|
11 |
SendMe(String), |
|
12139 | 12 |
RemoveClient, |
13 |
ByeClient(String), |
|
12142
4d7d41be1993
Start refactoring path from getting message from client to reacting to it
unc0rr
parents:
12141
diff
changeset
|
14 |
ReactProtocolMessage(HWProtocolMessage), |
12138 | 15 |
} |
12144 | 16 |
|
17 |
use self::Action::*; |
|
18 |
||
19 |
pub fn run_action(server: &mut HWServer, token: mio::Token, poll: &mio::Poll, action: Action) { |
|
20 |
match action { |
|
21 |
SendMe(msg) => |
|
22 |
server.send(token, &msg), |
|
23 |
ByeClient(msg) => { |
|
24 |
server.react(token, poll, vec![ |
|
25 |
SendMe(Bye(&msg).to_raw_protocol()), |
|
26 |
RemoveClient, |
|
27 |
]); |
|
28 |
}, |
|
29 |
RemoveClient => { |
|
30 |
server.clients[token].deregister(poll); |
|
31 |
server.clients.remove(token); |
|
32 |
}, |
|
33 |
ReactProtocolMessage(msg) => |
|
34 |
handlers::handle(server, token, poll, msg), |
|
35 |
//_ => unimplemented!(), |
|
36 |
} |
|
37 |
} |