@@ -64,7 +64,8 @@ public ValueTask HandleBasicConsumeOkAsync(IBasicConsumer consumer, string consu
64
64
if ( false == _disposed && false == _quiesce )
65
65
{
66
66
AddConsumer ( consumer , consumerTag ) ;
67
- return _writer . WriteAsync ( new WorkStruct ( WorkType . ConsumeOk , consumer , consumerTag ) , cancellationToken ) ;
67
+ WorkStruct work = WorkStruct . CreateConsumeOk ( consumer , consumerTag ) ;
68
+ return _writer . WriteAsync ( work , cancellationToken ) ;
68
69
}
69
70
else
70
71
{
@@ -78,7 +79,8 @@ public ValueTask HandleBasicDeliverAsync(string consumerTag, ulong deliveryTag,
78
79
{
79
80
if ( false == _disposed && false == _quiesce )
80
81
{
81
- var work = new WorkStruct ( GetConsumerOrDefault ( consumerTag ) , consumerTag , deliveryTag , redelivered , exchange , routingKey , basicProperties , body ) ;
82
+ IBasicConsumer consumer = GetConsumerOrDefault ( consumerTag ) ;
83
+ var work = WorkStruct . CreateDeliver ( consumer , consumerTag , deliveryTag , redelivered , exchange , routingKey , basicProperties , body ) ;
82
84
return _writer . WriteAsync ( work , cancellationToken ) ;
83
85
}
84
86
else
@@ -91,7 +93,9 @@ public ValueTask HandleBasicCancelOkAsync(string consumerTag, CancellationToken
91
93
{
92
94
if ( false == _disposed && false == _quiesce )
93
95
{
94
- return _writer . WriteAsync ( new WorkStruct ( WorkType . CancelOk , GetAndRemoveConsumer ( consumerTag ) , consumerTag ) , cancellationToken ) ;
96
+ IBasicConsumer consumer = GetAndRemoveConsumer ( consumerTag ) ;
97
+ WorkStruct work = WorkStruct . CreateCancelOk ( consumer , consumerTag ) ;
98
+ return _writer . WriteAsync ( work , cancellationToken ) ;
95
99
}
96
100
else
97
101
{
@@ -103,7 +107,9 @@ public ValueTask HandleBasicCancelAsync(string consumerTag, CancellationToken ca
103
107
{
104
108
if ( false == _disposed && false == _quiesce )
105
109
{
106
- return _writer . WriteAsync ( new WorkStruct ( WorkType . Cancel , GetAndRemoveConsumer ( consumerTag ) , consumerTag ) , cancellationToken ) ;
110
+ IBasicConsumer consumer = GetAndRemoveConsumer ( consumerTag ) ;
111
+ WorkStruct work = WorkStruct . CreateCancel ( consumer , consumerTag ) ;
112
+ return _writer . WriteAsync ( work , cancellationToken ) ;
107
113
}
108
114
else
109
115
{
@@ -226,7 +232,7 @@ await _worker
226
232
227
233
protected sealed override void ShutdownConsumer ( IBasicConsumer consumer , ShutdownEventArgs reason )
228
234
{
229
- _writer . TryWrite ( new WorkStruct ( consumer , reason ) ) ;
235
+ _writer . TryWrite ( WorkStruct . CreateShutdown ( consumer , reason ) ) ;
230
236
}
231
237
232
238
protected override void InternalShutdown ( )
@@ -258,23 +264,23 @@ protected override Task InternalShutdownAsync()
258
264
public readonly ShutdownEventArgs ? Reason ;
259
265
public readonly WorkType WorkType ;
260
266
261
- public WorkStruct ( WorkType type , IBasicConsumer consumer , string consumerTag )
267
+ private WorkStruct ( WorkType type , IBasicConsumer consumer , string consumerTag )
262
268
: this ( )
263
269
{
264
270
WorkType = type ;
265
271
Consumer = consumer ;
266
272
ConsumerTag = consumerTag ;
267
273
}
268
274
269
- public WorkStruct ( IBasicConsumer consumer , ShutdownEventArgs reason )
275
+ private WorkStruct ( IBasicConsumer consumer , ShutdownEventArgs reason )
270
276
: this ( )
271
277
{
272
278
WorkType = WorkType . Shutdown ;
273
279
Consumer = consumer ;
274
280
Reason = reason ;
275
281
}
276
282
277
- public WorkStruct ( IBasicConsumer consumer , string consumerTag , ulong deliveryTag , bool redelivered ,
283
+ private WorkStruct ( IBasicConsumer consumer , string consumerTag , ulong deliveryTag , bool redelivered ,
278
284
string exchange , string routingKey , in ReadOnlyBasicProperties basicProperties , RentedMemory body )
279
285
{
280
286
WorkType = WorkType . Deliver ;
@@ -289,6 +295,33 @@ public WorkStruct(IBasicConsumer consumer, string consumerTag, ulong deliveryTag
289
295
Reason = default ;
290
296
}
291
297
298
+ public static WorkStruct CreateCancel ( IBasicConsumer consumer , string consumerTag )
299
+ {
300
+ return new WorkStruct ( WorkType . Cancel , consumer , consumerTag ) ;
301
+ }
302
+
303
+ public static WorkStruct CreateCancelOk ( IBasicConsumer consumer , string consumerTag )
304
+ {
305
+ return new WorkStruct ( WorkType . CancelOk , consumer , consumerTag ) ;
306
+ }
307
+
308
+ public static WorkStruct CreateConsumeOk ( IBasicConsumer consumer , string consumerTag )
309
+ {
310
+ return new WorkStruct ( WorkType . ConsumeOk , consumer , consumerTag ) ;
311
+ }
312
+
313
+ public static WorkStruct CreateShutdown ( IBasicConsumer consumer , ShutdownEventArgs reason )
314
+ {
315
+ return new WorkStruct ( consumer , reason ) ;
316
+ }
317
+
318
+ public static WorkStruct CreateDeliver ( IBasicConsumer consumer , string consumerTag , ulong deliveryTag , bool redelivered ,
319
+ string exchange , string routingKey , in ReadOnlyBasicProperties basicProperties , RentedMemory body )
320
+ {
321
+ return new WorkStruct ( consumer , consumerTag , deliveryTag , redelivered ,
322
+ exchange , routingKey , basicProperties , body ) ;
323
+ }
324
+
292
325
public void Dispose ( ) => Body . Dispose ( ) ;
293
326
}
294
327
0 commit comments