diff options
Diffstat (limited to 'src/synchronizer.rs')
-rw-r--r-- | src/synchronizer.rs | 39 |
1 files changed, 28 insertions, 11 deletions
diff --git a/src/synchronizer.rs b/src/synchronizer.rs index 216df6e..4e803fb 100644 --- a/src/synchronizer.rs +++ b/src/synchronizer.rs @@ -4,18 +4,35 @@ use network_msgs::*; use bitfield::*; use protocol::{DatNetMessage, DatConnection}; use sleep_register::HyperRegister; +use peer::DatPeer; +use sleep_register::SleepDirRegister; + +pub enum SyncMode { + RxMax, + RxEndless, + TxEndless, + RxTxEndless, +} + +pub struct Synchronizer { + peers: Vec<DatPeer>, + registers: Vec<SleepDirRegister>, + mode: SyncMode, + wanted: Bitfield, + inflight: Vec<Vec<u64>>, +} + +impl Synchronizer { -// Synchronizer -// register_keys -// peers: vec -// registers: HyperRegisters -// mode: enum -// state: enum -// wanted: bitfield -// requested: vec -// -// fn next_wanted() -> Option((reg, u64)) -// fn tick() + pub fn next_wanted(&mut self, reg: u64) -> Option<(u64, u64)> { + // XXX + None + } + + pub fn tick(&mut self) -> Result<()> { + Ok(()) + } +} fn max_index(have_msg: &Have) -> Result<u64> { |