Author: markt Date: Fri Jan 23 19:03:32 2015 New Revision: 1654327 URL: http://svn.apache.org/r1654327 Log: Push creation of the SendfileData into the SocketWrapper
Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1654327&r1=1654326&r2=1654327&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Fri Jan 23 19:03:32 2015 @@ -324,12 +324,11 @@ public class Http11AprProcessor extends // No entity body sent here getOutputBuffer().addActiveFilter(outputFilters[Constants.VOID_FILTER]); contentDelimitation = true; - sendfileData = new AprEndpoint.SendfileData(); - sendfileData.fileName = fileName; - sendfileData.pos = ((Long) request.getAttribute( - org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(); - sendfileData.length = ((Long) request.getAttribute( - org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos; + sendfileData = socketWrapper.createSendfileData(fileName, + ((Long) request.getAttribute( + org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(), + ((Long) request.getAttribute( + org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos); return true; } return false; Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java?rev=1654327&r1=1654326&r2=1654327&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java Fri Jan 23 19:03:32 2015 @@ -318,12 +318,11 @@ public class Http11Nio2Processor extends // No entity body sent here getOutputBuffer().addActiveFilter(outputFilters[Constants.VOID_FILTER]); contentDelimitation = true; - sendfileData = new Nio2Endpoint.SendfileData(); - sendfileData.fileName = fileName; - sendfileData.pos = ((Long) request.getAttribute( - org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(); - sendfileData.length = ((Long) request.getAttribute( - org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos; + sendfileData = socketWrapper.createSendfileData(fileName, + ((Long) request.getAttribute( + org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(), + ((Long) request.getAttribute( + org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos); return true; } return false; Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=1654327&r1=1654326&r2=1654327&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Fri Jan 23 19:03:32 2015 @@ -284,12 +284,11 @@ public class Http11NioProcessor extends // No entity body sent here getOutputBuffer().addActiveFilter(outputFilters[Constants.VOID_FILTER]); contentDelimitation = true; - sendfileData = new NioEndpoint.SendfileData(); - sendfileData.fileName = fileName; - sendfileData.pos = ((Long) request.getAttribute( - org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(); - sendfileData.length = ((Long) request.getAttribute( - org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos; + sendfileData = socketWrapper.createSendfileData(fileName, + ((Long) request.getAttribute( + org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(), + ((Long) request.getAttribute( + org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos); return true; } return false; Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1654327&r1=1654326&r2=1654327&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Fri Jan 23 19:03:32 2015 @@ -1913,7 +1913,6 @@ public class AprEndpoint extends Abstrac // ----------------------------------------------- SendfileData Inner Class - /** * SendfileData class. */ @@ -1923,12 +1922,15 @@ public class AprEndpoint extends Abstrac protected long fdpool; // Socket and socket pool protected long socket; + + public SendfileData(String filename, long pos, long length) { + super(filename, pos, length); + } } // --------------------------------------------------- Sendfile Inner Class - public class Sendfile implements Runnable { protected long sendfilePollset = 0; @@ -2644,6 +2646,12 @@ public class AprEndpoint extends Abstrac } + @Override + public SendfileDataBase createSendfileData(String filename, long pos, long length) { + return new SendfileData(filename, pos, length); + } + + @Override public SendfileState processSendfile(SendfileDataBase sendfileData) { ((SendfileData) sendfileData).socket = getSocket().longValue(); Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1654327&r1=1654326&r2=1654327&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Fri Jan 23 19:03:32 2015 @@ -1307,6 +1307,12 @@ public class Nio2Endpoint extends Abstra @Override + public SendfileDataBase createSendfileData(String filename, long pos, long length) { + return new SendfileData(filename, pos, length); + } + + + @Override public SendfileState processSendfile(SendfileDataBase sendfileData) { setSendfileData((SendfileData) sendfileData); return ((Nio2Endpoint) getEndpoint()).processSendfile(this); @@ -1625,5 +1631,9 @@ public class Nio2Endpoint extends Abstra private ByteBuffer buffer; private boolean doneInline = false; private boolean error = false; + + public SendfileData(String filename, long pos, long length) { + super(filename, pos, length); + } } } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1654327&r1=1654326&r2=1654327&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Fri Jan 23 19:03:32 2015 @@ -1585,6 +1585,12 @@ public class NioEndpoint extends Abstrac } + + @Override + public SendfileDataBase createSendfileData(String filename, long pos, long length) { + return new SendfileData(filename, pos, length); + } + @Override public SendfileState processSendfile(SendfileDataBase sendfileData) { setSendfileData((SendfileData) sendfileData); @@ -1774,6 +1780,11 @@ public class NioEndpoint extends Abstrac * SendfileData class. */ public static class SendfileData extends SendfileDataBase { + + public SendfileData(String filename, long pos, long length) { + super(filename, pos, length); + } + protected volatile FileChannel fchannel; } } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java?rev=1654327&r1=1654326&r2=1654327&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java Fri Jan 23 19:03:32 2015 @@ -30,7 +30,7 @@ public abstract class SendfileDataBase { * The full path to the file that contains the data to be written to the * socket. */ - public String fileName; + public final String fileName; /** * The position of the next byte in the file to be written to the socket. @@ -45,4 +45,10 @@ public abstract class SendfileDataBase { * point and then updated as the file is written. */ public long length; + + public SendfileDataBase(String filename, long pos, long length) { + this.fileName = filename; + this.pos = pos; + this.length = length; + } } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java?rev=1654327&r1=1654326&r2=1654327&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Fri Jan 23 19:03:32 2015 @@ -511,6 +511,8 @@ public abstract class SocketWrapperBase< public abstract void regsiterForEvent(boolean read, boolean write); + public abstract SendfileDataBase createSendfileData(String filename, long pos, long length); + /** * Starts the sendfile process. It is expected that if the sendfile process * does not complete during this call that the caller <b>will not</b> add --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org