/// <summary> /// allows to install a receiver when ready to process messages. /// </summary> /// <param name="serverThreadsMaxPerConnection"> /// the maximum number of server threads used for processing requests on a multiplexed client connection. /// </param> /// <remarks>used for standalone server side and used for bidirectional communication.</remarks> internal void InstallReceiver(IGiopRequestMessageReceiver receiver, GiopConnectionDesc receiverConDesc, int serverThreadsMaxPerConnection) { lock (this) { if (m_reiceivedRequestDispatcher == null) { m_reiceivedRequestDispatcher = new GiopReceivedRequestMessageDispatcher(receiver, this, receiverConDesc, serverThreadsMaxPerConnection); } } }
/// <summary>creates a giop transport message handler, which accept request messages by delegating to receiver</summary> /// <param name="serverThreadsMaxPerConnection"> /// the maximum number of server threads used for processing requests on a multiplexed client connection. /// </param> internal GiopReceivedRequestMessageDispatcher(IGiopRequestMessageReceiver receiver, GiopTransportMessageHandler msgHandler, GiopConnectionDesc conDesc, int serverThreadsMaxPerConnection) { m_serverCon = new GiopServerConnection(conDesc, this); if (receiver != null) { m_receiver = receiver; } else { throw new BAD_PARAM(400, CompletionStatus.Completed_MayBe); } m_msgHandler = msgHandler; if (serverThreadsMaxPerConnection < 1) { throw new BAD_PARAM(401, CompletionStatus.Completed_MayBe); } m_maxRequestsAllowedInParallel = serverThreadsMaxPerConnection; }
/// <summary> /// allows to install a receiver when ready to process messages. /// </summary> /// <param name="serverThreadsMaxPerConnection"> /// the maximum number of server threads used for processing requests on a multiplexed client connection. /// </param> /// <remarks>used for standalone server side and used for bidirectional communication.</remarks> internal void InstallReceiver(IGiopRequestMessageReceiver receiver, GiopConnectionDesc receiverConDesc, int serverThreadsMaxPerConnection) { lock(this) { if (m_reiceivedRequestDispatcher == null) { m_reiceivedRequestDispatcher = new GiopReceivedRequestMessageDispatcher(receiver, this, receiverConDesc, serverThreadsMaxPerConnection); } } }
/// <summary>the server channel entry point, which should be invoked, if a request is /// received on a bidir connection on the client side.</summary> /// <remarks>for use case (2)</remarks> internal void RegisterMessageReceptionHandler(IGiopRequestMessageReceiver receptionHandler, int serverThreadsMaxPerConnection) { m_receptionHandler = receptionHandler; m_serverThreadsMaxPerConnection = serverThreadsMaxPerConnection; }