From 8232c95cd87f6eb0d6003688543d5747e957489f Mon Sep 17 00:00:00 2001 From: sta Date: Thu, 21 Feb 2013 16:23:25 +0900 Subject: [PATCH] Added some XML documentation comments --- websocket-sharp/Net/ChunkStream.cs | 286 ++++++++++-------- websocket-sharp/Net/ChunkedInputStream.cs | 63 ++-- .../Net/HttpListenerPrefixCollection.cs | 160 +++++++++- websocket-sharp/Net/HttpStreamAsyncResult.cs | 27 +- websocket-sharp/Net/ListenerPrefix.cs | 56 ++-- websocket-sharp/Net/RequestStream.cs | 148 +++++---- .../bin/Debug_Ubuntu/websocket-sharp.dll | Bin 153600 -> 153600 bytes .../bin/Debug_Ubuntu/websocket-sharp.dll.mdb | Bin 69064 -> 68986 bytes .../bin/Release_Ubuntu/websocket-sharp.dll | Bin 152064 -> 152064 bytes .../bin/Release_Ubuntu/websocket-sharp.xml | 134 ++++++++ .../HttpListenerPrefixCollection.html | 276 +++++++++++++---- .../doc/html/WebSocketSharp.Net/index.html | 4 +- websocket-sharp/doc/html/index.html | 4 +- .../HttpListenerPrefixCollection.xml | 136 +++++++-- websocket-sharp/doc/mdoc/index.xml | 2 +- websocket-sharp/websocket-sharp.pidb | Bin 253610 -> 259176 bytes 16 files changed, 958 insertions(+), 338 deletions(-) diff --git a/websocket-sharp/Net/ChunkStream.cs b/websocket-sharp/Net/ChunkStream.cs index dd31605a..25cf7ad7 100644 --- a/websocket-sharp/Net/ChunkStream.cs +++ b/websocket-sharp/Net/ChunkStream.cs @@ -1,6 +1,6 @@ // // ChunkStream.cs -// Copied from System.Net.ChunkStream +// Copied from System.Net.ChunkStream.cs // // Authors: // Gonzalo Paniagua Javier (gonzalo@ximian.com) @@ -28,7 +28,7 @@ // using System; -using System.Collections; +using System.Collections.Generic; using System.Globalization; using System.IO; using System.Net; @@ -39,6 +39,7 @@ namespace WebSocketSharp.Net { class ChunkStream { enum State { + None, Body, BodyFinished, @@ -46,8 +47,9 @@ namespace WebSocketSharp.Net { } class Chunk { + public byte [] Bytes; - public int Offset; + public int Offset; public Chunk (byte [] chunk) { @@ -63,19 +65,29 @@ namespace WebSocketSharp.Net { } } - internal WebHeaderCollection headers; - int chunkSize; - int chunkRead; - State state; - //byte [] waitBuffer; + #region Private Fields + + int chunkRead; + List chunks; + int chunkSize; + bool gotit; StringBuilder saved; - bool sawCR; - bool gotit; - int trailerState; - ArrayList chunks; - + bool sawCR; + State state; + int trailerState; + + #endregion + + #region Internal Fields + + internal WebHeaderCollection headers; + + #endregion + + #region Constructors + public ChunkStream (byte [] buffer, int offset, int size, WebHeaderCollection headers) - : this (headers) + : this (headers) { Write (buffer, offset, size); } @@ -84,63 +96,89 @@ namespace WebSocketSharp.Net { { this.headers = headers; saved = new StringBuilder (); - chunks = new ArrayList (); + chunks = new List (); chunkSize = -1; } - public void ResetBuffer () - { - chunkSize = -1; - chunkRead = 0; - chunks.Clear (); - } - - public void WriteAndReadBack (byte [] buffer, int offset, int size, ref int read) - { - if (offset + read > 0) - Write (buffer, offset, offset+read); - read = Read (buffer, offset, size); + #endregion + + #region Properties + + public int ChunkLeft { + get { return chunkSize - chunkRead; } } - public int Read (byte [] buffer, int offset, int size) - { - return ReadFromChunks (buffer, offset, size); + public bool WantMore { + get { return (chunkRead != chunkSize || chunkSize != 0 || state != State.None); } } - int ReadFromChunks (byte [] buffer, int offset, int size) + #endregion + + #region Private Methods + + State GetChunkSize (byte [] buffer, ref int offset, int size) { - int count = chunks.Count; - int nread = 0; - for (int i = 0; i < count; i++) { - Chunk chunk = (Chunk) chunks [i]; - if (chunk == null) - continue; + char c = '\0'; + while (offset < size) { + c = (char) buffer [offset++]; + if (c == '\r') { + if (sawCR) + ThrowProtocolViolation ("2 CR found."); - if (chunk.Offset == chunk.Bytes.Length) { - chunks [i] = null; + sawCR = true; continue; } - nread += chunk.Read (buffer, offset + nread, size - nread); - if (nread == size) + if (sawCR && c == '\n') break; + + if (c == ' ') + gotit = true; + + if (!gotit) + saved.Append (c); + + if (saved.Length > 20) + ThrowProtocolViolation ("Chunk size too long."); } - return nread; - } - - public void Write (byte [] buffer, int offset, int size) - { - InternalWrite (buffer, ref offset, size); + if (!sawCR || c != '\n') { + if (offset < size) + ThrowProtocolViolation ("Missing \\n."); + + try { + if (saved.Length > 0) { + chunkSize = Int32.Parse (RemoveChunkExtension (saved.ToString ()), NumberStyles.HexNumber); + } + } catch (Exception) { + ThrowProtocolViolation ("Cannot parse chunk size."); + } + + return State.None; + } + + chunkRead = 0; + try { + chunkSize = Int32.Parse (RemoveChunkExtension (saved.ToString ()), NumberStyles.HexNumber); + } catch (Exception) { + ThrowProtocolViolation ("Cannot parse chunk size."); + } + + if (chunkSize == 0) { + trailerState = 2; + return State.Trailer; + } + + return State.Body; } - + void InternalWrite (byte [] buffer, ref int offset, int size) { if (state == State.None) { state = GetChunkSize (buffer, ref offset, size); if (state == State.None) return; - + saved.Length = 0; sawCR = false; gotit = false; @@ -151,7 +189,7 @@ namespace WebSocketSharp.Net { if (state == State.Body) return; } - + if (state == State.BodyFinished && offset < size) { state = ReadCRLF (buffer, ref offset, size); if (state == State.BodyFinished) @@ -174,14 +212,6 @@ namespace WebSocketSharp.Net { InternalWrite (buffer, ref offset, size); } - public bool WantMore { - get { return (chunkRead != chunkSize || chunkSize != 0 || state != State.None); } - } - - public int ChunkLeft { - get { return chunkSize - chunkRead; } - } - State ReadBody (byte [] buffer, ref int offset, int size) { if (chunkSize == 0) @@ -197,90 +227,47 @@ namespace WebSocketSharp.Net { offset += diff; chunkRead += diff; return (chunkRead == chunkSize) ? State.BodyFinished : State.Body; - - } - - State GetChunkSize (byte [] buffer, ref int offset, int size) - { - char c = '\0'; - while (offset < size) { - c = (char) buffer [offset++]; - if (c == '\r') { - if (sawCR) - ThrowProtocolViolation ("2 CR found"); - - sawCR = true; - continue; - } - - if (sawCR && c == '\n') - break; - - if (c == ' ') - gotit = true; - - if (!gotit) - saved.Append (c); - - if (saved.Length > 20) - ThrowProtocolViolation ("chunk size too long."); - } - - if (!sawCR || c != '\n') { - if (offset < size) - ThrowProtocolViolation ("Missing \\n"); - - try { - if (saved.Length > 0) { - chunkSize = Int32.Parse (RemoveChunkExtension (saved.ToString ()), NumberStyles.HexNumber); - } - } catch (Exception) { - ThrowProtocolViolation ("Cannot parse chunk size."); - } - - return State.None; - } - - chunkRead = 0; - try { - chunkSize = Int32.Parse (RemoveChunkExtension (saved.ToString ()), NumberStyles.HexNumber); - } catch (Exception) { - ThrowProtocolViolation ("Cannot parse chunk size."); - } - - if (chunkSize == 0) { - trailerState = 2; - return State.Trailer; - } - - return State.Body; - } - - static string RemoveChunkExtension (string input) - { - int idx = input.IndexOf (';'); - if (idx == -1) - return input; - return input.Substring (0, idx); } State ReadCRLF (byte [] buffer, ref int offset, int size) { if (!sawCR) { if ((char) buffer [offset++] != '\r') - ThrowProtocolViolation ("Expecting \\r"); + ThrowProtocolViolation ("Expecting \\r."); sawCR = true; if (offset == size) return State.BodyFinished; } - + if (sawCR && (char) buffer [offset++] != '\n') - ThrowProtocolViolation ("Expecting \\n"); + ThrowProtocolViolation ("Expecting \\n."); return State.None; } + int ReadFromChunks (byte [] buffer, int offset, int size) + { + int count = chunks.Count; + int nread = 0; + for (int i = 0; i < count; i++) { + var chunk = chunks [i]; + if (chunk == null) + continue; + + if (chunk.Offset == chunk.Bytes.Length) { + chunks [i] = null; + continue; + } + + nread += chunk.Read (buffer, offset + nread, size - nread); + if (nread == size) + break; + } + + return nread; + } + State ReadTrailer (byte [] buffer, ref int offset, int size) { char c = '\0'; @@ -292,9 +279,10 @@ namespace WebSocketSharp.Net { offset++; return State.None; } + offset--; } - + int st = trailerState; string stString = "\r\n\r"; while (offset < size && st < 4) { @@ -325,7 +313,7 @@ namespace WebSocketSharp.Net { return State.Trailer; } - StringReader reader = new StringReader (saved.ToString ()); + var reader = new StringReader (saved.ToString ()); string line; while ((line = reader.ReadLine ()) != null && line != "") headers.Add (line); @@ -333,10 +321,50 @@ namespace WebSocketSharp.Net { return State.None; } + static string RemoveChunkExtension (string input) + { + int idx = input.IndexOf (';'); + if (idx == -1) + return input; + + return input.Substring (0, idx); + } + static void ThrowProtocolViolation (string message) { - WebException we = new WebException (message, null, WebExceptionStatus.ServerProtocolViolation, null); + var we = new WebException (message, null, WebExceptionStatus.ServerProtocolViolation, null); throw we; } + + #endregion + + #region Public Methods + + public int Read (byte [] buffer, int offset, int size) + { + return ReadFromChunks (buffer, offset, size); + } + + public void ResetBuffer () + { + chunkSize = -1; + chunkRead = 0; + chunks.Clear (); + } + + public void Write (byte [] buffer, int offset, int size) + { + InternalWrite (buffer, ref offset, size); + } + + public void WriteAndReadBack (byte [] buffer, int offset, int size, ref int read) + { + if (offset + read > 0) + Write (buffer, offset, offset + read); + + read = Read (buffer, offset, size); + } + + #endregion } } diff --git a/websocket-sharp/Net/ChunkedInputStream.cs b/websocket-sharp/Net/ChunkedInputStream.cs index df988bc0..1797dbc4 100644 --- a/websocket-sharp/Net/ChunkedInputStream.cs +++ b/websocket-sharp/Net/ChunkedInputStream.cs @@ -1,6 +1,6 @@ // // ChunkedInputStream.cs -// Copied from System.Net.ChunkedInputStream +// Copied from System.Net.ChunkedInputStream.cs // // Authors: // Gonzalo Paniagua Javier (gonzalo@novell.com) @@ -25,21 +25,15 @@ // 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; using System.IO; -using System.Net; -using System.Net.Sockets; using System.Runtime.InteropServices; namespace WebSocketSharp.Net { - class ChunkedInputStream : RequestStream - { - HttpListenerContext context; - ChunkStream decoder; - bool disposed; - bool no_more_data; + class ChunkedInputStream : RequestStream { class ReadBufferState { @@ -60,6 +54,17 @@ namespace WebSocketSharp.Net { } } + #region Fields + + HttpListenerContext context; + ChunkStream decoder; + bool disposed; + bool no_more_data; + + #endregion + + #region Constructor + public ChunkedInputStream ( HttpListenerContext context, Stream stream, byte [] buffer, int offset, int length) : base (stream, buffer, offset, length) @@ -69,15 +74,23 @@ namespace WebSocketSharp.Net { decoder = new ChunkStream (coll); } + #endregion + + #region Property + public ChunkStream Decoder { get { return decoder; } set { decoder = value; } } + #endregion + + #region Private Method + void OnRead (IAsyncResult base_ares) { - ReadBufferState rb = (ReadBufferState) base_ares.AsyncState; - HttpStreamAsyncResult ares = rb.Ares; + var rb = (ReadBufferState) base_ares.AsyncState; + var ares = rb.Ares; try { int nread = base.EndRead (base_ares); decoder.Write (ares.Buffer, ares.Offset, nread); @@ -90,6 +103,7 @@ namespace WebSocketSharp.Net { ares.Complete (); return; } + ares.Offset = 0; ares.Count = Math.Min (8192, decoder.ChunkLeft + 6); base.BeginRead (ares.Buffer, ares.Offset, ares.Count, OnRead, rb); @@ -99,6 +113,10 @@ namespace WebSocketSharp.Net { } } + #endregion + + #region Public Methods + public override IAsyncResult BeginRead ( byte [] buffer, int offset, int count, AsyncCallback cback, object state) { @@ -110,18 +128,19 @@ namespace WebSocketSharp.Net { int len = buffer.Length; if (offset < 0 || offset > len) - throw new ArgumentOutOfRangeException ("offset exceeds the size of buffer"); + throw new ArgumentOutOfRangeException ("'offset' exceeds the size of buffer."); if (count < 0 || offset > len - count) - throw new ArgumentOutOfRangeException ("offset+size exceeds the size of buffer"); + throw new ArgumentOutOfRangeException ("'offset' + 'count' exceeds the size of buffer."); - HttpStreamAsyncResult ares = new HttpStreamAsyncResult (); + var ares = new HttpStreamAsyncResult (); ares.Callback = cback; ares.State = state; if (no_more_data) { ares.Complete (); return ares; } + int nread = decoder.Read (buffer, offset, count); offset += nread; count -= nread; @@ -131,16 +150,18 @@ namespace WebSocketSharp.Net { ares.Complete (); return ares; } + if (!decoder.WantMore) { no_more_data = nread == 0; ares.Count = nread; ares.Complete (); return ares; } + ares.Buffer = new byte [8192]; ares.Offset = 0; ares.Count = 8192; - ReadBufferState rb = new ReadBufferState (buffer, offset, count, ares); + var rb = new ReadBufferState (buffer, offset, count, ares); rb.InitialCount += nread; base.BeginRead (ares.Buffer, ares.Offset, ares.Count, OnRead, rb); return ares; @@ -159,23 +180,25 @@ namespace WebSocketSharp.Net { if (disposed) throw new ObjectDisposedException (GetType ().ToString ()); - HttpStreamAsyncResult my_ares = ares as HttpStreamAsyncResult; if (ares == null) - throw new ArgumentException ("Invalid IAsyncResult", "ares"); + throw new ArgumentException ("Invalid IAsyncResult.", "ares"); if (!ares.IsCompleted) ares.AsyncWaitHandle.WaitOne (); - if (my_ares.Error != null) + var ares_ = ares as HttpStreamAsyncResult; + if (ares_.Error != null) throw new HttpListenerException (400, "I/O operation aborted."); - return my_ares.Count; + return ares_.Count; } public override int Read ([In,Out] byte [] buffer, int offset, int count) { - IAsyncResult ares = BeginRead (buffer, offset, count, null, null); + var ares = BeginRead (buffer, offset, count, null, null); return EndRead (ares); } + + #endregion } } diff --git a/websocket-sharp/Net/HttpListenerPrefixCollection.cs b/websocket-sharp/Net/HttpListenerPrefixCollection.cs index 904c8f46..4c5a35a3 100644 --- a/websocket-sharp/Net/HttpListenerPrefixCollection.cs +++ b/websocket-sharp/Net/HttpListenerPrefixCollection.cs @@ -1,12 +1,12 @@ // // HttpListenerPrefixCollection.cs -// Copied from System.Net.HttpListenerPrefixCollection +// Copied from System.Net.HttpListenerPrefixCollection.cs // // Author: // Gonzalo Paniagua Javier (gonzalo@novell.com) // // Copyright (c) 2005 Novell, Inc. (http://www.novell.com) -// Copyright (c) 2012 sta.blockhead (sta.blockhead@gmail.com) +// Copyright (c) 2012-2013 sta.blockhead (sta.blockhead@gmail.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the @@ -31,38 +31,104 @@ using System; using System.Collections; using System.Collections.Generic; -using System.Net; namespace WebSocketSharp.Net { + /// + /// Provides the collection used to store the URI prefixes for the . + /// public class HttpListenerPrefixCollection : ICollection, IEnumerable, IEnumerable { + #region Fields + HttpListener listener; List prefixes; + #endregion + + #region Private Constructor + private HttpListenerPrefixCollection () { prefixes = new List (); } + #endregion + + #region Internal Constructor + internal HttpListenerPrefixCollection (HttpListener listener) : this () { this.listener = listener; } + #endregion + + #region Properties + + /// + /// Gets the number of prefixes contained in the . + /// + /// + /// A that contains the number of prefixes. + /// public int Count { get { return prefixes.Count; } } + /// + /// Gets a value indicating whether access to the is read-only. + /// + /// + /// Always returns false. + /// public bool IsReadOnly { get { return false; } } + /// + /// Gets a value indicating whether access to the is synchronized. + /// + /// + /// Always returns false. + /// public bool IsSynchronized { get { return false; } } + #endregion + + #region Explicit Interface Implementation + + /// + /// Gets an object that can be used to iterate through the . + /// + /// + /// An object that implements the interface and provides access to + /// the URI prefix strings in the . + /// + IEnumerator IEnumerable.GetEnumerator () + { + return prefixes.GetEnumerator (); + } + + #endregion + + #region Public Methods + + /// + /// Adds the specified to the . + /// + /// + /// A that contains a URI prefix to add. + /// + /// + /// is . + /// + /// + /// The associated with this is closed. + /// public void Add (string uriPrefix) { listener.CheckDisposed (); @@ -75,6 +141,12 @@ namespace WebSocketSharp.Net { EndPointManager.AddPrefix (uriPrefix, listener); } + /// + /// Removes all URI prefixes from the . + /// + /// + /// The associated with this is closed. + /// public void Clear () { listener.CheckDisposed (); @@ -83,34 +155,96 @@ namespace WebSocketSharp.Net { EndPointManager.RemoveListener (listener); } + /// + /// Returns a value indicating whether the contains + /// the specified . + /// + /// + /// true if the contains the specified ; + /// otherwise, false. + /// + /// + /// A that contains a URI prefix to test. + /// + /// + /// is . + /// + /// + /// The associated with this is closed. + /// public bool Contains (string uriPrefix) { listener.CheckDisposed (); - return prefixes.Contains (uriPrefix); - } + if (uriPrefix == null) + throw new ArgumentNullException ("uriPrefix"); - public void CopyTo (string [] array, int offset) - { - listener.CheckDisposed (); - prefixes.CopyTo (array, offset); + return prefixes.Contains (uriPrefix); } + /// + /// Copies the contents of the to the specified . + /// + /// + /// An that receives the URI prefix strings in the . + /// + /// + /// An that contains the zero-based index in at which copying begins. + /// + /// + /// The associated with this is closed. + /// public void CopyTo (Array array, int offset) { listener.CheckDisposed (); ((ICollection) prefixes).CopyTo (array, offset); } - public IEnumerator GetEnumerator () + /// + /// Copies the contents of the to the specified array of . + /// + /// + /// An array of that receives the URI prefix strings in the . + /// + /// + /// An that contains the zero-based index in at which copying begins. + /// + /// + /// The associated with this is closed. + /// + public void CopyTo (string [] array, int offset) { - return prefixes.GetEnumerator (); + listener.CheckDisposed (); + prefixes.CopyTo (array, offset); } - IEnumerator IEnumerable.GetEnumerator () + /// + /// Gets an object that can be used to iterate through the . + /// + /// + /// An object that implements the IEnumerator<string> interface and provides access to + /// the URI prefix strings in the . + /// + public IEnumerator GetEnumerator () { return prefixes.GetEnumerator (); } + /// + /// Removes the specified from the list of prefixes in the . + /// + /// + /// true if the was found in the + /// and removed; otherwise, false. + /// + /// + /// A that contains a URI prefix to remove. + /// + /// + /// is . + /// + /// + /// The associated with this is closed. + /// public bool Remove (string uriPrefix) { listener.CheckDisposed (); @@ -123,5 +257,7 @@ namespace WebSocketSharp.Net { return result; } + + #endregion } } diff --git a/websocket-sharp/Net/HttpStreamAsyncResult.cs b/websocket-sharp/Net/HttpStreamAsyncResult.cs index 6ae5e6f0..a9f2f094 100644 --- a/websocket-sharp/Net/HttpStreamAsyncResult.cs +++ b/websocket-sharp/Net/HttpStreamAsyncResult.cs @@ -1,6 +1,6 @@ // // HttpStreamAsyncResult.cs -// Copied from System.Net.HttpStreamAsyncResult +// Copied from System.Net.HttpStreamAsyncResult.cs // // Authors: // Gonzalo Paniagua Javier (gonzalo@novell.com) @@ -28,24 +28,33 @@ // using System; -using System.Net; using System.Threading; namespace WebSocketSharp.Net { - class HttpStreamAsyncResult : IAsyncResult - { + class HttpStreamAsyncResult : IAsyncResult { + + #region Private Fields + bool completed; ManualResetEvent handle; object locker = new object (); + #endregion + + #region Internal Fields + internal AsyncCallback Callback; internal int Count; internal byte [] Buffer; internal Exception Error; internal int Offset; internal object State; - internal int SynchRead; + internal int SyncRead; + + #endregion + + #region Properties public object AsyncState { get { return State; } @@ -63,7 +72,7 @@ namespace WebSocketSharp.Net { } public bool CompletedSynchronously { - get { return (SynchRead == Count); } + get { return (SyncRead == Count); } } public bool IsCompleted { @@ -74,6 +83,10 @@ namespace WebSocketSharp.Net { } } + #endregion + + #region Public Methods + public void Complete () { lock (locker) { @@ -94,5 +107,7 @@ namespace WebSocketSharp.Net { Error = e; Complete (); } + + #endregion } } diff --git a/websocket-sharp/Net/ListenerPrefix.cs b/websocket-sharp/Net/ListenerPrefix.cs index 41f4d590..57fca953 100644 --- a/websocket-sharp/Net/ListenerPrefix.cs +++ b/websocket-sharp/Net/ListenerPrefix.cs @@ -1,6 +1,6 @@ // // ListenerPrefix.cs -// Copied from System.ListenerPrefix +// Copied from System.ListenerPrefix.cs // // Author: // Gonzalo Paniagua Javier (gonzalo@novell.com) @@ -35,21 +35,36 @@ namespace WebSocketSharp.Net { sealed class ListenerPrefix { - IPAddress [] addresses; - string host; - string original; - string path; - ushort port; - bool secure; + #region Private Fields + + IPAddress [] addresses; + string host; + string original; + string path; + ushort port; + bool secure; + + #endregion + + #region Public Field public HttpListener Listener; + #endregion + + #region Constructor + + // Must be called after calling ListenerPrefix.CheckUri. public ListenerPrefix (string prefix) { original = prefix; Parse (prefix); } + #endregion + + #region Properties + public IPAddress [] Addresses { get { return addresses; } set { addresses = value; } @@ -71,19 +86,18 @@ namespace WebSocketSharp.Net { get { return secure; } } + #endregion + + #region Private Method + void Parse (string uri) { - int default_port = (uri.StartsWith ("http://")) ? 80 : -1; - if (default_port == -1) { - default_port = (uri.StartsWith ("https://")) ? 443 : -1; + int default_port = (uri.StartsWith ("http://")) ? 80 : 443; + if (default_port == 443) secure = true; - } int length = uri.Length; int start_host = uri.IndexOf (':') + 3; - if (start_host >= length) - throw new ArgumentException ("No host specified."); - int colon = uri.IndexOf (':', start_host, length - start_host); int root; if (colon > 0) { @@ -95,15 +109,21 @@ namespace WebSocketSharp.Net { root = uri.IndexOf ('/', start_host, length - start_host); host = uri.Substring (start_host, root - start_host); path = uri.Substring (root); + port = (ushort) default_port; } + if (path.Length != 1) path = path.Substring (0, path.Length - 1); } + #endregion + + #region public Methods + public static void CheckUri (string uri) { if (uri == null) - throw new ArgumentNullException ("uriPrefix"); + throw new ArgumentNullException ("uri"); int default_port = (uri.StartsWith ("http://")) ? 80 : -1; if (default_port == -1) @@ -140,13 +160,13 @@ namespace WebSocketSharp.Net { } if (uri [uri.Length - 1] != '/') - throw new ArgumentException ("The prefix must end with '/'"); + throw new ArgumentException ("The prefix must end with '/'."); } // Equals and GetHashCode are required to detect duplicates in HttpListenerPrefixCollection. public override bool Equals (object o) { - ListenerPrefix other = o as ListenerPrefix; + var other = o as ListenerPrefix; if (other == null) return false; @@ -162,5 +182,7 @@ namespace WebSocketSharp.Net { { return original; } + + #endregion } } diff --git a/websocket-sharp/Net/RequestStream.cs b/websocket-sharp/Net/RequestStream.cs index 2b08ea40..2af57f6f 100644 --- a/websocket-sharp/Net/RequestStream.cs +++ b/websocket-sharp/Net/RequestStream.cs @@ -1,6 +1,6 @@ // // RequestStream.cs -// Copied from System.Net.RequestStream +// Copied from System.Net.RequestStream.cs // // Author: // Gonzalo Paniagua Javier (gonzalo@novell.com) @@ -29,27 +29,31 @@ using System; using System.IO; -using System.Net; -using System.Net.Sockets; using System.Runtime.InteropServices; namespace WebSocketSharp.Net { - class RequestStream : Stream - { + class RequestStream : Stream { + + #region Fields + byte [] buffer; - int offset; - int length; - long remaining_body; - bool disposed; - System.IO.Stream stream; + bool disposed; + int length; + int offset; + long remaining_body; + Stream stream; + + #endregion - internal RequestStream (System.IO.Stream stream, byte [] buffer, int offset, int length) + #region Constructors + + internal RequestStream (Stream stream, byte [] buffer, int offset, int length) : this (stream, buffer, offset, length, -1) { } - internal RequestStream (System.IO.Stream stream, byte [] buffer, int offset, int length, long contentlength) + internal RequestStream (Stream stream, byte [] buffer, int offset, int length, long contentlength) { this.stream = stream; this.buffer = buffer; @@ -58,6 +62,10 @@ namespace WebSocketSharp.Net { this.remaining_body = contentlength; } + #endregion + + #region Properties + public override bool CanRead { get { return true; } } @@ -79,33 +87,30 @@ namespace WebSocketSharp.Net { set { throw new NotSupportedException (); } } + #endregion - public override void Close () - { - disposed = true; - } - - public override void Flush () - { - } + #region Private Method - // Returns 0 if we can keep reading from the base stream, // > 0 if we read something from the buffer. // -1 if we had a content length set and we finished reading that many bytes. - int FillFromBuffer (byte [] buffer, int off, int count) + int FillFromBuffer (byte [] buffer, int offset, int count) { if (buffer == null) throw new ArgumentNullException ("buffer"); - if (off < 0) + + if (offset < 0) throw new ArgumentOutOfRangeException ("offset", "< 0"); + if (count < 0) throw new ArgumentOutOfRangeException ("count", "< 0"); + int len = buffer.Length; - if (off > len) - throw new ArgumentException ("destination offset is beyond array size"); - if (off > len - count) - throw new ArgumentException ("Reading would overrun buffer"); + if (offset > len) + throw new ArgumentException ("Destination offset is beyond array size."); + + if (offset > len - count) + throw new ArgumentException ("Reading would overrun buffer."); if (this.remaining_body == 0) return -1; @@ -120,51 +125,38 @@ namespace WebSocketSharp.Net { if (this.offset > this.buffer.Length - size) { size = Math.Min (size, this.buffer.Length - this.offset); } + if (size == 0) return 0; - Buffer.BlockCopy (this.buffer, this.offset, buffer, off, size); + Buffer.BlockCopy (this.buffer, this.offset, buffer, offset, size); this.offset += size; this.length -= size; if (this.remaining_body > 0) remaining_body -= size; + return size; } - public override int Read ([In,Out] byte[] buffer, int offset, int count) - { - if (disposed) - throw new ObjectDisposedException (typeof (RequestStream).ToString ()); + #endregion - // Call FillFromBuffer to check for buffer boundaries even when remaining_body is 0 - int nread = FillFromBuffer (buffer, offset, count); - if (nread == -1) { // No more bytes available (Content-Length) - return 0; - } else if (nread > 0) { - return nread; - } + #region Public Methods - nread = stream.Read (buffer, offset, count); - if (nread > 0 && remaining_body > 0) - remaining_body -= nread; - return nread; - } - - public override IAsyncResult BeginRead (byte [] buffer, int offset, int count, - AsyncCallback cback, object state) + public override IAsyncResult BeginRead ( + byte [] buffer, int offset, int count, AsyncCallback cback, object state) { if (disposed) - throw new ObjectDisposedException (typeof (RequestStream).ToString ()); + throw new ObjectDisposedException (GetType ().ToString ()); int nread = FillFromBuffer (buffer, offset, count); if (nread > 0 || nread == -1) { - HttpStreamAsyncResult ares = new HttpStreamAsyncResult (); + var ares = new HttpStreamAsyncResult (); ares.Buffer = buffer; ares.Offset = offset; ares.Count = count; ares.Callback = cback; ares.State = state; - ares.SynchRead = nread; + ares.SyncRead = nread; ares.Complete (); return ares; } @@ -173,55 +165,89 @@ namespace WebSocketSharp.Net { // for HTTP pipelining if (remaining_body >= 0 && count > remaining_body) count = (int) Math.Min (Int32.MaxValue, remaining_body); + return stream.BeginRead (buffer, offset, count, cback, state); } + public override IAsyncResult BeginWrite ( + byte [] buffer, int offset, int count, AsyncCallback cback, object state) + { + throw new NotSupportedException (); + } + + public override void Close () + { + disposed = true; + } + public override int EndRead (IAsyncResult ares) { if (disposed) - throw new ObjectDisposedException (typeof (RequestStream).ToString ()); + throw new ObjectDisposedException (GetType ().ToString ()); if (ares == null) - throw new ArgumentNullException ("async_result"); + throw new ArgumentNullException ("ares"); if (ares is HttpStreamAsyncResult) { - HttpStreamAsyncResult r = (HttpStreamAsyncResult) ares; + var ares_ = (HttpStreamAsyncResult) ares; if (!ares.IsCompleted) ares.AsyncWaitHandle.WaitOne (); - return r.SynchRead; + + return ares_.SyncRead; } // Close on exception? int nread = stream.EndRead (ares); if (remaining_body > 0 && nread > 0) remaining_body -= nread; + return nread; } - public override long Seek (long offset, SeekOrigin origin) + public override void EndWrite (IAsyncResult async_result) { throw new NotSupportedException (); } - public override void SetLength (long value) + public override void Flush () { - throw new NotSupportedException (); } - public override void Write (byte[] buffer, int offset, int count) + public override int Read ([In,Out] byte[] buffer, int offset, int count) + { + if (disposed) + throw new ObjectDisposedException (GetType () .ToString ()); + + // Call FillFromBuffer to check for buffer boundaries even when remaining_body is 0 + int nread = FillFromBuffer (buffer, offset, count); + if (nread == -1) { // No more bytes available (Content-Length) + return 0; + } else if (nread > 0) { + return nread; + } + + nread = stream.Read (buffer, offset, count); + if (nread > 0 && remaining_body > 0) + remaining_body -= nread; + + return nread; + } + + public override long Seek (long offset, SeekOrigin origin) { throw new NotSupportedException (); } - public override IAsyncResult BeginWrite (byte [] buffer, int offset, int count, - AsyncCallback cback, object state) + public override void SetLength (long value) { throw new NotSupportedException (); } - public override void EndWrite (IAsyncResult async_result) + public override void Write (byte[] buffer, int offset, int count) { throw new NotSupportedException (); } + + #endregion } } diff --git a/websocket-sharp/bin/Debug_Ubuntu/websocket-sharp.dll b/websocket-sharp/bin/Debug_Ubuntu/websocket-sharp.dll index 8f734496306ef6570d4184b77ebcc353f37c60c2..ada75c22183549150445c924c14dfda75aaac86f 100755 GIT binary patch delta 41421 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 delta 41755 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 diff --git a/websocket-sharp/bin/Debug_Ubuntu/websocket-sharp.dll.mdb b/websocket-sharp/bin/Debug_Ubuntu/websocket-sharp.dll.mdb index 1cd4067225d6ece2ebc95e1ff37f1c3189e4be74..7cc96a4b3bb4b24ec7e2f24971b9d93b6cf2d6fe 100644 GIT binary patch delta 34765 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 U{&5cDa~#ff_RK6=piQCw1Gc?2*#H0l literal 69064 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 delta 41637 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 Q2>1?FQO_fj=yUYH0i that contains an error code. + + + Provides the collection used to store the URI prefixes for the . + + + + + Gets the number of prefixes contained in the . + + + A that contains the number of prefixes. + + + + + Gets a value indicating whether access to the is read-only. + + + Always returns false. + + + + + Gets a value indicating whether access to the is synchronized. + + + Always returns false. + + + + + Gets an object that can be used to iterate through the . + + + An object that implements the interface and provides access to + the URI prefix strings in the . + + + + + Adds the specified to the . + + + A that contains a URI prefix to add. + + + is . + + + The associated with this is closed. + + + + + Removes all URI prefixes from the . + + + The associated with this is closed. + + + + + Returns a value indicating whether the contains + the specified . + + + true if the contains the specified ; + otherwise, false. + + + A that contains a URI prefix to test. + + + is . + + + The associated with this is closed. + + + + + Copies the contents of the to the specified . + + + An that receives the URI prefix strings in the . + + + An that contains the zero-based index in at which copying begins. + + + The associated with this is closed. + + + + + Copies the contents of the to the specified array of . + + + An array of that receives the URI prefix strings in the . + + + An that contains the zero-based index in at which copying begins. + + + The associated with this is closed. + + + + + Gets an object that can be used to iterate through the . + + + An object that implements the IEnumerator<string> interface and provides access to + the URI prefix strings in the . + + + + + Removes the specified from the list of prefixes in the . + + + true if the was found in the + and removed; otherwise, false. + + + A that contains a URI prefix to remove. + + + is . + + + The associated with this is closed. + + Decodes an HTML-encoded string and returns the decoded string. diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerPrefixCollection.html b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerPrefixCollection.html index 67ad6e82..e681f82f 100644 --- a/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerPrefixCollection.html +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerPrefixCollection.html @@ -207,8 +207,8 @@

