/// <summary>Private helper methods to load Delegation tokens from fsimage</summary>
 /// <exception cref="System.IO.IOException"/>
 private void LoadCurrentTokens(DataInput @in)
 {
     lock (this)
     {
         StartupProgress prog = NameNode.GetStartupProgress();
         Step            step = new Step(StepType.DelegationTokens);
         prog.BeginStep(Phase.LoadingFsimage, step);
         int numberOfTokens = @in.ReadInt();
         prog.SetTotal(Phase.LoadingFsimage, step, numberOfTokens);
         StartupProgress.Counter counter = prog.GetCounter(Phase.LoadingFsimage, step);
         for (int i = 0; i < numberOfTokens; i++)
         {
             DelegationTokenIdentifier id = new DelegationTokenIdentifier();
             id.ReadFields(@in);
             long expiryTime = @in.ReadLong();
             this._enclosing.AddPersistedDelegationToken(id, expiryTime);
             counter.Increment();
         }
         prog.EndStep(Phase.LoadingFsimage, step);
     }
 }
 /// <summary>Private helper methods to save delegation keys and tokens in fsimage</summary>
 /// <exception cref="System.IO.IOException"/>
 private void SaveCurrentTokens(DataOutputStream @out, string sdPath)
 {
     lock (this)
     {
         StartupProgress prog = NameNode.GetStartupProgress();
         Step            step = new Step(StepType.DelegationTokens, sdPath);
         prog.BeginStep(Phase.SavingCheckpoint, step);
         prog.SetTotal(Phase.SavingCheckpoint, step, this._enclosing.currentTokens.Count);
         StartupProgress.Counter counter = prog.GetCounter(Phase.SavingCheckpoint, step);
         @out.WriteInt(this._enclosing.currentTokens.Count);
         IEnumerator <DelegationTokenIdentifier> iter = this._enclosing.currentTokens.Keys.
                                                        GetEnumerator();
         while (iter.HasNext())
         {
             DelegationTokenIdentifier id = iter.Next();
             id.Write(@out);
             AbstractDelegationTokenSecretManager.DelegationTokenInformation info = this._enclosing
                                                                                    .currentTokens[id];
             @out.WriteLong(info.GetRenewDate());
             counter.Increment();
         }
         prog.EndStep(Phase.SavingCheckpoint, step);
     }
 }