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)
{
......@@ -198,4 +198,4 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
}
}
}
}
\ No newline at end of file
}
......@@ -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)
......
......@@ -165,7 +165,7 @@ public void SetException(Message message, Exception ex)
box?.SetException(ex);
}
// true if ready to be completed (i.e. false if re-issued to another server)
public virtual bool SetResult(PhysicalConnection connection, Message message, RawResult result)
public virtual bool SetResult(PhysicalConnection connection, Message message, in RawResult result)
{
var bridge = connection.BridgeCouldBeNull;
if (message is LoggingMessage logging)
......@@ -256,9 +256,9 @@ public virtual bool SetResult(PhysicalConnection connection, Message message, Ra
return true;
}
protected abstract bool SetResultCore(PhysicalConnection connection, Message message, RawResult result);
protected abstract bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result);
private void UnexpectedResponse(Message message, RawResult result)
private void UnexpectedResponse(Message message, in RawResult result)
{
ConnectionMultiplexer.TraceWithoutContext("From " + GetType().Name, "Unexpected Response");
ConnectionFail(message, ConnectionFailureType.ProtocolFailure, "Unexpected response to " + (message?.Command.ToString() ?? "n/a") + ": " + result.ToString());
......@@ -272,7 +272,7 @@ public TimeSpanProcessor(bool isMilliseconds)
this.isMilliseconds = isMilliseconds;
}
public bool TryParse(RawResult result, out TimeSpan? expiry)
public bool TryParse(in RawResult result, out TimeSpan? expiry)
{
switch (result.Type)
{
......@@ -304,7 +304,7 @@ public bool TryParse(RawResult result, out TimeSpan? expiry)
return false;
}
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
if (TryParse(result, out TimeSpan? expiry))
{
......@@ -322,7 +322,7 @@ public static TimerMessage CreateMessage(int db, CommandFlags flags, RedisComman
return new TimerMessage(db, flags, command, value);
}
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.Error)
{
......@@ -376,7 +376,7 @@ protected override void WriteImpl(PhysicalConnection physical)
public sealed class TrackSubscriptionsProcessor : ResultProcessor<bool>
{
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.MultiBulk)
{
......@@ -393,7 +393,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
internal sealed class DemandZeroOrOneProcessor : ResultProcessor<bool>
{
public static bool TryGet(RawResult result, out bool value)
public static bool TryGet(in RawResult result, out bool value)
{
switch (result.Type)
{
......@@ -408,7 +408,7 @@ public static bool TryGet(RawResult result, out bool value)
return false;
}
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
if (TryGet(result, out bool value))
{
......@@ -472,7 +472,7 @@ private static int FromHex(char c)
}
// note that top-level error messages still get handled by SetResult, but nested errors
// (is that a thing?) will be wrapped in the RedisResult
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -499,7 +499,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
internal sealed class SortedSetEntryArrayProcessor : ValuePairInterleavedProcessorBase<SortedSetEntry>
{
protected override SortedSetEntry Parse(RawResult first, RawResult second)
protected override SortedSetEntry Parse(in RawResult first, in RawResult second)
{
return new SortedSetEntry(first.AsRedisValue(), second.TryGetDouble(out double val) ? val : double.NaN);
}
......@@ -507,7 +507,7 @@ protected override SortedSetEntry Parse(RawResult first, RawResult second)
internal sealed class HashEntryArrayProcessor : ValuePairInterleavedProcessorBase<HashEntry>
{
protected override HashEntry Parse(RawResult first, RawResult second)
protected override HashEntry Parse(in RawResult first, in RawResult second)
{
return new HashEntry(first.AsRedisValue(), second.AsRedisValue());
}
......@@ -515,7 +515,7 @@ protected override HashEntry Parse(RawResult first, RawResult second)
internal abstract class ValuePairInterleavedProcessorBase<T> : ResultProcessor<T[]>
{
public bool TryParse(RawResult result, out T[] pairs)
public bool TryParse(in RawResult result, out T[] pairs)
{
switch (result.Type)
{
......@@ -549,8 +549,8 @@ public bool TryParse(RawResult result, out T[] pairs)
}
}
protected abstract T Parse(RawResult first, RawResult second);
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected abstract T Parse(in RawResult first, in RawResult second);
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
if (TryParse(result, out T[] arr))
{
......@@ -563,7 +563,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class AutoConfigureProcessor : ResultProcessor<bool>
{
public override bool SetResult(PhysicalConnection connection, Message message, RawResult result)
public override bool SetResult(PhysicalConnection connection, Message message, in RawResult result)
{
if (result.IsError && result.StartsWith(CommonReplies.READONLY))
{
......@@ -578,7 +578,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)
{
var server = connection.BridgeCouldBeNull?.ServerEndPoint;
if (server == null) return false;
......@@ -728,7 +728,7 @@ private static string Extract(string line, string prefix)
private sealed class BooleanProcessor : ResultProcessor<bool>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
if (result.IsNull)
{
......@@ -766,7 +766,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class ByteArrayProcessor : ResultProcessor<byte[]>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -790,7 +790,7 @@ internal static ClusterConfiguration Parse(PhysicalConnection connection, string
return config;
}
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -808,7 +808,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class ClusterNodesRawProcessor : ResultProcessor<string>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -829,7 +829,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class ConnectionIdentityProcessor : ResultProcessor<EndPoint>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
SetResult(message, connection.BridgeCouldBeNull?.ServerEndPoint?.EndPoint);
return true;
......@@ -838,7 +838,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class DateTimeProcessor : ResultProcessor<DateTime>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
long unixTime;
switch (result.Type)
......@@ -880,7 +880,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class DoubleProcessor : ResultProcessor<double>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -916,7 +916,7 @@ public ExpectBasicStringProcessor(CommandBytes expected, bool startsWith = false
_startsWith = startsWith;
}
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
if (_startsWith ? result.StartsWith(_expected) : result.IsEqual(_expected))
{
......@@ -930,7 +930,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class InfoProcessor : ResultProcessor<IGrouping<string, KeyValuePair<string, string>>[]>
{
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.BulkString)
{
......@@ -969,7 +969,7 @@ private static string Normalize(string category)
private class Int64Processor : ResultProcessor<long>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -990,7 +990,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private class PubSubNumSubProcessor : Int64Processor
{
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.MultiBulk)
{
......@@ -1007,7 +1007,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class NullableDoubleProcessor : ResultProcessor<double?>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -1033,7 +1033,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class NullableInt64Processor : ResultProcessor<long?>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -1065,7 +1065,7 @@ public RedisChannelArrayProcessor(RedisChannel.PatternMode mode)
this.mode = mode;
}
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -1094,7 +1094,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class RedisKeyArrayProcessor : ResultProcessor<RedisKey[]>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -1109,7 +1109,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class RedisKeyProcessor : ResultProcessor<RedisKey>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -1125,7 +1125,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class RedisTypeProcessor : ResultProcessor<RedisType>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -1144,7 +1144,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class RedisValueArrayProcessor : ResultProcessor<RedisValue[]>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -1164,7 +1164,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class StringArrayProcessor : ResultProcessor<string[]>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -1180,7 +1180,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class RedisValueGeoPositionProcessor : ResultProcessor<GeoPosition?>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -1196,7 +1196,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class RedisValueGeoPositionArrayProcessor : ResultProcessor<GeoPosition?[]>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -1233,7 +1233,7 @@ private GeoRadiusResultArrayProcessor(GeoRadiusOptions options)
this.options = options;
}
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -1260,7 +1260,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
return false;
}
private static GeoRadiusResult Parse(GeoRadiusOptions options, RawResult item)
private static GeoRadiusResult Parse(GeoRadiusOptions options, in RawResult item)
{
if (options == GeoRadiusOptions.None)
{
......@@ -1296,7 +1296,7 @@ private static GeoRadiusResult Parse(GeoRadiusOptions options, RawResult item)
private sealed class RedisValueProcessor : ResultProcessor<RedisValue>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -1312,7 +1312,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class LeaseProcessor : ResultProcessor<Lease<byte>>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -1328,7 +1328,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private class ScriptResultProcessor : ResultProcessor<RedisResult>
{
public override bool SetResult(PhysicalConnection connection, Message message, RawResult result)
public override bool SetResult(PhysicalConnection connection, Message message, in RawResult result)
{
if (result.Type == ResultType.Error && result.StartsWith(CommonReplies.NOSCRIPT))
{ // scripts are not flushed individually, so assume the entire script cache is toast ("SCRIPT FLUSH")
......@@ -1341,7 +1341,7 @@ public override bool SetResult(PhysicalConnection connection, Message message, R
// note that top-level error messages still get handled by SetResult, but nested errors
// (is that a thing?) will be wrapped in the RedisResult
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
var value = Redis.RedisResult.TryCreate(connection, result);
if (value != null)
......@@ -1362,7 +1362,7 @@ public SingleStreamProcessor(bool skipStreamName = false)
this.skipStreamName = skipStreamName;
}
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
if (result.IsNull)
{
......@@ -1445,7 +1445,7 @@ Multibulk array.
4) "Austen"
*/
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
if (result.IsNull)
{
......@@ -1488,7 +1488,7 @@ private static T[] ConvertAll<T>(ReadOnlySpan<RawResult> items, Func<RawResult,
}
internal sealed class StreamConsumerInfoProcessor : InterleavedStreamInfoProcessorBase<StreamConsumerInfo>
{
protected override StreamConsumerInfo ParseItem(RawResult result)
protected override StreamConsumerInfo ParseItem(in RawResult result)
{
// Note: the base class passes a single consumer from the response into this method.
......@@ -1517,7 +1517,7 @@ protected override StreamConsumerInfo ParseItem(RawResult result)
internal sealed class StreamGroupInfoProcessor : InterleavedStreamInfoProcessorBase<StreamGroupInfo>
{
protected override StreamGroupInfo ParseItem(RawResult result)
protected override StreamGroupInfo ParseItem(in RawResult result)
{
// Note: the base class passes a single item from the response into this method.
......@@ -1546,9 +1546,9 @@ protected override StreamGroupInfo ParseItem(RawResult result)
internal abstract class InterleavedStreamInfoProcessorBase<T> : ResultProcessor<T[]>
{
protected abstract T ParseItem(RawResult result);
protected abstract T ParseItem(in RawResult result);
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.MultiBulk)
{
......@@ -1585,7 +1585,7 @@ internal sealed class StreamInfoProcessor : StreamProcessorBase<StreamInfo>
// 12) 1) 1526569544280-0
// 2) 1) "message"
// 2) "banana"
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.MultiBulk)
{
......@@ -1650,7 +1650,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
internal sealed class StreamPendingInfoProcessor : ResultProcessor<StreamPendingInfo>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
// Example:
// > XPENDING mystream mygroup
......@@ -1704,7 +1704,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
internal sealed class StreamPendingMessagesProcessor : ResultProcessor<StreamPendingMessageInfo[]>
{
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.MultiBulk)
{
......@@ -1732,7 +1732,7 @@ internal abstract class StreamProcessorBase<T> : ResultProcessor<T>
{
// For command response formats see https://redis.io/topics/streams-intro.
protected StreamEntry ParseRedisStreamEntry(RawResult item)
protected StreamEntry ParseRedisStreamEntry(in RawResult item)
{
if (item.IsNull || item.Type != ResultType.MultiBulk)
{
......@@ -1746,7 +1746,7 @@ protected StreamEntry ParseRedisStreamEntry(RawResult item)
return new StreamEntry(id: entryDetails[0].AsRedisValue(),
values: ParseStreamEntryValues(entryDetails[1]));
}
protected StreamEntry[] ParseRedisStreamEntries(RawResult result)
protected StreamEntry[] ParseRedisStreamEntries(in RawResult result)
{
if (result.Type != ResultType.MultiBulk)
{
......@@ -1758,7 +1758,7 @@ protected StreamEntry[] ParseRedisStreamEntries(RawResult result)
return ConvertAll(arr, item => ParseRedisStreamEntry(item));
}
protected NameValueEntry[] ParseStreamEntryValues(RawResult result)
protected NameValueEntry[] ParseStreamEntryValues(in RawResult result)
{
// The XRANGE, XREVRANGE, XREAD commands return stream entries
// in the following format. The name/value pairs are interleaved
......@@ -1802,7 +1802,7 @@ protected NameValueEntry[] ParseStreamEntryValues(RawResult result)
private sealed class StringPairInterleavedProcessor : ValuePairInterleavedProcessorBase<KeyValuePair<string, string>>
{
protected override KeyValuePair<string, string> Parse(RawResult first, RawResult second)
protected override KeyValuePair<string, string> Parse(in RawResult first, in RawResult second)
{
return new KeyValuePair<string, string>(first.GetString(), second.GetString());
}
......@@ -1810,7 +1810,7 @@ private sealed class StringPairInterleavedProcessor : ValuePairInterleavedProces
private sealed class StringProcessor : ResultProcessor<string>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
switch (result.Type)
{
......@@ -1841,7 +1841,7 @@ public TracerProcessor(bool establishConnection)
this.establishConnection = establishConnection;
}
public override bool SetResult(PhysicalConnection connection, Message message, RawResult result)
public override bool SetResult(PhysicalConnection connection, Message message, in RawResult result)
{
connection?.BridgeCouldBeNull?.Multiplexer.OnInfoMessage($"got '{result}' for '{message.CommandAndKey}' on '{connection}'");
var final = base.SetResult(connection, message, result);
......@@ -1863,7 +1863,7 @@ public override bool SetResult(PhysicalConnection connection, Message message, R
return final;
}
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
bool happy;
switch (message.Command)
......@@ -1924,7 +1924,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class SentinelGetMasterAddressByNameProcessor : ResultProcessor<EndPoint>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
// To repro timeout fail:
// if (result.Type == ResultType.MultiBulk) throw new Exception("Woops");
......@@ -1960,7 +1960,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private sealed class SentinelArrayOfArraysProcessor : ResultProcessor<KeyValuePair<string, string>[][]>
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, RawResult result)
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
if (!(StringPairInterleaved is StringPairInterleavedProcessor innerProcessor))
{
......
......@@ -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