예제 #1
0
 private TcpConnectionConnector(IBandwidthLimiter senderBandwidthLimiter, IBandwidthLimiter receiverBandwidthLimiter, ISocks5ProxyClientFactory socks5ProxyClientFactory, IHttpProxyClientFactory httpProxyClientFactory, IBatchActionDispatcher batchActionDispatcher, IBytesPool bytesPool, TcpConnectionConnectorOptions options)
 {
     _senderBandwidthLimiter   = senderBandwidthLimiter;
     _receiverBandwidthLimiter = receiverBandwidthLimiter;
     _socks5ProxyClientFactory = socks5ProxyClientFactory;
     _httpProxyClientFactory   = httpProxyClientFactory;
     _batchActionDispatcher    = batchActionDispatcher;
     _bytesPool = bytesPool;
     _options   = options;
 }
예제 #2
0
    public static async ValueTask <TcpConnectionConnector> CreateAsync(IBandwidthLimiter senderBandwidthLimiter, IBandwidthLimiter receiverBandwidthLimiter, ISocks5ProxyClientFactory socks5ProxyClientFactory, IHttpProxyClientFactory httpProxyClientFactory, IBatchActionDispatcher batchActionDispatcher, IBytesPool bytesPool, TcpConnectionConnectorOptions options, CancellationToken cancellationToken = default)
    {
        var tcpConnectionConnector = new TcpConnectionConnector(senderBandwidthLimiter, receiverBandwidthLimiter, socks5ProxyClientFactory, httpProxyClientFactory, batchActionDispatcher, bytesPool, options);

        return(tcpConnectionConnector);
    }
예제 #3
0
 /// <summary>
 /// Creates default http proxy client.
 /// </summary>
 public static Task <HttpProxyClient> CreateDefaultClientAsync(
     this IHttpProxyClientFactory factory, CancellationToken cancellation = default)
 {
     return(factory.CreateClientAsync(Options.DefaultName, cancellation));
 }