Send unsent client changes to server

This commit is contained in:
Nicholas Kariniemi 2015-08-15 16:38:20 +03:00
parent cd94b6a966
commit da0541518e

View file

@ -4,15 +4,22 @@ channel input, render, up, down, save, saved:STATES
apply(state, patch) = (state + patch) % S apply(state, patch) = (state + patch) % S
diff(state1, state2) = (state2 - state1) % S diff(state1, state2) = (state2 - state1) % S
empty(patch) = patch == 0
CLIENT(i, state, shadow) = CLIENT(i, state, shadow) =
input?new_state input?new_state
-> up!diff(shadow, new_state) -> up!diff(shadow, new_state)
-> CLIENT(i, new_state, shadow) -> CLIENT(i, new_state, shadow)
[] down?patch [] down?patch
-> if patch != 0 -> if empty(patch)
then render!apply(state, patch) -> CLIENT(i, apply(state, patch), apply(shadow, patch)) then CLIENT(i, state, state)
else CLIENT(i, state, state) else
if diff(apply(shadow, patch), apply(state, patch)) != 0
then up!diff(apply(shadow, patch), apply(state, patch))
-> render!apply(state, patch)
-> CLIENT(i, apply(shadow, patch), apply(state, patch))
else render!apply(state, patch)
-> CLIENT(i, apply(shadow, patch), apply(state, patch))
SERVER(i, shadow) = SERVER(i, shadow) =
up?patch up?patch