@Override public Connection newConnection(EndPoint endPoint, Map<String, Object> context) throws IOException { SPDYClient client = (SPDYClient)context.get(SPDY_CLIENT_CONTEXT_KEY); SPDYClient.Factory factory = client.getFactory(); ByteBufferPool byteBufferPool = factory.getByteBufferPool(); CompressionFactory compressionFactory = new StandardCompressionFactory(); Parser parser = new Parser(compressionFactory.newDecompressor()); Generator generator = new Generator(byteBufferPool, compressionFactory.newCompressor()); SPDYConnection connection = new ClientSPDYConnection(endPoint, byteBufferPool, parser, factory, client.isDispatchIO()); FlowControlStrategy flowControlStrategy = client.newFlowControlStrategy(); SessionFrameListener listener = (SessionFrameListener)context.get(SPDY_SESSION_LISTENER_CONTEXT_KEY); StandardSession session = new StandardSession(client.getVersion(), byteBufferPool, factory.getScheduler(), connection, endPoint, connection, 1, listener, generator, flowControlStrategy); session.setWindowSize(client.getInitialWindowSize()); parser.addListener(session); connection.setSession(session); @SuppressWarnings("unchecked") Promise<Session> promise = (Promise<Session>)context.get(SPDY_SESSION_PROMISE_CONTEXT_KEY); promise.succeeded(session); return connection; }
@Override public Connection newConnection(Connector connector, EndPoint endPoint) { CompressionFactory compressionFactory = new StandardCompressionFactory(); Parser parser = new Parser(compressionFactory.newDecompressor()); Generator generator = new Generator(connector.getByteBufferPool(), compressionFactory.newCompressor()); ServerSessionFrameListener listener = provideServerSessionFrameListener(connector, endPoint); SPDYConnection connection = new ServerSPDYConnection(connector, endPoint, parser, listener, isDispatchIO(), getInputBufferSize()); FlowControlStrategy flowControlStrategy = newFlowControlStrategy(version); StandardSession session = new StandardSession(getVersion(), connector.getByteBufferPool(), connector.getScheduler(), connection, endPoint, connection, 2, listener, generator, flowControlStrategy); session.setWindowSize(getInitialWindowSize()); parser.addListener(session); connection.setSession(session); sessionOpened(session); return configure(connection, connector, endPoint); }