Ejemplo n.º 1
0
 public ulong AppendCommitPoint(CommitPoint newCommitPoint, bool overwrite = false)
 {
     if (overwrite)
     {
         Logging.LogDebug("AppendCommitPoint: Overwrite requested. Deleting existing master file at '{0}'",
                          _masterFilePath);
         _persistenceManager.DeleteFile(_masterFilePath);
         _commitPoints.Clear();
     }
     if (!_persistenceManager.FileExists(_masterFilePath))
     {
         Logging.LogDebug("AppendCommitPoint: Master file not found at '{0}'. Creating new master file.",
                          _masterFilePath);
         using (var stream = _persistenceManager.GetOutputStream(_masterFilePath, FileMode.Create))
         {
             Save(stream);
         }
     }
     using (var stream = _persistenceManager.GetOutputStream(_masterFilePath, FileMode.Open))
     {
         stream.Seek(0, SeekOrigin.End);
         newCommitPoint.Save(stream);
         _commitPoints.TryAdd(stream.Length - CommitPoint.RecordSize, newCommitPoint);
         return(newCommitPoint.CommitNumber);
     }
 }
Ejemplo n.º 2
0
 public ulong AppendCommitPoint(CommitPoint newCommitPoint, bool overwrite = false)
 {
     if (overwrite)
     {
         Logging.LogDebug("AppendCommitPoint: Overwrite requested. Deleting existing master file at '{0}'",
                          _masterFilePath);
         _persistenceManager.DeleteFile(_masterFilePath);
     }
     if (!_persistenceManager.FileExists(_masterFilePath))
     {
         Logging.LogDebug("AppendCommitPoint: Master file not found at '{0}'. Creating new master file.",
                          _masterFilePath);
         using (var stream = _persistenceManager.GetOutputStream(_masterFilePath, FileMode.Create))
         {
             Save(stream);
         }
     }
     using (var stream = _persistenceManager.GetOutputStream(_masterFilePath, FileMode.Open))
     {
         stream.Seek(0, SeekOrigin.End);
         newCommitPoint.Save(stream);
         return newCommitPoint.CommitNumber;
     }
 }