Update of /cvsroot/freenet/freenet/src/freenet/fs/dir
In directory sc8-pr-cvs1:/tmp/cvs-serv17090/src/freenet/fs/dir

Modified Files:
        Buffer.java CircularBuffer.java FSDirectory.java 
        NativeFSDirectory.java NullBuffer.java 
Log Message:
6162: accurate send queue length. Hopefully.


Index: Buffer.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/fs/dir/Buffer.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -r1.2 -r1.3
--- Buffer.java 12 Sep 2002 16:05:52 -0000      1.2
+++ Buffer.java 21 Oct 2003 01:52:35 -0000      1.3
@@ -10,6 +10,11 @@
 
     long length();
 
+    /**
+     * Current length of buffer - number of bytes IN CACHE
+     */
+    long realLength();
+    
     boolean failed();
 
     InputStream getInputStream() throws IOException;

Index: CircularBuffer.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/fs/dir/CircularBuffer.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -w -r1.18 -r1.19
--- CircularBuffer.java 3 Jul 2003 03:33:43 -0000       1.18
+++ CircularBuffer.java 21 Oct 2003 01:52:35 -0000      1.19
@@ -24,6 +24,8 @@
     
     protected DoublyLinkedList readers = new DoublyLinkedListImpl();
 
+    CircularOutputStream cos = null;
+    
     /**
      * @param lapbuf   buffer to do laps over
      * @param vlength  virtual length -- total length of tunneled data
@@ -199,7 +201,7 @@
      */
     public OutputStream getOutputStream() throws IOException,
                                                  BufferException {
-        return new CircularOutputStream();
+        return cos = new CircularOutputStream();
     }    
 
     boolean outAtStart = false;
@@ -327,6 +329,11 @@
         protected void finalize() throws Throwable {
             kick();
         }
+    }
+    
+    public long realLength() {
+       if(cos == null) return vlength;
+       return (lap+1) * lapbuf.length() - cos.wlim;
     }
 }
 

Index: FSDirectory.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/fs/dir/FSDirectory.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -w -r1.11 -r1.12
--- FSDirectory.java    16 Jun 2003 19:38:38 -0000      1.11
+++ FSDirectory.java    21 Oct 2003 01:52:36 -0000      1.12
@@ -517,6 +517,10 @@
             return length;
         }
 
+       public final long realLength() {
+           throw new UnsupportedOperationException();
+       }
+       
         public final boolean failed() {
             return failed;
         }

Index: NativeFSDirectory.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/fs/dir/NativeFSDirectory.java,v
retrieving revision 1.164
retrieving revision 1.165
diff -u -w -r1.164 -r1.165
--- NativeFSDirectory.java      17 Oct 2003 01:43:28 -0000      1.164
+++ NativeFSDirectory.java      21 Oct 2003 01:52:36 -0000      1.165
@@ -1518,6 +1518,10 @@
             return (buffer==null) ? -1 : buffer.length();
         }
 
+               public long realLength() {
+                       return (buffer==null) ? 0 : buffer.realLength();
+               }
+               
         public boolean failed() {
             return (buffer==null) ? false : buffer.failed();
         }
@@ -1979,6 +1983,13 @@
          */
         public long length() { return size; }
     
+               /**
+                * Current length of file - the number of bytes we actually have cached
+                */
+               public long realLength() {
+                       return getFile().length();
+               }
+               
         public boolean failed() { return status == FAILED; }
 
         /**

Index: NullBuffer.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/fs/dir/NullBuffer.java,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -w -r1.1.1.1 -r1.2
--- NullBuffer.java     13 Jan 2002 05:24:36 -0000      1.1.1.1
+++ NullBuffer.java     21 Oct 2003 01:52:36 -0000      1.2
@@ -19,6 +19,10 @@
         return 0;
     }
 
+    public final long realLength() {
+       return 0;
+    }
+    
     public final boolean failed() {
         return false;
     }

_______________________________________________
cvs mailing list
[EMAIL PROTECTED]
http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to