diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2017-12-12 11:41:36 -0800 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2017-12-12 11:41:36 -0800 |
commit | 1a0131928e54fce0623afe1bea5799277b40be6a (patch) | |
tree | 210646de95a842270c17ed81ed7bee09d3db03fc /src/synchronizer.rs | |
parent | 66bf3345a944e087cf8b66a2fbbceb143873c5e4 (diff) | |
download | geniza-1a0131928e54fce0623afe1bea5799277b40be6a.tar.gz geniza-1a0131928e54fce0623afe1bea5799277b40be6a.zip |
start flushing out new APIs
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> { |