HttpListenerPrefixCollection Class

- Documentation for this section has not yet been entered. -

+ Provides the collection used to store the URI prefixes for the
WebSocketSharp.Net.HttpListener. +

Syntax

public class HttpListenerPrefixCollection : ICollection<string>, IEnumerable<string>
@@ -241,7 +241,9 @@ int - . Documentation for this section has not yet been entered. + . + Gets the number of prefixes contained in the WebSocketSharp.Net.HttpListenerPrefixCollection. + [read-only]
@@ -253,7 +255,9 @@ bool - . Documentation for this section has not yet been entered. + . + Gets a value indicating whether access to the WebSocketSharp.Net.HttpListenerPrefixCollection is read-only. + [read-only]
@@ -265,7 +269,9 @@ bool - . Documentation for this section has not yet been entered. + . + Gets a value indicating whether access to the WebSocketSharp.Net.HttpListenerPrefixCollection is synchronized. +
@@ -282,7 +288,9 @@ Add - (string)
Documentation for this section has not yet been entered.
+ (string)
+ Adds the specified uriPrefix to the WebSocketSharp.Net.HttpListenerPrefixCollection. +
@@ -292,7 +300,9 @@ Clear - ()
Documentation for this section has not yet been entered.
+ ()
+ Removes all URI prefixes from the WebSocketSharp.Net.HttpListenerPrefixCollection. +
@@ -302,7 +312,10 @@ Contains - (string) : bool
Documentation for this section has not yet been entered.
+ (string) : bool
+ Returns a value indicating whether the WebSocketSharp.Net.HttpListenerPrefixCollection contains + the specified uriPrefix. +
@@ -312,7 +325,9 @@ CopyTo - (Array, int)
Documentation for this section has not yet been entered.
+ (Array, int)
+ Copies the contents of the WebSocketSharp.Net.HttpListenerPrefixCollection to the specified Array. +
@@ -322,7 +337,9 @@ CopyTo - (string[], int)
Documentation for this section has not yet been entered.
+ (string[], int)
+ Copies the contents of the WebSocketSharp.Net.HttpListenerPrefixCollection to the specified array of string. +
@@ -332,7 +349,9 @@ GetEnumerator - () : IEnumerator<string>
Documentation for this section has not yet been entered.
+ () : IEnumerator<string>
+ Gets an object that can be used to iterate through the WebSocketSharp.Net.HttpListenerPrefixCollection. +
@@ -342,7 +361,9 @@ Remove - (string) : bool
Documentation for this section has not yet been entered.
+ (string) : bool
+ Removes the specified uriPrefix from the list of prefixes in the WebSocketSharp.Net.HttpListenerPrefixCollection. +
@@ -362,8 +383,8 @@ - Documentation for this section has not yet been entered. - + Gets an object that can be used to iterate through the WebSocketSharp.Net.HttpListenerPrefixCollection. + @@ -406,8 +427,8 @@

