Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
StackExchange.Redis
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
tsai
StackExchange.Redis
Commits
942b15f4
Commit
942b15f4
authored
Nov 30, 2018
by
Marc Gravell
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pass RawResult as ref-readonly (it's quite a biggie!)
parent
743d3ca8
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
85 additions
and
85 deletions
+85
-85
ClientInfo.cs
src/StackExchange.Redis/ClientInfo.cs
+2
-2
CommandTrace.cs
src/StackExchange.Redis/CommandTrace.cs
+1
-1
Condition.cs
src/StackExchange.Redis/Condition.cs
+6
-6
PhysicalConnection.cs
src/StackExchange.Redis/PhysicalConnection.cs
+1
-1
RedisDatabase.cs
src/StackExchange.Redis/RedisDatabase.cs
+6
-6
RedisResult.cs
src/StackExchange.Redis/RedisResult.cs
+1
-1
RedisServer.cs
src/StackExchange.Redis/RedisServer.cs
+1
-1
RedisTransaction.cs
src/StackExchange.Redis/RedisTransaction.cs
+3
-3
ResultProcessor.cs
src/StackExchange.Redis/ResultProcessor.cs
+62
-62
RedisRequest.cs
toys/StackExchange.Redis.Server/RedisRequest.cs
+1
-1
RespServer.cs
toys/StackExchange.Redis.Server/RespServer.cs
+1
-1
No files found.
src/StackExchange.Redis/ClientInfo.cs
View file @
942b15f4
...
...
@@ -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
}
src/StackExchange.Redis/CommandTrace.cs
View file @
942b15f4
...
...
@@ -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
)
{
...
...
src/StackExchange.Redis/Condition.cs
View file @
942b15f4
...
...
@@ -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
)
{
...
...
src/StackExchange.Redis/PhysicalConnection.cs
View file @
942b15f4
...
...
@@ -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
...
...
src/StackExchange.Redis/RedisDatabase.cs
View file @
942b15f4
...
...
@@ -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
)
{
...
...
src/StackExchange.Redis/RedisResult.cs
View file @
942b15f4
...
...
@@ -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
{
...
...
src/StackExchange.Redis/RedisServer.cs
View file @
942b15f4
...
...
@@ -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
)
{
...
...
src/StackExchange.Redis/RedisTransaction.cs
View file @
942b15f4
...
...
@@ -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
)
...
...
src/StackExchange.Redis/ResultProcessor.cs
View file @
942b15f4
...
...
@@ -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
))
{
...
...
toys/StackExchange.Redis.Server/RedisRequest.cs
View file @
942b15f4
...
...
@@ -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
;
...
...
toys/StackExchange.Redis.Server/RespServer.cs
View file @
942b15f4
...
...
@@ -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
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment