Пример #1
0
        private AeronClient(ClientServerConfig config)
        {
            _config = config;
            AeronDriver.DriverContext    driverContext = config.ToDriverContext();
            Adaptive.Aeron.Aeron.Context clientContext = config.ToClientContext();

            driverContext
            .LoggerInfo(_driverLog.Info)
            .LoggerWarning(_driverLog.Warn)
            .LoggerWarning(_driverLog.Error);

            _driver = AeronDriver.Start(driverContext);

            clientContext
            .ErrorHandler(OnError)
            .AvailableImageHandler(ConnectionOnImageAvailable)
            .UnavailableImageHandler(ConnectionOnImageUnavailable);

            _client = Adaptive.Aeron.Aeron.Connect(clientContext);

            const int sessionsLen =
#if DEBUG
                1;
#else
                64;
#endif

            _clientSessions = new AeronClientSession[sessionsLen];
        }
Пример #2
0
 /// <summary>
 /// Creates a new instance of the provider with the supplied parameters.
 /// </summary>
 /// <param name="systemContext">the Aeron system context to use</param>
 /// <param name="stream">the Aeron stream ID</param>
 /// <param name="address">the address to use for UDP transmission</param>
 /// <param name="port">the port to use for UDP transmission</param>
 /// <param name="bufferSize">the Aeron buffer size</param>
 /// <param name="interface">the local interface to bind to (optional)</param>
 public Aeron(
     Adaptive.Aeron.Aeron.Context systemContext,
     int stream,
     string address,
     int port,
     int bufferSize,
     string @interface
     )
 {
     _stream     = stream;
     _address    = address;
     _port       = port;
     _bufferSize = bufferSize;
     _interface  = @interface;
     _aeron      = Adaptive.Aeron.Aeron.Connect(systemContext);
 }
        public AeronServer(int serverPort, ClientServerConfig config)
        {
            _config        = config;
            _driverContext = config.ToDriverContext();
            _clientContext = config.ToClientContext();

            _driverContext
            .LoggerInfo(_driverLog.Info)
            .LoggerWarning(_driverLog.Warn)
            .LoggerWarning(_driverLog.Error);

            _driver = AeronDriver.Start(_driverContext);

            _clientContext
            .ErrorHandler(OnError)
            .AvailableImageHandler(ConnectionOnImageAvailable)
            .UnavailableImageHandler(ConnectionOnImageUnavailable);

            _client = Adaptive.Aeron.Aeron.Connect(_clientContext);

            _publicationIdleStrategy = _config.ClientIdleStrategy.GetClientIdleStrategy();

            _subscription = _client.AddSubscription($"aeron:udp?endpoint=0.0.0.0:{serverPort}", ServerStreamId);
        }