* @param connectionCallback
	 */
	@Override
	public int disconnect(IConnection conn, IConnectionStateCallback connectionCallback) {
		if (conn==null) {
			throw new RuntimeException("Don't support null connections");
		}
		
		int numRemainingCallbacks =  conn.removeConnectionStatusCallback(connectionCallback); // disconnect is called downstream, but only if no other callbacks are registered.
		
		if (numRemainingCallbacks > 0) {
			connectionCallback.setConnectState(ConnectState.DISCONNECTED);
		}
		
		return numRemainingCallbacks; 
			
	}