Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ OfferMessage() [1/2]

DataflowMessageStatus ITargetBlock< T >. System.Threading.Tasks.Dataflow.WriteOnceBlock< T >.OfferMessage ( DataflowMessageHeader messageHeader,
T messageValue,
ISourceBlock< T > source,
bool consumeToAccept )
inlineprivate

Definition at line 275 of file WriteOnceBlock.cs.

276 {
277 if (!messageHeader.IsValid)
278 {
279 throw new ArgumentException(System.SR.Argument_InvalidMessageHeader, "messageHeader");
280 }
281 if (source == null && consumeToAccept)
282 {
284 }
285 bool flag = false;
287 {
289 {
290 return DataflowMessageStatus.DecliningPermanently;
291 }
292 if (consumeToAccept)
293 {
294 messageValue = source.ConsumeMessage(messageHeader, this, out var messageConsumed);
295 if (!messageConsumed)
296 {
297 return DataflowMessageStatus.NotAvailable;
298 }
299 }
304 {
305 flag = (_completionReserved = true);
306 }
307 }
308 if (flag)
309 {
310 CompleteBlockAsync(null);
311 }
312 return DataflowMessageStatus.Accepted;
313 }
static string Argument_InvalidMessageHeader
Definition SR.cs:24
static string Argument_CantConsumeFromANullSource
Definition SR.cs:22
Definition SR.cs:7
static readonly DataflowMessageHeader SingleMessageHeader
Definition Common.cs:26
void CompleteBlockAsync(IList< Exception > exceptions)

References System.Threading.Tasks.Dataflow.WriteOnceBlock< T >._completionReserved, System.Threading.Tasks.Dataflow.WriteOnceBlock< T >._decliningPermanently, System.Threading.Tasks.Dataflow.WriteOnceBlock< T >._header, System.Threading.Tasks.Dataflow.WriteOnceBlock< T >._value, System.SR.Argument_CantConsumeFromANullSource, System.SR.Argument_InvalidMessageHeader, System.Threading.Tasks.Dataflow.WriteOnceBlock< T >.CompleteBlockAsync(), System.Threading.Tasks.Dataflow.Internal.Common.SingleMessageHeader, System.source, and System.Threading.Tasks.Dataflow.WriteOnceBlock< T >.ValueLock.