public void TakeBackupIfApplicable(Message <D> LatestEditsReceived) { if (LatestEditsReceived == null) { return; //|| LatestEditsReceived.Diffs.Count==0) return; } if (Shadow.Version == LatestEditsReceived.SenderPeerVersion) // Shadow.PeerVersion == (LatestEditsReceived.Diffs.Select(f=>f.Version).Max()+1)) { BackupShadow = new BackupShadowState <PATCHER, D, S>(Shadow.StateObject); BackupShadow.PeerVersion = Shadow.PeerVersion; BackupShadow.Version = Shadow.Version; } }
/// <summary> /// Initialize with a shadow that isn't the same as live. Useful when starting a session where /// we may not be able to tell the peer what the initial state is, but the server can initialize /// with a default state. /// </summary> /// <param name="o"></param> /// <param name="shadow"></param> public void Initialize(PATCHER live, PATCHER shadow, PATCHER backupshadow) { Live = new LiveState <PATCHER, D, S>(live); Shadow = new ShadowState <PATCHER, D, S>(shadow); BackupShadow = new BackupShadowState <PATCHER, D, S>(backupshadow); }