Ejemplo n.º 1
0
 public static RavenStreamHead ToRavenStreamHead(this ISnapshot snapshot)
 {
     return(new RavenStreamHead
     {
         Id = RavenStreamHead.GetStreamHeadId(snapshot.BucketId, snapshot.StreamId),
         BucketId = snapshot.BucketId,
         StreamId = snapshot.StreamId,
         HeadRevision = snapshot.StreamRevision,
         SnapshotRevision = snapshot.StreamRevision
     });
 }
Ejemplo n.º 2
0
 public static RavenStreamHead ToRavenStreamHead(this CommitAttempt commit)
 {
     return(new RavenStreamHead
     {
         Id = RavenStreamHead.GetStreamHeadId(commit.BucketId, commit.StreamId),
         BucketId = commit.BucketId,
         StreamId = commit.StreamId,
         HeadRevision = commit.StreamRevision,
         SnapshotRevision = 0
     });
 }
 private void SaveStreamHead(RavenStreamHead streamHead)
 {
     if (_consistentQueries)
     {
         SaveStreamHeadAsync(streamHead);
     }
     else
     {
         ThreadPool.QueueUserWorkItem(x => SaveStreamHeadAsync(streamHead), null);
     }
 }
 private void SaveStreamHeadAsync(RavenStreamHead updated)
 {
     TryRaven(() =>
     {
         using (TransactionScope scope = OpenCommandScope())
             using (IDocumentSession session = _store.OpenSession())
             {
                 RavenStreamHead current = session.Load <RavenStreamHead>(RavenStreamHead.GetStreamHeadId(updated.BucketId, updated.StreamId)) ?? updated;
                 current.HeadRevision    = updated.HeadRevision;
                 if (updated.SnapshotRevision > 0)
                 {
                     current.SnapshotRevision = updated.SnapshotRevision;
                 }
                 session.Advanced.UseOptimisticConcurrency = false;
                 session.Store(current);
                 session.SaveChanges();
                 scope.Complete(); // if this fails it's no big deal, stream heads can be updated whenever
             }
         return(true);
     });
 }
Ejemplo n.º 5
0
 public static StreamHead ToStreamHead(this RavenStreamHead streamHead)
 {
     return(new StreamHead(streamHead.BucketId, streamHead.StreamId, streamHead.HeadRevision, streamHead.SnapshotRevision));
 }