You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2008/09/02 16:52:17 UTC

svn commit: r691268 - in /activemq/sandbox/kahadb/src/main/java/org/apache/kahadb: page/BTreeIndex.java page/BTreeNode.java page/Page.java page/PageFile.java page/Transaction.java util/DataByteArrayOutputStream.java

Author: chirino
Date: Tue Sep  2 07:52:17 2008
New Revision: 691268

URL: http://svn.apache.org/viewvc?rev=691268&view=rev
Log:
Added some more helpful methods..


Modified:
    activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/BTreeIndex.java
    activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/BTreeNode.java
    activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/Page.java
    activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/PageFile.java
    activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/Transaction.java
    activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/util/DataByteArrayOutputStream.java

Modified: activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/BTreeIndex.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/BTreeIndex.java?rev=691268&r1=691267&r2=691268&view=diff
==============================================================================
--- activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/BTreeIndex.java (original)
+++ activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/BTreeIndex.java Tue Sep  2 07:52:17 2008
@@ -116,7 +116,7 @@
     }    
 
     private final PageFile pageFile;
-    private final long rootPageId;
+    private final long pageId;
     private AtomicBoolean loaded = new AtomicBoolean();
     
     private final BTreeNode.Marshaller<Key, Value> marshaller = new BTreeNode.Marshaller<Key, Value>(this);
@@ -129,7 +129,7 @@
     public BTreeIndex(PageFile pageFile, long rootPageId) {
         super();
         this.pageFile = pageFile;
-        this.rootPageId = rootPageId;
+        this.pageId = rootPageId;
     }
 
     synchronized public void load() throws IOException {
@@ -143,7 +143,7 @@
             }
             
             Transaction tx = pageFile.tx();
-            final Page<BTreeNode<Key,Value>> p = tx.load(rootPageId, null);
+            final Page<BTreeNode<Key,Value>> p = tx.load(pageId, null);
             if( p.getType() == Page.PAGE_FREE_TYPE ) {
                  // Need to initialize it..
                 tx.execute(new Transaction.Closure<IOException>(){
@@ -154,7 +154,7 @@
                 });
                 pageFile.checkpoint();
             } else {
-                root = loadNode(tx, rootPageId, null);    
+                root = loadNode(tx, pageId, null);    
             }
         }
     }
@@ -272,8 +272,8 @@
     public PageFile getPageFile() {
         return pageFile;
     }
-    public long getRootPageId() {
-        return rootPageId;
+    public long getPageId() {
+        return pageId;
     }
 
     public Marshaller<Key> getKeyMarshaller() {

Modified: activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/BTreeNode.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/BTreeNode.java?rev=691268&r1=691267&r2=691268&view=diff
==============================================================================
--- activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/BTreeNode.java (original)
+++ activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/BTreeNode.java Tue Sep  2 07:52:17 2008
@@ -155,7 +155,7 @@
             int idx = Arrays.binarySearch(keys, key);
             idx = idx < 0 ? -(idx + 1) : idx + 1;
             BTreeNode<Key, Value> child = getChild(tx, idx);
-            if( child.getPageId() == index.getRootPageId() ) {
+            if( child.getPageId() == index.getPageId() ) {
                 throw new IOException("BTree corrupted: Cylce detected.");
             }
             Value rc = child.remove(tx, key);

Modified: activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/Page.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/Page.java?rev=691268&r1=691267&r2=691268&view=diff
==============================================================================
--- activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/Page.java (original)
+++ activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/Page.java Tue Sep  2 07:52:17 2008
@@ -33,7 +33,7 @@
  * 
  * @version $Revision: 1.1.1.1 $
  */
-class Page<T> {
+public class Page<T> {
 
     public static final int PAGE_HEADER_SIZE = 17;
 

Modified: activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/PageFile.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/PageFile.java?rev=691268&r1=691267&r2=691268&view=diff
==============================================================================
--- activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/PageFile.java (original)
+++ activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/PageFile.java Tue Sep  2 07:52:17 2008
@@ -752,6 +752,11 @@
         public boolean isReadOnly() {
             return false;
         }
+
+        public long getPageCount() {
+            return nextFreePageId;
+        }
+
     }
     
     public Transaction tx() {

Modified: activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/Transaction.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/Transaction.java?rev=691268&r1=691267&r2=691268&view=diff
==============================================================================
--- activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/Transaction.java (original)
+++ activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/page/Transaction.java Tue Sep  2 07:52:17 2008
@@ -27,7 +27,7 @@
  * The interface used to read/update a PageFile object.  Using a transaction allows you to
  * do multiple update operations in a single unit of work.
  */
-interface Transaction extends Iterable<Page> {
+public interface Transaction extends Iterable<Page> {
     
     /**
      * 
@@ -49,8 +49,7 @@
         public long getPage() {
             return page;
         }
-    }
-    
+    }    
     
     /**
      * This closure interface is intended for the end user implement callbacks for the Transaction.exectue() method.
@@ -211,6 +210,11 @@
     public InputStream openInputStream(final Page p) throws IOException;
     
     /**
+     * @return the number of pages allocated in the PageFile
+     */
+    public long getPageCount();
+    
+    /**
      * Allows you to iterate through all active Pages in this object.  Pages with type Page.FREE_TYPE are 
      * not included in this iteration. 
      * 

Modified: activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/util/DataByteArrayOutputStream.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/util/DataByteArrayOutputStream.java?rev=691268&r1=691267&r2=691268&view=diff
==============================================================================
--- activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/util/DataByteArrayOutputStream.java (original)
+++ activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/util/DataByteArrayOutputStream.java Tue Sep  2 07:52:17 2008
@@ -277,4 +277,8 @@
         pos+=size;
         onWrite();
     }
+
+    public ByteSequence getByteSequence() {
+        return new ByteSequence(buf, 0, pos);
+    }
 }