KafkaNet.KafkaTcpSocket.KafkaTcpSocket C# (CSharp) Method

KafkaTcpSocket() public method

Construct socket and open connection to a specified server.
public KafkaTcpSocket ( IKafkaLog log, KafkaNet.Model.KafkaEndpoint endpoint, int maxRetry, System.TimeSpan maximumReconnectionTimeout = null, KafkaNet.Model.StatisticsTrackerOptions statisticsTrackerOptions = null ) : KafkaNet.Common
log IKafkaLog Logging facility for verbose messaging of actions.
endpoint KafkaNet.Model.KafkaEndpoint The IP endpoint to connect to.
maxRetry int
maximumReconnectionTimeout System.TimeSpan The maximum time to wait when backing off on reconnection attempts.
statisticsTrackerOptions KafkaNet.Model.StatisticsTrackerOptions
return KafkaNet.Common
        public KafkaTcpSocket(IKafkaLog log, KafkaEndpoint endpoint, int maxRetry, TimeSpan? maximumReconnectionTimeout = null, StatisticsTrackerOptions statisticsTrackerOptions = null)
        {
            _log = log;
            _endpoint = endpoint;
            _maximumReconnectionTimeout = maximumReconnectionTimeout ?? TimeSpan.FromMinutes(MaxReconnectionTimeoutMinutes);
            _maxRetry = maxRetry;
            _statisticsTrackerOptions = statisticsTrackerOptions;
            _sendTaskQueue = new AsyncCollection<SocketPayloadSendTask>();
            _readTaskQueue = new AsyncCollection<SocketPayloadReadTask>();

            //dedicate a long running task to the read/write operations
            _socketTask = Task.Run(async () => { await DedicatedSocketTask(); });

            _disposeTask = _disposeToken.Token.CreateTask();
            _disposeRegistration = _disposeToken.Token.Register(() =>
            {
                _sendTaskQueue.CompleteAdding();
                _readTaskQueue.CompleteAdding();
            });
        }