Browse Source

Add FileSearchRequest, Response.

wip
Titouan Rigoudy 9 years ago
parent
commit
4bdab9bd32
3 changed files with 56 additions and 0 deletions
  1. +1
    -0
      src/proto/server/constants.rs
  2. +24
    -0
      src/proto/server/request.rs
  3. +31
    -0
      src/proto/server/response.rs

+ 1
- 0
src/proto/server/constants.rs View File

@ -8,6 +8,7 @@ pub const CODE_ROOM_LEAVE: u32 = 15;
pub const CODE_ROOM_USER_JOINED: u32 = 16; pub const CODE_ROOM_USER_JOINED: u32 = 16;
pub const CODE_ROOM_USER_LEFT: u32 = 17; pub const CODE_ROOM_USER_LEFT: u32 = 17;
pub const CODE_CONNECT_TO_PEER: u32 = 18; pub const CODE_CONNECT_TO_PEER: u32 = 18;
pub const CODE_FILE_SEARCH: u32 = 26;
pub const CODE_USER_INFO: u32 = 36; pub const CODE_USER_INFO: u32 = 36;
pub const CODE_ROOM_LIST: u32 = 64; pub const CODE_ROOM_LIST: u32 = 64;
pub const CODE_PRIVILEGED_USERS: u32 = 69; pub const CODE_PRIVILEGED_USERS: u32 = 69;


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

@ -14,6 +14,7 @@ use super::super::packet::{MutPacket, WriteToPacket};
pub enum ServerRequest { pub enum ServerRequest {
CannotConnectRequest(CannotConnectRequest), CannotConnectRequest(CannotConnectRequest),
ConnectToPeerRequest(ConnectToPeerRequest), ConnectToPeerRequest(ConnectToPeerRequest),
FileSearchRequest(FileSearchRequest),
LoginRequest(LoginRequest), LoginRequest(LoginRequest),
PeerAddressRequest(PeerAddressRequest), PeerAddressRequest(PeerAddressRequest),
RoomJoinRequest(RoomJoinRequest), RoomJoinRequest(RoomJoinRequest),
@ -37,6 +38,11 @@ impl WriteToPacket for ServerRequest {
try!(packet.write_value(request)); try!(packet.write_value(request));
}, },
ServerRequest::FileSearchRequest(ref request) => {
try!(packet.write_value(&CODE_FILE_SEARCH));
try!(packet.write_value(request));
},
ServerRequest::LoginRequest(ref request) => { ServerRequest::LoginRequest(ref request) => {
try!(packet.write_value(&CODE_LOGIN)); try!(packet.write_value(&CODE_LOGIN));
try!(packet.write_value(request)); try!(packet.write_value(request));
@ -124,6 +130,24 @@ impl WriteToPacket for ConnectToPeerRequest {
} }
} }
/*=============*
* FILE SEARCH *
*=============*/
#[derive(Debug)]
pub struct FileSearchRequest {
pub ticket: u32,
pub query: String,
}
impl WriteToPacket for FileSearchRequest {
fn write_to_packet(&self, packet: &mut MutPacket) -> io::Result<()> {
try!(packet.write_value(&self.ticket));
try!(packet.write_value(&self.query));
Ok(())
}
}
/*=======* /*=======*
* LOGIN * * LOGIN *
*=======*/ *=======*/


+ 31
- 0
src/proto/server/response.rs View File

@ -12,6 +12,7 @@ use user;
#[derive(Debug)] #[derive(Debug)]
pub enum ServerResponse { pub enum ServerResponse {
ConnectToPeerResponse(ConnectToPeerResponse), ConnectToPeerResponse(ConnectToPeerResponse),
FileSearchResponse(FileSearchResponse),
LoginResponse(LoginResponse), LoginResponse(LoginResponse),
PeerAddressResponse(PeerAddressResponse), PeerAddressResponse(PeerAddressResponse),
PrivilegedUsersResponse(PrivilegedUsersResponse), PrivilegedUsersResponse(PrivilegedUsersResponse),
@ -42,6 +43,11 @@ impl ReadFromPacket for ServerResponse {
try!(packet.read_value()) try!(packet.read_value())
), ),
CODE_FILE_SEARCH =>
ServerResponse::FileSearchResponse(
try!(packet.read_value())
),
CODE_LOGIN => CODE_LOGIN =>
ServerResponse::LoginResponse( ServerResponse::LoginResponse(
try!(packet.read_value()) try!(packet.read_value())
@ -162,6 +168,31 @@ impl ReadFromPacket for ConnectToPeerResponse {
} }
} }
/*=============*
* FILE SEARCH *
*=============*/
#[derive(Debug)]
pub struct FileSearchResponse {
pub user_name: String,
pub ticket: u32,
pub query: String,
}
impl ReadFromPacket for FileSearchResponse {
fn read_from_packet(packet: &mut Packet) -> Result<Self, PacketReadError> {
let user_name = try!(packet.read_value());
let ticket = try!(packet.read_value());
let query = try!(packet.read_value());
Ok(FileSearchResponse {
user_name: user_name,
ticket: ticket,
query: query,
})
}
}
/*=======* /*=======*
* LOGIN * * LOGIN *
*=======*/ *=======*/


Loading…
Cancel
Save