From f1eb221e8878248563e01749eff7fd7fbc695bef Mon Sep 17 00:00:00 2001 From: Titouan Rigoudy Date: Sun, 8 May 2016 17:59:55 +0200 Subject: [PATCH] Handle RoomTickersResponse. --- src/client.rs | 12 ++++++++++++ src/room.rs | 16 ++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/client.rs b/src/client.rs index 17c40a9..9f975de 100644 --- a/src/client.rs +++ b/src/client.rs @@ -277,6 +277,9 @@ impl Client { ServerResponse::RoomMessageResponse(response) => self.handle_room_message_response(response), + ServerResponse::RoomTickersResponse(response) => + self.handle_room_tickers_response(response), + ServerResponse::RoomUserJoinedResponse(response) => self.handle_room_user_joined_response(response), @@ -395,6 +398,15 @@ impl Client { control::Response::RoomMessageResponse(control_response)); } + fn handle_room_tickers_response(&mut self, response: RoomTickersResponse) { + let result = self.rooms.set_tickers( + &response.room_name, response.tickers + ); + if let Err(e) = result { + error!("RoomTickersResponse: {}", e); + } + } + fn handle_room_user_joined_response( &mut self, response: RoomUserJoinedResponse) { diff --git a/src/room.rs b/src/room.rs index 1accf95..ac2ad4a 100644 --- a/src/room.rs +++ b/src/room.rs @@ -62,6 +62,8 @@ pub struct Room { pub members: collections::HashSet, /// The messages sent to this chat room, in chronological order. pub messages: Vec, + /// The tickers displayed in this room. + pub tickers: Vec<(String, String)> } impl Room { @@ -76,6 +78,7 @@ impl Room { operators: collections::HashSet::new(), members: collections::HashSet::new(), messages: Vec::new(), + tickers: Vec::new(), } } } @@ -337,5 +340,18 @@ impl RoomMap { room.members.remove(user_name); Ok(()) } + + /*---------* + * Tickers * + *---------*/ + + pub fn set_tickers( + &mut self, room_name: &str, tickers: Vec<(String, String)>) + -> Result<(), Error> + { + let room = try!(self.get_mut_strict(room_name)); + room.tickers = tickers; + Ok(()) + } }