Add Method

- Documentation for this section has not yet been entered. -

+ Adds the specified uriPrefix to the WebSocketSharp.Net.HttpListenerPrefixCollection. +

Syntax

public void Add (string uriPrefix)

Parameters

@@ -417,10 +438,35 @@ uriPrefix
- Documentation for this section has not yet been entered. -
+ A string that contains a URI prefix to add. +
+

Exceptions

+
+ + + + + + + + + + + + + +
TypeReason
+ ArgumentNullException + + uriPrefix is null. +
+ ObjectDisposedException + + The WebSocketSharp.Net.HttpListener associated with this WebSocketSharp.Net.HttpListenerPrefixCollection is closed. +
+

Remarks

Documentation for this section has not yet been entered. @@ -433,10 +479,27 @@

Clear Method

- Documentation for this section has not yet been entered. -

+ Removes all URI prefixes from the WebSocketSharp.Net.HttpListenerPrefixCollection. +

Syntax

public void Clear ()
+

Exceptions

+
+ + + + + + + + + +
TypeReason
+ ObjectDisposedException + + The WebSocketSharp.Net.HttpListener associated with this WebSocketSharp.Net.HttpListenerPrefixCollection is closed. +
+

Remarks

Documentation for this section has not yet been entered. @@ -449,8 +512,9 @@

