public void process(Interest interest) { RequestInfo rp = request.getRequestProcessor(); rp.setStage(org.apache.coyote.Constants.STAGE_PARSE); error = false; // keepAlive = true; // setting up the I/O // this.interest = interest; // outputBuffer.recycle(); inputBuffer.setInterest(interest); inputBuffer.setCCNConnector(endpoint.getCCNConnector()); outputBuffer.setInterest(interest); outputBuffer.setCCNConnector(endpoint.getCCNConnector()); outputBuffer.setUriHashMap(endpoint.getCCNConnector().getUriHashMap()); // outputBuffer.setCcnhandle(endpoint.getCcnhandle()); // step1: parse CCN header // step2: put the header content into Request // while (!error && !endpoint.isPaused()&&keepAlive) { if (!error) { rp.setStage(org.apache.coyote.Constants.STAGE_PREPARE); inputBuffer.parseRequet(); // outputBuffer.setUri(inputBuffer.getOriginalUri()); outputBuffer.setUri(inputBuffer.getUri()); outputBuffer.initCCNOutputStream(); request.setStartTime(System.currentTimeMillis()); // step3: call service(request,response) rp.setStage(org.apache.coyote.Constants.STAGE_SERVICE); try { adapter.service(request, response); // keepAlive = false; } catch (Exception e) { // TODO Auto-generated catch block error = true; e.printStackTrace(); } // step4: Finish the handling of the request rp.setStage(org.apache.coyote.Constants.STAGE_ENDINPUT); inputBuffer.endRequest(); // step5: next request // inputBuffer.nextRequest(); // outputBuffer.nextRequest(); } rp.setStage(org.apache.coyote.Constants.STAGE_ENDED); // Recycle inputBuffer.recycle(); outputBuffer.recycle(); // this.interest = null; }