1 //----------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation.  All rights reserved.
3 //----------------------------------------------------------------
4 namespace System.ServiceModel.Discovery
5 {
6     using System.Runtime;
7     using System.ServiceModel.Description;
8     using System.ServiceModel.Dispatcher;
9 
10     [Fx.Tag.XamlVisible(false)]
11     public class DiscoveryOperationContextExtension : IExtension<OperationContext>
12     {
13         TimeSpan maxResponseDelay;
14         ServiceDiscoveryMode discoveryMode;
15         DiscoveryVersion discoveryVersion;
16 
DiscoveryOperationContextExtension()17         internal DiscoveryOperationContextExtension()
18             : this(TimeSpan.Zero, ServiceDiscoveryMode.Adhoc, DiscoveryVersion.DefaultDiscoveryVersion)
19         {
20         }
21 
DiscoveryOperationContextExtension(TimeSpan maxResponseDelay, ServiceDiscoveryMode discoveryMode, DiscoveryVersion discoveryVersion)22         internal DiscoveryOperationContextExtension(TimeSpan maxResponseDelay, ServiceDiscoveryMode discoveryMode, DiscoveryVersion discoveryVersion)
23         {
24             TimeoutHelper.ThrowIfNegativeArgument(maxResponseDelay, "maxResponseDelay");
25             Fx.Assert(discoveryVersion != null, "discoveryVersion can't be null");
26 
27             this.maxResponseDelay = maxResponseDelay;
28             this.discoveryMode = discoveryMode;
29             this.discoveryVersion = discoveryVersion;
30         }
31 
32         public TimeSpan MaxResponseDelay
33         {
34             get
35             {
36                 return this.maxResponseDelay;
37             }
38             internal set
39             {
40                 TimeoutHelper.ThrowIfNegativeArgument(value, "values");
41                 this.maxResponseDelay = value;
42             }
43         }
44 
45         public ServiceDiscoveryMode DiscoveryMode
46         {
47             get
48             {
49                 return this.discoveryMode;
50             }
51         }
52 
53         public DiscoveryVersion DiscoveryVersion
54         {
55             get
56             {
57                 return this.discoveryVersion;
58             }
59         }
60 
Attach(OperationContext owner)61         void IExtension<OperationContext>.Attach(OperationContext owner)
62         {
63         }
64 
Detach(OperationContext owner)65         void IExtension<OperationContext>.Detach(OperationContext owner)
66         {
67         }
68     }
69 }
70