Exemple #1
0
 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;
     }
 }
Exemple #2
0
 /// <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);
 }