Merge pull request #1874 from saper/bug_29679
[mono.git] / mcs / class / System.ServiceModel / System.ServiceModel.Channels / PeerOutputChannel.cs
1 #if false
2 //
3 // PeerOutputChannel.cs
4 //
5 // Author:
6 //      Atsushi Enomoto <atsushi@ximian.com>
7 //
8 // Copyright (C) 2006 Novell, Inc.  http://www.novell.com
9 //
10 // Permission is hereby granted, free of charge, to any person obtaining
11 // a copy of this software and associated documentation files (the
12 // "Software"), to deal in the Software without restriction, including
13 // without limitation the rights to use, copy, modify, merge, publish,
14 // distribute, sublicense, and/or sell copies of the Software, and to
15 // permit persons to whom the Software is furnished to do so, subject to
16 // the following conditions:
17 // 
18 // The above copyright notice and this permission notice shall be
19 // included in all copies or substantial portions of the Software.
20 // 
21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28 //
29 using System;
30 using System.Collections.Generic;
31 using System.IO;
32 using System.Net;
33 using System.Net.Security;
34 using System.ServiceModel;
35 using System.ServiceModel.Description;
36 using System.ServiceModel.Security;
37 using System.Threading;
38
39 namespace System.ServiceModel.Channels
40 {
41         internal class PeerOutputChannel : OutputChannelBase
42         {
43                 PeerChannelFactory<IOutputChannel> factory;
44                 PeerResolver resolver;
45                 PeerNode node;
46
47                 public PeerOutputChannel (PeerChannelFactory<IOutputChannel> factory, EndpointAddress address, Uri via, PeerResolver resolver)
48                         : base (factory, address, via)
49                 {
50                         this.factory = factory;
51                         this.resolver = resolver;
52
53                         // It could be opened even with empty list of PeerNodeAddresses.
54                         // So, do not create PeerNode per PeerNodeAddress, but do it with PeerNodeAddress[].
55                         node = new PeerNodeImpl (resolver, RemoteAddress, factory.Source.Port);
56                 }
57
58                 // OutputChannelBase
59
60                 public override IAsyncResult BeginSend (Message message, TimeSpan timeout, AsyncCallback callback, object state)
61                 {
62                         throw new NotImplementedException ();
63                 }
64
65                 public override void EndSend (IAsyncResult result)
66                 {
67                         throw new NotImplementedException ();
68                 }
69
70                 // CommunicationObject
71                 
72                 [MonoTODO]
73                 protected override void OnAbort ()
74                 {
75                         throw new NotImplementedException ();
76                 }
77
78                 [MonoTODO]
79                 protected override IAsyncResult OnBeginClose (TimeSpan timeout,
80                         AsyncCallback callback, object state)
81                 {
82                         throw new NotImplementedException ();
83                 }
84
85                 [MonoTODO]
86                 protected override IAsyncResult OnBeginOpen (TimeSpan timeout,
87                         AsyncCallback callback, object state)
88                 {
89                         throw new NotImplementedException ();
90                 }
91
92                 protected override void OnClose (TimeSpan timeout)
93                 {
94                         node.Close (timeout);
95                 }
96                 
97                 [MonoTODO]
98                 protected override void OnEndClose (IAsyncResult result)
99                 {
100                         throw new NotImplementedException ();
101                 }
102
103                 [MonoTODO]
104                 protected override void OnEndOpen (IAsyncResult result)
105                 {
106                         throw new NotImplementedException ();
107                 }
108                 
109                 protected override void OnOpen (TimeSpan timeout)
110                 {
111                         node.Open (timeout);
112                 }
113         }
114 }
115 #endif