[System]: Use NetworkStream from the referencesource.
authorMartin Baulig <martin.baulig@xamarin.com>
Fri, 9 Oct 2015 15:30:10 +0000 (11:30 -0400)
committerMartin Baulig <martin.baulig@xamarin.com>
Mon, 12 Oct 2015 19:08:32 +0000 (15:08 -0400)
mcs/class/System/System.Net.Sockets/NetworkStream.cs [deleted file]
mcs/class/System/System.dll.sources
mcs/class/System/mobile_System.dll.sources

diff --git a/mcs/class/System/System.Net.Sockets/NetworkStream.cs b/mcs/class/System/System.Net.Sockets/NetworkStream.cs
deleted file mode 100644 (file)
index 27f3c54..0000000
+++ /dev/null
@@ -1,430 +0,0 @@
-//
-// System.Net.Sockets.NetworkStream.cs
-//
-// Author:
-//   Miguel de Icaza (miguel@ximian.com)
-//   Sridhar Kulkarni <sridharkulkarni@gmail.com>
-//
-// (C) 2002 Ximian, Inc. http://www.ximian.com
-// Copyright (C) 2002-2006 Novell, Inc.  http://www.novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.IO;
-using System.Runtime.InteropServices;
-#if !NET_2_1 || MOBILE
-using System.Timers;
-using System.Threading;
-#endif
-
-namespace System.Net.Sockets
-{
-       public class NetworkStream : Stream, IDisposable {
-               FileAccess access;
-               Socket socket;
-               bool owns_socket;
-               bool readable, writeable;
-               bool disposed = false;
-               
-               public NetworkStream (Socket socket)
-                       : this (socket, FileAccess.ReadWrite, false)
-               {
-               }
-
-               public NetworkStream (Socket socket, bool ownsSocket)
-                       : this (socket, FileAccess.ReadWrite, ownsSocket)
-               {
-               }
-
-               public NetworkStream (Socket socket, FileAccess access)
-                       : this (socket, access, false)
-               {
-               }
-               
-               public NetworkStream (Socket socket, FileAccess access, bool ownsSocket)
-               {
-                       if (socket == null)
-                               throw new ArgumentNullException ("socket is null");
-                       if (socket.SocketType != SocketType.Stream)
-                               throw new ArgumentException ("Socket is not of type Stream", "socket");
-                       if (!socket.Connected)
-                               throw new IOException ("Not connected");
-                       if (!socket.Blocking)
-                               throw new IOException ("Operation not allowed on a non-blocking socket.");
-                       
-                       this.socket = socket;
-                       this.owns_socket = ownsSocket;
-                       this.access = access;
-
-                       readable = CanRead;
-                       writeable = CanWrite;
-               }
-
-               public override bool CanRead {
-                       get {
-                               return access == FileAccess.ReadWrite || access == FileAccess.Read;
-                       }
-               }
-
-               public override bool CanSeek {
-                       get {
-                               // network sockets cant seek.
-                               return false;
-                       }
-               }
-
-               public override bool CanTimeout
-               {
-                       get {
-                               return(true);
-                       }
-               }
-
-               public override bool CanWrite {
-                       get {
-                               return access == FileAccess.ReadWrite || access == FileAccess.Write;
-                       }
-               }
-
-               public virtual bool DataAvailable {
-                       get {
-                               CheckDisposed ();
-                               return socket.Available > 0;
-                       }
-               }
-
-               public override long Length {
-                       get {
-                               // Network sockets always throw an exception
-                               throw new NotSupportedException ();
-                       }
-               }
-
-               public override long Position {
-                       get {
-                               // Network sockets always throw an exception
-                               throw new NotSupportedException ();
-                       }
-                       
-                       set {
-                               // Network sockets always throw an exception
-                               throw new NotSupportedException ();
-                       }
-               }
-
-               protected bool Readable {
-                       get {
-                               return readable;
-                       }
-
-                       set {
-                               readable = value;
-                       }
-               }
-
-#if !NET_2_1 || MOBILE
-               public override int ReadTimeout
-               {
-                       get {
-                               int r = socket.ReceiveTimeout;
-                               return (r <= 0) ? Timeout.Infinite : r;
-                       }
-                       set {
-                               if (value <= 0 && value != Timeout.Infinite) {
-                                       throw new ArgumentOutOfRangeException ("value", "The value specified is less than or equal to zero and is not Infinite.");
-                               }
-                               
-                               socket.ReceiveTimeout = value;
-                       }
-               }
-#endif
-
-               protected Socket Socket {
-                       get {
-                               return socket;
-                       }
-               }
-
-               protected bool Writeable {
-                       get {
-                               return writeable;
-                       }
-
-                       set {
-                               writeable = value;
-                       }
-               }
-
-#if !NET_2_1 || MOBILE
-               public override int WriteTimeout
-               {
-                       get {
-                               int r = socket.SendTimeout;
-                               return (r <= 0) ? Timeout.Infinite : r;
-                       }
-                       set {
-                               if (value <= 0 && value != Timeout.Infinite) {
-                                       throw new ArgumentOutOfRangeException ("value", "The value specified is less than or equal to zero and is not Infinite");
-                               }
-                               
-                               socket.SendTimeout = value;
-                       }
-               }
-#endif
-
-               public override IAsyncResult BeginRead (byte [] buffer, int offset, int size,
-                                                       AsyncCallback callback, object state)
-               {
-                       CheckDisposed ();                               
-                       IAsyncResult retval;
-
-                       if (buffer == null)
-                               throw new ArgumentNullException ("buffer is null");
-                       int len = buffer.Length;
-                       if(offset<0 || offset>len) {
-                               throw new ArgumentOutOfRangeException("offset exceeds the size of buffer");
-                       }
-                       if(size<0 || offset+size>len) {
-                               throw new ArgumentOutOfRangeException("offset+size exceeds the size of buffer");
-                       }
-
-                       Socket s = socket;
-
-                       if (s == null) {
-                               throw new IOException("Connection closed");
-                       }
-
-                       try {
-                               retval = s.BeginReceive (buffer, offset, size, 0, callback, state);
-                       } catch (Exception e) {
-                               throw new IOException ("BeginReceive failure", e);
-                       }
-
-                       return retval;
-               }
-
-               public override IAsyncResult BeginWrite (byte [] buffer, int offset, int size,
-                                                       AsyncCallback callback, object state)
-               {
-                       CheckDisposed ();
-                       IAsyncResult retval;
-
-                       if (buffer == null)
-                               throw new ArgumentNullException ("buffer is null");
-
-                       int len = buffer.Length;
-                       if(offset<0 || offset>len) {
-                               throw new ArgumentOutOfRangeException("offset exceeds the size of buffer");
-                       }
-                       if(size<0 || offset+size>len) {
-                               throw new ArgumentOutOfRangeException("offset+size exceeds the size of buffer");
-                       }
-
-                       Socket s = socket;
-
-                       if (s == null) {
-                               throw new IOException("Connection closed");
-                       }
-
-                       try {
-                               retval = s.BeginSend (buffer, offset, size, 0, callback, state);
-                       } catch (Exception e) {
-                               throw new IOException ("BeginWrite failure", e);
-                       }
-
-                       return retval;
-               }
-
-               ~NetworkStream ()
-               {
-                       Dispose (false);
-               }
-               
-
-#if !NET_2_1 || MOBILE
-               public void Close (int timeout)
-               {
-                       if (timeout < -1) {
-                               throw new ArgumentOutOfRangeException ("timeout", "timeout is less than -1");
-                       }
-                       
-                       System.Timers.Timer close_timer = new System.Timers.Timer ();
-                       close_timer.Elapsed += new ElapsedEventHandler (OnTimeoutClose);
-                       /* NB timeout is in milliseconds here, cf
-                        * seconds in Socket.Close(int)
-                        */
-                       close_timer.Interval = timeout;
-                       close_timer.AutoReset = false;
-                       close_timer.Enabled = true;
-               }
-               
-               private void OnTimeoutClose (object source, ElapsedEventArgs e)
-               {
-                       this.Close ();
-               }
-#endif
-
-               protected override void Dispose (bool disposing)
-               {
-                       if (disposed) 
-                               return;
-                       disposed = true;
-                       
-                       if (owns_socket) {
-                               Socket s = socket;
-                               if (s != null)
-                                       s.Close ();
-                       }
-                       socket = null;
-                       access = 0;
-
-                       if (disposing)
-                               GC.SuppressFinalize (this);
-               }
-
-               public override int EndRead (IAsyncResult ar)
-               {
-                       CheckDisposed ();
-                       int res;
-
-                       if (ar == null)
-                               throw new ArgumentNullException ("async result is null");
-
-                       Socket s = socket;
-
-                       if (s == null) {
-                               throw new IOException("Connection closed");
-                       }
-
-                       try {
-                               res = s.EndReceive (ar);
-                       } catch (Exception e) {
-                               throw new IOException ("EndRead failure", e);
-                       }
-                       return res;
-               }
-
-               public override void EndWrite (IAsyncResult ar)
-               {
-                       CheckDisposed ();
-                       if (ar == null)
-                               throw new ArgumentNullException ("async result is null");
-
-                       Socket s = socket;
-
-                       if (s == null) {
-                               throw new IOException("Connection closed");
-                       }
-
-                       try {
-                               s.EndSend (ar);
-                       } catch (Exception e) {
-                               throw new IOException ("EndWrite failure", e);
-                       }
-               }
-
-               public override void Flush ()
-               {
-                       // network streams are non-buffered, this is a no-op
-               }
-
-               public override int Read ([In,Out] byte [] buffer, int offset, int size)
-               {
-                       CheckDisposed ();
-                       int res;
-
-                       if (buffer == null)
-                               throw new ArgumentNullException ("buffer is null");
-                       if(offset<0 || offset>buffer.Length) {
-                               throw new ArgumentOutOfRangeException("offset exceeds the size of buffer");
-                       }
-                       if(size < 0 || offset+size>buffer.Length) {
-                               throw new ArgumentOutOfRangeException("offset+size exceeds the size of buffer");
-                       }
-
-                       Socket s = socket;
-
-                       if (s == null) {
-                               throw new IOException("Connection closed");
-                       }
-
-                       try {
-                               res = s.Receive (buffer, offset, size, 0);
-                       } catch (Exception e) {
-                               throw new IOException ("Read failure", e);
-                       }
-                       
-                       return res;
-               }
-
-               public override long Seek (long offset, SeekOrigin origin)
-               {
-                       // NetworkStream objects do not support seeking.
-                       
-                       throw new NotSupportedException ();
-               }
-
-               public override void SetLength (long value)
-               {
-                       // NetworkStream objects do not support SetLength
-                       
-                       throw new NotSupportedException ();
-               }
-
-               public override void Write (byte [] buffer, int offset, int size)
-               {
-                       CheckDisposed ();
-                       if (buffer == null)
-                               throw new ArgumentNullException ("buffer");
-
-                       if (offset < 0 || offset > buffer.Length)
-                               throw new ArgumentOutOfRangeException("offset exceeds the size of buffer");
-
-                       if (size < 0 || size > buffer.Length - offset)
-                               throw new ArgumentOutOfRangeException("offset+size exceeds the size of buffer");
-
-                       Socket s = socket;
-
-                       if (s == null) {
-                               throw new IOException("Connection closed");
-                       }
-
-                       try {
-                               int count = 0;
-                               while (size - count > 0) {
-                                       count += s.Send (buffer, offset + count, size - count, 0);
-                               }
-                       } catch (Exception e) {
-                               throw new IOException ("Write failure", e); 
-                       }
-               }
-               
-               private void CheckDisposed ()
-               {
-                       if (disposed)
-                               throw new ObjectDisposedException (GetType().FullName);
-               }
-
-
-       }
-}
index dcde0fa57f61468954e8aaa686347ff89c8526ef..53337389a2e77f131a019ff1123d757ee6719e5c 100644 (file)
@@ -428,7 +428,6 @@ System.Net.Sockets/IPv6MulticastOption.cs
 System.Net.Sockets/IPPacketInformation.cs
 System.Net.Sockets/LingerOption.cs
 System.Net.Sockets/MulticastOption.cs
