From d3c21db2e34c1621e5555ead83ce38fd738251e0 Mon Sep 17 00:00:00 2001 From: sta Date: Sat, 16 Feb 2013 16:17:47 +0900 Subject: [PATCH] Added some XML documentation comments --- Example3/Example3.pidb | Bin 8316 -> 8316 bytes websocket-sharp.userprefs | 2 +- .../Net/AuthenticationSchemeSelector.cs | 11 +- websocket-sharp/Net/AuthenticationSchemes.cs | 26 +- websocket-sharp/Net/EndPointListener.cs | 2 +- websocket-sharp/Net/HttpListener.cs | 160 +++++++++-- websocket-sharp/Net/ListenerAsyncResult.cs | 42 ++- .../bin/Release_Ubuntu/websocket-sharp.dll | Bin 152064 -> 152064 bytes .../bin/Release_Ubuntu/websocket-sharp.xml | 196 ++++++++++++++ .../AuthenticationSchemeSelector.html | 12 +- .../AuthenticationSchemes.html | 18 +- .../html/WebSocketSharp.Net/HttpListener.html | 250 ++++++++++++------ .../doc/html/WebSocketSharp.Net/index.html | 12 +- websocket-sharp/doc/html/index.html | 12 +- .../AuthenticationSchemeSelector.xml | 12 +- .../AuthenticationSchemes.xml | 32 ++- .../mdoc/WebSocketSharp.Net/HttpListener.xml | 144 +++++++--- websocket-sharp/doc/mdoc/index.xml | 2 +- websocket-sharp/websocket-sharp.pidb | Bin 244924 -> 249832 bytes 19 files changed, 762 insertions(+), 171 deletions(-) diff --git a/Example3/Example3.pidb b/Example3/Example3.pidb index cf7315bef15eb53e48a42a6d5f41fcbed06fddf7..4458a67b89ecd06e029701b3da49ddef74933b53 100644 GIT binary patch delta 32 ocmez4@W)|7J7e9(jzn%op3SegTbLNlCg=0DGb(KU&etjk0Ns-eEC2ui delta 32 ocmez4@W)|7J7d+xjzn%ow#~1&TbLMiCg=0DGs - + diff --git a/websocket-sharp/Net/AuthenticationSchemeSelector.cs b/websocket-sharp/Net/AuthenticationSchemeSelector.cs index 24e7dd03..a6b307dc 100644 --- a/websocket-sharp/Net/AuthenticationSchemeSelector.cs +++ b/websocket-sharp/Net/AuthenticationSchemeSelector.cs @@ -1,6 +1,6 @@ // // AuthenticationSchemeSelector.cs -// Copied from System.Net.AuthenticationSchemeSelector +// Copied from System.Net.AuthenticationSchemeSelector.cs // // Author: // Gonzalo Paniagua Javier @@ -31,5 +31,14 @@ using System; namespace WebSocketSharp.Net { + /// + /// Selects the authentication scheme for a instance. + /// + /// + /// One of the values that indicates the scheme used to authenticate the specified client request. + /// + /// + /// A that contains a client request information. + /// public delegate AuthenticationSchemes AuthenticationSchemeSelector (HttpListenerRequest httpRequest); } diff --git a/websocket-sharp/Net/AuthenticationSchemes.cs b/websocket-sharp/Net/AuthenticationSchemes.cs index e5fb7724..0068baa9 100644 --- a/websocket-sharp/Net/AuthenticationSchemes.cs +++ b/websocket-sharp/Net/AuthenticationSchemes.cs @@ -1,6 +1,6 @@ // // AuthenticationSchemes.cs -// Copied from System.Net.AuthenticationSchemes +// Copied from System.Net.AuthenticationSchemes.cs // // Author: // Atsushi Enomoto @@ -31,15 +31,39 @@ using System; namespace WebSocketSharp.Net { + /// + /// Contains the values of the schemes for authentication. + /// [Flags] public enum AuthenticationSchemes { + /// + /// Indicates that no authentication is allowed. + /// None, + /// + /// Indicates digest authentication. + /// Digest = 1, + /// + /// Indicates negotiating with the client to determine the authentication scheme. + /// Negotiate = 2, + /// + /// Indicates NTLM authentication. + /// Ntlm = 4, + /// + /// Indicates Windows authentication. + /// IntegratedWindowsAuthentication = 6, + /// + /// Indicates basic authentication. + /// Basic = 8, + /// + /// Indicates anonymous authentication. + /// Anonymous = 0x8000, } } diff --git a/websocket-sharp/Net/EndPointListener.cs b/websocket-sharp/Net/EndPointListener.cs index f9e84724..0ab7cce3 100644 --- a/websocket-sharp/Net/EndPointListener.cs +++ b/websocket-sharp/Net/EndPointListener.cs @@ -1,6 +1,6 @@ // // EndPointListener.cs -// Copied from System.Net.EndPointListener +// Copied from System.Net.EndPointListener.cs // // Author: // Gonzalo Paniagua Javier (gonzalo@novell.com) diff --git a/websocket-sharp/Net/HttpListener.cs b/websocket-sharp/Net/HttpListener.cs index d568f3a5..2cff724f 100644 --- a/websocket-sharp/Net/HttpListener.cs +++ b/websocket-sharp/Net/HttpListener.cs @@ -1,12 +1,12 @@ // // HttpListener.cs -// Copied from System.Net.HttpListener +// Copied from System.Net.HttpListener.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,12 +31,14 @@ using System; using System.Collections; using System.Collections.Generic; -using System.Net; using System.Threading; // TODO: logging namespace WebSocketSharp.Net { + /// + /// Provides a simple, programmatically controlled HTTP listener. + /// public sealed class HttpListener : IDisposable { #region Fields @@ -58,6 +60,9 @@ namespace WebSocketSharp.Net { #region Constructor + /// + /// Initializes a new instance of the class. + /// public HttpListener () { prefixes = new HttpListenerPrefixCollection (this); @@ -72,8 +77,15 @@ namespace WebSocketSharp.Net { #region Properties - // TODO: Digest, NTLM and Negotiate require ControlPrincipal + /// + /// Gets or sets the scheme used to authenticate the clients. + /// + /// + /// One of the values that indicates the scheme used to + /// authenticate the clients. The default value is . + /// public AuthenticationSchemes AuthenticationSchemes { + // TODO: Digest, NTLM and Negotiate require ControlPrincipal get { return auth_schemes; } set { CheckDisposed (); @@ -81,6 +93,13 @@ namespace WebSocketSharp.Net { } } + /// + /// Gets or sets the delegate called to determine the scheme used to authenticate clients. + /// + /// + /// A delegate that invokes the method(s) used to select + /// an authentication scheme. The default value is . + /// public AuthenticationSchemeSelector AuthenticationSchemeSelectorDelegate { get { return auth_selector; } set { @@ -97,14 +116,32 @@ namespace WebSocketSharp.Net { } } + /// + /// Gets a value indicating whether the has been started. + /// + /// + /// true if the has been started; otherwise, false. + /// public bool IsListening { get { return listening; } } + /// + /// Gets a value indicating whether the can be used with the current operating system. + /// + /// + /// true. + /// public static bool IsSupported { get { return true; } } + /// + /// Gets the URI prefixes handled by the . + /// + /// + /// A that contains the URI prefixes. + /// public HttpListenerPrefixCollection Prefixes { get { CheckDisposed (); @@ -112,8 +149,14 @@ namespace WebSocketSharp.Net { } } - // TODO: Use this + /// + /// Gets or sets the name of the realm associated with the . + /// + /// + /// A that contains the name of the realm. + /// public string Realm { + // TODO: Use this get { return realm; } set { CheckDisposed (); @@ -121,8 +164,8 @@ namespace WebSocketSharp.Net { } } - // TODO: Support for NTLM needs some loving. public bool UnsafeConnectionNtlmAuthentication { + // TODO: Support for NTLM needs some loving. get { return unsafe_ntlm_auth; } set { CheckDisposed (); @@ -191,15 +234,6 @@ namespace WebSocketSharp.Net { return context; } - void IDisposable.Dispose () - { - if (disposed) - return; - - Close (true); //TODO: Should we force here or not? - disposed = true; - } - #endregion #region Internal Methods @@ -230,6 +264,7 @@ namespace WebSocketSharp.Net { wait_queue.RemoveAt (0); } } + if (ares != null) ares.Complete (context); } @@ -251,6 +286,7 @@ namespace WebSocketSharp.Net { { lock (((ICollection)registry).SyncRoot) registry.Remove (context); + lock (((ICollection)ctx_queue).SyncRoot) { int idx = ctx_queue.IndexOf (context); if (idx >= 0) @@ -260,20 +296,61 @@ namespace WebSocketSharp.Net { #endregion + #region Explicit Interface Implementation + + /// + /// Releases all resource used by the . + /// + void IDisposable.Dispose () + { + if (disposed) + return; + + Close (true); // TODO: Should we force here or not? + disposed = true; + } + + #endregion + #region Public Methods + /// + /// Shuts down the immediately. + /// public void Abort () { if (disposed) return; if (!listening) { + disposed = true; return; } Close (true); + disposed = true; } + /// + /// Begins getting an incoming request information asynchronously. + /// + /// + /// This asynchronous operation must be completed by calling the method. + /// Typically, the method is invoked by the delegate. + /// + /// + /// An that contains the status of the asynchronous operation. + /// + /// + /// An delegate that references the method(s) + /// called when the asynchronous operation completes. + /// + /// + /// An that contains a user defined object to pass to the delegate. + /// + /// + /// The has not been started or is stopped currently. + /// public IAsyncResult BeginGetContext (AsyncCallback callback, Object state) { CheckDisposed (); @@ -298,6 +375,9 @@ namespace WebSocketSharp.Net { return ares; } + /// + /// Shuts down the . + /// public void Close () { if (disposed) @@ -308,10 +388,31 @@ namespace WebSocketSharp.Net { return; } - Close (true); + Close (false); disposed = true; } + /// + /// Ends an asynchronous operation to get an incoming request information. + /// + /// + /// This method completes an asynchronous operation started by calling the method. + /// + /// + /// A that contains a client's request information. + /// + /// + /// An obtained by calling the method. + /// + /// + /// is . + /// + /// + /// was not obtained by calling the method. + /// + /// + /// The EndGetContext method was already called for the specified . + /// public HttpListenerContext EndGetContext (IAsyncResult asyncResult) { CheckDisposed (); @@ -321,8 +422,9 @@ namespace WebSocketSharp.Net { ListenerAsyncResult ares = asyncResult as ListenerAsyncResult; if (ares == null) throw new ArgumentException ("Wrong IAsyncResult.", "asyncResult"); + if (ares.EndCalled) - throw new ArgumentException ("Cannot reuse this IAsyncResult"); + throw new InvalidOperationException ("Cannot reuse this IAsyncResult."); ares.EndCalled = true; if (!ares.IsCompleted) @@ -339,6 +441,19 @@ namespace WebSocketSharp.Net { return context; // This will throw on error. } + /// + /// Gets an incoming request information. + /// + /// + /// This method waits for an incoming request and returns the request information + /// when received the request. + /// + /// + /// A that contains a client's request information. + /// + /// + /// The does not have any URI prefixes to listen on. + /// public HttpListenerContext GetContext () { // The prefixes are not checked when using the async interface!? @@ -350,6 +465,9 @@ namespace WebSocketSharp.Net { return EndGetContext (ares); } + /// + /// Starts to receive incoming requests. + /// public void Start () { CheckDisposed (); @@ -360,11 +478,17 @@ namespace WebSocketSharp.Net { listening = true; } + /// + /// Stops receiving incoming requests. + /// public void Stop () { CheckDisposed (); + if (!listening) + return; + + EndPointManager.RemoveListener (this); listening = false; - Close (false); } #endregion diff --git a/websocket-sharp/Net/ListenerAsyncResult.cs b/websocket-sharp/Net/ListenerAsyncResult.cs index 78f64438..fee4a4be 100644 --- a/websocket-sharp/Net/ListenerAsyncResult.cs +++ b/websocket-sharp/Net/ListenerAsyncResult.cs @@ -1,6 +1,6 @@ // // ListenerAsyncResult.cs -// Copied from System.Net.ListenerAsyncResult +// Copied from System.Net.ListenerAsyncResult.cs // // Authors: // Gonzalo Paniagua Javier (gonzalo@ximian.com) @@ -35,8 +35,14 @@ namespace WebSocketSharp.Net { class ListenerAsyncResult : IAsyncResult { + #region Private Static Field + static WaitCallback InvokeCB = new WaitCallback (InvokeCallback); + #endregion + + #region Private Fields + AsyncCallback cb; bool completed; HttpListenerContext context; @@ -47,9 +53,17 @@ namespace WebSocketSharp.Net { object state; bool synch; + #endregion + + #region Internal Fields + internal bool EndCalled; internal bool InGet; + #endregion + + #region Constructor + public ListenerAsyncResult (AsyncCallback cb, object state) { this.cb = cb; @@ -57,10 +71,15 @@ namespace WebSocketSharp.Net { this.locker = new object(); } + #endregion + + #region Properties + public object AsyncState { get { if (forward != null) return forward.AsyncState; + return state; } } @@ -74,7 +93,7 @@ namespace WebSocketSharp.Net { if (handle == null) handle = new ManualResetEvent (completed); } - + return handle; } } @@ -83,9 +102,9 @@ namespace WebSocketSharp.Net { get { if (forward != null) return forward.CompletedSynchronously; + return synch; } - } public bool IsCompleted { @@ -99,6 +118,10 @@ namespace WebSocketSharp.Net { } } + #endregion + + #region Private Method + static void InvokeCallback (object o) { ListenerAsyncResult ares = (ListenerAsyncResult) o; @@ -106,21 +129,28 @@ namespace WebSocketSharp.Net { InvokeCallback (ares.forward); return; } + try { ares.cb (ares); } catch { } } + #endregion + + #region Internal Methods + internal void Complete (Exception exc) { if (forward != null) { forward.Complete (exc); return; } + exception = exc; if (InGet && (exc is ObjectDisposedException)) exception = new HttpListenerException (500, "Listener closed"); + lock (locker) { completed = true; if (handle != null) @@ -142,6 +172,7 @@ namespace WebSocketSharp.Net { forward.Complete (context, synch); return; } + this.synch = synch; this.context = context; lock (locker) { @@ -156,10 +187,12 @@ namespace WebSocketSharp.Net { if (handle != null) forward.handle = handle; } + ListenerAsyncResult next = forward; for (int i = 0; next.forward != null; i++) { if (i > 20) Complete (new HttpListenerException (400, "Too many authentication errors")); + next = next.forward; } } else { @@ -177,10 +210,13 @@ namespace WebSocketSharp.Net { { if (forward != null) return forward.GetContext (); + if (exception != null) throw exception; return context; } + + #endregion } } diff --git a/websocket-sharp/bin/Release_Ubuntu/websocket-sharp.dll b/websocket-sharp/bin/Release_Ubuntu/websocket-sharp.dll index 25a32dc90ba7648533d27fceb568be953c4f8120..06855dcd37f49e29dba2c1b2fbe6775ad095d669 100755 GIT binary patch delta 13500 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 fzM@sKm@i that contains a reason for stop. + + + Selects the authentication scheme for a instance. + + + One of the values that indicates the scheme used to authenticate the specified client request. + + + A that contains a client request information. + + + + + Contains the values of the schemes for authentication. + + + + + Indicates that no authentication is allowed. + + + + + Indicates digest authentication. + + + + + Indicates negotiating with the client to determine the authentication scheme. + + + + + Indicates NTLM authentication. + + + + + Indicates Windows authentication. + + + + + Indicates basic authentication. + + + + + Indicates anonymous authentication. + + + + + Provides a simple, programmatically controlled HTTP listener. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the scheme used to authenticate the clients. + + + One of the values that indicates the scheme used to + authenticate the clients. The default value is . + + + + + Gets or sets the delegate called to determine the scheme used to authenticate clients. + + + A delegate that invokes the method(s) used to select + an authentication scheme. The default value is . + + + + + Gets a value indicating whether the has been started. + + + true if the has been started; otherwise, false. + + + + + Gets a value indicating whether the can be used with the current operating system. + + + true. + + + + + Gets the URI prefixes handled by the . + + + A that contains the URI prefixes. + + + + + Gets or sets the name of the realm associated with the . + + + A that contains the name of the realm. + + + + + Releases all resource used by the . + + + + + Shuts down the immediately. + + + + + Begins getting an incoming request information asynchronously. + + + This asynchronous operation must be completed by calling the method. + Typically, the method is invoked by the delegate. + + + An that contains the status of the asynchronous operation. + + + An delegate that references the method(s) + called when the asynchronous operation completes. + + + An that contains a user defined object to pass to the delegate. + + + The has not been started or is stopped currently. + + + + + Shuts down the . + + + + + Ends an asynchronous operation to get an incoming request information. + + + This method completes an asynchronous operation started by calling the method. + + + A that contains a client's request information. + + + An obtained by calling the method. + + + is . + + + was not obtained by calling the method. + + + The EndGetContext method was already called for the specified . + + + + + Gets an incoming request information. + + + This method waits for an incoming request and returns the request information + when received the request. + + + A that contains a client's request information. + + + The does not have any URI prefixes to listen on. + + + + + Starts to receive incoming requests. + + + + + Stops receiving incoming requests. + + Decodes an HTML-encoded string and returns the decoded string. diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/AuthenticationSchemeSelector.html b/websocket-sharp/doc/html/WebSocketSharp.Net/AuthenticationSchemeSelector.html index d84ded36..6a0abf94 100644 --- a/websocket-sharp/doc/html/WebSocketSharp.Net/AuthenticationSchemeSelector.html +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/AuthenticationSchemeSelector.html @@ -207,8 +207,8 @@

AuthenticationSchemeSelector Delegate

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

+ Selects the authentication scheme for a WebSocketSharp.Net.HttpListener instance. +

Syntax

public delegate AuthenticationSchemes AuthenticationSchemeSelector (HttpListenerRequest httpRequest)
@@ -221,14 +221,14 @@ httpRequest
- Documentation for this section has not yet been entered. -
+ A WebSocketSharp.Net.HttpListenerRequest that contains a client request information. +

Returns

- Documentation for this section has not yet been entered. -
+ One of the WebSocketSharp.Net.AuthenticationSchemes values that indicates the scheme used to authenticate the specified client request. +

Remarks

Documentation for this section has not yet been entered. diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/AuthenticationSchemes.html b/websocket-sharp/doc/html/WebSocketSharp.Net/AuthenticationSchemes.html index e5e8e098..edacaf47 100644 --- a/websocket-sharp/doc/html/WebSocketSharp.Net/AuthenticationSchemes.html +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/AuthenticationSchemes.html @@ -207,8 +207,8 @@

AuthenticationSchemes Enum

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

+ Contains the values of the schemes for authentication. +

Syntax

[System.Flags]
public enum AuthenticationSchemes
@@ -230,7 +230,7 @@ Anonymous - Documentation for this section has not yet been entered. + Indicates anonymous authentication. @@ -238,7 +238,7 @@ Basic - Documentation for this section has not yet been entered. + Indicates basic authentication. @@ -246,7 +246,7 @@ Digest - Documentation for this section has not yet been entered. + Indicates digest authentication. @@ -254,7 +254,7 @@ IntegratedWindowsAuthentication - Documentation for this section has not yet been entered. + Indicates Windows authentication. @@ -262,7 +262,7 @@ Negotiate - Documentation for this section has not yet been entered. + Indicates negotiating with the client to determine the authentication scheme. @@ -270,7 +270,7 @@ None - Documentation for this section has not yet been entered. + Indicates that no authentication is allowed. @@ -278,7 +278,7 @@ Ntlm - Documentation for this section has not yet been entered. + Indicates NTLM authentication. diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListener.html b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListener.html index d8766d31..277e81d6 100644 --- a/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListener.html +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListener.html @@ -207,8 +207,8 @@

HttpListener Class

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

+ Provides a simple, programmatically controlled HTTP listener. +

Syntax

public sealed class HttpListener : IDisposable
@@ -243,8 +243,8 @@ ()
- Documentation for this section has not yet been entered. - + Initializes a new instance of the WebSocketSharp.Net.HttpListener class. +
@@ -266,7 +266,9 @@ AuthenticationSchemes - . Documentation for this section has not yet been entered. + . + Gets or sets the scheme used to authenticate the clients. + @@ -281,7 +283,9 @@ AuthenticationSchemeSelector - . Documentation for this section has not yet been entered. + . + Gets or sets the delegate called to determine the scheme used to authenticate clients. + @@ -308,7 +312,9 @@ bool - . Documentation for this section has not yet been entered. + . + Gets a value indicating whether the WebSocketSharp.Net.HttpListener has been started. + [read-only]
static
@@ -320,7 +326,9 @@ bool - . Documentation for this section has not yet been entered. + . + Gets a value indicating whether the WebSocketSharp.Net.HttpListener can be used with the current operating system. + [read-only]
@@ -332,7 +340,9 @@ HttpListenerPrefixCollection - . Documentation for this section has not yet been entered. + . + Gets the URI prefixes handled by the WebSocketSharp.Net.HttpListener. + @@ -347,7 +357,9 @@ string - . Documentation for this section has not yet been entered. + . + Gets or sets the name of the realm associated with the WebSocketSharp.Net.HttpListener. + @@ -379,7 +391,9 @@ Abort - ()
Documentation for this section has not yet been entered.
+ ()
+ Shuts down the WebSocketSharp.Net.HttpListener immediately. +
@@ -389,7 +403,9 @@ BeginGetContext - (AsyncCallback, object) : IAsyncResult
Documentation for this section has not yet been entered.
+ (AsyncCallback, object) : IAsyncResult
+ Begins getting an incoming request information asynchronously. +
@@ -399,7 +415,9 @@ Close - ()
Documentation for this section has not yet been entered.
+ ()
+ Shuts down the WebSocketSharp.Net.HttpListener. +
@@ -409,7 +427,9 @@ EndGetContext - (IAsyncResult) : HttpListenerContext
Documentation for this section has not yet been entered.
+ (IAsyncResult) : HttpListenerContext
+ Ends an asynchronous operation to get an incoming request information. +
@@ -419,7 +439,9 @@ GetContext - () : HttpListenerContext
Documentation for this section has not yet been entered.
+ () : HttpListenerContext
+ Gets an incoming request information. +
@@ -429,7 +451,9 @@ Start - ()
Documentation for this section has not yet been entered.
+ ()
+ Starts to receive incoming requests. +
@@ -439,7 +463,9 @@ Stop - ()
Documentation for this section has not yet been entered.
+ ()
+ Stops receiving incoming requests. +
@@ -459,8 +485,8 @@ - Documentation for this section has not yet been entered. - + Releases all resource used by the WebSocketSharp.Net.HttpListener. + @@ -503,8 +529,8 @@

HttpListener Constructor

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

+ Initializes a new instance of the WebSocketSharp.Net.HttpListener class. +

Syntax

public HttpListener ()

Remarks

@@ -519,8 +545,8 @@

Abort Method

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

+ Shuts down the WebSocketSharp.Net.HttpListener immediately. +

Syntax

public void Abort ()

Remarks

@@ -535,14 +561,15 @@

AuthenticationSchemes Property

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

+ Gets or sets the scheme used to authenticate the clients. +

Syntax

public AuthenticationSchemes AuthenticationSchemes { get; set; }

Value

- Documentation for this section has not yet been entered. -
+ One of the WebSocketSharp.Net.AuthenticationSchemes values that indicates the scheme used to + authenticate the clients. The default value is AuthenticationSchemes.Anonymous. +

Remarks

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

AuthenticationSchemeSelectorDelegate Property

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

+ Gets or sets the delegate called to determine the scheme used to authenticate clients. +

Syntax

public AuthenticationSchemeSelector AuthenticationSchemeSelectorDelegate { get; set; }

Value

- Documentation for this section has not yet been entered. -
+ A WebSocketSharp.Net.AuthenticationSchemeSelector delegate that invokes the method(s) used to select + an authentication scheme. The default value is null. +

Remarks

Documentation for this section has not yet been entered. @@ -575,8 +603,8 @@

BeginGetContext Method

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

+ Begins getting an incoming request information asynchronously. +

Syntax

public IAsyncResult BeginGetContext (AsyncCallback callback, object state)

Parameters

@@ -586,24 +614,43 @@ callback
- Documentation for this section has not yet been entered. -
+ An AsyncCallback delegate that references the method(s) + called when the asynchronous operation completes. +
state
- Documentation for this section has not yet been entered. -
+ An object that contains a user defined object to pass to the callback delegate. +

Returns

- Documentation for this section has not yet been entered. + An IAsyncResult that contains the status of the asynchronous operation. +
+

Exceptions

+
+ + + + + + + + + +
TypeReason
+ InvalidOperationException + + The WebSocketSharp.Net.HttpListener has not been started or is stopped currently. +

Remarks

- Documentation for this section has not yet been entered. -
+ This asynchronous operation must be completed by calling the HttpListener.EndGetContext(IAsyncResult) method. + Typically, the method is invoked by the callback delegate. +

Requirements

Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
@@ -612,8 +659,8 @@

Close Method

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

+ Shuts down the WebSocketSharp.Net.HttpListener. +

Syntax

public void Close ()

Remarks

@@ -628,8 +675,8 @@

EndGetContext Method

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

+ Ends an asynchronous operation to get an incoming request information. +

Syntax

public HttpListenerContext EndGetContext (IAsyncResult asyncResult)

Parameters

@@ -639,18 +686,51 @@ asyncResult
- Documentation for this section has not yet been entered. -
+ An IAsyncResult obtained by calling the HttpListener.BeginGetContext(AsyncCallback, object) method. +

Returns

- Documentation for this section has not yet been entered. + A WebSocketSharp.Net.HttpListenerContext that contains a client's request information. +
+

Exceptions

+
+ + + + + + + + + + + + + + + + + +
TypeReason
+ ArgumentNullException + + asyncResult is null. +
+ ArgumentException + + asyncResult was not obtained by calling the HttpListener.BeginGetContext(AsyncCallback, object) method. +
+ InvalidOperationException + + The EndGetContext method was already called for the specified asyncResult. +

Remarks

- Documentation for this section has not yet been entered. -
+ This method completes an asynchronous operation started by calling the HttpListener.BeginGetContext(AsyncCallback, object) method. +

Requirements

Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
@@ -659,18 +739,36 @@

GetContext Method

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

+ Gets an incoming request information. +

Syntax

public HttpListenerContext GetContext ()

Returns

- Documentation for this section has not yet been entered. + A WebSocketSharp.Net.HttpListenerContext that contains a client's request information. +
+

Exceptions

+
+ + + + + + + + + +
TypeReason
+ InvalidOperationException + + The WebSocketSharp.Net.HttpListener does not have any URI prefixes to listen on. +

Remarks

- Documentation for this section has not yet been entered. -
+ This method waits for an incoming request and returns the request information + when received the request. +

Requirements

Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
@@ -699,14 +797,14 @@

IsListening Property

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

+ Gets a value indicating whether the WebSocketSharp.Net.HttpListener has been started. +

Syntax

public bool IsListening { get; }

Value

- Documentation for this section has not yet been entered. -
+ true if the WebSocketSharp.Net.HttpListener has been started; otherwise, false. +

Remarks

Documentation for this section has not yet been entered. @@ -719,14 +817,14 @@

IsSupported Property

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

+ Gets a value indicating whether the WebSocketSharp.Net.HttpListener can be used with the current operating system. +

Syntax

public static bool IsSupported { get; }

Value

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

Remarks

Documentation for this section has not yet been entered. @@ -739,14 +837,14 @@

Prefixes Property

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

+ Gets the URI prefixes handled by the WebSocketSharp.Net.HttpListener. +

Syntax

public HttpListenerPrefixCollection Prefixes { get; }

Value

- Documentation for this section has not yet been entered. -
+ A WebSocketSharp.Net.HttpListenerPrefixCollection that contains the URI prefixes. +

Remarks

Documentation for this section has not yet been entered. @@ -759,14 +857,14 @@

Realm Property

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

+ Gets or sets the name of the realm associated with the WebSocketSharp.Net.HttpListener. +

Syntax

public string Realm { get; set; }

Value

- Documentation for this section has not yet been entered. -
+ A string that contains the name of the realm. +

Remarks

Documentation for this section has not yet been entered. @@ -779,8 +877,8 @@

Start Method

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

+ Starts to receive incoming requests. +

Syntax

public void Start ()

Remarks

@@ -795,8 +893,8 @@

Stop Method

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

+ Stops receiving incoming requests. +

Syntax

public void Stop ()

Remarks

@@ -811,8 +909,8 @@

System.IDisposable.Dispose Method

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

+ Releases all resource used by the WebSocketSharp.Net.HttpListener. +

Syntax

void System.IDisposable.Dispose ()
diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/index.html b/websocket-sharp/doc/html/WebSocketSharp.Net/index.html index 77a44458..db8dd350 100644 --- a/websocket-sharp/doc/html/WebSocketSharp.Net/index.html +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/index.html @@ -207,16 +207,16 @@ AuthenticationSchemes - Documentation for this section has not yet been entered. - + Contains the values of the schemes for authentication. + AuthenticationSchemeSelector - Documentation for this section has not yet been entered. - + Selects the authentication scheme for a WebSocketSharp.Net.HttpListener instance. + @@ -247,8 +247,8 @@ HttpListener - Documentation for this section has not yet been entered. - + Provides a simple, programmatically controlled HTTP listener. + diff --git a/websocket-sharp/doc/html/index.html b/websocket-sharp/doc/html/index.html index 795907d4..874ef5c5 100644 --- a/websocket-sharp/doc/html/index.html +++ b/websocket-sharp/doc/html/index.html @@ -299,16 +299,16 @@ AuthenticationSchemes - Documentation for this section has not yet been entered. - + Contains the values of the schemes for authentication. + AuthenticationSchemeSelector - Documentation for this section has not yet been entered. - + Selects the authentication scheme for a WebSocketSharp.Net.HttpListener instance. + @@ -339,8 +339,8 @@ HttpListener - Documentation for this section has not yet been entered. - + Provides a simple, programmatically controlled HTTP listener. + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/AuthenticationSchemeSelector.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/AuthenticationSchemeSelector.xml index ca7db288..2d9ce538 100644 --- a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/AuthenticationSchemeSelector.xml +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/AuthenticationSchemeSelector.xml @@ -14,9 +14,15 @@ WebSocketSharp.Net.AuthenticationSchemes - To be added. - To be added. - To be added. + + A that contains a client request information. + + + Selects the authentication scheme for a instance. + + + One of the values that indicates the scheme used to authenticate the specified client request. + To be added. diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/AuthenticationSchemes.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/AuthenticationSchemes.xml index 8ada0a06..1507c035 100644 --- a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/AuthenticationSchemes.xml +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/AuthenticationSchemes.xml @@ -13,7 +13,9 @@ - To be added. + + Contains the values of the schemes for authentication. + To be added. @@ -25,7 +27,9 @@ WebSocketSharp.Net.AuthenticationSchemes - To be added. + + Indicates anonymous authentication. + @@ -36,7 +40,9 @@ WebSocketSharp.Net.AuthenticationSchemes - To be added. + + Indicates basic authentication. + @@ -47,7 +53,9 @@ WebSocketSharp.Net.AuthenticationSchemes - To be added. + + Indicates digest authentication. + @@ -58,7 +66,9 @@ WebSocketSharp.Net.AuthenticationSchemes - To be added. + + Indicates Windows authentication. + @@ -69,7 +79,9 @@ WebSocketSharp.Net.AuthenticationSchemes - To be added. + + Indicates negotiating with the client to determine the authentication scheme. + @@ -80,7 +92,9 @@ WebSocketSharp.Net.AuthenticationSchemes - To be added. + + Indicates that no authentication is allowed. + @@ -91,7 +105,9 @@ WebSocketSharp.Net.AuthenticationSchemes - To be added. + + Indicates NTLM authentication. + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListener.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListener.xml index 05d80175..244acf07 100644 --- a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListener.xml +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListener.xml @@ -13,7 +13,9 @@ - To be added. + + Provides a simple, programmatically controlled HTTP listener. + To be added. @@ -23,7 +25,9 @@ Constructor - To be added. + + Initializes a new instance of the class. + To be added. @@ -36,7 +40,9 @@ - To be added. + + Shuts down the immediately. + To be added. @@ -48,8 +54,13 @@ WebSocketSharp.Net.AuthenticationSchemes - To be added. - To be added. + + Gets or sets the scheme used to authenticate the clients. + + + One of the values that indicates the scheme used to + authenticate the clients. The default value is . + To be added. @@ -61,8 +72,13 @@ WebSocketSharp.Net.AuthenticationSchemeSelector - To be added. - To be added. + + Gets or sets the delegate called to determine the scheme used to authenticate clients. + + + A delegate that invokes the method(s) used to select + an authentication scheme. The default value is . + To be added. @@ -78,11 +94,26 @@ - To be added. - To be added. - To be added. - To be added. - To be added. + + An delegate that references the method(s) + called when the asynchronous operation completes. + + + An that contains a user defined object to pass to the delegate. + + + Begins getting an incoming request information asynchronously. + + + An that contains the status of the asynchronous operation. + + + This asynchronous operation must be completed by calling the method. + Typically, the method is invoked by the delegate. + + + The has not been started or is stopped currently. + @@ -94,7 +125,9 @@ - To be added. + + Shuts down the . + To be added. @@ -109,10 +142,27 @@ - To be added. - To be added. - To be added. - To be added. + + An obtained by calling the method. + + + Ends an asynchronous operation to get an incoming request information. + + + A that contains a client's request information. + + + This method completes an asynchronous operation started by calling the method. + + + is . + + + was not obtained by calling the method. + + + The EndGetContext method was already called for the specified . + @@ -124,9 +174,19 @@ - To be added. - To be added. - To be added. + + Gets an incoming request information. + + + A that contains a client's request information. + + + This method waits for an incoming request and returns the request information + when received the request. + + + The does not have any URI prefixes to listen on. + @@ -150,8 +210,12 @@ System.Boolean - To be added. - To be added. + + Gets a value indicating whether the has been started. + + + true if the has been started; otherwise, false. + To be added. @@ -163,8 +227,12 @@ System.Boolean - To be added. - To be added. + + Gets a value indicating whether the can be used with the current operating system. + + + true. + To be added. @@ -176,8 +244,12 @@ WebSocketSharp.Net.HttpListenerPrefixCollection - To be added. - To be added. + + Gets the URI prefixes handled by the . + + + A that contains the URI prefixes. + To be added. @@ -189,8 +261,12 @@ System.String - To be added. - To be added. + + Gets or sets the name of the realm associated with the . + + + A that contains the name of the realm. + To be added. @@ -203,7 +279,9 @@ - To be added. + + Starts to receive incoming requests. + To be added. @@ -216,7 +294,9 @@ - To be added. + + Stops receiving incoming requests. + To be added. @@ -229,7 +309,9 @@ - To be added. + + Releases all resource used by the . + To be added. diff --git a/websocket-sharp/doc/mdoc/index.xml b/websocket-sharp/doc/mdoc/index.xml index 8267cddc..0bee7d1f 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 8aba8585d8f9198b0e4a6e4bf9917221bab279d1..7c3f3d2df45056416bbace67236a707f703e128e 100644 GIT binary patch delta 12102 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 bEb>PjtXPAlxd3~IP6rgBjhi?Gyh#5C3}9ga