/// <exception cref="System.IO.IOException"/>
 public virtual void Recover(TimelineStateStore.TimelineServiceState state)
 {
     Log.Info("Recovering " + GetType().Name);
     foreach (DelegationKey key in state.GetTokenMasterKeyState())
     {
         AddKey(key);
     }
     this.delegationTokenSequenceNumber = state.GetLatestSequenceNumber();
     foreach (KeyValuePair <TimelineDelegationTokenIdentifier, long> entry in state.GetTokenState
                  ())
     {
         AddPersistedDelegationToken(entry.Key, entry.Value);
     }
 }