[jboss-cvs] JBoss Messaging SVN: r3701 - in projects/jaio/trunk/jaio/java: src/org/jboss/jaio/libaioimpl and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Feb 11 12:25:36 EST 2008


Author: clebert.suconic at jboss.com
Date: 2008-02-11 12:25:36 -0500 (Mon, 11 Feb 2008)
New Revision: 3701

Modified:
   projects/jaio/trunk/jaio/java/src/org/jboss/jaio/api/AIOController.java
   projects/jaio/trunk/jaio/java/src/org/jboss/jaio/api/AIOPackage.java
   projects/jaio/trunk/jaio/java/src/org/jboss/jaio/libaioimpl/LibAIOController.java
   projects/jaio/trunk/jaio/java/tests/org/jboss/jaio/libaioimpl/test/TestInit.java
Log:
Implementing flushMethods

Modified: projects/jaio/trunk/jaio/java/src/org/jboss/jaio/api/AIOController.java
===================================================================
--- projects/jaio/trunk/jaio/java/src/org/jboss/jaio/api/AIOController.java	2008-02-11 17:24:36 UTC (rev 3700)
+++ projects/jaio/trunk/jaio/java/src/org/jboss/jaio/api/AIOController.java	2008-02-11 17:25:36 UTC (rev 3701)
@@ -25,4 +25,7 @@
     
     void recoverContent(AIORecoveryCallback callbackRecover);
     
+    /** This only flush any buffers into IO, it doesn't guarantee information on disk */
+    void flushMemory();
+    
 }

Modified: projects/jaio/trunk/jaio/java/src/org/jboss/jaio/api/AIOPackage.java
===================================================================
--- projects/jaio/trunk/jaio/java/src/org/jboss/jaio/api/AIOPackage.java	2008-02-11 17:24:36 UTC (rev 3700)
+++ projects/jaio/trunk/jaio/java/src/org/jboss/jaio/api/AIOPackage.java	2008-02-11 17:25:36 UTC (rev 3701)
@@ -11,9 +11,11 @@
  */
 public interface AIOPackage
 {
-    int encodeSize(int size);
+    int encodeSize();
 
     void encode(ByteBuffer buffer);
 
     void decode(int length, ByteBuffer buffer);
+    
+    void done();
 }

Modified: projects/jaio/trunk/jaio/java/src/org/jboss/jaio/libaioimpl/LibAIOController.java
===================================================================
--- projects/jaio/trunk/jaio/java/src/org/jboss/jaio/libaioimpl/LibAIOController.java	2008-02-11 17:24:36 UTC (rev 3700)
+++ projects/jaio/trunk/jaio/java/src/org/jboss/jaio/libaioimpl/LibAIOController.java	2008-02-11 17:25:36 UTC (rev 3701)
@@ -1,5 +1,7 @@
 package org.jboss.jaio.libaioimpl;
 
+import java.nio.ByteBuffer;
+
 import org.jboss.jaio.api.AIOController;
 import org.jboss.jaio.api.AIOPackage;
 import org.jboss.jaio.api.AIORecoveryCallback;
@@ -35,6 +37,12 @@
         }
     }
 
+    
+    public void flushMemory()
+    {
+        flushMemory(handler);
+    }
+    
     public void open(String fileName)
     {
         handler = init (fileName, AIOPackage.class);
@@ -49,7 +57,7 @@
     
     public void append(AIOPackage aioPackage)
     {
-        //append(handler, aioPackage);
+        append(handler, aioPackage);
         
     }
 
@@ -80,6 +88,9 @@
     @SuppressWarnings("unchecked")
     private static native long init(String fileName, Class aioPackageClazz);
     
+    private static native void append(long handle, AIOPackage aioPackage);
+
+    private static native void flushMemory(long handle);
+    
     //private static native void closeInternal(long handler);
-    //private static native void append(long handler, AIOPackage aioPackage);
 }

Modified: projects/jaio/trunk/jaio/java/tests/org/jboss/jaio/libaioimpl/test/TestInit.java
===================================================================
--- projects/jaio/trunk/jaio/java/tests/org/jboss/jaio/libaioimpl/test/TestInit.java	2008-02-11 17:24:36 UTC (rev 3700)
+++ projects/jaio/trunk/jaio/java/tests/org/jboss/jaio/libaioimpl/test/TestInit.java	2008-02-11 17:25:36 UTC (rev 3701)
@@ -1,14 +1,81 @@
 package org.jboss.jaio.libaioimpl.test;
 
+import java.nio.ByteBuffer;
+
+import org.jboss.jaio.api.AIOPackage;
 import org.jboss.jaio.libaioimpl.LibAIOController;
 
 import junit.framework.TestCase;
 
 public class TestInit extends TestCase
 {
+    
     public void testOpen()throws Exception
     {
         LibAIOController controller = new LibAIOController();
         controller.open("/tmp/libaio.log");
     }
+    
+    public void testAddData() throws Exception
+    {
+        LibAIOController controller = new LibAIOController();
+        controller.open("/tmp/libaio.log");
+        LocalAIO aio = new LocalAIO();
+        
+        controller.append(aio);
+        controller.append(aio);
+        controller.append(aio);
+        assertTrue(aio.encodeCalled);
+        assertTrue(aio.encodeSizeCalled);
+        assertFalse(aio.doneCalled);
+        
+        controller.flushMemory();
+        
+        assertTrue(aio.doneCalled);
+        
+    }
+    
+    private static class LocalAIO implements AIOPackage
+    {
+
+        boolean encodeCalled = false;
+        boolean encodeSizeCalled = false;
+        boolean doneCalled = false;
+        public void decode(int length, ByteBuffer buffer)
+        {
+            // TODO Auto-generated method stub
+            
+        }
+
+        public void done()
+        {
+            System.out.println("Done called");
+            doneCalled = true;
+            
+        }
+
+        public void encode(ByteBuffer buffer)
+        {
+            encodeCalled = true;
+            buffer.put((byte)'C');
+            buffer.put((byte)'R');
+            buffer.put((byte)'S');
+            buffer.put((byte)'C');
+            buffer.put((byte)'R');
+            buffer.put((byte)'S');
+            buffer.put((byte)'C');
+            buffer.put((byte)'R');
+            buffer.put((byte)'S');
+            buffer.put((byte)'\n');
+        }
+
+        public int encodeSize()
+        {
+            System.out.println("Size called");
+            System.out.flush();
+            encodeSizeCalled = true;
+            return 10;
+        }
+        
+    }
 }




More information about the jboss-cvs-commits mailing list