Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Undo rename of internal VersionStamp in PatternMatcher
  • Loading branch information
cartermp committed May 30, 2019
commit 7b36cd3613fa479282f08fa060e5670f7ecade9c
6 changes: 3 additions & 3 deletions vsintegration/src/FSharp.PatternMatcher/SpellChecker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,16 @@ internal class SpellChecker
{
private const string SerializationFormat = "2";

public PatternMatcherVersionStamp Version { get; }
public VersionStamp Version { get; }
private readonly BKTree _bkTree;

public SpellChecker(PatternMatcherVersionStamp version, BKTree bKTree)
public SpellChecker(VersionStamp version, BKTree bKTree)
{
Version = version;
_bkTree = bKTree;
}

public SpellChecker(PatternMatcherVersionStamp version, IEnumerable<StringSlice> corpus)
public SpellChecker(VersionStamp version, IEnumerable<StringSlice> corpus)
: this(version, BKTree.Create(corpus))
{
}
Expand Down
48 changes: 24 additions & 24 deletions vsintegration/src/FSharp.PatternMatcher/VersionStamp.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ namespace Microsoft.CodeAnalysis
/// <summary>
/// VersionStamp should be only used to compare versions returned by same API.
/// </summary>
internal struct PatternMatcherVersionStamp : IEquatable<PatternMatcherVersionStamp>, IObjectWritable
internal struct VersionStamp : IEquatable<VersionStamp>, IObjectWritable
{
public static PatternMatcherVersionStamp Default => default(PatternMatcherVersionStamp);
public static VersionStamp Default => default(VersionStamp);

private const int GlobalVersionMarker = -1;
private const int InitialGlobalVersion = 10000;
Expand All @@ -36,19 +36,19 @@ internal struct PatternMatcherVersionStamp : IEquatable<PatternMatcherVersionSta
/// </summary>
private readonly int _globalIncrement;

private PatternMatcherVersionStamp(DateTime utcLastModified)
private VersionStamp(DateTime utcLastModified)
: this(utcLastModified, 0)
{
}

private PatternMatcherVersionStamp(DateTime utcLastModified, int localIncrement)
private VersionStamp(DateTime utcLastModified, int localIncrement)
{
_utcLastModified = utcLastModified;
_localIncrement = localIncrement;
_globalIncrement = GetNextGlobalVersion();
}

private PatternMatcherVersionStamp(DateTime utcLastModified, int localIncrement, int globalIncrement)
private VersionStamp(DateTime utcLastModified, int localIncrement, int globalIncrement)
{
_utcLastModified = utcLastModified;
_localIncrement = localIncrement;
Expand All @@ -58,24 +58,24 @@ private PatternMatcherVersionStamp(DateTime utcLastModified, int localIncrement,
/// <summary>
/// Creates a new instance of a VersionStamp.
/// </summary>
public static PatternMatcherVersionStamp Create()
public static VersionStamp Create()
{
return new PatternMatcherVersionStamp(DateTime.UtcNow);
return new VersionStamp(DateTime.UtcNow);
}

/// <summary>
/// Creates a new instance of a version stamp based on the specified DateTime.
/// </summary>
public static PatternMatcherVersionStamp Create(DateTime utcTimeLastModified)
public static VersionStamp Create(DateTime utcTimeLastModified)
{
return new PatternMatcherVersionStamp(utcTimeLastModified);
return new VersionStamp(utcTimeLastModified);
}

/// <summary>
/// compare two different versions and return either one of the versions if there is no collision, otherwise, create a new version
/// that can be used later to compare versions between different items
/// </summary>
public PatternMatcherVersionStamp GetNewerVersion(PatternMatcherVersionStamp version)
public VersionStamp GetNewerVersion(VersionStamp version)
{
// * NOTE *
// in current design/implementation, there are 4 possible ways for a version to be created.
Expand Down Expand Up @@ -106,7 +106,7 @@ public PatternMatcherVersionStamp GetNewerVersion(PatternMatcherVersionStamp ver

// mark it as global version
// global version can't be moved to newer version.
return new PatternMatcherVersionStamp(_utcLastModified, (thisGlobalVersion > thatGlobalVersion) ? thisGlobalVersion : thatGlobalVersion, GlobalVersionMarker);
return new VersionStamp(_utcLastModified, (thisGlobalVersion > thatGlobalVersion) ? thisGlobalVersion : thatGlobalVersion, GlobalVersionMarker);
}

return version;
Expand All @@ -116,15 +116,15 @@ public PatternMatcherVersionStamp GetNewerVersion(PatternMatcherVersionStamp ver
/// Gets a new VersionStamp that is guaranteed to be newer than its base one
/// this should only be used for same item to move it to newer version
/// </summary>
public PatternMatcherVersionStamp GetNewerVersion()
public VersionStamp GetNewerVersion()
{
// global version can't be moved to newer version
Contract.Requires(_globalIncrement != GlobalVersionMarker);

var now = DateTime.UtcNow;
var incr = (now == _utcLastModified) ? _localIncrement + 1 : 0;

return new PatternMatcherVersionStamp(now, incr);
return new VersionStamp(now, incr);
}

/// <summary>
Expand All @@ -143,15 +143,15 @@ public override int GetHashCode()

public override bool Equals(object obj)
{
if (obj is PatternMatcherVersionStamp)
if (obj is VersionStamp)
{
return this.Equals((PatternMatcherVersionStamp)obj);
return this.Equals((VersionStamp)obj);
}

return false;
}

public bool Equals(PatternMatcherVersionStamp version)
public bool Equals(VersionStamp version)
{
if (_utcLastModified == version._utcLastModified)
{
Expand All @@ -161,20 +161,20 @@ public bool Equals(PatternMatcherVersionStamp version)
return false;
}

public static bool operator ==(PatternMatcherVersionStamp left, PatternMatcherVersionStamp right)
public static bool operator ==(VersionStamp left, VersionStamp right)
{
return left.Equals(right);
}

public static bool operator !=(PatternMatcherVersionStamp left, PatternMatcherVersionStamp right)
public static bool operator !=(VersionStamp left, VersionStamp right)
{
return !left.Equals(right);
}

/// <summary>
/// check whether given persisted version is re-usable
/// </summary>
internal static bool CanReusePersistedVersion(PatternMatcherVersionStamp baseVersion, PatternMatcherVersionStamp persistedVersion)
internal static bool CanReusePersistedVersion(VersionStamp baseVersion, VersionStamp persistedVersion)
{
if (baseVersion == persistedVersion)
{
Expand Down Expand Up @@ -202,16 +202,16 @@ internal void WriteTo(ObjectWriter writer)
writer.WriteInt32(_globalIncrement);
}

internal static PatternMatcherVersionStamp ReadFrom(ObjectReader reader)
internal static VersionStamp ReadFrom(ObjectReader reader)
{
var raw = reader.ReadInt64();
var localIncrement = reader.ReadInt32();
var globalIncrement = reader.ReadInt32();

return new PatternMatcherVersionStamp(DateTime.FromBinary(raw), localIncrement, globalIncrement);
return new VersionStamp(DateTime.FromBinary(raw), localIncrement, globalIncrement);
}

private static int GetGlobalVersion(PatternMatcherVersionStamp version)
private static int GetGlobalVersion(VersionStamp version)
{
// global increment < 0 means it is a global version which has its global increment in local increment
return version._globalIncrement >= 0 ? version._globalIncrement : version._localIncrement;
Expand All @@ -227,15 +227,15 @@ private static int GetNextGlobalVersion()

// this will let versions to be compared safely between multiple items
// without worrying about collision within same session
var globalVersion = Interlocked.Increment(ref PatternMatcherVersionStamp.s_globalVersion);
var globalVersion = Interlocked.Increment(ref VersionStamp.s_globalVersion);

return globalVersion;
}

/// <summary>
/// True if this VersionStamp is newer than the specified one.
/// </summary>
internal bool TestOnly_IsNewerThan(PatternMatcherVersionStamp version)
internal bool TestOnly_IsNewerThan(VersionStamp version)
{
if (_utcLastModified > version._utcLastModified)
{
Expand Down