Contains Method

- Documentation for this section has not yet been entered. -

+ Returns a value indicating whether the WebSocketSharp.Net.HttpListenerPrefixCollection contains + the specified uriPrefix. +

Syntax

public bool Contains (string uriPrefix)

Parameters

@@ -460,13 +524,39 @@ uriPrefix
- Documentation for this section has not yet been entered. -
+ A string that contains a URI prefix to test. +

Returns

- Documentation for this section has not yet been entered. + true if the WebSocketSharp.Net.HttpListenerPrefixCollection contains the specified uriPrefix; + otherwise, false. +
+

Exceptions

+
+ + + + + + + + + + + + + +
TypeReason
+ ArgumentNullException + + uriPrefix is null. +
+ ObjectDisposedException + + The WebSocketSharp.Net.HttpListener associated with this WebSocketSharp.Net.HttpListenerPrefixCollection is closed. +

Remarks

@@ -480,8 +570,8 @@

CopyTo Method

- Documentation for this section has not yet been entered. -

+ Copies the contents of the WebSocketSharp.Net.HttpListenerPrefixCollection to the specified Array. +

Syntax

public void CopyTo (Array array, int offset)

Parameters

@@ -491,16 +581,33 @@ array
- Documentation for this section has not yet been entered. -
+ An Array that receives the URI prefix strings in the WebSocketSharp.Net.HttpListenerPrefixCollection. +
offset
- Documentation for this section has not yet been entered. -
+ An int that contains the zero-based index in array at which copying begins. +
+

