package org.webpieces.frontend2.impl; import java.nio.ByteBuffer; import org.webpieces.data.api.DataWrapper; import org.webpieces.data.api.DataWrapperGenerator; import org.webpieces.data.api.DataWrapperGeneratorFactory; import org.webpieces.frontend2.api.HttpRequestListener; import com.webpieces.http2engine.api.server.Http2ServerEngine; import com.webpieces.http2engine.api.server.Http2ServerEngineFactory; public class Layer2Http2Handler { private static final DataWrapperGenerator dataGen = DataWrapperGeneratorFactory.createDataWrapperGenerator(); private Http2ServerEngineFactory svrEngineFactory; private HttpRequestListener httpListener; private boolean isHttps; public Layer2Http2Handler( Http2ServerEngineFactory svrEngineFactory, HttpRequestListener httpListener, boolean isHttps ) { this.svrEngineFactory = svrEngineFactory; this.httpListener = httpListener; this.isHttps = isHttps; } public void initialize(FrontendSocketImpl socket) { Layer3Http2EngineListener listener = new Layer3Http2EngineListener(socket, httpListener, isHttps); Http2ServerEngine engine = svrEngineFactory.createEngine(listener); socket.setHttp2Engine(engine); engine.intialize(); } public void incomingData(FrontendSocketImpl socket, ByteBuffer b) { DataWrapper wrapper = dataGen.wrapByteBuffer(b); incomingData(socket, wrapper); } public void incomingData(FrontendSocketImpl socket, DataWrapper data) { Http2ServerEngine engine = socket.getHttp2Engine(); engine.parse(data); } public void farEndClosed(FrontendSocketImpl socket) { Http2ServerEngine engine = socket.getHttp2Engine(); engine.farEndClosed(); } }