chiark / gitweb /
wip synch
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 28 Dec 2020 17:47:25 +0000 (17:47 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 28 Dec 2020 17:47:25 +0000 (17:47 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/cmdlistener.rs
src/commands.rs
wdriver/wdt-simple.rs

index bca44a28947b696721d5a89ccf81592c93ad965f..892bc520138794d3f6d1e676326a072a1033289f 100644 (file)
@@ -358,6 +358,18 @@ fn execute_game_insn<'cs, 'igr, 'ig: 'igr>(
        ig)
     },
 
+    Insn::Synch => {
+      let (mut ig, _) = cs.check_acl(&ag, ig, PCH::Instance, &[TP::Play])?;
+      let mut buf = PrepareUpdatesBuffer::new(&mut ig, None, None);
+      let gen = buf.gen();
+      drop(buf); // does update
+      (U{ pcs: vec![], // we handled the update ourselves,
+          log: vec![], // return no update info
+          raw: None },
+       Resp::Synch(gen),
+       ig)
+    },
+
     Insn::ListPieces => readonly(cs,ag,ig, &[TP::ViewPublic], |ig|{
       let pieces = ig.gs.pieces.iter().map(|(piece,p)|{
         let &PieceState { pos, face, .. } = p;
index 888ff534d97982406c0176c242a9683c6b786b27..e71d895036a3d38283158f127a93efde9c8f768f 100644 (file)
@@ -70,6 +70,7 @@ pub enum MgmtResponse {
 pub enum MgmtGameInstruction {
   Noop,
   Info,
+  Synch,
   SetTableSize(Pos),
   SetTableColour(ColourSpec),
 
@@ -98,6 +99,7 @@ pub struct MgmtPlayerDetails {
 pub enum MgmtGameResponse {
   Fine,
   Info(MgmtGameResponseGameInfo),
+  Synch(Generation),
 
   Pieces(Vec<MgmtGamePieceInfo>),
 
index 16d8a53f277923bc4dfde4658885f274fac0a1ca..60d6bfaac0d6e8e6b2133107497db49ba10a1f0c 100644 (file)
@@ -10,6 +10,9 @@ fn main(){
   let [alice, bob] : [Window; 2] =
     su.setup_static_users()?.try_into().unwrap();
   debug!("ok {:?} {:?}", alice, bob);
+
+//  alice.synch()?;
+
   sleep(750 * MS);
   debug!("finishing");
 }