aboutsummaryrefslogtreecommitdiff
path: root/SocketHttpListener/WebSocketException.cs
diff options
context:
space:
mode:
Diffstat (limited to 'SocketHttpListener/WebSocketException.cs')
-rw-r--r--SocketHttpListener/WebSocketException.cs60
1 files changed, 60 insertions, 0 deletions
diff --git a/SocketHttpListener/WebSocketException.cs b/SocketHttpListener/WebSocketException.cs
new file mode 100644
index 000000000..260721317
--- /dev/null
+++ b/SocketHttpListener/WebSocketException.cs
@@ -0,0 +1,60 @@
+using System;
+
+namespace SocketHttpListener
+{
+ /// <summary>
+ /// The exception that is thrown when a <see cref="WebSocket"/> gets a fatal error.
+ /// </summary>
+ public class WebSocketException : Exception
+ {
+ #region Internal Constructors
+
+ internal WebSocketException ()
+ : this (CloseStatusCode.Abnormal, null, null)
+ {
+ }
+
+ internal WebSocketException (string message)
+ : this (CloseStatusCode.Abnormal, message, null)
+ {
+ }
+
+ internal WebSocketException (CloseStatusCode code)
+ : this (code, null, null)
+ {
+ }
+
+ internal WebSocketException (string message, Exception innerException)
+ : this (CloseStatusCode.Abnormal, message, innerException)
+ {
+ }
+
+ internal WebSocketException (CloseStatusCode code, string message)
+ : this (code, message, null)
+ {
+ }
+
+ internal WebSocketException (CloseStatusCode code, string message, Exception innerException)
+ : base (message ?? code.GetMessage (), innerException)
+ {
+ Code = code;
+ }
+
+ #endregion
+
+ #region Public Properties
+
+ /// <summary>
+ /// Gets the status code indicating the cause for the exception.
+ /// </summary>
+ /// <value>
+ /// One of the <see cref="CloseStatusCode"/> enum values, represents the status code indicating
+ /// the cause for the exception.
+ /// </value>
+ public CloseStatusCode Code {
+ get; private set;
+ }
+
+ #endregion
+ }
+}