Commit d5ca30fa authored by Marc Gravell's avatar Marc Gravell

The .Assert() names were amibguous (unclear of intent), and I didn't like the stack-copy semantic

parent e7a3485e
......@@ -588,16 +588,16 @@ void MatchResult(RawResult result)
if (connectionType == ConnectionType.Subscription && result.Type == ResultType.MultiBulk)
{ // out of band message does not match to a queued message
var items = result.GetItems();
if (items.Length >= 3 && items[0].Assert(message))
if (items.Length >= 3 && items[0].IsEqual(message))
{
// special-case the configuration change broadcasts (we don't keep that in the usual pub/sub registry)
var configChanged = multiplexer.ConfigurationChangedChannel;
if (configChanged != null && items[1].Assert(configChanged))
if (configChanged != null && items[1].IsEqual(configChanged))
{
EndPoint blame = null;
try
{
if (!items[2].Assert(RedisLiterals.ByteWildcard))
if (!items[2].IsEqual(RedisLiterals.ByteWildcard))
{
blame = Format.TryParseEndPoint(items[2].GetString());
}
......@@ -616,7 +616,7 @@ void MatchResult(RawResult result)
}
return; // AND STOP PROCESSING!
}
else if (items.Length >= 4 && items[0].Assert(pmessage))
else if (items.Length >= 4 && items[0].IsEqual(pmessage))
{
var channel = items[2].AsRedisChannel(ChannelPrefix);
multiplexer.Trace("PMESSAGE: " + channel, physicalName);
......
......@@ -117,7 +117,7 @@ internal RedisValue AsRedisValue()
throw new InvalidCastException("Cannot convert to RedisValue: " + resultType);
}
internal unsafe bool Assert(byte[] expected)
internal unsafe bool IsEqual(byte[] expected)
{
if (expected == null) throw new ArgumentNullException("expected");
if (expected.Length != count) return false;
......
......@@ -169,10 +169,9 @@ internal static bool AssertStarts(byte[] value, byte[] expected)
return true;
}
internal RedisChannel Assert()
internal void AssertNotNull()
{
if (IsNull) throw new ArgumentException("A null key is not valid in this context");
return this;
}
internal RedisChannel Clone()
......
......@@ -1958,10 +1958,10 @@ public ScriptEvalMessage(int db, CommandFlags flags, RedisCommand command, strin
if (script == null) throw new ArgumentNullException("script");
this.script = script;
for (int i = 0; i < keys.Length; i++)
keys[i].Assert();
keys[i].AssertNotNull();
this.keys = keys;
for (int i = 0; i < values.Length; i++)
values[i].Assert();
values[i].AssertNotNull();
this.values = values;
}
public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy)
......@@ -2021,10 +2021,10 @@ sealed class SortedSetCombineAndStoreCommandMessage : Message.CommandKeyBase //
public SortedSetCombineAndStoreCommandMessage(int db, CommandFlags flags, RedisCommand command, RedisKey destination, RedisKey[] keys, RedisValue[] values) : base(db, flags, command, destination)
{
for (int i = 0; i < keys.Length; i++)
keys[i].Assert();
keys[i].AssertNotNull();
this.keys = keys;
for (int i = 0; i < values.Length; i++)
values[i].Assert();
values[i].AssertNotNull();
this.values = values;
}
public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy)
......
......@@ -151,10 +151,9 @@ internal RedisValue AsRedisValue()
return value;
}
internal RedisKey Assert()
internal void AssertNotNull()
{
if (IsNull) throw new ArgumentException("A null key is not valid in this context");
return this;
}
/// <summary>
......
......@@ -143,7 +143,7 @@ class QueuedProcessor : ResultProcessor<bool>
static readonly byte[] QUEUED = Encoding.UTF8.GetBytes("QUEUED");
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
{
if(result.Type == ResultType.SimpleString && result.Assert(QUEUED))
if(result.Type == ResultType.SimpleString && result.IsEqual(QUEUED))
{
var q = message as QueuedMessage;
if (q != null) q.WasQueued = true;
......@@ -394,7 +394,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
switch (result.Type)
{
case ResultType.SimpleString:
if (tran.IsAborted && result.Assert(RedisLiterals.BytesOK))
if (tran.IsAborted && result.IsEqual(RedisLiterals.BytesOK))
{
connection.Multiplexer.Trace("Acknowledging UNWATCH (aborted electively)");
SetResult(message, false);
......
......@@ -221,10 +221,9 @@ internal static bool TryParseInt64(byte[] value, int offset, int count, out long
}
}
internal RedisValue Assert()
internal void AssertNotNull()
{
if (IsNull) throw new ArgumentException("A null value is not valid in this context");
return this;
}
/// <summary>
/// Creates a new RedisValue from an Int32
......
......@@ -301,8 +301,8 @@ public static bool TryGet(RawResult result, out bool value)
case ResultType.Integer:
case ResultType.SimpleString:
case ResultType.BulkString:
if (result.Assert(one)) { value = true; return true; }
else if (result.Assert(zero)) { value = false; return true; }
if (result.IsEqual(one)) { value = true; return true; }
else if (result.IsEqual(zero)) { value = false; return true; }
break;
}
value = false;
......@@ -507,7 +507,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
for (int i = 0; i < count; i++)
{
var key = arr[i * 2];
if (key.Assert(timeout) && arr[(i * 2) + 1].TryGetInt64(out i64))
if (key.IsEqual(timeout) && arr[(i * 2) + 1].TryGetInt64(out i64))
{
// note the configuration is in seconds
int timeoutSeconds = checked((int)i64), targetSeconds;
......@@ -525,21 +525,21 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
server.WriteEverySeconds = targetSeconds;
}
}
else if (key.Assert(databases) && arr[(i * 2) + 1].TryGetInt64(out i64))
else if (key.IsEqual(databases) && arr[(i * 2) + 1].TryGetInt64(out i64))
{
int dbCount = checked((int)i64);
server.Multiplexer.Trace("Auto-configured databases: " + dbCount);
server.Databases = dbCount;
}
else if (key.Assert(slave_read_only))
else if (key.IsEqual(slave_read_only))
{
var val = arr[(i * 2) + 1];
if (val.Assert(yes))
if (val.IsEqual(yes))
{
server.SlaveReadOnly = true;
server.Multiplexer.Trace("Auto-configured slave-read-only: true");
}
else if (val.Assert(no))
else if (val.IsEqual(no))
{
server.SlaveReadOnly = false;
server.Multiplexer.Trace("Auto-configured slave-read-only: false");
......@@ -572,7 +572,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
switch (result.Type)
{
case ResultType.SimpleString:
if (result.Assert(RedisLiterals.BytesOK))
if (result.IsEqual(RedisLiterals.BytesOK))
{
SetResult(message, true);
}
......@@ -749,7 +749,7 @@ public ExpectBasicStringProcessor(byte[] value)
}
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
{
if (result.Assert(expected))
if (result.IsEqual(expected))
{
SetResult(message, true);
return true;
......@@ -1042,7 +1042,7 @@ public override bool SetResult(PhysicalConnection connection, Message message, R
var final = base.SetResult(connection, message, result);
if (result.IsError)
{
if (result.Assert(authFail))
if (result.IsEqual(authFail))
{
connection.RecordConnectionFailed(ConnectionFailureType.AuthenticationFailure);
}
......@@ -1064,10 +1064,10 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
switch(message.Command)
{
case RedisCommand.ECHO:
happy = result.Type == ResultType.BulkString && (!establishConnection || result.Assert(connection.Multiplexer.UniqueId));
happy = result.Type == ResultType.BulkString && (!establishConnection || result.IsEqual(connection.Multiplexer.UniqueId));
break;
case RedisCommand.PING:
happy = result.Type == ResultType.SimpleString && result.Assert(RedisLiterals.BytesPONG);
happy = result.Type == ResultType.SimpleString && result.IsEqual(RedisLiterals.BytesPONG);
break;
case RedisCommand.TIME:
happy = result.Type == ResultType.MultiBulk && result.GetItems().Length == 2;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment