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)
{
return state != WebSocketState.Connecting
@ -238,40 +248,6 @@ namespace WebSocketSharp
: 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)
{
return protocols.Contains (

View File

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

View File

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

View File

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

View File

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

View File

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