diff -r e5db279308d7 -r cc99f7c673c7 gameServer2/src/protocol/mod.rs --- a/gameServer2/src/protocol/mod.rs Fri Dec 07 18:21:06 2018 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -use netbuf; -use std::{ - io::{Read, Result} -}; -use nom::{ - IResult, Err -}; - -pub mod messages; -#[cfg(test)] -pub mod test; -mod parser; - -pub struct ProtocolDecoder { - buf: netbuf::Buf, - consumed: usize, -} - -impl ProtocolDecoder { - pub fn new() -> ProtocolDecoder { - ProtocolDecoder { - buf: netbuf::Buf::new(), - consumed: 0, - } - } - - pub fn read_from(&mut self, stream: &mut R) -> Result { - self.buf.read_from(stream) - } - - pub fn extract_messages(&mut self) -> Vec { - let parse_result = parser::extract_messages(&self.buf[..]); - match parse_result { - Ok((tail, msgs)) => { - self.consumed = self.buf.len() - self.consumed - tail.len(); - msgs - }, - Err(Err::Incomplete(_)) => unreachable!(), - Err(Err::Error(_)) | Err(Err::Failure(_)) => unreachable!(), - } - } - - pub fn sweep(&mut self) { - self.buf.consume(self.consumed); - self.consumed = 0; - } -}