public void push(PushStreamPromise pushStreamPromise) { Stream receiverStream = getReceiverStream(); if (receiverStream != null) receiverStream.push(convertPushInfo((PushInfo)getInfo(), getSenderStream(), receiverStream), pushStreamPromise); else this.pushStreamPromise = pushStreamPromise; } }
@Override public StreamFrameListener onPush(Stream senderStream, PushInfo pushInfo) { if (LOG.isDebugEnabled()) LOG.debug("S -> P {} on {}"); PushInfo newPushInfo = convertPushInfo(pushInfo, senderStream, receiverStream); PushStreamPromise pushStreamPromise = new PushStreamPromise(senderStream, newPushInfo); receiverStream.push(newPushInfo, pushStreamPromise); return new ProxyPushStreamFrameListener(pushStreamPromise); }
@Override public void succeeded(Stream receiverStream) { super.succeeded(receiverStream); if (LOG.isDebugEnabled()) LOG.debug("P -> C PushStreamPromise.succeeded() called with pushStreamPromise: {}", pushStreamPromise); PushStreamPromise promise = pushStreamPromise; if (promise != null) receiverStream.push(convertPushInfo((PushInfo)getInfo(), getSenderStream(), receiverStream), pushStreamPromise); }
private void pushResource(String pushResource) { Fields.Field scheme = requestHeaders.get(HTTPSPDYHeader.SCHEME.name(version)); Fields.Field host = requestHeaders.get(HTTPSPDYHeader.HOST.name(version)); Fields.Field uri = requestHeaders.get(HTTPSPDYHeader.URI.name(version)); final Fields pushHeaders = createPushHeaders(scheme, host, pushResource); final Fields pushRequestHeaders = createRequestHeaders(scheme, host, uri, pushResource); stream.push(new PushInfo(pushHeaders, false), new Promise<Stream>() { @Override public void succeeded(Stream pushStream) { if (LOG.isDebugEnabled()) LOG.debug("Headers pushed for {} on {}", pushHeaders.get(HTTPSPDYHeader.URI.name(version)), pushStream); queue.offer(new PushResource(pushStream, pushRequestHeaders)); sendNextResourceData(); } @Override public void failed(Throwable x) { LOG.debug("Creating push stream failed.", x); sendNextResourceData(); } }); }