< prev index next >

src/java.httpclient/share/classes/java/net/http/AsyncSSLConnection.java

Print this page
rev 15335 : Async Queues

*** 43,52 **** --- 43,57 ---- super(addr, client); delegate = new PlainHttpConnection(addr, client); sslDelegate = new AsyncSSLDelegate(delegate, client, ap); } + synchronized void configureMode(Mode mode) throws IOException { + super.configureMode(mode); + delegate.configureMode(mode); + } + @Override public void connect() throws IOException, InterruptedException { delegate.connect(); }
*** 79,103 **** ConnectionPool.CacheKey cacheKey() { return ConnectionPool.cacheKey(address, null); } @Override ! synchronized long write(ByteBuffer[] buffers, int start, int number) throws IOException { ByteBuffer[] bufs = Utils.reduce(buffers, start, number); long n = Utils.remaining(bufs); ! sslDelegate.write(bufs); return n; } @Override long write(ByteBuffer buffer) throws IOException { long n = buffer.remaining(); ! sslDelegate.write(buffer); return n; } @Override public void close() { Utils.close(sslDelegate, delegate.channel()); } @Override --- 84,133 ---- ConnectionPool.CacheKey cacheKey() { return ConnectionPool.cacheKey(address, null); } @Override ! long write(ByteBuffer[] buffers, int start, int number) throws IOException { ByteBuffer[] bufs = Utils.reduce(buffers, start, number); long n = Utils.remaining(bufs); ! sslDelegate.writeAsync(bufs); ! sslDelegate.flushAsync(); return n; } @Override long write(ByteBuffer buffer) throws IOException { long n = buffer.remaining(); ! sslDelegate.writeAsync(new ByteBuffer[]{buffer}); ! sslDelegate.flushAsync(); return n; } @Override + public void writeAsyncUnordered(ByteBuffer[] buffers) throws IOException { + if (mode != Mode.ASYNC) { + write(buffers, 0 , buffers.length); + } else { + sslDelegate.writeAsyncUnordered(buffers); + } + } + + @Override + public void writeAsync(ByteBuffer[] buffers) throws IOException { + if (mode != Mode.ASYNC) { + write(buffers, 0 , buffers.length); + } else { + sslDelegate.writeAsync(buffers); + } + } + + @Override + public void flushAsync() { + sslDelegate.flushAsync(); + } + + @Override public void close() { Utils.close(sslDelegate, delegate.channel()); } @Override
< prev index next >