I noticed that the attachment somehow disappeared from my posting so here it
is inline:

Index: ScpToMessage.java
===================================================================
RCS file:
/home/cvspublic/ant/src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpT
oMessage.java,v
retrieving revision 1.8
diff -B -b -u -r1.8 ScpToMessage.java
--- ScpToMessage.java 9 Feb 2004 21:05:34 -0000 1.8
+++ ScpToMessage.java 5 Apr 2004 13:57:01 -0000
@@ -150,8 +150,9 @@
         byte[] buf = new byte[BUFFER_SIZE];
         long startTime = System.currentTimeMillis();
         int totalLength = 0;
+        int percentTransMitted = 0;
         try {
-            log("Sending: " + localFile.getName() + " : " +
localFile.length());
+            log("Sending: " + localFile.getName() + " : " +
localFile.length() + " bytes");
             while (true) {
                 int len = fis.read(buf, 0, buf.length);
                 if (len <= 0) {
@@ -159,6 +160,9 @@
                 }
                 out.write(buf, 0, len);
                 totalLength += len;
+                // only track prgress for files larger than 100kb
+                if (filesize > 102400)
+                    percentTransMitted = trackProgress(filesize,
totalLength, percentTransMitted);
             }
             out.flush();
             sendAck(out);
@@ -170,6 +174,25 @@
         }
     }
+    /*
+        Track progress every 10% if 100kb < filesize < 1mb. For larger
files trck progress for every percent transmitted.
+    */
+    private int trackProgress(int filesize, int totalLength, int
percentTransMitted) {
+
+        int percent = (int) Math.round(Math.floor((totalLength /
(double)filesize) * 100));
+
+        if (percent > percentTransMitted) {
+            if ( filesize < 1048576 && (percent % 10 != 0) ) {
+                // do not track between tenths
+            }
+            else {
+                log("" + percent + "%");
+            }
+        }
+
+        return percent;
+    }
+
     public File getLocalFile() {
         return localFile;
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to