/**
   * Sends a message to the dispatcher.
   *
   * @param message
   * @return future for the response.
   */
  private RPCResponse<ErrorCodeResponse> send(Message message) {

    RPCResponse<ErrorCodeResponse> result =
        new RPCResponse<ErrorCodeResponse>(ErrorCodeResponse.getDefaultInstance());
    client.sendRequest(
        config.getInetSocketAddress(),
        AUTHENTICATION,
        USER_CREDENTIALS,
        interfaceId,
        operationId,
        message,
        null,
        result,
        false);

    return result;
  }