public void PrependApplicationProtocol(NWProtocolOptions options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } nw_protocol_stack_prepend_application_protocol(GetCheckedHandle(), options.Handle); }
public bool PrependApplicationProtocol(NWProtocolOptions options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } return(nw_framer_prepend_application_protocol(GetCheckedHandle(), options.Handle)); }
static void TrampolineIterateHandler(IntPtr block, IntPtr options) { var del = BlockLiteral.GetTarget <Action <NWProtocolOptions> > (block); if (del != null) { var x = new NWProtocolOptions(options, owns: false); del(x); x.Dispose(); } }
static void TrampolineConfigureHandler(IntPtr block, IntPtr iface) { var del = BlockLiteral.GetTarget <Action <NWProtocolOptions> > (block); if (del != null) { using (var tempOptions = new NWProtocolOptions(iface, owns: false)) using (var definition = tempOptions.ProtocolDefinition) { NWProtocolOptions?castedOptions = null; if (definition.Equals(NWProtocolDefinition.TcpDefinition)) { castedOptions = new NWProtocolTcpOptions(iface, owns: false); } else if (definition.Equals(NWProtocolDefinition.UdpDefinition)) { castedOptions = new NWProtocolUdpOptions(iface, owns: false); } else if (definition.Equals(NWProtocolDefinition.TlsDefinition)) { castedOptions = new NWProtocolTlsOptions(iface, owns: false); } else if (definition.Equals(NWProtocolDefinition.IPDefinition)) { castedOptions = new NWProtocolIPOptions(iface, owns: false); } else if (definition.Equals(NWProtocolDefinition.WebSocketDefinition)) { castedOptions = new NWWebSocketOptions(iface, owns: false); } try { del(castedOptions ?? tempOptions); } finally { castedOptions?.Dispose(); } } } }
static void TrampolineIterateHandler(IntPtr block, IntPtr options) { var del = BlockLiteral.GetTarget <Action <NWProtocolOptions> > (block); if (del != null) { using (var tempOptions = new NWProtocolOptions(options, owns: false)) using (var definition = tempOptions.ProtocolDefinition) { NWProtocolOptions?castedOptions = null; if (definition.Equals(NWProtocolDefinition.CreateTcpDefinition())) { castedOptions = new NWProtocolTcpOptions(options, owns: false); } else if (definition.Equals(NWProtocolDefinition.CreateUdpDefinition())) { castedOptions = new NWProtocolUdpOptions(options, owns: false); } else if (definition.Equals(NWProtocolDefinition.CreateTlsDefinition())) { castedOptions = new NWProtocolTlsOptions(options, owns: false); } else if (definition.Equals(NWProtocolDefinition.CreateIPDefinition())) { castedOptions = new NWProtocolIPOptions(options, owns: false); } else if (definition.Equals(NWProtocolDefinition.CreateWebSocketDefinition())) { castedOptions = new NWWebSocketOptions(options, owns: false); } del(castedOptions ?? tempOptions); castedOptions?.Dispose(); } } }
public NWConnection?ExtractConnection(NWEndpoint endpoint, NWProtocolOptions protocolOptions) { var ptr = nw_connection_group_extract_connection(GetCheckedHandle(), endpoint.GetCheckedHandle(), protocolOptions.GetCheckedHandle()); return(ptr == IntPtr.Zero ? null : new NWConnection(ptr, true)); }