Commit 942b15f4 authored by Marc Gravell's avatar Marc Gravell

pass RawResult as ref-readonly (it's quite a biggie!)

parent 743d3ca8
......@@ -183,7 +183,7 @@ private static void AddFlag(ref ClientFlags value, string raw, ClientFlags toAdd
private class ClientInfoProcessor : ResultProcessor<ClientInfo[]>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch(result.Type)
{
......
......@@ -71,7 +71,7 @@ public string GetHelpUrl()
private class CommandTraceProcessor : ResultProcessor<CommandTrace[]>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch(result.Type)
{
......
......@@ -262,7 +262,7 @@ public static Condition StringNotEqual(RedisKey key, RedisValue value)
internal abstract IEnumerable<Message> CreateMessages(int db, ResultBox resultBox);
internal abstract int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy);
internal abstract bool TryValidate(RawResult result, out bool value);
internal abstract bool TryValidate(in RawResult result, out bool value);
internal sealed class ConditionProcessor : ResultProcessor<bool>
{
......@@ -273,7 +273,7 @@ public static Message CreateMessage(Condition condition, int db, CommandFlags fl
return new ConditionMessage(condition, db, flags, command, key, value);
}
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
connection?.BridgeCouldBeNull?.Multiplexer?.OnTransactionLog($"condition '{message.CommandAndKey}' got '{result.ToString()}'");
var msg = message as ConditionMessage;
......@@ -382,7 +382,7 @@ internal override IEnumerable<Message> CreateMessages(int db, ResultBox resultBo
internal override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy) => serverSelectionStrategy.HashSlot(key);
internal override bool TryValidate(RawResult result, out bool value)
internal override bool TryValidate(in RawResult result, out bool value)
{
switch (type)
{
......@@ -452,7 +452,7 @@ internal override int GetHashSlot(ServerSelectionStrategy serverSelectionStrateg
return serverSelectionStrategy.HashSlot(key);
}
internal override bool TryValidate(RawResult result, out bool value)
internal override bool TryValidate(in RawResult result, out bool value)
{
switch (result.Type)
{
......@@ -512,7 +512,7 @@ internal sealed override IEnumerable<Message> CreateMessages(int db, ResultBox r
internal override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy) => serverSelectionStrategy.HashSlot(key);
internal override bool TryValidate(RawResult result, out bool value)
internal override bool TryValidate(in RawResult result, out bool value)
{
switch (result.Type)
{
......@@ -614,7 +614,7 @@ internal override int GetHashSlot(ServerSelectionStrategy serverSelectionStrateg
return serverSelectionStrategy.HashSlot(key);
}
internal override bool TryValidate(RawResult result, out bool value)
internal override bool TryValidate(in RawResult result, out bool value)
{
switch (result.Type)
{
......
......@@ -1549,7 +1549,7 @@ private static RawResult ReadLineTerminatedString(ResultType type, ref BufferRea
}
}
private static RawResult ParseInlineProtocol(RawResult line)
private static RawResult ParseInlineProtocol(in RawResult line)
{
if (!line.HasValue) return RawResult.Nil; // incomplete line
......
......@@ -3447,7 +3447,7 @@ private sealed class HashScanResultProcessor : ScanResultProcessor<HashEntry>
{
public static readonly ResultProcessor<ScanIterator<HashEntry>.ScanResult> Default = new HashScanResultProcessor();
private HashScanResultProcessor() { }
protected override HashEntry[] Parse(RawResult result)
protected override HashEntry[] Parse(in RawResult result)
{
if (!HashEntryArray.TryParse(result, out HashEntry[] pairs)) pairs = null;
return pairs;
......@@ -3456,9 +3456,9 @@ protected override HashEntry[] Parse(RawResult result)
private abstract class ScanResultProcessor<T> : ResultProcessor<ScanIterator<T>.ScanResult>
{
protected abstract T[] Parse(RawResult result);
protected abstract T[] Parse(in RawResult result);
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -3628,7 +3628,7 @@ private sealed class SetScanResultProcessor : ScanResultProcessor<RedisValue>
{
public static readonly ResultProcessor<ScanIterator<RedisValue>.ScanResult> Default = new SetScanResultProcessor();
private SetScanResultProcessor() { }
protected override RedisValue[] Parse(RawResult result)
protected override RedisValue[] Parse(in RawResult result)
{
return result.GetItemsAsValues();
}
......@@ -3674,7 +3674,7 @@ private sealed class SortedSetScanResultProcessor : ScanResultProcessor<SortedSe
{
public static readonly ResultProcessor<ScanIterator<SortedSetEntry>.ScanResult> Default = new SortedSetScanResultProcessor();
private SortedSetScanResultProcessor() { }
protected override SortedSetEntry[] Parse(RawResult result)
protected override SortedSetEntry[] Parse(in RawResult result)
{
if (!SortedSetWithScores.TryParse(result, out SortedSetEntry[] pairs)) pairs = null;
return pairs;
......@@ -3729,7 +3729,7 @@ private class StringGetWithExpiryProcessor : ResultProcessor<RedisValueWithExpir
{
public static readonly ResultProcessor<RedisValueWithExpiry> Default = new StringGetWithExpiryProcessor();
private StringGetWithExpiryProcessor() { }
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......
......@@ -45,7 +45,7 @@ public static RedisResult Create(RedisResult[] values)
// internally, this is very similar to RawResult, except it is designed to be usable
// outside of the IO-processing pipeline: the buffers are standalone, etc
internal static RedisResult TryCreate(PhysicalConnection connection, RawResult result)
internal static RedisResult TryCreate(PhysicalConnection connection, in RawResult result)
{
try
{
......
......@@ -742,7 +742,7 @@ protected override Message CreateMessage(long cursor)
public static readonly ResultProcessor<ScanResult> processor = new KeysResultProcessor();
private class KeysResultProcessor : ResultProcessor<ScanResult>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......
......@@ -171,7 +171,7 @@ private class QueuedProcessor : ResultProcessor<bool>
{
public static readonly ResultProcessor<bool> Default = new QueuedProcessor();
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
if (result.Type == ResultType.SimpleString && result.IsEqual(CommonReplies.QUEUED))
{
......@@ -432,7 +432,7 @@ private class TransactionProcessor : ResultProcessor<bool>
{
public static readonly TransactionProcessor Default = new TransactionProcessor();
public override bool SetResult(PhysicalConnection connection, Message message, RawResult result)
public override bool SetResult(PhysicalConnection connection, Message message, in RawResult result)
{
if (result.IsError && message is TransactionMessage tran)
{
......@@ -447,7 +447,7 @@ public override bool SetResult(PhysicalConnection connection, Message message, R
return base.SetResult(connection, message, result);
}
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
connection?.BridgeCouldBeNull?.Multiplexer?.OnTransactionLog($"got {result} for {message.CommandAndKey}");
if (message is TransactionMessage tran)
......
This diff is collapsed.
......@@ -28,7 +28,7 @@ public string GetString(int index)
=> string.Equals(value, _inner[index].GetString(), StringComparison.OrdinalIgnoreCase);
public override int GetHashCode() => throw new NotSupportedException();
internal RedisRequest(RawResult result)
internal RedisRequest(in RawResult result)
{
_inner = result;
Count = result.ItemsCount;
......
......@@ -468,7 +468,7 @@ public TypedRedisValue Execute(RedisClient client, RedisRequest request)
}
}
internal static string ToLower(RawResult value)
internal static string ToLower(in RawResult value)
{
var val = value.GetString();
if (string.IsNullOrWhiteSpace(val)) return val;
......
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