Browse Source

Add proto::server::SayRoom{Request, Response}.

wip
Titouan Rigoudy 9 years ago
parent
commit
b50cc29d58
3 changed files with 63 additions and 11 deletions
  1. +11
    -10
      src/proto/server/constants.rs
  2. +22
    -0
      src/proto/server/request.rs
  3. +30
    -1
      src/proto/server/response.rs

+ 11
- 10
src/proto/server/constants.rs View File

@ -1,11 +1,12 @@
pub const CODE_LOGIN: u32 = 1;
pub const CODE_SET_LISTEN_PORT: u32 = 2;
pub const CODE_PEER_ADDRESS: u32 = 3;
pub const CODE_JOIN_ROOM: u32 = 14;
pub const CODE_USER_JOINED_ROOM: u32 = 16;
pub const CODE_CONNECT_TO_PEER: u32 = 18;
pub const CODE_ROOM_LIST: u32 = 64;
pub const CODE_PRIVILEGED_USERS: u32 = 69;
pub const CODE_PARENT_MIN_SPEED: u32 = 83;
pub const CODE_LOGIN: u32 = 1;
pub const CODE_SET_LISTEN_PORT: u32 = 2;
pub const CODE_PEER_ADDRESS: u32 = 3;
pub const CODE_SAY_ROOM: u32 = 13;
pub const CODE_JOIN_ROOM: u32 = 14;
pub const CODE_USER_JOINED_ROOM: u32 = 16;
pub const CODE_CONNECT_TO_PEER: u32 = 18;
pub const CODE_ROOM_LIST: u32 = 64;
pub const CODE_PRIVILEGED_USERS: u32 = 69;
pub const CODE_PARENT_MIN_SPEED: u32 = 83;
pub const CODE_PARENT_SPEED_RATIO: u32 = 84;
pub const CODE_WISHLIST_INTERVAL: u32 = 104;
pub const CODE_WISHLIST_INTERVAL: u32 = 104;

+ 22
- 0
src/proto/server/request.rs View File

@ -20,6 +20,7 @@ pub enum ServerRequest {
LoginRequest(LoginRequest),
PeerAddressRequest(PeerAddressRequest),
RoomListRequest,
SayRoomRequest(SayRoomRequest),
SetListenPortRequest(SetListenPortRequest),
}
@ -38,6 +39,9 @@ impl ServerRequest {
ServerRequest::RoomListRequest =>
return Ok(Packet::new(CODE_ROOM_LIST)),
ServerRequest::SayRoomRequest(ref request) =>
(Packet::new(CODE_SAY_ROOM), request),
ServerRequest::SetListenPortRequest(ref request) =>
(Packet::new(CODE_SET_LISTEN_PORT), request),
};
@ -135,6 +139,24 @@ impl WriteToPacket for PeerAddressRequest {
}
}
/*==========*
* SAY ROOM *
*==========*/
#[derive(Debug)]
pub struct SayRoomRequest {
pub room_name: String,
pub message: String,
}
impl WriteToPacket for SayRoomRequest {
fn write_to_packet(&self, packet: &mut Packet) -> io::Result<()> {
try!(packet.write_str(&self.room_name));
try!(packet.write_str(&self.message));
Ok(())
}
}
/*=================*
* SET LISTEN PORT *
*=================*/


+ 30
- 1
src/proto/server/response.rs View File

@ -1,4 +1,3 @@
use std::io;
use std::net;
use super::constants::*;
@ -27,6 +26,7 @@ pub enum ServerResponse {
PeerAddressResponse(PeerAddressResponse),
PrivilegedUsersResponse(PrivilegedUsersResponse),
RoomListResponse(RoomListResponse),
SayRoomResponse(SayRoomResponse),
UserJoinedRoomResponse(UserJoinedRoomResponse),
WishlistIntervalResponse(WishlistIntervalResponse),
@ -71,6 +71,11 @@ impl FromPacket for ServerResponse {
try!(RoomListResponse::from_packet(packet))
),
CODE_SAY_ROOM =>
ServerResponse::SayRoomResponse(
try!(SayRoomResponse::from_packet(packet))
),
CODE_USER_JOINED_ROOM =>
ServerResponse::UserJoinedRoomResponse(
try!(UserJoinedRoomResponse::from_packet(packet))
@ -448,6 +453,30 @@ impl RoomListResponse {
}
}
/*==========*
* SAY ROOM *
*==========*/
#[derive(Debug)]
pub struct SayRoomResponse {
pub room_name: String,
pub user_name: String,
pub message: String,
}
impl FromPacket for SayRoomResponse {
fn from_packet(packet: &mut Packet) -> result::Result<Self> {
let room_name = try!(packet.read_str());
let user_name = try!(packet.read_str());
let message = try!(packet.read_str());
Ok(SayRoomResponse {
room_name: room_name,
user_name: user_name,
message: message,
})
}
}
/*==================*
* USER JOINED ROOM *
*==================*/


Loading…
Cancel
Save