Browse Source

Handle RoomListRequest.

wip
Titouan Rigoudy 9 years ago
parent
commit
b2b0e86ac9
2 changed files with 22 additions and 1 deletions
  1. +21
    -0
      src/client.rs
  2. +1
    -1
      src/control/response.rs

+ 21
- 0
src/client.rs View File

@ -92,14 +92,23 @@ impl Client {
}
}
/*==========================*
* CONTROL REQUEST HANDLING *
*==========================*/
fn handle_control_request(&mut self, request: control::Request) {
match request {
control::Request::LoginStatusRequest =>
self.handle_login_status_request(),
control::Request::RoomListRequest =>
self.handle_room_list_request(),
/*
_ =>{
error!("Unhandled control request: {:?}", request);
},
*/
}
}
@ -126,6 +135,18 @@ impl Client {
self.control_tx.send(control::Response::LoginStatusResponse(response));
}
fn handle_room_list_request(&mut self) {
let mut response = control::RoomListResponse{ rooms: Vec::new() };
for (room_name, room) in self.rooms.iter() {
response.rooms.push((room_name.clone(), room.clone()));
}
self.control_tx.send(control::Response::RoomListResponse(response));
}
/*==========================*
* SERVER RESPONSE HANDLING *
*==========================*/
fn handle_server_response(&mut self, response: ServerResponse) {
match response {
ServerResponse::LoginResponse(response) =>


+ 1
- 1
src/control/response.rs View File

@ -25,5 +25,5 @@ pub enum LoginStatusResponse {
#[derive(Debug, RustcDecodable, RustcEncodable)]
pub struct RoomListResponse {
rooms: Vec<room::Room>,
pub rooms: Vec<(String, room::Room)>,
}

Loading…
Cancel
Save