You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2015/01/23 20:03:32 UTC
svn commit: r1654327 - in /tomcat/trunk/java/org/apache: coyote/http11/
tomcat/util/net/
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org