private void attachWriter(final AtmosphereResource r) { AtmosphereResponse res = r.getResponse(); AsyncIOWriter writer = res.getAsyncIOWriter(); if (writer instanceof AtmosphereInterceptorWriter) { AtmosphereInterceptorWriter.class.cast(writer).interceptor(interceptor, 0); } }
private void attachWriter(final AtmosphereResource r) { AtmosphereResponse res = r.getResponse(); AsyncIOWriter writer = res.getAsyncIOWriter(); if (writer instanceof AtmosphereInterceptorWriter) { AtmosphereInterceptorWriter.class.cast(writer).interceptor(interceptor, 0); } }
public WrappedAtmosphereResponse(AtmosphereResponse resp, AtmosphereRequest req) { super((HttpServletResponse)resp.getResponse(), resp.getAsyncIOWriter(), req, resp.isDestroyable()); }
/** * {@inheritDoc} */ @Override public void onSuspend(AtmosphereResourceEvent event) { AsyncIOWriter writer = event.getResource().getResponse().getAsyncIOWriter(); if (writer == null) { writer = new AtmosphereInterceptorWriter(); r.getResponse().asyncIOWriter(writer); } if (AtmosphereInterceptorWriter.class.isAssignableFrom(writer.getClass())) { AtmosphereInterceptorWriter.class.cast(writer).interceptor(interceptor); } } });
protected byte[] transform(AtmosphereResponse response, byte[] b, int offset, int length) throws IOException { AsyncIOWriter a = response.getAsyncIOWriter(); try { response.asyncIOWriter(buffer); invokeInterceptor(response, b, offset, length); return buffer.stream().toByteArray(); } finally { buffer.close(null); response.asyncIOWriter(a); } }
final AtmosphereResponse response = r.getResponse(); AsyncIOWriter writer = response.getAsyncIOWriter(); if (AtmosphereInterceptorWriter.class.isAssignableFrom(writer.getClass())) { AtmosphereInterceptorWriter.class.cast(writer).interceptor(new AsyncIOInterceptorAdapter() {
protected byte[] transform(AtmosphereResponse response, byte[] b, int offset, int length) throws IOException { AsyncIOWriter a = response.getAsyncIOWriter(); try { response.asyncIOWriter(transformCacheBuffer); invokeInterceptor(response, b, offset, length); return transformCacheBuffer.stream().toByteArray(); } finally { transformCacheBuffer.close(null); response.asyncIOWriter(a); } }
protected byte[] transform(AtmosphereResponse response, byte[] b, int offset, int length) throws IOException { AsyncIOWriter a = response.getAsyncIOWriter(); try { response.asyncIOWriter(transformCacheBuffer); invokeInterceptor(response, b, offset, length); return transformCacheBuffer.stream().toByteArray(); } finally { transformCacheBuffer.close(null); response.asyncIOWriter(a); } }
protected byte[] transform(AtmosphereResponse response, byte[] b, int offset, int length) throws IOException { AsyncIOWriter a = response.getAsyncIOWriter(); try { response.asyncIOWriter(buffer); invokeInterceptor(response, b, offset, length); return buffer.stream().toByteArray(); } finally { buffer.close(null); response.asyncIOWriter(a); } }
@Override public void onSuspend(AtmosphereResourceEvent event) { final String srid = (String)event.getResource().getRequest() .getAttribute(ApplicationConfig.SUSPENDED_ATMOSPHERE_RESOURCE_UUID); LOG.log(Level.FINE, "Registrering suspended resource: {}", srid); suspendedResponses.put(srid, event.getResource().getResponse()); AsyncIOWriter writer = event.getResource().getResponse().getAsyncIOWriter(); if (writer instanceof AtmosphereInterceptorWriter) { ((AtmosphereInterceptorWriter)writer).interceptor(interceptor); } }
public AtmosphereCoordinator route(AtmosphereRequest request, AtmosphereResponse response) throws IOException { final VertxAsyncIOWriter w = VertxAsyncIOWriter.class.cast(response.getAsyncIOWriter()); try { Action a = framework.doCometSupport(request, response); final AtmosphereResourceImpl impl = (AtmosphereResourceImpl) request.getAttribute(FrameworkConfig.ATMOSPHERE_RESOURCE); String transport = (String) request.getAttribute(FrameworkConfig.TRANSPORT_IN_USE); if (transport == null) { transport = request.getHeader(X_ATMOSPHERE_TRANSPORT); } logger.debug("Transport {} action {}", transport, a); final Action action = (Action) request.getAttribute(NettyCometSupport.SUSPEND); if (action != null && action.type() == Action.TYPE.SUSPEND && action.timeout() != -1) { final AtomicReference<Future<?>> f = new AtomicReference<>(); f.set(suspendTimer.scheduleAtFixedRate(new Runnable() { @Override public void run() { if (!w.isClosed() && (System.currentTimeMillis() - w.lastTick()) > action.timeout()) { asynchronousProcessor.endRequest(impl, false); f.get().cancel(true); } } }, action.timeout(), action.timeout(), TimeUnit.MILLISECONDS)); } } catch (Throwable e) { logger.error("Unable to process request", e); } return this; }
@Override public void onSuspend(AtmosphereResourceEvent event) { final String srid = (String)event.getResource().getRequest() .getAttribute(ApplicationConfig.SUSPENDED_ATMOSPHERE_RESOURCE_UUID); LOG.log(Level.FINE, "Registrering suspended resource: {}", srid); suspendedResponses.put(srid, event.getResource().getResponse()); AsyncIOWriter writer = event.getResource().getResponse().getAsyncIOWriter(); if (writer instanceof AtmosphereInterceptorWriter) { ((AtmosphereInterceptorWriter)writer).interceptor(interceptor); } }
AsyncIOWriter writer = res.getAsyncIOWriter();
boolean keptOpen = true; boolean skipClose = false; final PlayAsyncIOWriter w = PlayAsyncIOWriter.class.cast(response.getAsyncIOWriter());