Source/NFX/Glue/Bindings.cs
/// <summary>
/// Returns an instance of transport suitable for a call. The implementation may return existing transport or allocate a new instance.
/// The call is thread-safe
/// </summary>
Returns an instance of transport suitable for a call. The implementation may return existing transport or allocate a new instance.
The call is thread-safe
Returns an instance of transport suitable for a call . The implementation may return existing transport or allocate a new instance . The call is thread - safe
protected virtual ClientTransport AcquireClientTransportForCall(ClientEndPoint client , RequestMsg request)
            {
               var transport = TryGetExistingAcquiredTransportPerRemoteNode( client.Node );
               if (transport!=null) return transport;
               if (m_ClientTransportMaxCount>0)
               {
                 var alock = m_ClientTransportAllocatorLocks[(client.Node.GetHashCode() & CoreConsts.ABS_HASH_MASK) % m_ClientTransportAllocatorLocks.Length];
                 lock(alock)
                 {
                   transport = TryGetExistingAcquiredTransportPerRemoteNode( client.Node );
                   if (transport!=null) return transport;
                   return makeAndLaunchClientTransportForCall(client, request);
                 }
               }
               return makeAndLaunchClientTransportForCall(client, request);
            }
protected virtual ClientTransport AcquireClientTransportForCall ( ClientEndPoint client , RequestMsg request ) { var transport = TryGetExistingAcquiredTransportPerRemoteNode ( client . Node ) ; if ( transport != null ) return transport ; if ( m_ClientTransportMaxCount > 0 ) { var alock = m_ClientTransportAllocatorLocks [ ( client . Node . GetHashCode ( ) & CoreConsts . ABS_HASH_MASK ) % m_ClientTransportAllocatorLocks . Length ] ; lock ( alock ) { transport = TryGetExistingAcquiredTransportPerRemoteNode ( client . Node ) ; if ( transport != null ) return transport ; return makeAndLaunchClientTransportForCall ( client , request ) ; } } return makeAndLaunchClientTransportForCall ( client , request ) ; }
Returns an instance of transport suitable for a call.
Returns an instance of transport suitable for a call .
//otherwise we need to create a new transport
client
ClientEndPoint
request
RequestMsg