[Udt-java-commits] SF.net SVN: udt-java:[31] udt-java/trunk/src
Status: Alpha
Brought to you by:
bschuller
|
From: <bsc...@us...> - 2010-04-29 21:33:27
|
Revision: 31
http://udt-java.svn.sourceforge.net/udt-java/?rev=31&view=rev
Author: bschuller
Date: 2010-04-29 21:33:20 +0000 (Thu, 29 Apr 2010)
Log Message:
-----------
simpler and faster ;)
Modified Paths:
--------------
udt-java/trunk/src/main/java/udt/ServerSession.java
udt-java/trunk/src/main/java/udt/UDTOutputStream.java
udt-java/trunk/src/main/java/udt/UDTSender.java
udt-java/trunk/src/main/java/udt/packets/Acknowledgement.java
udt-java/trunk/src/main/java/udt/packets/NegativeAcknowledgement.java
udt-java/trunk/src/main/java/udt/sender/SenderLossList.java
udt-java/trunk/src/main/java/udt/util/ReceiveFile.java
udt-java/trunk/src/main/java/udt/util/SendFile.java
udt-java/trunk/src/test/java/udt/TestList.java
udt-java/trunk/src/test/java/udt/performance/TestUDTLargeData.java
Removed Paths:
-------------
udt-java/trunk/src/main/java/udt/sender/SenderListEntry.java
udt-java/trunk/src/main/java/udt/sender/SenderLossListEntry.java
udt-java/trunk/src/main/java/udt/sender/SentDataPacketsList.java
udt-java/trunk/src/test/java/udt/NullCongestionControl.java
Modified: udt-java/trunk/src/main/java/udt/ServerSession.java
===================================================================
--- udt-java/trunk/src/main/java/udt/ServerSession.java 2010-04-29 15:26:39 UTC (rev 30)
+++ udt-java/trunk/src/main/java/udt/ServerSession.java 2010-04-29 21:33:20 UTC (rev 31)
@@ -43,7 +43,6 @@
import udt.packets.Destination;
import udt.packets.KeepAlive;
import udt.packets.Shutdown;
-import udt.util.MeanValue;
/**
* server side session in client-server mode
Modified: udt-java/trunk/src/main/java/udt/UDTOutputStream.java
===================================================================
--- udt-java/trunk/src/main/java/udt/UDTOutputStream.java 2010-04-29 15:26:39 UTC (rev 30)
+++ udt-java/trunk/src/main/java/udt/UDTOutputStream.java 2010-04-29 21:33:20 UTC (rev 31)
@@ -36,8 +36,6 @@
/**
* UDTOutputStream provides a UDT version of {@link OutputStream}
- *
- *
*/
public class UDTOutputStream extends OutputStream{
@@ -79,6 +77,19 @@
}
/**
+ * This method signals the UDT sender that it can pause the
+ * sending thread. The UDT sender will resume when the next
+ * write() call is executed.<br/>
+ * For example, one can use this method on the receiving end
+ * of a file transfer, to save some CPU time which would otherwise
+ * be consumed by the sender thread.
+ */
+ public void pauseOutput()throws IOException{
+ socket.getSender().pause();
+ }
+
+
+ /**
* close this output stream
*/
@Override
Modified: udt-java/trunk/src/main/java/udt/UDTSender.java
===================================================================
--- udt-java/trunk/src/main/java/udt/UDTSender.java 2010-04-29 15:26:39 UTC (rev 30)
+++ udt-java/trunk/src/main/java/udt/UDTSender.java 2010-04-29 21:33:20 UTC (rev 31)
@@ -50,7 +50,6 @@
import udt.packets.KeepAlive;
import udt.packets.NegativeAcknowledgement;
import udt.sender.SenderLossList;
-import udt.sender.SenderLossListEntry;
import udt.util.MeanValue;
import udt.util.UDTStatistics;
import udt.util.UDTThreadFactory;
@@ -72,13 +71,16 @@
private final UDTStatistics statistics;
- //sendLossList store the sequence numbers of lost packets
- //feed back by the receiver through NAK pakets
+ //senderLossList stores the sequence numbers of lost packets
+ //fed back by the receiver through NAK pakets
private final SenderLossList senderLossList;
+
//sendBuffer stores the sent data packets and their sequence numbers
private final Map<Long,DataPacket>sendBuffer;
+
//sendQueue contains the packets to send
private final BlockingQueue<DataPacket>sendQueue;
+
//thread reading packets from send queue and sending them
private Thread senderThread;
@@ -101,10 +103,15 @@
private volatile boolean stopped=false;
- private final CountDownLatch startLatch=new CountDownLatch(1);
+ private volatile boolean paused=false;
+ //used to signal that the sender should start to send
+ private volatile CountDownLatch startLatch=new CountDownLatch(1);
+
+ //used by the sender to wait for an ACK
private final AtomicReference<CountDownLatch> waitForAckLatch=new AtomicReference<CountDownLatch>();
+ //used by the sender to wait for an ACK of a certain sequence number
private final AtomicReference<CountDownLatch> waitForSeqAckLatch=new AtomicReference<CountDownLatch>();
public UDTSender(UDTSession session,UDPEndPoint endpoint){
@@ -145,9 +152,12 @@
Runnable r=new Runnable(){
public void run(){
try{
- //wait until explicitely started
- startLatch.await();
- senderAlgorithm();
+ while(!stopped){
+ //wait until explicitely (re)started
+ startLatch.await();
+ paused=false;
+ senderAlgorithm();
+ }
}catch(InterruptedException ie){
ie.printStackTrace();
}
@@ -262,7 +272,7 @@
waitForAckLatch.get().countDown();
for(Integer i: nak.getDecodedLossInfo()){
- senderLossList.insert(new SenderLossListEntry(i));
+ senderLossList.insert(Long.valueOf(i));
}
session.getCongestionControl().onNAK(nak.getDecodedLossInfo());
session.getSocket().getReceiver().resetEXPTimer();
@@ -296,18 +306,18 @@
/**
* sender algorithm
*/
- MeanValue v=new MeanValue("",true);
+ MeanValue v=new MeanValue("",true,128);
public void senderAlgorithm()throws InterruptedException, IOException{
- while(!stopped){
+ while(!paused){
long iterationStart=Util.getCurrentTime(); //last packet send time?
//if the sender's loss list is not empty
- SenderLossListEntry entry=senderLossList.getFirstEntry();
- if (entry!=null) {
+ if (!senderLossList.isEmpty()) {
v.begin();
+ Long entry=senderLossList.getFirstEntry();
+ v.end();
handleResubmit(entry);
- v.end();
}
else
@@ -338,7 +348,7 @@
//wait
if(largestSentSequenceNumber % 16 !=0){
- double snd=100;//session.getCongestionControl().getSendInterval();
+ double snd=session.getCongestionControl().getSendInterval();
long passed=Util.getCurrentTime()-iterationStart;
int x=0;
while(snd-passed>0){
@@ -357,8 +367,8 @@
* re-submits an entry from the sender loss list
* @param entry
*/
- protected void handleResubmit(SenderLossListEntry entry){
- long seqNumber = entry.getSequenceNumber();
+ protected void handleResubmit(Long seqNumber){
+ //long seqNumber=entry.getSequenceNumber();
//TODO
//if the current seqNumber is 16n,check the timeOut in the
//loss list and send a message drop request.
@@ -383,7 +393,7 @@
protected void putUnacknowledgedPacketsIntoLossList(){
synchronized (sendLock) {
for(Long l: sendBuffer.keySet()){
- senderLossList.insert(new SenderLossListEntry(l));
+ senderLossList.insert(l);
}
}
}
@@ -432,7 +442,7 @@
*
* @throws InterruptedException
*/
- public synchronized void waitForAck(long sequenceNumber)throws InterruptedException{
+ public void waitForAck(long sequenceNumber)throws InterruptedException{
while(!session.isShutdown() && !haveAcknowledgementFor(sequenceNumber)){
waitForSeqAckLatch.set(new CountDownLatch(1));
waitForSeqAckLatch.get().await(10, TimeUnit.MILLISECONDS);
@@ -443,7 +453,7 @@
* wait for the next acknowledge
* @throws InterruptedException
*/
- public synchronized void waitForAck()throws InterruptedException{
+ public void waitForAck()throws InterruptedException{
waitForAckLatch.set(new CountDownLatch(1));
waitForAckLatch.get().await(1000, TimeUnit.MILLISECONDS);
}
@@ -452,4 +462,9 @@
public void stop(){
stopped=true;
}
+
+ public void pause(){
+ startLatch=new CountDownLatch(1);
+ paused=true;
+ }
}
Modified: udt-java/trunk/src/main/java/udt/packets/Acknowledgement.java
===================================================================
--- udt-java/trunk/src/main/java/udt/packets/Acknowledgement.java 2010-04-29 15:26:39 UTC (rev 30)
+++ udt-java/trunk/src/main/java/udt/packets/Acknowledgement.java 2010-04-29 21:33:20 UTC (rev 31)
@@ -33,7 +33,6 @@
package udt.packets;
import java.io.ByteArrayOutputStream;
-import udt.UDTPacket;
import udt.UDTReceiver;
import udt.UDTSender;
Modified: udt-java/trunk/src/main/java/udt/packets/NegativeAcknowledgement.java
===================================================================
--- udt-java/trunk/src/main/java/udt/packets/NegativeAcknowledgement.java 2010-04-29 15:26:39 UTC (rev 30)
+++ udt-java/trunk/src/main/java/udt/packets/NegativeAcknowledgement.java 2010-04-29 21:33:20 UTC (rev 31)
@@ -37,8 +37,6 @@
import java.util.ArrayList;
import java.util.List;
-import udt.packets.ControlPacket.ControlPacketType;
-
/**
* NAK carries information about lost packets
*
Deleted: udt-java/trunk/src/main/java/udt/sender/SenderListEntry.java
===================================================================
--- udt-java/trunk/src/main/java/udt/sender/SenderListEntry.java 2010-04-29 15:26:39 UTC (rev 30)
+++ udt-java/trunk/src/main/java/udt/sender/SenderListEntry.java 2010-04-29 21:33:20 UTC (rev 31)
@@ -1,69 +0,0 @@
-/*********************************************************************************
- * Copyright (c) 2010 Forschungszentrum Juelich GmbH
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * (1) Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the disclaimer at the end. Redistributions in
- * binary form must reproduce the above copyright notice, this list of
- * conditions and the following disclaimer in the documentation and/or other
- * materials provided with the distribution.
- *
- * (2) Neither the name of Forschungszentrum Juelich GmbH nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * DISCLAIMER
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *********************************************************************************/
-
-package udt.sender;
-
-/**
- * stores a data packet sequence number and the time it was sent
- */
-public class SenderListEntry implements Comparable<SenderListEntry>{
-
- private final long sequenceNumber;
- //departure time
- private final long sentTime;
-
- public SenderListEntry(long sequenceNumber, long sentTime){
- this.sequenceNumber= sequenceNumber;
- this.sentTime= sentTime;
- }
-
- public long getSequenceNumber() {
- return sequenceNumber;
- }
-
- public long getSentTime() {
- return sentTime;
- }
-
- public String toString(){
- return sequenceNumber+"[time="+sentTime+"]";
- }
-
-
- //used to order the entries in order of increasing sequence numbers
- public int compareTo(SenderListEntry o) {
- return (int)(sequenceNumber-o.sequenceNumber);
- }
-
-
-
-}
Modified: udt-java/trunk/src/main/java/udt/sender/SenderLossList.java
===================================================================
--- udt-java/trunk/src/main/java/udt/sender/SenderLossList.java 2010-04-29 15:26:39 UTC (rev 30)
+++ udt-java/trunk/src/main/java/udt/sender/SenderLossList.java 2010-04-29 21:33:20 UTC (rev 31)
@@ -31,37 +31,47 @@
*********************************************************************************/
package udt.sender;
-import java.util.concurrent.PriorityBlockingQueue;
+import java.util.LinkedList;
/**
* stores the sequence number of the lost packets in increasing order
*/
public class SenderLossList {
- private final PriorityBlockingQueue<SenderLossListEntry>backingList;
+ private final LinkedList<Long>backingList;
/**
* create a new sender lost list
*/
public SenderLossList(){
- backingList = new PriorityBlockingQueue<SenderLossListEntry>(32);
+ backingList = new LinkedList<Long>();
}
- public void insert(SenderLossListEntry obj){
+ public void insert(Long obj){
synchronized (backingList) {
- if(!backingList.contains(obj))backingList.add(obj);
+ if(!backingList.contains(obj)){
+ if(backingList.isEmpty())backingList.add(obj);
+ else{
+ for(int i=0;i<backingList.size();i++){
+ if(obj<backingList.getFirst()){
+ backingList.add(i,obj);
+ }
+ }
+ }
+ }
}
}
public void remove(long seqNo){
- backingList.remove(new SenderLossListEntry(seqNo));
+ synchronized (backingList) {
+ backingList.remove(seqNo);
+ }
}
/**
- * retrieves the loss list entry with the lowest sequence number and removes
- * it from the loss list
+ * retrieves the loss list entry with the lowest sequence number
*/
- public SenderLossListEntry getFirstEntry(){
+ public Long getFirstEntry(){
return backingList.poll();
}
@@ -69,10 +79,6 @@
return backingList.isEmpty();
}
- public long size(){
- return backingList.size();
- }
-
public String toString(){
return backingList.toString();
}
Deleted: udt-java/trunk/src/main/java/udt/sender/SenderLossListEntry.java
===================================================================
--- udt-java/trunk/src/main/java/udt/sender/SenderLossListEntry.java 2010-04-29 15:26:39 UTC (rev 30)
+++ udt-java/trunk/src/main/java/udt/sender/SenderLossListEntry.java 2010-04-29 21:33:20 UTC (rev 31)
@@ -1,100 +0,0 @@
-/*********************************************************************************
- * Copyright (c) 2010 Forschungszentrum Juelich GmbH
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * (1) Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the disclaimer at the end. Redistributions in
- * binary form must reproduce the above copyright notice, this list of
- * conditions and the following disclaimer in the documentation and/or other
- * materials provided with the distribution.
- *
- * (2) Neither the name of Forschungszentrum Juelich GmbH nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * DISCLAIMER
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *********************************************************************************/
-
-package udt.sender;
-
-import udt.util.Util;
-
-/**
- * the sender loss list stores information about lost data packets on the
- * sender side, ordered by increasing sequence number
- * @see SenderLossListEntry
- */
-public class SenderLossListEntry implements Comparable<SenderLossListEntry>{
-
- private final long sequenceNumber ;
-
- //time when the loss list entry was created
- private final long storageTime;
-
- public SenderLossListEntry(long sequenceNumber){
- if(sequenceNumber<0)throw new IllegalArgumentException();
- this.sequenceNumber = sequenceNumber;
- storageTime=Util.getCurrentTime();
- }
-
- public long getSequenceNumber() {
- return sequenceNumber;
- }
-
- /**
- * get the age of this loss sequence number
- * @return
- */
- public long getAge() {
- return Util.getCurrentTime()-storageTime;
- }
-
- /**
- * used to order entries by increasing sequence number
- */
- public int compareTo(SenderLossListEntry o) {
- return (int)(sequenceNumber-o.sequenceNumber);
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result
- + (int) (sequenceNumber ^ (sequenceNumber >>> 32));
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- SenderLossListEntry other = (SenderLossListEntry) obj;
- if (sequenceNumber != other.sequenceNumber)
- return false;
- return true;
- }
-
- public String toString(){
- return "lost-"+sequenceNumber;
- }
-}
Deleted: udt-java/trunk/src/main/java/udt/sender/SentDataPacketsList.java
===================================================================
--- udt-java/trunk/src/main/java/udt/sender/SentDataPacketsList.java 2010-04-29 15:26:39 UTC (rev 30)
+++ udt-java/trunk/src/main/java/udt/sender/SentDataPacketsList.java 2010-04-29 21:33:20 UTC (rev 31)
@@ -1,69 +0,0 @@
-/*********************************************************************************
- * Copyright (c) 2010 Forschungszentrum Juelich GmbH
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * (1) Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the disclaimer at the end. Redistributions in
- * binary form must reproduce the above copyright notice, this list of
- * conditions and the following disclaimer in the documentation and/or other
- * materials provided with the distribution.
- *
- * (2) Neither the name of Forschungszentrum Juelich GmbH nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * DISCLAIMER
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *********************************************************************************/
-
-package udt.sender;
-import java.util.Iterator;
-import java.util.concurrent.PriorityBlockingQueue;
-
-/**
- * stores the sequence numbers of the data packets sent out, and the time of sending.
- * Entries are ordered in order of increasing sequence number
- * @see SenderListEntry
- */
-public class SentDataPacketsList {
-
- private final PriorityBlockingQueue<SenderListEntry>listOfSentPacketSeqNo;
-
- public SentDataPacketsList(){
- listOfSentPacketSeqNo = new PriorityBlockingQueue<SenderListEntry>(64);
- }
-
- public void insert(SenderListEntry obj){
- listOfSentPacketSeqNo.add(obj);
- }
-
- public void remove(long seqNo){
- Iterator<SenderListEntry>iterator=listOfSentPacketSeqNo.iterator();
- while(iterator.hasNext()){
- SenderListEntry e=iterator.next();
- if(e.getSequenceNumber()==seqNo){
- iterator.remove();
- return;
- }
- }
- }
-
- public boolean isEmpty(){
- return listOfSentPacketSeqNo.isEmpty();
- }
-
-}
Modified: udt-java/trunk/src/main/java/udt/util/ReceiveFile.java
===================================================================
--- udt-java/trunk/src/main/java/udt/util/ReceiveFile.java 2010-04-29 15:26:39 UTC (rev 30)
+++ udt-java/trunk/src/main/java/udt/util/ReceiveFile.java 2010-04-29 21:33:20 UTC (rev 31)
@@ -89,7 +89,11 @@
bb.put((byte)0);
out.write(readBuf, 0, bb.position());
+ out.flush();
+ //pause the sender to save some CPU time
+ out.pauseOutput();
+
//read size info (an 4-byte int)
byte[]sizeInfo=new byte[4];
@@ -146,7 +150,9 @@
}
public static void usage(){
- System.out.println("Usage: java -cp .. udt.util.ReceiveFile <server_ip> <server_port> <remote_filename> <local_filename>");
+ System.out.println("Usage: java -cp .. udt.util.ReceiveFile " +
+ "<server_ip> <server_port> <remote_filename> <local_filename> " +
+ "[--verbose] [--localPort=<port>] [--localIP=<ip>]");
}
}
Modified: udt-java/trunk/src/main/java/udt/util/SendFile.java
===================================================================
--- udt-java/trunk/src/main/java/udt/util/SendFile.java 2010-04-29 15:26:39 UTC (rev 30)
+++ udt-java/trunk/src/main/java/udt/util/SendFile.java 2010-04-29 21:33:20 UTC (rev 31)
@@ -108,7 +108,8 @@
}
public static void usage(){
- System.out.println("Usage: java -cp ... udt.util.SendFile <server_port>");
+ System.out.println("Usage: java -cp ... udt.util.SendFile <server_port> " +
+ "[--verbose] [--localPort=<port>] [--localIP=<ip>]");
}
public static class RequestRunner implements Runnable{
Deleted: udt-java/trunk/src/test/java/udt/NullCongestionControl.java
===================================================================
--- udt-java/trunk/src/test/java/udt/NullCongestionControl.java 2010-04-29 15:26:39 UTC (rev 30)
+++ udt-java/trunk/src/test/java/udt/NullCongestionControl.java 2010-04-29 21:33:20 UTC (rev 31)
@@ -1,56 +0,0 @@
-package udt;
-
-import java.util.List;
-
-public class NullCongestionControl implements CongestionControl {
-
- private final UDTSession session;
-
- public NullCongestionControl(UDTSession session){
- this.session=session;
- }
-
- public void close() {
- }
-
- public long getCongestionWindowSize() {
- return Long.MAX_VALUE;
- }
-
- public double getSendInterval() {
- return 0;
- }
-
- public void init() {
- }
-
- public void onACK(long ackSeqno) {
- }
-
- public void onNAK(List<Integer> lossInfo) {
- }
-
- public void onPacketReceive(long packetSeqNo) {
- }
-
- public void onPacketSend(long packetSeqNo) {
- }
-
- public void onTimeout() {
- }
-
- public void updatePacketArrivalRate(long rate, long linkCapacity) {
- }
-
- public void setRTT(long rtt, long rttVar) {
- }
-
- public long getEstimatedLinkCapacity() {
- return 0;
- }
-
- public long getPacketArrivalRate() {
- return 0;
- }
-
-}
Modified: udt-java/trunk/src/test/java/udt/TestList.java
===================================================================
--- udt-java/trunk/src/test/java/udt/TestList.java 2010-04-29 15:26:39 UTC (rev 30)
+++ udt-java/trunk/src/test/java/udt/TestList.java 2010-04-29 21:33:20 UTC (rev 31)
@@ -10,7 +10,6 @@
import udt.receiver.PacketHistoryWindow;
import udt.receiver.PacketPairWindow;
import udt.sender.SenderLossList;
-import udt.sender.SenderLossListEntry;
import udt.util.CircularArray;
/*
@@ -79,14 +78,14 @@
}
public void testSenderLossList1(){
- SenderLossListEntry A = new SenderLossListEntry(7);
- SenderLossListEntry B = new SenderLossListEntry(8);
- SenderLossListEntry C = new SenderLossListEntry(1);
+ Long A=7l;
+ Long B=8l;
+ Long C=1l;
SenderLossList l=new SenderLossList();
l.insert(A);
l.insert(B);
l.insert(C);
- SenderLossListEntry oldest=l.getFirstEntry();
+ Long oldest=l.getFirstEntry();
assertEquals(C,oldest);
}
@@ -128,7 +127,6 @@
assertFalse(p.isControlPacket());
assertEquals(54,p.getPacketSequenceNumber());
-
}
}
Modified: udt-java/trunk/src/test/java/udt/performance/TestUDTLargeData.java
===================================================================
--- udt-java/trunk/src/test/java/udt/performance/TestUDTLargeData.java 2010-04-29 15:26:39 UTC (rev 30)
+++ udt-java/trunk/src/test/java/udt/performance/TestUDTLargeData.java 2010-04-29 21:33:20 UTC (rev 31)
@@ -20,7 +20,7 @@
boolean running=false;
//how many
- int num_packets=20;
+ int num_packets=100;
//how large is a single packet
int size=1*1024*1024;
@@ -31,7 +31,6 @@
public void test1()throws Exception{
Logger.getLogger("udt").setLevel(Level.INFO);
- //System.setProperty(UDTSession.CC_CLASS, NullCongestionControl.class.getName());
UDTReceiver.dropRate=0;
TIMEOUT=Integer.MAX_VALUE;
doTest();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|