-System.Net.Sockets/NetworkStream.cs
 System.Net.Sockets/ProtocolFamily.cs
 System.Net.Sockets/ProtocolType.cs
 System.Net.Sockets/SafeSocketHandle.cs
@@ -1010,6 +1009,7 @@ ReferenceSources/Win32Exception.cs
 ../../../external/referencesource/System/net/System/Net/WebUtility.cs
 ../../../external/referencesource/System/net/System/Net/WriteStreamClosedEventArgs.cs
 
+../../../external/referencesource/System/net/System/Net/Sockets/NetworkStream.cs
 ../../../external/referencesource/System/net/System/Net/NetworkInformation/IPInterfaceStatistics.cs
 ../../../external/referencesource/System/net/System/Net/NetworkInformation/ScopeLevel.cs
 ../../../external/referencesource/System/net/System/Net/NetworkInformation/UnicastIPAddressInformation.cs
index 7ac1859e3874f82241ec2dd7b6b9790288a6efa4..5412ae6e78f630d85e7dd9d85b9413af6b8ee44b 100644 (file)
@@ -123,7 +123,6 @@ System.Net.Sockets/IPPacketInformation.cs
 System.Net.Sockets/IPv6MulticastOption.cs
 System.Net.Sockets/LingerOption.cs
 System.Net.Sockets/MulticastOption.cs
-System.Net.Sockets/NetworkStream.cs
 System.Net.Sockets/ProtocolFamily.cs
 System.Net.Sockets/ProtocolType.cs
 System.Net.Sockets/SafeSocketHandle.cs
@@ -731,6 +730,7 @@ ReferenceSources/Win32Exception.cs
 ../../../external/referencesource/System/net/System/Net/WebUtility.cs
 ../../../external/referencesource/System/net/System/Net/WriteStreamClosedEventArgs.cs
 
+../../../external/referencesource/System/net/System/Net/Sockets/NetworkStream.cs
 ../../../external/referencesource/System/net/System/Net/NetworkInformation/IPInterfaceStatistics.cs
 ../../../external/referencesource/System/net/System/Net/NetworkInformation/ScopeLevel.cs
 ../../../external/referencesource/System/net/System/Net/NetworkInformation/UnicastIPAddressInformation.cs