Exceptions

+
+ + + + + + + + + +
TypeReason
+ ObjectDisposedException + + The WebSocketSharp.Net.HttpListener associated with this WebSocketSharp.Net.HttpListenerPrefixCollection is closed. +
+

Remarks

Documentation for this section has not yet been entered. @@ -513,8 +620,8 @@

CopyTo Method

- Documentation for this section has not yet been entered. -

+ Copies the contents of the WebSocketSharp.Net.HttpListenerPrefixCollection to the specified array of string. +

Syntax

public void CopyTo (string[] array, int offset)

Parameters

@@ -524,16 +631,33 @@ array
- Documentation for this section has not yet been entered. -
+ An array of string that receives the URI prefix strings in the WebSocketSharp.Net.HttpListenerPrefixCollection. +
offset
- Documentation for this section has not yet been entered. -
+ An int that contains the zero-based index in array at which copying begins. +
+

Exceptions

+
+ + + + + + + + + +
TypeReason
+ ObjectDisposedException + + The WebSocketSharp.Net.HttpListener associated with this WebSocketSharp.Net.HttpListenerPrefixCollection is closed. +
+

Remarks

Documentation for this section has not yet been entered. @@ -546,14 +670,14 @@

Count Property

- Documentation for this section has not yet been entered. -

