public virtual void Publish(IRevision revision) { lock (padlock) { EnsureOpen(); if (currentRevision != null) { int compare = revision.CompareTo(currentRevision.Revision); if (compare == 0) { // same revision published again, ignore but release it revision.Release(); return; } if (compare < 0) { revision.Release(); throw new ArgumentException(string.Format("Cannot publish an older revision: rev={0} current={1}", revision, currentRevision), "revision"); } } RefCountedRevision oldRevision = currentRevision; currentRevision = new RefCountedRevision(revision); if (oldRevision != null) { oldRevision.DecRef(); } CheckExpiredSessions(); } }
public ReplicationSession(SessionToken session, RefCountedRevision revision) { Session = session; Revision = revision; lastAccessTime = Stopwatch.GetTimestamp(); // LUCENENET: Use the most accurate timer to determine expiration }
public ReplicationSession(SessionToken session, RefCountedRevision revision) { Session = session; Revision = revision; lastAccessTime = Stopwatch.GetTimestamp(); }