Exemplo n.º 1
0
            private StreamTcp.IncomingConnection ConnectionFor(Tcp.Connected connected, IActorRef connection)
            {
                _connectionFlowsAwaitingInitialization.IncrementAndGet();

                var tcpFlow =
                    Flow.FromGraph(new IncomingConnectionStage(connection, connected.RemoteAddress, _stage._halfClose))
                    .Via(new Detacher <ByteString>()) // must read ahead for proper completions
                    .MapMaterializedValue(unit =>
                {
                    _connectionFlowsAwaitingInitialization.DecrementAndGet();
                    return(unit);
                });

                // FIXME: Previous code was wrong, must add new tests
                var handler = tcpFlow;

                if (_stage._idleTimeout.HasValue)
                {
                    handler = tcpFlow.Join(TcpIdleTimeout.Create(_stage._idleTimeout.Value, connected.RemoteAddress));
                }

                return(new StreamTcp.IncomingConnection(connected.LocalAddress, connected.RemoteAddress, handler));
            }
Exemplo n.º 2
0
 protected override void Shutdown()
 {
     Stops.IncrementAndGet();
     base.Shutdown();
 }