removed unused variables
[mono.git] / mcs / class / Microsoft.Web.Services / Microsoft.Web.Services.Messaging / SoapTcpListener.cs
1 //
2 // Microsoft.Web.Services.Messaging.SoapTcpListener.cs
3 //
4 // Author: Todd Berman <tberman@gentoo.org>
5 //
6 // (C) 2003 Todd Berman
7
8 using System;
9 using System.Net;
10 using System.Net.Sockets;
11
12 namespace Microsoft.Web.Services.Messaging
13 {
14         public class SoapTcpListener : TcpListener
15         {
16
17                 private int _refs = 0;
18
19                 private delegate Socket AcceptSock ();
20
21                 private AcceptSock _acceptSocket;
22         
23                 public SoapTcpListener (IPEndPoint endpoint) : base (endpoint)
24                 {
25                         if(Server == null) {
26                                 Server.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.ExclusiveAddressUse, true);
27                         }
28                 }
29
30                 public SoapTcpListener (IPAddress address, int port) : base (address, port)
31                 {
32                         if(Server == null) {
33                                 Server.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.ExclusiveAddressUse, true);
34                         }
35                 }
36
37                 public SoapTcpListener (int port) : base (port)
38                 {
39                         if(Server == null) {
40                                 Server.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.ExclusiveAddressUse, true);
41                         }
42                 }
43
44                 public void AddReference ()
45                 {
46                         _refs++;
47                 }
48
49                 public int ReleaseReference ()
50                 {
51                         return --_refs;
52                 }
53
54                 public IAsyncResult BeginAcceptSocket (AsyncCallback callback, object state)
55                 {
56                         if(_acceptSocket == null) {
57                                 _acceptSocket = new AcceptSock (base.AcceptSocket);
58                         }
59                         return _acceptSocket.BeginInvoke (callback, state);
60                 }
61
62                 public Socket EndAcceptSocket (IAsyncResult result)
63                 {
64                         return _acceptSocket.EndInvoke (result);
65                 }
66
67                 public bool IsListening {
68                         get { return Active; }
69                 }
70         }
71 }