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
...
@@ -183,7 +183,7 @@ private static void AddFlag(ref ClientFlags value, string raw, ClientFlags toAdd
private
class
ClientInfoProcessor
:
ResultProcessor
<
ClientInfo
[
]>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -198,4 +198,4 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -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()
...
@@ -71,7 +71,7 @@ public string GetHelpUrl()
private
class
CommandTraceProcessor
:
ResultProcessor
<
CommandTrace
[
]>
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
)
switch
(
result
.
Type
)
{
{
...
...
src/StackExchange.Redis/Condition.cs
View file @
942b15f4
...
@@ -262,7 +262,7 @@ public static Condition StringNotEqual(RedisKey key, RedisValue value)
...
@@ -262,7 +262,7 @@ public static Condition StringNotEqual(RedisKey key, RedisValue value)
internal
abstract
IEnumerable
<
Message
>
CreateMessages
(
int
db
,
ResultBox
resultBox
);
internal
abstract
IEnumerable
<
Message
>
CreateMessages
(
int
db
,
ResultBox
resultBox
);
internal
abstract
int
GetHashSlot
(
ServerSelectionStrategy
serverSelectionStrategy
);
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
>
internal
sealed
class
ConditionProcessor
:
ResultProcessor
<
bool
>
{
{
...
@@ -273,7 +273,7 @@ public static Message CreateMessage(Condition condition, int db, CommandFlags fl
...
@@ -273,7 +273,7 @@ public static Message CreateMessage(Condition condition, int db, CommandFlags fl
return
new
ConditionMessage
(
condition
,
db
,
flags
,
command
,
key
,
value
);
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
()}
'"
);
connection
?.
BridgeCouldBeNull
?.
Multiplexer
?.
OnTransactionLog
(
$"condition '
{
message
.
CommandAndKey
}
' got '
{
result
.
ToString
()}
'"
);
var
msg
=
message
as
ConditionMessage
;
var
msg
=
message
as
ConditionMessage
;
...
@@ -382,7 +382,7 @@ internal override IEnumerable<Message> CreateMessages(int db, ResultBox resultBo
...
@@ -382,7 +382,7 @@ internal override IEnumerable<Message> CreateMessages(int db, ResultBox resultBo
internal
override
int
GetHashSlot
(
ServerSelectionStrategy
serverSelectionStrategy
)
=>
serverSelectionStrategy
.
HashSlot
(
key
);
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
)
switch
(
type
)
{
{
...
@@ -452,7 +452,7 @@ internal override int GetHashSlot(ServerSelectionStrategy serverSelectionStrateg
...
@@ -452,7 +452,7 @@ internal override int GetHashSlot(ServerSelectionStrategy serverSelectionStrateg
return
serverSelectionStrategy
.
HashSlot
(
key
);
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
)
switch
(
result
.
Type
)
{
{
...
@@ -512,7 +512,7 @@ internal sealed override IEnumerable<Message> CreateMessages(int db, ResultBox r
...
@@ -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
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
)
switch
(
result
.
Type
)
{
{
...
@@ -614,7 +614,7 @@ internal override int GetHashSlot(ServerSelectionStrategy serverSelectionStrateg
...
@@ -614,7 +614,7 @@ internal override int GetHashSlot(ServerSelectionStrategy serverSelectionStrateg
return
serverSelectionStrategy
.
HashSlot
(
key
);
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
)
switch
(
result
.
Type
)
{
{
...
...
src/StackExchange.Redis/PhysicalConnection.cs
View file @
942b15f4
...
@@ -1549,7 +1549,7 @@ private static RawResult ReadLineTerminatedString(ResultType type, ref BufferRea
...
@@ -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
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>
...
@@ -3447,7 +3447,7 @@ private sealed class HashScanResultProcessor : ScanResultProcessor<HashEntry>
{
{
public
static
readonly
ResultProcessor
<
ScanIterator
<
HashEntry
>.
ScanResult
>
Default
=
new
HashScanResultProcessor
();
public
static
readonly
ResultProcessor
<
ScanIterator
<
HashEntry
>.
ScanResult
>
Default
=
new
HashScanResultProcessor
();
private
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
;
if
(!
HashEntryArray
.
TryParse
(
result
,
out
HashEntry
[]
pairs
))
pairs
=
null
;
return
pairs
;
return
pairs
;
...
@@ -3456,9 +3456,9 @@ protected override HashEntry[] Parse(RawResult result)
...
@@ -3456,9 +3456,9 @@ protected override HashEntry[] Parse(RawResult result)
private
abstract
class
ScanResultProcessor
<
T
>
:
ResultProcessor
<
ScanIterator
<
T
>.
ScanResult
>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -3628,7 +3628,7 @@ private sealed class SetScanResultProcessor : ScanResultProcessor<RedisValue>
...
@@ -3628,7 +3628,7 @@ private sealed class SetScanResultProcessor : ScanResultProcessor<RedisValue>
{
{
public
static
readonly
ResultProcessor
<
ScanIterator
<
RedisValue
>.
ScanResult
>
Default
=
new
SetScanResultProcessor
();
public
static
readonly
ResultProcessor
<
ScanIterator
<
RedisValue
>.
ScanResult
>
Default
=
new
SetScanResultProcessor
();
private
SetScanResultProcessor
()
{
}
private
SetScanResultProcessor
()
{
}
protected
override
RedisValue
[]
Parse
(
RawResult
result
)
protected
override
RedisValue
[]
Parse
(
in
RawResult
result
)
{
{
return
result
.
GetItemsAsValues
();
return
result
.
GetItemsAsValues
();
}
}
...
@@ -3674,7 +3674,7 @@ private sealed class SortedSetScanResultProcessor : ScanResultProcessor<SortedSe
...
@@ -3674,7 +3674,7 @@ private sealed class SortedSetScanResultProcessor : ScanResultProcessor<SortedSe
{
{
public
static
readonly
ResultProcessor
<
ScanIterator
<
SortedSetEntry
>.
ScanResult
>
Default
=
new
SortedSetScanResultProcessor
();
public
static
readonly
ResultProcessor
<
ScanIterator
<
SortedSetEntry
>.
ScanResult
>
Default
=
new
SortedSetScanResultProcessor
();
private
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
;
if
(!
SortedSetWithScores
.
TryParse
(
result
,
out
SortedSetEntry
[]
pairs
))
pairs
=
null
;
return
pairs
;
return
pairs
;
...
@@ -3729,7 +3729,7 @@ private class StringGetWithExpiryProcessor : ResultProcessor<RedisValueWithExpir
...
@@ -3729,7 +3729,7 @@ private class StringGetWithExpiryProcessor : ResultProcessor<RedisValueWithExpir
{
{
public
static
readonly
ResultProcessor
<
RedisValueWithExpiry
>
Default
=
new
StringGetWithExpiryProcessor
();
public
static
readonly
ResultProcessor
<
RedisValueWithExpiry
>
Default
=
new
StringGetWithExpiryProcessor
();
private
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
)
switch
(
result
.
Type
)
{
{
...
...
src/StackExchange.Redis/RedisResult.cs
View file @
942b15f4
...
@@ -45,7 +45,7 @@ public static RedisResult Create(RedisResult[] values)
...
@@ -45,7 +45,7 @@ public static RedisResult Create(RedisResult[] values)
// internally, this is very similar to RawResult, except it is designed to be usable
// 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
// 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
try
{
{
...
...
src/StackExchange.Redis/RedisServer.cs
View file @
942b15f4
...
@@ -742,7 +742,7 @@ protected override Message CreateMessage(long cursor)
...
@@ -742,7 +742,7 @@ protected override Message CreateMessage(long cursor)
public
static
readonly
ResultProcessor
<
ScanResult
>
processor
=
new
KeysResultProcessor
();
public
static
readonly
ResultProcessor
<
ScanResult
>
processor
=
new
KeysResultProcessor
();
private
class
KeysResultProcessor
:
ResultProcessor
<
ScanResult
>
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
)
switch
(
result
.
Type
)
{
{
...
...
src/StackExchange.Redis/RedisTransaction.cs
View file @
942b15f4
...
@@ -171,7 +171,7 @@ private class QueuedProcessor : ResultProcessor<bool>
...
@@ -171,7 +171,7 @@ private class QueuedProcessor : ResultProcessor<bool>
{
{
public
static
readonly
ResultProcessor
<
bool
>
Default
=
new
QueuedProcessor
();
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
))
if
(
result
.
Type
==
ResultType
.
SimpleString
&&
result
.
IsEqual
(
CommonReplies
.
QUEUED
))
{
{
...
@@ -432,7 +432,7 @@ private class TransactionProcessor : ResultProcessor<bool>
...
@@ -432,7 +432,7 @@ private class TransactionProcessor : ResultProcessor<bool>
{
{
public
static
readonly
TransactionProcessor
Default
=
new
TransactionProcessor
();
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
)
if
(
result
.
IsError
&&
message
is
TransactionMessage
tran
)
{
{
...
@@ -447,7 +447,7 @@ public override bool SetResult(PhysicalConnection connection, Message message, R
...
@@ -447,7 +447,7 @@ public override bool SetResult(PhysicalConnection connection, Message message, R
return
base
.
SetResult
(
connection
,
message
,
result
);
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
}
"
);
connection
?.
BridgeCouldBeNull
?.
Multiplexer
?.
OnTransactionLog
(
$"got
{
result
}
for
{
message
.
CommandAndKey
}
"
);
if
(
message
is
TransactionMessage
tran
)
if
(
message
is
TransactionMessage
tran
)
...
...
src/StackExchange.Redis/ResultProcessor.cs
View file @
942b15f4
...
@@ -165,7 +165,7 @@ public void SetException(Message message, Exception ex)
...
@@ -165,7 +165,7 @@ public void SetException(Message message, Exception ex)
box
?.
SetException
(
ex
);
box
?.
SetException
(
ex
);
}
}
// true if ready to be completed (i.e. false if re-issued to another server)
// 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
;
var
bridge
=
connection
.
BridgeCouldBeNull
;
if
(
message
is
LoggingMessage
logging
)
if
(
message
is
LoggingMessage
logging
)
...
@@ -256,9 +256,9 @@ public virtual bool SetResult(PhysicalConnection connection, Message message, Ra
...
@@ -256,9 +256,9 @@ public virtual bool SetResult(PhysicalConnection connection, Message message, Ra
return
true
;
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"
);
ConnectionMultiplexer
.
TraceWithoutContext
(
"From "
+
GetType
().
Name
,
"Unexpected Response"
);
ConnectionFail
(
message
,
ConnectionFailureType
.
ProtocolFailure
,
"Unexpected response to "
+
(
message
?.
Command
.
ToString
()
??
"n/a"
)
+
": "
+
result
.
ToString
());
ConnectionFail
(
message
,
ConnectionFailureType
.
ProtocolFailure
,
"Unexpected response to "
+
(
message
?.
Command
.
ToString
()
??
"n/a"
)
+
": "
+
result
.
ToString
());
...
@@ -272,7 +272,7 @@ public TimeSpanProcessor(bool isMilliseconds)
...
@@ -272,7 +272,7 @@ public TimeSpanProcessor(bool isMilliseconds)
this
.
isMilliseconds
=
isMilliseconds
;
this
.
isMilliseconds
=
isMilliseconds
;
}
}
public
bool
TryParse
(
RawResult
result
,
out
TimeSpan
?
expiry
)
public
bool
TryParse
(
in
RawResult
result
,
out
TimeSpan
?
expiry
)
{
{
switch
(
result
.
Type
)
switch
(
result
.
Type
)
{
{
...
@@ -304,7 +304,7 @@ public bool TryParse(RawResult result, out TimeSpan? expiry)
...
@@ -304,7 +304,7 @@ public bool TryParse(RawResult result, out TimeSpan? expiry)
return
false
;
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
))
if
(
TryParse
(
result
,
out
TimeSpan
?
expiry
))
{
{
...
@@ -322,7 +322,7 @@ public static TimerMessage CreateMessage(int db, CommandFlags flags, RedisComman
...
@@ -322,7 +322,7 @@ public static TimerMessage CreateMessage(int db, CommandFlags flags, RedisComman
return
new
TimerMessage
(
db
,
flags
,
command
,
value
);
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
)
if
(
result
.
Type
==
ResultType
.
Error
)
{
{
...
@@ -376,7 +376,7 @@ protected override void WriteImpl(PhysicalConnection physical)
...
@@ -376,7 +376,7 @@ protected override void WriteImpl(PhysicalConnection physical)
public
sealed
class
TrackSubscriptionsProcessor
:
ResultProcessor
<
bool
>
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
)
if
(
result
.
Type
==
ResultType
.
MultiBulk
)
{
{
...
@@ -393,7 +393,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -393,7 +393,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
internal
sealed
class
DemandZeroOrOneProcessor
:
ResultProcessor
<
bool
>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -408,7 +408,7 @@ public static bool TryGet(RawResult result, out bool value)
...
@@ -408,7 +408,7 @@ public static bool TryGet(RawResult result, out bool value)
return
false
;
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
))
if
(
TryGet
(
result
,
out
bool
value
))
{
{
...
@@ -472,7 +472,7 @@ private static int FromHex(char c)
...
@@ -472,7 +472,7 @@ private static int FromHex(char c)
}
}
// note that top-level error messages still get handled by SetResult, but nested errors
// note that top-level error messages still get handled by SetResult, but nested errors
// (is that a thing?) will be wrapped in the RedisResult
// (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
)
switch
(
result
.
Type
)
{
{
...
@@ -499,7 +499,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -499,7 +499,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
internal
sealed
class
SortedSetEntryArrayProcessor
:
ValuePairInterleavedProcessorBase
<
SortedSetEntry
>
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
);
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)
...
@@ -507,7 +507,7 @@ protected override SortedSetEntry Parse(RawResult first, RawResult second)
internal
sealed
class
HashEntryArrayProcessor
:
ValuePairInterleavedProcessorBase
<
HashEntry
>
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
());
return
new
HashEntry
(
first
.
AsRedisValue
(),
second
.
AsRedisValue
());
}
}
...
@@ -515,7 +515,7 @@ protected override HashEntry Parse(RawResult first, RawResult second)
...
@@ -515,7 +515,7 @@ protected override HashEntry Parse(RawResult first, RawResult second)
internal
abstract
class
ValuePairInterleavedProcessorBase
<
T
>
:
ResultProcessor
<
T
[
]>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -549,8 +549,8 @@ public bool TryParse(RawResult result, out T[] pairs)
...
@@ -549,8 +549,8 @@ public bool TryParse(RawResult result, out T[] pairs)
}
}
}
}
protected
abstract
T
Parse
(
RawResult
first
,
RawResult
second
);
protected
abstract
T
Parse
(
in
RawResult
first
,
in
RawResult
second
);
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
T
[]
arr
))
if
(
TryParse
(
result
,
out
T
[]
arr
))
{
{
...
@@ -563,7 +563,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -563,7 +563,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
AutoConfigureProcessor
:
ResultProcessor
<
bool
>
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
))
if
(
result
.
IsError
&&
result
.
StartsWith
(
CommonReplies
.
READONLY
))
{
{
...
@@ -578,7 +578,7 @@ public override bool SetResult(PhysicalConnection connection, Message message, R
...
@@ -578,7 +578,7 @@ public override bool SetResult(PhysicalConnection connection, Message message, R
return
base
.
SetResult
(
connection
,
message
,
result
);
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
;
var
server
=
connection
.
BridgeCouldBeNull
?.
ServerEndPoint
;
if
(
server
==
null
)
return
false
;
if
(
server
==
null
)
return
false
;
...
@@ -728,7 +728,7 @@ private static string Extract(string line, string prefix)
...
@@ -728,7 +728,7 @@ private static string Extract(string line, string prefix)
private
sealed
class
BooleanProcessor
:
ResultProcessor
<
bool
>
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
)
if
(
result
.
IsNull
)
{
{
...
@@ -766,7 +766,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -766,7 +766,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
ByteArrayProcessor
:
ResultProcessor
<
byte
[
]>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -790,7 +790,7 @@ internal static ClusterConfiguration Parse(PhysicalConnection connection, string
...
@@ -790,7 +790,7 @@ internal static ClusterConfiguration Parse(PhysicalConnection connection, string
return
config
;
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
)
switch
(
result
.
Type
)
{
{
...
@@ -808,7 +808,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -808,7 +808,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
ClusterNodesRawProcessor
:
ResultProcessor
<
string
>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -829,7 +829,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -829,7 +829,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
ConnectionIdentityProcessor
:
ResultProcessor
<
EndPoint
>
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
);
SetResult
(
message
,
connection
.
BridgeCouldBeNull
?.
ServerEndPoint
?.
EndPoint
);
return
true
;
return
true
;
...
@@ -838,7 +838,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -838,7 +838,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
DateTimeProcessor
:
ResultProcessor
<
DateTime
>
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
;
long
unixTime
;
switch
(
result
.
Type
)
switch
(
result
.
Type
)
...
@@ -880,7 +880,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -880,7 +880,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
DoubleProcessor
:
ResultProcessor
<
double
>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -916,7 +916,7 @@ public ExpectBasicStringProcessor(CommandBytes expected, bool startsWith = false
...
@@ -916,7 +916,7 @@ public ExpectBasicStringProcessor(CommandBytes expected, bool startsWith = false
_startsWith
=
startsWith
;
_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
))
if
(
_startsWith
?
result
.
StartsWith
(
_expected
)
:
result
.
IsEqual
(
_expected
))
{
{
...
@@ -930,7 +930,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -930,7 +930,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
InfoProcessor
:
ResultProcessor
<
IGrouping
<
string
,
KeyValuePair
<
string
,
string
>>[
]>
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
)
if
(
result
.
Type
==
ResultType
.
BulkString
)
{
{
...
@@ -969,7 +969,7 @@ private static string Normalize(string category)
...
@@ -969,7 +969,7 @@ private static string Normalize(string category)
private
class
Int64Processor
:
ResultProcessor
<
long
>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -990,7 +990,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -990,7 +990,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
class
PubSubNumSubProcessor
:
Int64Processor
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
)
if
(
result
.
Type
==
ResultType
.
MultiBulk
)
{
{
...
@@ -1007,7 +1007,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -1007,7 +1007,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
NullableDoubleProcessor
:
ResultProcessor
<
double
?>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -1033,7 +1033,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -1033,7 +1033,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
NullableInt64Processor
:
ResultProcessor
<
long
?>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -1065,7 +1065,7 @@ public RedisChannelArrayProcessor(RedisChannel.PatternMode mode)
...
@@ -1065,7 +1065,7 @@ public RedisChannelArrayProcessor(RedisChannel.PatternMode mode)
this
.
mode
=
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
)
switch
(
result
.
Type
)
{
{
...
@@ -1094,7 +1094,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -1094,7 +1094,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
RedisKeyArrayProcessor
:
ResultProcessor
<
RedisKey
[
]>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -1109,7 +1109,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -1109,7 +1109,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
RedisKeyProcessor
:
ResultProcessor
<
RedisKey
>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -1125,7 +1125,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -1125,7 +1125,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
RedisTypeProcessor
:
ResultProcessor
<
RedisType
>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -1144,7 +1144,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -1144,7 +1144,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
RedisValueArrayProcessor
:
ResultProcessor
<
RedisValue
[
]>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -1164,7 +1164,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -1164,7 +1164,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
StringArrayProcessor
:
ResultProcessor
<
string
[
]>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -1180,7 +1180,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -1180,7 +1180,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
RedisValueGeoPositionProcessor
:
ResultProcessor
<
GeoPosition
?>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -1196,7 +1196,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -1196,7 +1196,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
RedisValueGeoPositionArrayProcessor
:
ResultProcessor
<
GeoPosition
?[
]>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -1233,7 +1233,7 @@ private GeoRadiusResultArrayProcessor(GeoRadiusOptions options)
...
@@ -1233,7 +1233,7 @@ private GeoRadiusResultArrayProcessor(GeoRadiusOptions options)
this
.
options
=
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
)
switch
(
result
.
Type
)
{
{
...
@@ -1260,7 +1260,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -1260,7 +1260,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
return
false
;
return
false
;
}
}
private
static
GeoRadiusResult
Parse
(
GeoRadiusOptions
options
,
RawResult
item
)
private
static
GeoRadiusResult
Parse
(
GeoRadiusOptions
options
,
in
RawResult
item
)
{
{
if
(
options
==
GeoRadiusOptions
.
None
)
if
(
options
==
GeoRadiusOptions
.
None
)
{
{
...
@@ -1296,7 +1296,7 @@ private static GeoRadiusResult Parse(GeoRadiusOptions options, RawResult item)
...
@@ -1296,7 +1296,7 @@ private static GeoRadiusResult Parse(GeoRadiusOptions options, RawResult item)
private
sealed
class
RedisValueProcessor
:
ResultProcessor
<
RedisValue
>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -1312,7 +1312,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -1312,7 +1312,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
LeaseProcessor
:
ResultProcessor
<
Lease
<
byte
>>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -1328,7 +1328,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -1328,7 +1328,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
class
ScriptResultProcessor
:
ResultProcessor
<
RedisResult
>
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
))
if
(
result
.
Type
==
ResultType
.
Error
&&
result
.
StartsWith
(
CommonReplies
.
NOSCRIPT
))
{
// scripts are not flushed individually, so assume the entire script cache is toast ("SCRIPT FLUSH")
{
// 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
...
@@ -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
// note that top-level error messages still get handled by SetResult, but nested errors
// (is that a thing?) will be wrapped in the RedisResult
// (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
);
var
value
=
Redis
.
RedisResult
.
TryCreate
(
connection
,
result
);
if
(
value
!=
null
)
if
(
value
!=
null
)
...
@@ -1362,7 +1362,7 @@ public SingleStreamProcessor(bool skipStreamName = false)
...
@@ -1362,7 +1362,7 @@ public SingleStreamProcessor(bool skipStreamName = false)
this
.
skipStreamName
=
skipStreamName
;
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
)
if
(
result
.
IsNull
)
{
{
...
@@ -1445,7 +1445,7 @@ Multibulk array.
...
@@ -1445,7 +1445,7 @@ Multibulk array.
4) "Austen"
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
)
if
(
result
.
IsNull
)
{
{
...
@@ -1488,7 +1488,7 @@ private static T[] ConvertAll<T>(ReadOnlySpan<RawResult> items, Func<RawResult,
...
@@ -1488,7 +1488,7 @@ private static T[] ConvertAll<T>(ReadOnlySpan<RawResult> items, Func<RawResult,
}
}
internal
sealed
class
StreamConsumerInfoProcessor
:
InterleavedStreamInfoProcessorBase
<
StreamConsumerInfo
>
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.
// Note: the base class passes a single consumer from the response into this method.
...
@@ -1517,7 +1517,7 @@ protected override StreamConsumerInfo ParseItem(RawResult result)
...
@@ -1517,7 +1517,7 @@ protected override StreamConsumerInfo ParseItem(RawResult result)
internal
sealed
class
StreamGroupInfoProcessor
:
InterleavedStreamInfoProcessorBase
<
StreamGroupInfo
>
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.
// Note: the base class passes a single item from the response into this method.
...
@@ -1546,9 +1546,9 @@ protected override StreamGroupInfo ParseItem(RawResult result)
...
@@ -1546,9 +1546,9 @@ protected override StreamGroupInfo ParseItem(RawResult result)
internal
abstract
class
InterleavedStreamInfoProcessorBase
<
T
>
:
ResultProcessor
<
T
[
]>
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
)
if
(
result
.
Type
!=
ResultType
.
MultiBulk
)
{
{
...
@@ -1585,7 +1585,7 @@ internal sealed class StreamInfoProcessor : StreamProcessorBase<StreamInfo>
...
@@ -1585,7 +1585,7 @@ internal sealed class StreamInfoProcessor : StreamProcessorBase<StreamInfo>
// 12) 1) 1526569544280-0
// 12) 1) 1526569544280-0
// 2) 1) "message"
// 2) 1) "message"
// 2) "banana"
// 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
)
if
(
result
.
Type
!=
ResultType
.
MultiBulk
)
{
{
...
@@ -1650,7 +1650,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -1650,7 +1650,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
internal
sealed
class
StreamPendingInfoProcessor
:
ResultProcessor
<
StreamPendingInfo
>
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:
// Example:
// > XPENDING mystream mygroup
// > XPENDING mystream mygroup
...
@@ -1704,7 +1704,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -1704,7 +1704,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
internal
sealed
class
StreamPendingMessagesProcessor
:
ResultProcessor
<
StreamPendingMessageInfo
[
]>
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
)
if
(
result
.
Type
!=
ResultType
.
MultiBulk
)
{
{
...
@@ -1732,7 +1732,7 @@ internal abstract class StreamProcessorBase<T> : ResultProcessor<T>
...
@@ -1732,7 +1732,7 @@ internal abstract class StreamProcessorBase<T> : ResultProcessor<T>
{
{
// For command response formats see https://redis.io/topics/streams-intro.
// 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
)
if
(
item
.
IsNull
||
item
.
Type
!=
ResultType
.
MultiBulk
)
{
{
...
@@ -1746,7 +1746,7 @@ protected StreamEntry ParseRedisStreamEntry(RawResult item)
...
@@ -1746,7 +1746,7 @@ protected StreamEntry ParseRedisStreamEntry(RawResult item)
return
new
StreamEntry
(
id
:
entryDetails
[
0
].
AsRedisValue
(),
return
new
StreamEntry
(
id
:
entryDetails
[
0
].
AsRedisValue
(),
values
:
ParseStreamEntryValues
(
entryDetails
[
1
]));
values
:
ParseStreamEntryValues
(
entryDetails
[
1
]));
}
}
protected
StreamEntry
[]
ParseRedisStreamEntries
(
RawResult
result
)
protected
StreamEntry
[]
ParseRedisStreamEntries
(
in
RawResult
result
)
{
{
if
(
result
.
Type
!=
ResultType
.
MultiBulk
)
if
(
result
.
Type
!=
ResultType
.
MultiBulk
)
{
{
...
@@ -1758,7 +1758,7 @@ protected StreamEntry[] ParseRedisStreamEntries(RawResult result)
...
@@ -1758,7 +1758,7 @@ protected StreamEntry[] ParseRedisStreamEntries(RawResult result)
return
ConvertAll
(
arr
,
item
=>
ParseRedisStreamEntry
(
item
));
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
// The XRANGE, XREVRANGE, XREAD commands return stream entries
// in the following format. The name/value pairs are interleaved
// in the following format. The name/value pairs are interleaved
...
@@ -1802,7 +1802,7 @@ protected NameValueEntry[] ParseStreamEntryValues(RawResult result)
...
@@ -1802,7 +1802,7 @@ protected NameValueEntry[] ParseStreamEntryValues(RawResult result)
private
sealed
class
StringPairInterleavedProcessor
:
ValuePairInterleavedProcessorBase
<
KeyValuePair
<
string
,
string
>>
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
());
return
new
KeyValuePair
<
string
,
string
>(
first
.
GetString
(),
second
.
GetString
());
}
}
...
@@ -1810,7 +1810,7 @@ private sealed class StringPairInterleavedProcessor : ValuePairInterleavedProces
...
@@ -1810,7 +1810,7 @@ private sealed class StringPairInterleavedProcessor : ValuePairInterleavedProces
private
sealed
class
StringProcessor
:
ResultProcessor
<
string
>
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
)
switch
(
result
.
Type
)
{
{
...
@@ -1841,7 +1841,7 @@ public TracerProcessor(bool establishConnection)
...
@@ -1841,7 +1841,7 @@ public TracerProcessor(bool establishConnection)
this
.
establishConnection
=
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
}
'"
);
connection
?.
BridgeCouldBeNull
?.
Multiplexer
.
OnInfoMessage
(
$"got '
{
result
}
' for '
{
message
.
CommandAndKey
}
' on '
{
connection
}
'"
);
var
final
=
base
.
SetResult
(
connection
,
message
,
result
);
var
final
=
base
.
SetResult
(
connection
,
message
,
result
);
...
@@ -1863,7 +1863,7 @@ public override bool SetResult(PhysicalConnection connection, Message message, R
...
@@ -1863,7 +1863,7 @@ public override bool SetResult(PhysicalConnection connection, Message message, R
return
final
;
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
;
bool
happy
;
switch
(
message
.
Command
)
switch
(
message
.
Command
)
...
@@ -1924,7 +1924,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -1924,7 +1924,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
SentinelGetMasterAddressByNameProcessor
:
ResultProcessor
<
EndPoint
>
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:
// To repro timeout fail:
// if (result.Type == ResultType.MultiBulk) throw new Exception("Woops");
// if (result.Type == ResultType.MultiBulk) throw new Exception("Woops");
...
@@ -1960,7 +1960,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
...
@@ -1960,7 +1960,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
private
sealed
class
SentinelArrayOfArraysProcessor
:
ResultProcessor
<
KeyValuePair
<
string
,
string
>[][
]>
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
))
if
(!(
StringPairInterleaved
is
StringPairInterleavedProcessor
innerProcessor
))
{
{
...
...
toys/StackExchange.Redis.Server/RedisRequest.cs
View file @
942b15f4
...
@@ -28,7 +28,7 @@ public string GetString(int index)
...
@@ -28,7 +28,7 @@ public string GetString(int index)
=>
string
.
Equals
(
value
,
_inner
[
index
].
GetString
(),
StringComparison
.
OrdinalIgnoreCase
);
=>
string
.
Equals
(
value
,
_inner
[
index
].
GetString
(),
StringComparison
.
OrdinalIgnoreCase
);
public
override
int
GetHashCode
()
=>
throw
new
NotSupportedException
();
public
override
int
GetHashCode
()
=>
throw
new
NotSupportedException
();
internal
RedisRequest
(
RawResult
result
)
internal
RedisRequest
(
in
RawResult
result
)
{
{
_inner
=
result
;
_inner
=
result
;
Count
=
result
.
ItemsCount
;
Count
=
result
.
ItemsCount
;
...
...
toys/StackExchange.Redis.Server/RespServer.cs
View file @
942b15f4
...
@@ -468,7 +468,7 @@ public TypedRedisValue Execute(RedisClient client, RedisRequest request)
...
@@ -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
();
var
val
=
value
.
GetString
();
if
(
string
.
IsNullOrWhiteSpace
(
val
))
return
val
;
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