Commit 285cd4a6 authored by Nick Craver's avatar Nick Craver

Clenaup: Message

parent c5034d50
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
namespace StackExchange.Redis namespace StackExchange.Redis
{ {
sealed class LoggingMessage : Message internal sealed class LoggingMessage : Message
{ {
public readonly TextWriter log; public readonly TextWriter log;
private readonly Message tail; private readonly Message tail;
...@@ -17,22 +17,20 @@ public static Message Create(TextWriter log, Message tail) ...@@ -17,22 +17,20 @@ public static Message Create(TextWriter log, Message tail)
{ {
return log == null ? tail : new LoggingMessage(log, tail); return log == null ? tail : new LoggingMessage(log, tail);
} }
private LoggingMessage(TextWriter log, Message tail) : base(tail.Db, tail.Flags, tail.Command) private LoggingMessage(TextWriter log, Message tail) : base(tail.Db, tail.Flags, tail.Command)
{ {
this.log = log; this.log = log;
this.tail = tail; this.tail = tail;
FlagsRaw = tail.FlagsRaw; FlagsRaw = tail.FlagsRaw;
} }
public override string CommandAndKey => tail.CommandAndKey; public override string CommandAndKey => tail.CommandAndKey;
public override void AppendStormLog(StringBuilder sb) public override void AppendStormLog(StringBuilder sb) => tail.AppendStormLog(sb);
{
tail.AppendStormLog(sb); public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy) => tail.GetHashSlot(serverSelectionStrategy);
}
public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy)
{
return tail.GetHashSlot(serverSelectionStrategy);
}
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
{ {
try try
...@@ -46,9 +44,8 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -46,9 +44,8 @@ internal override void WriteImpl(PhysicalConnection physical)
public TextWriter Log => log; public TextWriter Log => log;
} }
abstract class Message : ICompletable internal abstract class Message : ICompletable
{ {
public static readonly Message[] EmptyArray = new Message[0]; public static readonly Message[] EmptyArray = new Message[0];
public readonly int Db; public readonly int Db;
...@@ -58,12 +55,20 @@ abstract class Message : ICompletable ...@@ -58,12 +55,20 @@ abstract class Message : ICompletable
private const CommandFlags AskingFlag = (CommandFlags)32, private const CommandFlags AskingFlag = (CommandFlags)32,
ScriptUnavailableFlag = (CommandFlags)256; ScriptUnavailableFlag = (CommandFlags)256;
const CommandFlags MaskMasterServerPreference = CommandFlags.DemandMaster | CommandFlags.DemandSlave | CommandFlags.PreferMaster | CommandFlags.PreferSlave; private const CommandFlags MaskMasterServerPreference = CommandFlags.DemandMaster
| CommandFlags.DemandSlave
private const CommandFlags UserSelectableFlags | CommandFlags.PreferMaster
= CommandFlags.None | CommandFlags.DemandMaster | CommandFlags.DemandSlave | CommandFlags.PreferSlave;
| CommandFlags.PreferMaster | CommandFlags.PreferSlave
| CommandFlags.HighPriority | CommandFlags.FireAndForget | CommandFlags.NoRedirect | CommandFlags.NoScriptCache; private const CommandFlags UserSelectableFlags = CommandFlags.None
| CommandFlags.DemandMaster
| CommandFlags.DemandSlave
| CommandFlags.PreferMaster
| CommandFlags.PreferSlave
| CommandFlags.HighPriority
| CommandFlags.FireAndForget
| CommandFlags.NoRedirect
| CommandFlags.NoScriptCache;
private CommandFlags flags; private CommandFlags flags;
internal CommandFlags FlagsRaw { get { return flags; } set { flags = value; } } internal CommandFlags FlagsRaw { get { return flags; } set { flags = value; } }
...@@ -397,6 +402,7 @@ public virtual void AppendStormLog(StringBuilder sb) ...@@ -397,6 +402,7 @@ public virtual void AppendStormLog(StringBuilder sb)
if (Db >= 0) sb.Append(Db).Append(':'); if (Db >= 0) sb.Append(Db).Append(':');
sb.Append(CommandAndKey); sb.Append(CommandAndKey);
} }
public virtual int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy) { return ServerSelectionStrategy.NoSlot; } public virtual int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy) { return ServerSelectionStrategy.NoSlot; }
public bool IsMasterOnly() public bool IsMasterOnly()
{ {
...@@ -518,6 +524,7 @@ internal static CommandFlags GetMasterSlaveFlags(CommandFlags flags) ...@@ -518,6 +524,7 @@ internal static CommandFlags GetMasterSlaveFlags(CommandFlags flags)
// for the purposes of the switch, we only care about two bits // for the purposes of the switch, we only care about two bits
return flags & MaskMasterServerPreference; return flags & MaskMasterServerPreference;
} }
internal static bool RequiresDatabase(RedisCommand command) internal static bool RequiresDatabase(RedisCommand command)
{ {
switch (command) switch (command)
...@@ -615,6 +622,7 @@ internal void SetPreferSlave() ...@@ -615,6 +622,7 @@ internal void SetPreferSlave()
{ {
flags = (flags & ~MaskMasterServerPreference) | CommandFlags.PreferSlave; flags = (flags & ~MaskMasterServerPreference) | CommandFlags.PreferSlave;
} }
internal void SetSource(ResultProcessor resultProcessor, ResultBox resultBox) internal void SetSource(ResultProcessor resultProcessor, ResultBox resultBox)
{ // note order here reversed to prevent overload resolution errors { // note order here reversed to prevent overload resolution errors
this.resultBox = resultBox; this.resultBox = resultBox;
...@@ -645,11 +653,12 @@ internal void WriteTo(PhysicalConnection physical) ...@@ -645,11 +653,12 @@ internal void WriteTo(PhysicalConnection physical)
Fail(ConnectionFailureType.InternalFailure, ex); Fail(ConnectionFailureType.InternalFailure, ex);
} }
} }
internal abstract class CommandChannelBase : Message internal abstract class CommandChannelBase : Message
{ {
protected readonly RedisChannel Channel; protected readonly RedisChannel Channel;
public CommandChannelBase(int db, CommandFlags flags, RedisCommand command, RedisChannel channel) : base(db, flags, command) protected CommandChannelBase(int db, CommandFlags flags, RedisCommand command, RedisChannel channel) : base(db, flags, command)
{ {
channel.AssertNotNull(); channel.AssertNotNull();
Channel = channel; Channel = channel;
...@@ -662,7 +671,7 @@ internal abstract class CommandKeyBase : Message ...@@ -662,7 +671,7 @@ internal abstract class CommandKeyBase : Message
{ {
protected readonly RedisKey Key; protected readonly RedisKey Key;
public CommandKeyBase(int db, CommandFlags flags, RedisCommand command, RedisKey key) : base(db, flags, command) protected CommandKeyBase(int db, CommandFlags flags, RedisCommand command, RedisKey key) : base(db, flags, command)
{ {
key.AssertNotNull(); key.AssertNotNull();
Key = key; Key = key;
...@@ -675,7 +684,8 @@ public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy) ...@@ -675,7 +684,8 @@ public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy)
return serverSelectionStrategy.HashSlot(Key); return serverSelectionStrategy.HashSlot(Key);
} }
} }
sealed class CommandChannelMessage : CommandChannelBase
private sealed class CommandChannelMessage : CommandChannelBase
{ {
public CommandChannelMessage(int db, CommandFlags flags, RedisCommand command, RedisChannel channel) : base(db, flags, command, channel) public CommandChannelMessage(int db, CommandFlags flags, RedisCommand command, RedisChannel channel) : base(db, flags, command, channel)
{ } { }
...@@ -686,7 +696,7 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -686,7 +696,7 @@ internal override void WriteImpl(PhysicalConnection physical)
} }
} }
sealed class CommandChannelValueMessage : CommandChannelBase private sealed class CommandChannelValueMessage : CommandChannelBase
{ {
private readonly RedisValue value; private readonly RedisValue value;
public CommandChannelValueMessage(int db, CommandFlags flags, RedisCommand command, RedisChannel channel, RedisValue value) : base(db, flags, command, channel) public CommandChannelValueMessage(int db, CommandFlags flags, RedisCommand command, RedisChannel channel, RedisValue value) : base(db, flags, command, channel)
...@@ -694,6 +704,7 @@ public CommandChannelValueMessage(int db, CommandFlags flags, RedisCommand comma ...@@ -694,6 +704,7 @@ public CommandChannelValueMessage(int db, CommandFlags flags, RedisCommand comma
value.AssertNotNull(); value.AssertNotNull();
this.value = value; this.value = value;
} }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
{ {
physical.WriteHeader(Command, 2); physical.WriteHeader(Command, 2);
...@@ -702,7 +713,7 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -702,7 +713,7 @@ internal override void WriteImpl(PhysicalConnection physical)
} }
} }
sealed class CommandKeyKeyKeyMessage : CommandKeyBase private sealed class CommandKeyKeyKeyMessage : CommandKeyBase
{ {
private readonly RedisKey key1, key2; private readonly RedisKey key1, key2;
public CommandKeyKeyKeyMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key0, RedisKey key1, RedisKey key2) : base(db, flags, command, key0) public CommandKeyKeyKeyMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key0, RedisKey key1, RedisKey key2) : base(db, flags, command, key0)
...@@ -712,12 +723,12 @@ public CommandKeyKeyKeyMessage(int db, CommandFlags flags, RedisCommand command, ...@@ -712,12 +723,12 @@ public CommandKeyKeyKeyMessage(int db, CommandFlags flags, RedisCommand command,
this.key1 = key1; this.key1 = key1;
this.key2 = key2; this.key2 = key2;
} }
public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy) public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy)
{ {
var slot = serverSelectionStrategy.HashSlot(Key); var slot = serverSelectionStrategy.HashSlot(Key);
slot = serverSelectionStrategy.CombineSlot(slot, key1); slot = serverSelectionStrategy.CombineSlot(slot, key1);
slot = serverSelectionStrategy.CombineSlot(slot, key2); return serverSelectionStrategy.CombineSlot(slot, key2);
return slot;
} }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
...@@ -729,7 +740,7 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -729,7 +740,7 @@ internal override void WriteImpl(PhysicalConnection physical)
} }
} }
class CommandKeyKeyMessage : CommandKeyBase private class CommandKeyKeyMessage : CommandKeyBase
{ {
protected readonly RedisKey key1; protected readonly RedisKey key1;
public CommandKeyKeyMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key0, RedisKey key1) : base(db, flags, command, key0) public CommandKeyKeyMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key0, RedisKey key1) : base(db, flags, command, key0)
...@@ -737,11 +748,11 @@ public CommandKeyKeyMessage(int db, CommandFlags flags, RedisCommand command, Re ...@@ -737,11 +748,11 @@ public CommandKeyKeyMessage(int db, CommandFlags flags, RedisCommand command, Re
key1.AssertNotNull(); key1.AssertNotNull();
this.key1 = key1; this.key1 = key1;
} }
public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy) public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy)
{ {
var slot = serverSelectionStrategy.HashSlot(Key); var slot = serverSelectionStrategy.HashSlot(Key);
slot = serverSelectionStrategy.CombineSlot(slot, key1); return serverSelectionStrategy.CombineSlot(slot, key1);
return slot;
} }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
...@@ -751,7 +762,8 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -751,7 +762,8 @@ internal override void WriteImpl(PhysicalConnection physical)
physical.Write(key1); physical.Write(key1);
} }
} }
sealed class CommandKeyKeysMessage : CommandKeyBase
private sealed class CommandKeyKeysMessage : CommandKeyBase
{ {
private readonly RedisKey[] keys; private readonly RedisKey[] keys;
public CommandKeyKeysMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key, RedisKey[] keys) : base(db, flags, command, key) public CommandKeyKeysMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key, RedisKey[] keys) : base(db, flags, command, key)
...@@ -762,6 +774,7 @@ public CommandKeyKeysMessage(int db, CommandFlags flags, RedisCommand command, R ...@@ -762,6 +774,7 @@ public CommandKeyKeysMessage(int db, CommandFlags flags, RedisCommand command, R
} }
this.keys = keys; this.keys = keys;
} }
public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy) public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy)
{ {
var slot = serverSelectionStrategy.HashSlot(Key); var slot = serverSelectionStrategy.HashSlot(Key);
...@@ -771,6 +784,7 @@ public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy) ...@@ -771,6 +784,7 @@ public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy)
} }
return slot; return slot;
} }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
{ {
physical.WriteHeader(command, keys.Length + 1); physical.WriteHeader(command, keys.Length + 1);
...@@ -782,7 +796,7 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -782,7 +796,7 @@ internal override void WriteImpl(PhysicalConnection physical)
} }
} }
sealed class CommandKeyKeyValueMessage : CommandKeyKeyMessage private sealed class CommandKeyKeyValueMessage : CommandKeyKeyMessage
{ {
private readonly RedisValue value; private readonly RedisValue value;
public CommandKeyKeyValueMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key0, RedisKey key1, RedisValue value) : base(db, flags, command, key0, key1) public CommandKeyKeyValueMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key0, RedisKey key1, RedisValue value) : base(db, flags, command, key0, key1)
...@@ -799,7 +813,8 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -799,7 +813,8 @@ internal override void WriteImpl(PhysicalConnection physical)
physical.Write(value); physical.Write(value);
} }
} }
sealed class CommandKeyMessage : CommandKeyBase
private sealed class CommandKeyMessage : CommandKeyBase
{ {
public CommandKeyMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key) : base(db, flags, command, key) public CommandKeyMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key) : base(db, flags, command, key)
{ } { }
...@@ -809,7 +824,8 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -809,7 +824,8 @@ internal override void WriteImpl(PhysicalConnection physical)
physical.Write(Key); physical.Write(Key);
} }
} }
sealed class CommandValuesMessage : Message
private sealed class CommandValuesMessage : Message
{ {
private readonly RedisValue[] values; private readonly RedisValue[] values;
public CommandValuesMessage(int db, CommandFlags flags, RedisCommand command, RedisValue[] values) : base(db, flags, command) public CommandValuesMessage(int db, CommandFlags flags, RedisCommand command, RedisValue[] values) : base(db, flags, command)
...@@ -820,6 +836,7 @@ public CommandValuesMessage(int db, CommandFlags flags, RedisCommand command, Re ...@@ -820,6 +836,7 @@ public CommandValuesMessage(int db, CommandFlags flags, RedisCommand command, Re
} }
this.values = values; this.values = values;
} }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
{ {
physical.WriteHeader(command, values.Length); physical.WriteHeader(command, values.Length);
...@@ -829,7 +846,8 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -829,7 +846,8 @@ internal override void WriteImpl(PhysicalConnection physical)
} }
} }
} }
sealed class CommandKeysMessage : Message
private sealed class CommandKeysMessage : Message
{ {
private readonly RedisKey[] keys; private readonly RedisKey[] keys;
public CommandKeysMessage(int db, CommandFlags flags, RedisCommand command, RedisKey[] keys) : base(db, flags, command) public CommandKeysMessage(int db, CommandFlags flags, RedisCommand command, RedisKey[] keys) : base(db, flags, command)
...@@ -861,7 +879,7 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -861,7 +879,7 @@ internal override void WriteImpl(PhysicalConnection physical)
} }
} }
sealed class CommandKeyValueMessage : CommandKeyBase private sealed class CommandKeyValueMessage : CommandKeyBase
{ {
private readonly RedisValue value; private readonly RedisValue value;
public CommandKeyValueMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key, RedisValue value) : base(db, flags, command, key) public CommandKeyValueMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key, RedisValue value) : base(db, flags, command, key)
...@@ -869,6 +887,7 @@ public CommandKeyValueMessage(int db, CommandFlags flags, RedisCommand command, ...@@ -869,6 +887,7 @@ public CommandKeyValueMessage(int db, CommandFlags flags, RedisCommand command,
value.AssertNotNull(); value.AssertNotNull();
this.value = value; this.value = value;
} }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
{ {
physical.WriteHeader(Command, 2); physical.WriteHeader(Command, 2);
...@@ -876,7 +895,8 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -876,7 +895,8 @@ internal override void WriteImpl(PhysicalConnection physical)
physical.Write(value); physical.Write(value);
} }
} }
sealed class CommandKeyValuesKeyMessage : CommandKeyBase
private sealed class CommandKeyValuesKeyMessage : CommandKeyBase
{ {
private readonly RedisKey key1; private readonly RedisKey key1;
private readonly RedisValue[] values; private readonly RedisValue[] values;
...@@ -890,6 +910,7 @@ public CommandKeyValuesKeyMessage(int db, CommandFlags flags, RedisCommand comma ...@@ -890,6 +910,7 @@ public CommandKeyValuesKeyMessage(int db, CommandFlags flags, RedisCommand comma
key1.AssertNotNull(); key1.AssertNotNull();
this.key1 = key1; this.key1 = key1;
} }
public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy) public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy)
{ {
var slot = base.GetHashSlot(serverSelectionStrategy); var slot = base.GetHashSlot(serverSelectionStrategy);
...@@ -905,7 +926,7 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -905,7 +926,7 @@ internal override void WriteImpl(PhysicalConnection physical)
} }
} }
sealed class CommandKeyValuesMessage : CommandKeyBase private sealed class CommandKeyValuesMessage : CommandKeyBase
{ {
private readonly RedisValue[] values; private readonly RedisValue[] values;
public CommandKeyValuesMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key, RedisValue[] values) : base(db, flags, command, key) public CommandKeyValuesMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key, RedisValue[] values) : base(db, flags, command, key)
...@@ -916,6 +937,7 @@ public CommandKeyValuesMessage(int db, CommandFlags flags, RedisCommand command, ...@@ -916,6 +937,7 @@ public CommandKeyValuesMessage(int db, CommandFlags flags, RedisCommand command,
} }
this.values = values; this.values = values;
} }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
{ {
physical.WriteHeader(Command, values.Length + 1); physical.WriteHeader(Command, values.Length + 1);
...@@ -924,7 +946,7 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -924,7 +946,7 @@ internal override void WriteImpl(PhysicalConnection physical)
} }
} }
sealed class CommandKeyValueValueMessage : CommandKeyBase private sealed class CommandKeyValueValueMessage : CommandKeyBase
{ {
private readonly RedisValue value0, value1; private readonly RedisValue value0, value1;
public CommandKeyValueValueMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key, RedisValue value0, RedisValue value1) : base(db, flags, command, key) public CommandKeyValueValueMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key, RedisValue value0, RedisValue value1) : base(db, flags, command, key)
...@@ -934,6 +956,7 @@ public CommandKeyValueValueMessage(int db, CommandFlags flags, RedisCommand comm ...@@ -934,6 +956,7 @@ public CommandKeyValueValueMessage(int db, CommandFlags flags, RedisCommand comm
this.value0 = value0; this.value0 = value0;
this.value1 = value1; this.value1 = value1;
} }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
{ {
physical.WriteHeader(Command, 3); physical.WriteHeader(Command, 3);
...@@ -943,7 +966,7 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -943,7 +966,7 @@ internal override void WriteImpl(PhysicalConnection physical)
} }
} }
sealed class CommandKeyValueValueValueMessage : CommandKeyBase private sealed class CommandKeyValueValueValueMessage : CommandKeyBase
{ {
private readonly RedisValue value0, value1, value2; private readonly RedisValue value0, value1, value2;
public CommandKeyValueValueValueMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key, RedisValue value0, RedisValue value1, RedisValue value2) : base(db, flags, command, key) public CommandKeyValueValueValueMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key, RedisValue value0, RedisValue value1, RedisValue value2) : base(db, flags, command, key)
...@@ -955,6 +978,7 @@ public CommandKeyValueValueValueMessage(int db, CommandFlags flags, RedisCommand ...@@ -955,6 +978,7 @@ public CommandKeyValueValueValueMessage(int db, CommandFlags flags, RedisCommand
this.value1 = value1; this.value1 = value1;
this.value2 = value2; this.value2 = value2;
} }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
{ {
physical.WriteHeader(Command, 4); physical.WriteHeader(Command, 4);
...@@ -965,7 +989,7 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -965,7 +989,7 @@ internal override void WriteImpl(PhysicalConnection physical)
} }
} }
sealed class CommandKeyValueValueValueValueMessage : CommandKeyBase private sealed class CommandKeyValueValueValueValueMessage : CommandKeyBase
{ {
private readonly RedisValue value0, value1, value2, value3; private readonly RedisValue value0, value1, value2, value3;
public CommandKeyValueValueValueValueMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key, RedisValue value0, RedisValue value1, RedisValue value2, RedisValue value3) : base(db, flags, command, key) public CommandKeyValueValueValueValueMessage(int db, CommandFlags flags, RedisCommand command, RedisKey key, RedisValue value0, RedisValue value1, RedisValue value2, RedisValue value3) : base(db, flags, command, key)
...@@ -979,6 +1003,7 @@ public CommandKeyValueValueValueValueMessage(int db, CommandFlags flags, RedisCo ...@@ -979,6 +1003,7 @@ public CommandKeyValueValueValueValueMessage(int db, CommandFlags flags, RedisCo
this.value2 = value2; this.value2 = value2;
this.value3 = value3; this.value3 = value3;
} }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
{ {
physical.WriteHeader(Command, 5); physical.WriteHeader(Command, 5);
...@@ -990,7 +1015,7 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -990,7 +1015,7 @@ internal override void WriteImpl(PhysicalConnection physical)
} }
} }
sealed class CommandMessage : Message private sealed class CommandMessage : Message
{ {
public CommandMessage(int db, CommandFlags flags, RedisCommand command) : base(db, flags, command) { } public CommandMessage(int db, CommandFlags flags, RedisCommand command) : base(db, flags, command) { }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
...@@ -1014,10 +1039,12 @@ public CommandSlotValuesMessage(int db, int slot, CommandFlags flags, RedisComma ...@@ -1014,10 +1039,12 @@ public CommandSlotValuesMessage(int db, int slot, CommandFlags flags, RedisComma
} }
this.values = values; this.values = values;
} }
public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy) public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy)
{ {
return slot; return slot;
} }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
{ {
physical.WriteHeader(command, values.Length); physical.WriteHeader(command, values.Length);
...@@ -1028,7 +1055,7 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -1028,7 +1055,7 @@ internal override void WriteImpl(PhysicalConnection physical)
} }
} }
sealed class CommandValueChannelMessage : CommandChannelBase private sealed class CommandValueChannelMessage : CommandChannelBase
{ {
private readonly RedisValue value; private readonly RedisValue value;
public CommandValueChannelMessage(int db, CommandFlags flags, RedisCommand command, RedisValue value, RedisChannel channel) : base(db, flags, command, channel) public CommandValueChannelMessage(int db, CommandFlags flags, RedisCommand command, RedisValue value, RedisChannel channel) : base(db, flags, command, channel)
...@@ -1036,6 +1063,7 @@ public CommandValueChannelMessage(int db, CommandFlags flags, RedisCommand comma ...@@ -1036,6 +1063,7 @@ public CommandValueChannelMessage(int db, CommandFlags flags, RedisCommand comma
value.AssertNotNull(); value.AssertNotNull();
this.value = value; this.value = value;
} }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
{ {
physical.WriteHeader(Command, 2); physical.WriteHeader(Command, 2);
...@@ -1043,7 +1071,8 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -1043,7 +1071,8 @@ internal override void WriteImpl(PhysicalConnection physical)
physical.Write(Channel); physical.Write(Channel);
} }
} }
sealed class CommandValueKeyMessage : CommandKeyBase
private sealed class CommandValueKeyMessage : CommandKeyBase
{ {
private readonly RedisValue value; private readonly RedisValue value;
...@@ -1058,6 +1087,7 @@ public override void AppendStormLog(StringBuilder sb) ...@@ -1058,6 +1087,7 @@ public override void AppendStormLog(StringBuilder sb)
base.AppendStormLog(sb); base.AppendStormLog(sb);
sb.Append(" (").Append((string)value).Append(')'); sb.Append(" (").Append((string)value).Append(')');
} }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
{ {
physical.WriteHeader(Command, 2); physical.WriteHeader(Command, 2);
...@@ -1066,7 +1096,7 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -1066,7 +1096,7 @@ internal override void WriteImpl(PhysicalConnection physical)
} }
} }
sealed class CommandValueMessage : Message private sealed class CommandValueMessage : Message
{ {
private readonly RedisValue value; private readonly RedisValue value;
public CommandValueMessage(int db, CommandFlags flags, RedisCommand command, RedisValue value) : base(db, flags, command) public CommandValueMessage(int db, CommandFlags flags, RedisCommand command, RedisValue value) : base(db, flags, command)
...@@ -1074,6 +1104,7 @@ public CommandValueMessage(int db, CommandFlags flags, RedisCommand command, Red ...@@ -1074,6 +1104,7 @@ public CommandValueMessage(int db, CommandFlags flags, RedisCommand command, Red
value.AssertNotNull(); value.AssertNotNull();
this.value = value; this.value = value;
} }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
{ {
physical.WriteHeader(Command, 1); physical.WriteHeader(Command, 1);
...@@ -1081,7 +1112,7 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -1081,7 +1112,7 @@ internal override void WriteImpl(PhysicalConnection physical)
} }
} }
sealed class CommandValueValueMessage : Message private sealed class CommandValueValueMessage : Message
{ {
private readonly RedisValue value0, value1; private readonly RedisValue value0, value1;
public CommandValueValueMessage(int db, CommandFlags flags, RedisCommand command, RedisValue value0, RedisValue value1) : base(db, flags, command) public CommandValueValueMessage(int db, CommandFlags flags, RedisCommand command, RedisValue value0, RedisValue value1) : base(db, flags, command)
...@@ -1091,6 +1122,7 @@ public CommandValueValueMessage(int db, CommandFlags flags, RedisCommand command ...@@ -1091,6 +1122,7 @@ public CommandValueValueMessage(int db, CommandFlags flags, RedisCommand command
this.value0 = value0; this.value0 = value0;
this.value1 = value1; this.value1 = value1;
} }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
{ {
physical.WriteHeader(Command, 2); physical.WriteHeader(Command, 2);
...@@ -1099,7 +1131,7 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -1099,7 +1131,7 @@ internal override void WriteImpl(PhysicalConnection physical)
} }
} }
sealed class CommandValueValueValueMessage : Message private sealed class CommandValueValueValueMessage : Message
{ {
private readonly RedisValue value0, value1, value2; private readonly RedisValue value0, value1, value2;
public CommandValueValueValueMessage(int db, CommandFlags flags, RedisCommand command, RedisValue value0, RedisValue value1, RedisValue value2) : base(db, flags, command) public CommandValueValueValueMessage(int db, CommandFlags flags, RedisCommand command, RedisValue value0, RedisValue value1, RedisValue value2) : base(db, flags, command)
...@@ -1111,6 +1143,7 @@ public CommandValueValueValueMessage(int db, CommandFlags flags, RedisCommand co ...@@ -1111,6 +1143,7 @@ public CommandValueValueValueMessage(int db, CommandFlags flags, RedisCommand co
this.value1 = value1; this.value1 = value1;
this.value2 = value2; this.value2 = value2;
} }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
{ {
physical.WriteHeader(Command, 3); physical.WriteHeader(Command, 3);
...@@ -1120,7 +1153,7 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -1120,7 +1153,7 @@ internal override void WriteImpl(PhysicalConnection physical)
} }
} }
sealed class CommandValueValueValueValueValueMessage : Message private sealed class CommandValueValueValueValueValueMessage : Message
{ {
private readonly RedisValue value0, value1, value2, value3, value4; private readonly RedisValue value0, value1, value2, value3, value4;
public CommandValueValueValueValueValueMessage(int db, CommandFlags flags, RedisCommand command, RedisValue value0, RedisValue value1, RedisValue value2, RedisValue value3, RedisValue value4) : base(db, flags, command) public CommandValueValueValueValueValueMessage(int db, CommandFlags flags, RedisCommand command, RedisValue value0, RedisValue value1, RedisValue value2, RedisValue value3, RedisValue value4) : base(db, flags, command)
...@@ -1136,6 +1169,7 @@ public CommandValueValueValueValueValueMessage(int db, CommandFlags flags, Redis ...@@ -1136,6 +1169,7 @@ public CommandValueValueValueValueValueMessage(int db, CommandFlags flags, Redis
this.value3 = value3; this.value3 = value3;
this.value4 = value4; this.value4 = value4;
} }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
{ {
physical.WriteHeader(Command, 5); physical.WriteHeader(Command, 5);
...@@ -1147,11 +1181,12 @@ internal override void WriteImpl(PhysicalConnection physical) ...@@ -1147,11 +1181,12 @@ internal override void WriteImpl(PhysicalConnection physical)
} }
} }
sealed class SelectMessage : Message private sealed class SelectMessage : Message
{ {
public SelectMessage(int db, CommandFlags flags) : base(db, flags, RedisCommand.SELECT) public SelectMessage(int db, CommandFlags flags) : base(db, flags, RedisCommand.SELECT)
{ {
} }
internal override void WriteImpl(PhysicalConnection physical) internal override void WriteImpl(PhysicalConnection physical)
{ {
physical.WriteHeader(Command, 1); physical.WriteHeader(Command, 1);
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
namespace StackExchange.Redis namespace StackExchange.Redis
{ {
sealed class MessageCompletable : ICompletable internal sealed class MessageCompletable : ICompletable
{ {
private readonly RedisChannel channel; private readonly RedisChannel channel;
...@@ -18,10 +18,8 @@ public MessageCompletable(RedisChannel channel, RedisValue message, Action<Redis ...@@ -18,10 +18,8 @@ public MessageCompletable(RedisChannel channel, RedisValue message, Action<Redis
this.handler = handler; this.handler = handler;
} }
public override string ToString() public override string ToString() => (string)channel;
{
return (string)channel;
}
public bool TryComplete(bool isAsync) public bool TryComplete(bool isAsync)
{ {
if (handler == null) return true; if (handler == null) return true;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
namespace StackExchange.Redis namespace StackExchange.Redis
{ {
sealed partial class MessageQueue internal sealed partial class MessageQueue
{ {
private readonly Queue<Message> private readonly Queue<Message>
regular = new Queue<Message>(), regular = new Queue<Message>(),
...@@ -30,6 +30,7 @@ public Message Dequeue() ...@@ -30,6 +30,7 @@ public Message Dequeue()
/// <summary> /// <summary>
/// Checks both high-pri and regular queues to see if the next item is a PING, and if so: dequeues it and returns it /// Checks both high-pri and regular queues to see if the next item is a PING, and if so: dequeues it and returns it
/// </summary> /// </summary>
/// <param name="queueLength">The current queue count.</param>
public Message DequeueUnsentPing(out int queueLength) public Message DequeueUnsentPing(out int queueLength)
{ {
lock (regular) lock (regular)
...@@ -92,6 +93,7 @@ internal Message[] DequeueAll() ...@@ -92,6 +93,7 @@ internal Message[] DequeueAll()
return arr; return arr;
} }
} }
internal void GetStormLog(StringBuilder sb) internal void GetStormLog(StringBuilder sb)
{ {
lock(regular) lock(regular)
......
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