Merge pull request #2274 from esdrubal/udpclientreceive
[mono.git] / mcs / class / System.Threading.Tasks.Dataflow / CoreFxSources / Base / DataflowMessageStatus.cs
1 // Copyright (c) Microsoft. All rights reserved.
2 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
4 // =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
5 //
6 // DataflowMessageStatus.cs
7 //
8 //
9 // Status about the propagation of a message.
10 //
11 // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
12
13 namespace System.Threading.Tasks.Dataflow
14 {
15     /// <summary>Represents the status of a <see cref="DataflowMessageHeader"/> when passed between dataflow blocks.</summary>
16     public enum DataflowMessageStatus
17     {
18         /// <summary>
19         /// Indicates that the <see cref="ITargetBlock{TInput}"/> accepted the message.  Once a target has accepted a message, 
20         /// it is wholly owned by the target.
21         /// </summary>
22         Accepted = 0x0,
23
24         /// <summary>
25         /// Indicates that the <see cref="ITargetBlock{TInput}"/> declined the message.  The <see cref="ISourceBlock{TOutput}"/> still owns the message.
26         /// </summary>
27         Declined = 0x1,
28
29         /// <summary>
30         /// Indicates that the <see cref="ITargetBlock{TInput}"/> postponed the message for potential consumption at a later time.  
31         /// The <see cref="ISourceBlock{TOutput}"/> still owns the message.
32         /// </summary>
33         Postponed = 0x2,
34
35         /// <summary>
36         /// Indicates that the <see cref="ITargetBlock{TInput}"/> tried to accept the message from the <see cref="ISourceBlock{TOutput}"/>, but the 
37         /// message was no longer available.
38         /// </summary>
39         NotAvailable = 0x3,
40
41         /// <summary>
42         /// Indicates that the <see cref="ITargetBlock{TInput}"/> declined the message.  The <see cref="ISourceBlock{TOutput}"/> still owns the message.  
43         /// Additionally, the <see cref="ITargetBlock{TInput}"/> will decline all future messages sent by the source.
44         /// </summary>
45         DecliningPermanently = 0x4
46     }
47 }