aboutsummaryrefslogtreecommitdiffstats
path: root/src/synchronizer.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/synchronizer.rs')
-rw-r--r--src/synchronizer.rs39
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> {