internal virtual ListenableFuture sendBind(string bindCause)
            {
                switch (state)
                {
                case com.lightstreamer.client.session.SessionWS.WsState.WS_NOT_CONNECTED:
                    next(WsState.WS_CONNECTING, "sendBind");
                    openWS();
                    return(outerInstance.bindSessionExecution(bindCause));

                case com.lightstreamer.client.session.SessionWS.WsState.WS_BROKEN:
                    next(WsState.WS_BROKEN, "sendBind");
                    outerInstance.handler.streamSenseSwitch(outerInstance.handlerPhase, "ws.error", outerInstance.phase, outerInstance.recoveryBean.Recovery);
                    return(ListenableFuture.rejected());

                default:
                    Debug.Assert(state == WsState.WS_CONNECTED || state == WsState.WS_CONNECTING);
                    next(state, "sendBind");
                    return(outerInstance.bbindSessionExecution(bindCause));
                }
            }
 public override ListenableFuture openWebSocketConnection(string serverAddress)
 {
     // should never be called (the actual implementation is in TextProtocolWS)
     Debug.Assert(false);
     return(ListenableFuture.rejected());
 }