+ Gets the number of prefixes contained in the WebSocketSharp.Net.HttpListenerPrefixCollection. +

Syntax

public int Count { get; }

Value

- Documentation for this section has not yet been entered. -
+ A int that contains the number of prefixes. +

Remarks

Documentation for this section has not yet been entered. @@ -566,14 +690,15 @@

GetEnumerator Method

- Documentation for this section has not yet been entered. -

+ Gets an object that can be used to iterate through the WebSocketSharp.Net.HttpListenerPrefixCollection. +

Syntax

public IEnumerator<string> GetEnumerator ()

Returns

- Documentation for this section has not yet been entered. -
+ An object that implements the IEnumerator<string> interface and provides access to + the URI prefix strings in the WebSocketSharp.Net.HttpListenerPrefixCollection. +

Remarks

Documentation for this section has not yet been entered. @@ -586,14 +711,14 @@

IsReadOnly Property

- Documentation for this section has not yet been entered. -

+ Gets a value indicating whether access to the WebSocketSharp.Net.HttpListenerPrefixCollection is read-only. +

Syntax

public bool IsReadOnly { get; }

Value

- Documentation for this section has not yet been entered. -
+ Always returns false. +

Remarks

Documentation for this section has not yet been entered. @@ -606,14 +731,14 @@

