From b2145131ccde0a33b9840ac04c8b7d79e733ae12 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Wed, 8 Jan 2025 11:14:01 +0100 Subject: reset --- snapshot/src/manager.rs | 140 ------------------------------------------------ 1 file changed, 140 deletions(-) delete mode 100644 snapshot/src/manager.rs (limited to 'snapshot/src/manager.rs') diff --git a/snapshot/src/manager.rs b/snapshot/src/manager.rs deleted file mode 100644 index 65d0c72..0000000 --- a/snapshot/src/manager.rs +++ /dev/null @@ -1,140 +0,0 @@ -use Delta; -use DeltaReader; -use DeltaReceiver; -use ReceivedDelta; -use Snap; -use Storage; -use format; -use gamenet::msg::system; -use packer::Unpacker; -use receiver; -use snap; -use storage; -use warn::Warn; -use warn::wrap; - -#[derive(Clone, Debug, Eq, PartialEq)] -pub enum Error { - Receiver(receiver::Error), - Snap(snap::Error), - Storage(storage::Error), -} - -#[derive(Clone, Debug, Eq, PartialEq)] -pub enum Warning { - Receiver(receiver::Warning), - Snap(format::Warning), - Storage(storage::Warning), -} - -impl From for Error { - fn from(err: receiver::Error) -> Error { - Error::Receiver(err) - } -} - -impl From for Error { - fn from(err: snap::Error) -> Error { - Error::Snap(err) - } -} - -impl From for Error { - fn from(err: storage::Error) -> Error { - Error::Storage(err) - } -} - -impl From for Warning { - fn from(w: receiver::Warning) -> Warning { - Warning::Receiver(w) - } -} - -impl From for Warning { - fn from(w: format::Warning) -> Warning { - Warning::Snap(w) - } -} - -impl From for Warning { - fn from(w: storage::Warning) -> Warning { - Warning::Storage(w) - } -} - -#[derive(Clone, Default)] -struct ManagerInner { - temp_delta: Delta, - reader: DeltaReader, - storage: Storage, -} - -#[derive(Clone, Default)] -pub struct Manager { - inner: ManagerInner, - receiver: DeltaReceiver, -} - -impl Manager { - pub fn new() -> Manager { - Default::default() - } - pub fn reset(&mut self) { - self.inner.storage.reset(); - self.receiver.reset(); - } - pub fn ack_tick(&self) -> Option { - self.inner.storage.ack_tick() - } - pub fn snap_empty(&mut self, warn: &mut W, object_size: O, snap: system::SnapEmpty) - -> Result, Error> - where W: Warn, - O: FnMut(u16) -> Option, - { - let res = self.receiver.snap_empty(wrap(warn), snap); - self.inner.handle_msg(warn, object_size, res) - } - pub fn snap_single(&mut self, warn: &mut W, object_size: O, snap: system::SnapSingle) - -> Result, Error> - where W: Warn, - O: FnMut(u16) -> Option, - { - let res = self.receiver.snap_single(wrap(warn), snap); - self.inner.handle_msg(warn, object_size, res) - } - pub fn snap(&mut self, warn: &mut W, object_size: O, snap: system::Snap) - -> Result, Error> - where W: Warn, - O: FnMut(u16) -> Option, - { - let res = self.receiver.snap(wrap(warn), snap); - self.inner.handle_msg(warn, object_size, res) - } -} - -impl ManagerInner { - fn handle_msg(&mut self, warn: &mut W, object_size: O, res: Result, receiver::Error>) - -> Result, Error> - where W: Warn, - O: FnMut(u16) -> Option, - { - Ok(match res? { - Some(delta) => Some(self.add_delta(warn, object_size, delta)?), - None => None, - }) - } - fn add_delta(&mut self, warn: &mut W, object_size: O, delta: ReceivedDelta) - -> Result<&Snap, Error> - where W: Warn, - O: FnMut(u16) -> Option, - { - let crc = delta.data_and_crc.map(|d| d.1); - if let Some((data, _)) = delta.data_and_crc { - self.reader.read(wrap(warn), &mut self.temp_delta, object_size, &mut Unpacker::new(data))?; - } else { - self.temp_delta.clear(); - } - Ok(self.storage.add_delta(wrap(warn), crc, delta.delta_tick, delta.tick, &self.temp_delta)?) - } -} -- cgit v1.2.3-70-g09d2