[Modify] Polish it

This commit is contained in:
sta 2016-09-22 15:38:49 +09:00
parent 36fd0bbd55
commit 2509ea5b26

View File

@ -48,9 +48,7 @@ namespace WebSocketSharp
#region Private Fields #region Private Fields
private bool _clean; private bool _clean;
private ushort _code;
private PayloadData _payloadData; private PayloadData _payloadData;
private string _reason;
#endregion #endregion
@ -58,39 +56,27 @@ namespace WebSocketSharp
internal CloseEventArgs () internal CloseEventArgs ()
{ {
_code = (ushort) CloseStatusCode.NoStatus;
_payloadData = PayloadData.Empty; _payloadData = PayloadData.Empty;
} }
internal CloseEventArgs (ushort code) internal CloseEventArgs (ushort code)
: this (code, null)
{ {
_code = code;
} }
internal CloseEventArgs (CloseStatusCode code) internal CloseEventArgs (CloseStatusCode code)
: this ((ushort) code) : this ((ushort) code, null)
{ {
} }
internal CloseEventArgs (PayloadData payloadData) internal CloseEventArgs (PayloadData payloadData)
{ {
_payloadData = payloadData; _payloadData = payloadData;
var data = payloadData.ApplicationData;
var len = data.Length;
_code = len > 1
? data.SubArray (0, 2).ToUInt16 (ByteOrder.Big)
: (ushort) CloseStatusCode.NoStatus;
_reason = len > 2
? data.SubArray (2, len - 2).UTF8Decode ()
: String.Empty;
} }
internal CloseEventArgs (ushort code, string reason) internal CloseEventArgs (ushort code, string reason)
{ {
_code = code; _payloadData = new PayloadData (code, reason);
_reason = reason;
} }
internal CloseEventArgs (CloseStatusCode code, string reason) internal CloseEventArgs (CloseStatusCode code, string reason)
@ -104,7 +90,7 @@ namespace WebSocketSharp
internal PayloadData PayloadData { internal PayloadData PayloadData {
get { get {
return _payloadData ?? (_payloadData = new PayloadData (_code.Append (_reason))); return _payloadData;
} }
} }
@ -120,7 +106,7 @@ namespace WebSocketSharp
/// </value> /// </value>
public ushort Code { public ushort Code {
get { get {
return _code; return _payloadData.Code;
} }
} }
@ -132,7 +118,7 @@ namespace WebSocketSharp
/// </value> /// </value>
public string Reason { public string Reason {
get { get {
return _reason ?? String.Empty; return _payloadData.Reason ?? String.Empty;
} }
} }