IsSynchronized Property

- Documentation for this section has not yet been entered. -

+ Gets a value indicating whether access to the WebSocketSharp.Net.HttpListenerPrefixCollection is synchronized. +

Syntax

public bool IsSynchronized { get; }

Value

- Documentation for this section has not yet been entered. -
+ Always returns false. +

Remarks

Documentation for this section has not yet been entered. @@ -626,8 +751,8 @@

Remove Method

- Documentation for this section has not yet been entered. -

+ Removes the specified uriPrefix from the list of prefixes in the WebSocketSharp.Net.HttpListenerPrefixCollection. +

Syntax

public bool Remove (string uriPrefix)

Parameters

@@ -637,13 +762,39 @@ uriPrefix
- Documentation for this section has not yet been entered. -
+ A string that contains a URI prefix to remove. +

Returns

- Documentation for this section has not yet been entered. + true if the uriPrefix was found in the WebSocketSharp.Net.HttpListenerPrefixCollection + and removed; otherwise, false. +
+

Exceptions

+
+ + + + + + + + + + + + + +
TypeReason
+ ArgumentNullException + + uriPrefix is null. +
+ ObjectDisposedException + + The WebSocketSharp.Net.HttpListener associated with this WebSocketSharp.Net.HttpListenerPrefixCollection is closed. +

