Added the internal Ext.CheckIfAvailable (ServerState, bool, bool, bool) method

This commit is contained in:
sta 2015-08-14 16:05:00 +09:00
parent 80a0107bab
commit 999e777517
6 changed files with 65 additions and 75 deletions

View File

@ -201,6 +201,16 @@ namespace WebSocketSharp
} }
} }
internal static string CheckIfAvailable (
this ServerState state, bool ready, bool start, bool shutting)
{
return (!ready && (state == ServerState.Ready || state == ServerState.Stop)) ||
(!start && state == ServerState.Start) ||
(!shutting && state == ServerState.ShuttingDown)
? "This operation isn't available in: " + state
: null;
}
internal static string CheckIfCanAccept (this WebSocketState state) internal static string CheckIfCanAccept (this WebSocketState state)
{ {
return state != WebSocketState.Connecting return state != WebSocketState.Connecting
@ -238,40 +248,6 @@ namespace WebSocketSharp
: null; : null;
} }
internal static string CheckIfCanStart (this ServerState state)
{
return state == ServerState.Start || state == ServerState.ShuttingDown
? "This operation has already been done."
: null;
}
internal static string CheckIfCanStop (this ServerState state)
{
return state != ServerState.Start
? String.Format ("This operation isn't available ({0}).", state)
: null;
}
internal static string CheckIfStart (this ServerState state)
{
return state == ServerState.Ready
? "The server hasn't yet started."
: state == ServerState.ShuttingDown
? "The server is shutting down."
: state == ServerState.Stop
? "The server has already stopped."
: null;
}
internal static string CheckIfStartable (this ServerState state)
{
return state == ServerState.Start
? "The server has already started."
: state == ServerState.ShuttingDown
? "The server is shutting down."
: null;
}
internal static string CheckIfValidProtocols (this string[] protocols) internal static string CheckIfValidProtocols (this string[] protocols)
{ {
return protocols.Contains ( return protocols.Contains (

View File

@ -298,7 +298,7 @@ namespace WebSocketSharp.Server
} }
set { set {
var msg = _state.CheckIfStartable (); var msg = _state.CheckIfAvailable (true, false, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -346,7 +346,7 @@ namespace WebSocketSharp.Server
} }
set { set {
var msg = _state.CheckIfStartable (); var msg = _state.CheckIfAvailable (true, false, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -398,7 +398,7 @@ namespace WebSocketSharp.Server
} }
set { set {
var msg = _state.CheckIfStartable (); var msg = _state.CheckIfAvailable (true, false, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -426,7 +426,7 @@ namespace WebSocketSharp.Server
} }
set { set {
var msg = _state.CheckIfStartable (); var msg = _state.CheckIfAvailable (true, false, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -449,7 +449,7 @@ namespace WebSocketSharp.Server
} }
set { set {
var msg = _state.CheckIfStartable (); var msg = _state.CheckIfAvailable (true, false, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -473,7 +473,7 @@ namespace WebSocketSharp.Server
} }
set { set {
var msg = _state.CheckIfStartable (); var msg = _state.CheckIfAvailable (true, false, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -498,7 +498,7 @@ namespace WebSocketSharp.Server
} }
set { set {
var msg = _state.CheckIfStartable (); var msg = _state.CheckIfAvailable (true, false, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -521,7 +521,7 @@ namespace WebSocketSharp.Server
} }
set { set {
var msg = _state.CheckIfStartable () ?? value.CheckIfValidWaitTime (); var msg = _state.CheckIfAvailable (true, false, false) ?? value.CheckIfValidWaitTime ();
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -892,7 +892,7 @@ namespace WebSocketSharp.Server
public void Start () public void Start ()
{ {
lock (_sync) { lock (_sync) {
var msg = _state.CheckIfCanStart () ?? checkIfCertificateExists (); var msg = _state.CheckIfAvailable (true, false, false) ?? checkIfCertificateExists ();
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -911,7 +911,7 @@ namespace WebSocketSharp.Server
public void Stop () public void Stop ()
{ {
lock (_sync) { lock (_sync) {
var msg = _state.CheckIfCanStop (); var msg = _state.CheckIfAvailable (false, true, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -939,7 +939,9 @@ namespace WebSocketSharp.Server
public void Stop (ushort code, string reason) public void Stop (ushort code, string reason)
{ {
lock (_sync) { lock (_sync) {
var msg = _state.CheckIfCanStop () ?? WebSocket.CheckCloseParameters (code, reason, false); var msg = _state.CheckIfAvailable (false, true, false) ??
WebSocket.CheckCloseParameters (code, reason, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -975,7 +977,9 @@ namespace WebSocketSharp.Server
public void Stop (CloseStatusCode code, string reason) public void Stop (CloseStatusCode code, string reason)
{ {
lock (_sync) { lock (_sync) {
var msg = _state.CheckIfCanStop () ?? WebSocket.CheckCloseParameters (code, reason, false); var msg = _state.CheckIfAvailable (false, true, false) ??
WebSocket.CheckCloseParameters (code, reason, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;

View File

@ -303,7 +303,7 @@ namespace WebSocketSharp.Server
} }
set { set {
var msg = _state.CheckIfStartable (); var msg = _state.CheckIfAvailable (true, false, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -351,7 +351,7 @@ namespace WebSocketSharp.Server
} }
set { set {
var msg = _state.CheckIfStartable (); var msg = _state.CheckIfAvailable (true, false, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -403,7 +403,7 @@ namespace WebSocketSharp.Server
} }
set { set {
var msg = _state.CheckIfStartable (); var msg = _state.CheckIfAvailable (true, false, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -431,7 +431,7 @@ namespace WebSocketSharp.Server
} }
set { set {
var msg = _state.CheckIfStartable (); var msg = _state.CheckIfAvailable (true, false, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -455,7 +455,7 @@ namespace WebSocketSharp.Server
} }
set { set {
var msg = _state.CheckIfStartable (); var msg = _state.CheckIfAvailable (true, false, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -480,7 +480,7 @@ namespace WebSocketSharp.Server
} }
set { set {
var msg = _state.CheckIfStartable (); var msg = _state.CheckIfAvailable (true, false, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -503,7 +503,7 @@ namespace WebSocketSharp.Server
} }
set { set {
var msg = _state.CheckIfStartable () ?? value.CheckIfValidWaitTime (); var msg = _state.CheckIfAvailable (true, false, false) ?? value.CheckIfValidWaitTime ();
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -795,7 +795,7 @@ namespace WebSocketSharp.Server
public void Start () public void Start ()
{ {
lock (_sync) { lock (_sync) {
var msg = _state.CheckIfCanStart () ?? checkIfCertificateExists (); var msg = _state.CheckIfAvailable (true, false, false) ?? checkIfCertificateExists ();
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -814,7 +814,7 @@ namespace WebSocketSharp.Server
public void Stop () public void Stop ()
{ {
lock (_sync) { lock (_sync) {
var msg = _state.CheckIfCanStop (); var msg = _state.CheckIfAvailable (false, true, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -842,7 +842,9 @@ namespace WebSocketSharp.Server
public void Stop (ushort code, string reason) public void Stop (ushort code, string reason)
{ {
lock (_sync) { lock (_sync) {
var msg = _state.CheckIfCanStop () ?? WebSocket.CheckCloseParameters (code, reason, false); var msg = _state.CheckIfAvailable (false, true, false) ??
WebSocket.CheckCloseParameters (code, reason, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -877,7 +879,9 @@ namespace WebSocketSharp.Server
public void Stop (CloseStatusCode code, string reason) public void Stop (CloseStatusCode code, string reason)
{ {
lock (_sync) { lock (_sync) {
var msg = _state.CheckIfCanStop () ?? WebSocket.CheckCloseParameters (code, reason, false); var msg = _state.CheckIfAvailable (false, true, false) ??
WebSocket.CheckCloseParameters (code, reason, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;

View File

@ -187,7 +187,7 @@ namespace WebSocketSharp.Server
} }
set { set {
var msg = _sessions.State.CheckIfStartable (); var msg = _sessions.State.CheckIfAvailable (true, false, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -221,7 +221,9 @@ namespace WebSocketSharp.Server
} }
set { set {
var msg = _sessions.State.CheckIfStartable () ?? value.CheckIfValidWaitTime (); var msg = _sessions.State.CheckIfAvailable (true, false, false) ??
value.CheckIfValidWaitTime ();
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;

View File

@ -385,7 +385,7 @@ namespace WebSocketSharp.Server
/// </param> /// </param>
public void Broadcast (byte[] data) public void Broadcast (byte[] data)
{ {
var msg = _state.CheckIfStart () ?? data.CheckIfValidSendData (); var msg = _state.CheckIfAvailable (false, true, false) ?? data.CheckIfValidSendData ();
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -405,7 +405,7 @@ namespace WebSocketSharp.Server
/// </param> /// </param>
public void Broadcast (string data) public void Broadcast (string data)
{ {
var msg = _state.CheckIfStart () ?? data.CheckIfValidSendData (); var msg = _state.CheckIfAvailable (false, true, false) ?? data.CheckIfValidSendData ();
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -434,7 +434,7 @@ namespace WebSocketSharp.Server
/// </param> /// </param>
public void BroadcastAsync (byte[] data, Action completed) public void BroadcastAsync (byte[] data, Action completed)
{ {
var msg = _state.CheckIfStart () ?? data.CheckIfValidSendData (); var msg = _state.CheckIfAvailable (false, true, false) ?? data.CheckIfValidSendData ();
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -462,7 +462,7 @@ namespace WebSocketSharp.Server
/// </param> /// </param>
public void BroadcastAsync (string data, Action completed) public void BroadcastAsync (string data, Action completed)
{ {
var msg = _state.CheckIfStart () ?? data.CheckIfValidSendData (); var msg = _state.CheckIfAvailable (false, true, false) ?? data.CheckIfValidSendData ();
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -494,7 +494,7 @@ namespace WebSocketSharp.Server
/// </param> /// </param>
public void BroadcastAsync (Stream stream, int length, Action completed) public void BroadcastAsync (Stream stream, int length, Action completed)
{ {
var msg = _state.CheckIfStart () ?? var msg = _state.CheckIfAvailable (false, true, false) ??
stream.CheckIfCanRead () ?? stream.CheckIfCanRead () ??
(length < 1 ? "'length' is less than 1." : null); (length < 1 ? "'length' is less than 1." : null);
@ -538,7 +538,7 @@ namespace WebSocketSharp.Server
/// </returns> /// </returns>
public Dictionary<string, Dictionary<string, bool>> Broadping () public Dictionary<string, Dictionary<string, bool>> Broadping ()
{ {
var msg = _state.CheckIfStart (); var msg = _state.CheckIfAvailable (false, true, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return null; return null;
@ -567,7 +567,9 @@ namespace WebSocketSharp.Server
return Broadping (); return Broadping ();
byte[] data = null; byte[] data = null;
var msg = _state.CheckIfStart () ?? WebSocket.CheckPingParameter (message, out data); var msg = _state.CheckIfAvailable (false, true, false) ??
WebSocket.CheckPingParameter (message, out data);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return null; return null;
@ -592,7 +594,7 @@ namespace WebSocketSharp.Server
/// </param> /// </param>
public bool TryGetServiceHost (string path, out WebSocketServiceHost host) public bool TryGetServiceHost (string path, out WebSocketServiceHost host)
{ {
var msg = _state.CheckIfStart () ?? path.CheckIfValidServicePath (); var msg = _state.CheckIfAvailable (false, true, false) ?? path.CheckIfValidServicePath ();
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
host = null; host = null;

View File

@ -393,7 +393,7 @@ namespace WebSocketSharp.Server
/// </param> /// </param>
public void Broadcast (byte[] data) public void Broadcast (byte[] data)
{ {
var msg = _state.CheckIfStart () ?? data.CheckIfValidSendData (); var msg = _state.CheckIfAvailable (false, true, false) ?? data.CheckIfValidSendData ();
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -413,7 +413,7 @@ namespace WebSocketSharp.Server
/// </param> /// </param>
public void Broadcast (string data) public void Broadcast (string data)
{ {
var msg = _state.CheckIfStart () ?? data.CheckIfValidSendData (); var msg = _state.CheckIfAvailable (false, true, false) ?? data.CheckIfValidSendData ();
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -442,7 +442,7 @@ namespace WebSocketSharp.Server
/// </param> /// </param>
public void BroadcastAsync (byte[] data, Action completed) public void BroadcastAsync (byte[] data, Action completed)
{ {
var msg = _state.CheckIfStart () ?? data.CheckIfValidSendData (); var msg = _state.CheckIfAvailable (false, true, false) ?? data.CheckIfValidSendData ();
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -470,7 +470,7 @@ namespace WebSocketSharp.Server
/// </param> /// </param>
public void BroadcastAsync (string data, Action completed) public void BroadcastAsync (string data, Action completed)
{ {
var msg = _state.CheckIfStart () ?? data.CheckIfValidSendData (); var msg = _state.CheckIfAvailable (false, true, false) ?? data.CheckIfValidSendData ();
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
@ -502,7 +502,7 @@ namespace WebSocketSharp.Server
/// </param> /// </param>
public void BroadcastAsync (Stream stream, int length, Action completed) public void BroadcastAsync (Stream stream, int length, Action completed)
{ {
var msg = _state.CheckIfStart () ?? var msg = _state.CheckIfAvailable (false, true, false) ??
stream.CheckIfCanRead () ?? stream.CheckIfCanRead () ??
(length < 1 ? "'length' is less than 1." : null); (length < 1 ? "'length' is less than 1." : null);
@ -545,7 +545,7 @@ namespace WebSocketSharp.Server
/// </returns> /// </returns>
public Dictionary<string, bool> Broadping () public Dictionary<string, bool> Broadping ()
{ {
var msg = _state.CheckIfStart (); var msg = _state.CheckIfAvailable (false, true, false);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return null; return null;
@ -572,7 +572,9 @@ namespace WebSocketSharp.Server
return Broadping (); return Broadping ();
byte[] data = null; byte[] data = null;
var msg = _state.CheckIfStart () ?? WebSocket.CheckPingParameter (message, out data); var msg = _state.CheckIfAvailable (false, true, false) ??
WebSocket.CheckPingParameter (message, out data);
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return null; return null;
@ -831,7 +833,7 @@ namespace WebSocketSharp.Server
/// </param> /// </param>
public bool TryGetSession (string id, out IWebSocketSession session) public bool TryGetSession (string id, out IWebSocketSession session)
{ {
var msg = _state.CheckIfStart () ?? id.CheckIfValidSessionID (); var msg = _state.CheckIfAvailable (false, true, false) ?? id.CheckIfValidSessionID ();
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
session = null; session = null;