private void CreateNativeClient( FabricTransportSettings transportSettings, string connectionAddress, IFabricTransportClientEventHandler eventHandler, IFabricTransportCallbackMessageHandler contract, NativeFabricTransport.IFabricTransportMessageDisposer messageMessageDisposer) { var iid = typeof(NativeFabricTransport.IFabricTransportClient).GetTypeInfo().GUID; using (var pin = new PinCollection()) { var nativeTransportSettings = transportSettings.ToNativeV2(pin); var messageHandler = new FabricTransportCallbackHandlerBroker(contract); var nativeConnectionAddress = pin.AddBlittable(connectionAddress); var nativeEventHandler = new FabricTransportClientConnectionEventHandlerBroker(eventHandler); this.nativeClient = NativeFabricTransport.CreateFabricTransportClient( ref iid, nativeTransportSettings, nativeConnectionAddress, messageHandler, nativeEventHandler, messageMessageDisposer); } }
internal static extern IFabricTransportClient CreateFabricTransportClient( ref Guid iid, [In] IntPtr transportSettingsPtr, [In] IntPtr connectionAddress, [In, MarshalAs(UnmanagedType.Interface)] IFabricTransportCallbackMessageHandler callbackMessageHandler, [In, MarshalAs(UnmanagedType.Interface)] IFabricTransportClientEventHandler connectionEventHandler, [In, MarshalAs(UnmanagedType.Interface)] IFabricTransportMessageDisposer messageMessageDisposer );
public FabricTransportClient( FabricTransportSettings transportSettings, string connectionAddress, IFabricTransportClientEventHandler eventHandler, IFabricTransportCallbackMessageHandler contract, NativeFabricTransport.IFabricTransportMessageDisposer messageMessageDisposer) { this.ConnectionAddress = connectionAddress; this.settings = transportSettings; Utility.WrapNativeSyncInvokeInMTA( () => this.CreateNativeClient(transportSettings, connectionAddress, eventHandler, contract, messageMessageDisposer), "FabricTransportClient.Create"); }
public FabricTransportClientConnectionEventHandlerBroker( IFabricTransportClientEventHandler clientConnectionHandler) { this.clientConnectionHandler = clientConnectionHandler; }