Remarks

@@ -657,15 +808,16 @@

System.Collections.IEnumerable.GetEnumerator Method

- Documentation for this section has not yet been entered. -

+ Gets an object that can be used to iterate through the WebSocketSharp.Net.HttpListenerPrefixCollection. +

Syntax

IEnumerator System.Collections.IEnumerable.GetEnumerator ()

Returns

- Documentation for this section has not yet been entered. -
+ An object that implements the IEnumerator interface and provides access to + the URI prefix strings in the WebSocketSharp.Net.HttpListenerPrefixCollection. +

Remarks

Documentation for this section has not yet been entered. diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/index.html b/websocket-sharp/doc/html/WebSocketSharp.Net/index.html index 8fa4b718..5f040746 100644 --- a/websocket-sharp/doc/html/WebSocketSharp.Net/index.html +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/index.html @@ -271,8 +271,8 @@ HttpListenerPrefixCollection - Documentation for this section has not yet been entered. - + Provides the collection used to store the URI prefixes for the WebSocketSharp.Net.HttpListener. + diff --git a/websocket-sharp/doc/html/index.html b/websocket-sharp/doc/html/index.html index ac2714d8..4ae7515b 100644 --- a/websocket-sharp/doc/html/index.html +++ b/websocket-sharp/doc/html/index.html @@ -363,8 +363,8 @@ HttpListenerPrefixCollection - Documentation for this section has not yet been entered. - + Provides the collection used to store the URI prefixes for the WebSocketSharp.Net.HttpListener. + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerPrefixCollection.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerPrefixCollection.xml index 6e9629db..955557db 100644 --- a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerPrefixCollection.xml +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerPrefixCollection.xml @@ -16,7 +16,9 @@ - To be added. + + Provides the collection used to store the URI prefixes for the . + To be added. @@ -31,9 +33,19 @@ - To be added. - To be added. + + A that contains a URI prefix to add. + + + Adds the specified to the . + To be added. + + is . + + + The associated with this is closed. + @@ -45,8 +57,13 @@ - To be added. + + Removes all URI prefixes from the . + To be added. + + The associated with this is closed. + @@ -60,10 +77,24 @@ - To be added. - To be added. - To be added. + + A that contains a URI prefix to test. + + + Returns a value indicating whether the contains + the specified . + + + true if the contains the specified ; + otherwise, false. + To be added. + + is . + + + The associated with this is closed. + @@ -78,10 +109,19 @@ - To be added. - To be added. - To be added. + + An that receives the URI prefix strings in the . + + + An that contains the zero-based index in at which copying begins. + + + Copies the contents of the to the specified . + To be added. + + The associated with this is closed. + @@ -96,10 +136,19 @@ - To be added. - To be added. - To be added. + + An array of that receives the URI prefix strings in the . + + + An that contains the zero-based index in at which copying begins. + + + Copies the contents of the to the specified array of . + To be added. + + The associated with this is closed. + @@ -110,8 +159,12 @@ System.Int32 - To be added. - To be added. + + Gets the number of prefixes contained in the . + + + A that contains the number of prefixes. + To be added. @@ -124,8 +177,13 @@ - To be added. - To be added. + + Gets an object that can be used to iterate through the . + + + An object that implements the IEnumerator<string> interface and provides access to + the URI prefix strings in the . + To be added. @@ -137,8 +195,12 @@ System.Boolean - To be added. - To be added. + + Gets a value indicating whether access to the is read-only. + + + Always returns false. + To be added. @@ -150,8 +212,12 @@ System.Boolean - To be added. - To be added. + + Gets a value indicating whether access to the is synchronized. + + + Always returns false. + To be added. @@ -166,10 +232,23 @@ - To be added. - To be added. - To be added. + + A that contains a URI prefix to remove. + + + Removes the specified from the list of prefixes in the . + + + true if the was found in the + and removed; otherwise, false. + To be added. + + is . + + + The associated with this is closed. + @@ -181,8 +260,13 @@ - To be added. - To be added. + + Gets an object that can be used to iterate through the . + + + An object that implements the interface and provides access to + the URI prefix strings in the . + To be added. diff --git a/websocket-sharp/doc/mdoc/index.xml b/websocket-sharp/doc/mdoc/index.xml index 28fbc110..c64307ee 100644 --- a/websocket-sharp/doc/mdoc/index.xml +++ b/websocket-sharp/doc/mdoc/index.xml @@ -1,6 +1,6 @@ - + [00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00 00 24 00 00 52 53 41 31 00 04 00 00 11 00 00 00 29 17 fb 89 fe c3 91 f7 2b cb 8b e2 61 d2 3f 05 93 6d 65 a8 9e 63 72 a6 f5 d5 2c f2 9d 20 fa 0b c0 70 6a f6 88 7e 8b 90 3f 39 f5 76 c8 48 e0 bb 7b b2 7b ed d3 10 a7 1a 0f 70 98 0f 7f f4 4b 53 09 d2 a5 ef 36 c3 56 b4 aa f0 91 72 63 25 07 89 e0 93 3e 3f 2e f2 b9 73 0e 12 15 5d 43 56 c3 f4 70 a5 89 fe f7 f6 ac 3e 77 c2 d8 d0 84 91 f4 0c d1 f3 8e dc c3 c3 b8 38 3d 0c bf 17 de 20 78 c1 ] diff --git a/websocket-sharp/websocket-sharp.pidb b/websocket-sharp/websocket-sharp.pidb index d2253736c4a898211ff228ce20fcc62dc1982d4b..360ea1e764fc8066617a0d43f51621b4da9bd7c7 100644 GIT binary patch delta 19805 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 VQ>S?VX91rM$fZsBfEN?E{|3I_O7{Q& delta 17913 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 WEwv~BcsJ)cfPC6ccUFQI>Hh&S8(LHV