gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r2941 - in freeway/src/org/gnu/freeway: cwrappers/util serv


From: mdonoughe
Subject: [GNUnet-SVN] r2941 - in freeway/src/org/gnu/freeway: cwrappers/util server services services/impl
Date: Mon, 29 May 2006 11:21:27 -0700 (PDT)

Author: mdonoughe
Date: 2006-05-29 11:21:23 -0700 (Mon, 29 May 2006)
New Revision: 2941

Added:
   freeway/src/org/gnu/freeway/services/impl/
   freeway/src/org/gnu/freeway/services/impl/StatsService.java
Modified:
   freeway/src/org/gnu/freeway/cwrappers/util/SwitchTableGenerator.java
   freeway/src/org/gnu/freeway/server/CPluginLoader.java
   freeway/src/org/gnu/freeway/server/CPluginLoaderTest.java
Log:
CPluginLoaderTest has a new test to test the StatsService. This test 
does not seem work properly, but it does run.
services.impl.StatsService is included for now because I needed to 
manually modify it to load the correct native library.


Modified: freeway/src/org/gnu/freeway/cwrappers/util/SwitchTableGenerator.java
===================================================================
--- freeway/src/org/gnu/freeway/cwrappers/util/SwitchTableGenerator.java        
2006-05-29 17:39:53 UTC (rev 2940)
+++ freeway/src/org/gnu/freeway/cwrappers/util/SwitchTableGenerator.java        
2006-05-29 18:21:23 UTC (rev 2941)
@@ -161,10 +161,10 @@
        }
        
        public static int getArgumentType(Class c) {
-               if (c == Void.class)
+               if ("void".equals(c.getName()))
                        return CWrapper.VOID_KIND;
                try {
-                       Field f = c.getField("KIND");
+                       Field f = getPrivateField(c, "KIND");
                        f.setAccessible(true);
                        Integer i = (Integer) f.get(null);
                        int ret = i.intValue();
@@ -174,4 +174,15 @@
                        throw new Error(t);
                }
        }
+       
+       public static Field getPrivateField(Class c, String name) throws 
NoSuchFieldException {
+               if("void".equals(c.getName())) {
+                       System.exit(0);
+               }
+               Field[] fields = c.getDeclaredFields();
+               for(int i = 0; i < fields.length; i++)
+                       if(name.equals(fields[i].getName()))
+                               return fields[i];
+               throw new NoSuchFieldException(name);
+       }
 }

Modified: freeway/src/org/gnu/freeway/server/CPluginLoader.java
===================================================================
--- freeway/src/org/gnu/freeway/server/CPluginLoader.java       2006-05-29 
17:39:53 UTC (rev 2940)
+++ freeway/src/org/gnu/freeway/server/CPluginLoader.java       2006-05-29 
18:21:23 UTC (rev 2941)
@@ -42,7 +42,7 @@
 
        private static native void cUnloadService(long modulePtr);
 
-       public CPluginLoader() {                
+       public CPluginLoader() {
        }
        
        /**

Modified: freeway/src/org/gnu/freeway/server/CPluginLoaderTest.java
===================================================================
--- freeway/src/org/gnu/freeway/server/CPluginLoaderTest.java   2006-05-29 
17:39:53 UTC (rev 2940)
+++ freeway/src/org/gnu/freeway/server/CPluginLoaderTest.java   2006-05-29 
18:21:23 UTC (rev 2941)
@@ -2,17 +2,33 @@
 
 import junit.framework.TestCase;
 import junit.textui.TestRunner;
+import org.gnu.freeway.services.StatsService;
+import org.gnu.freeway.cwrappers.ConstCString;
+import org.gnu.freeway.cwrappers.CInt;
+import org.gnu.freeway.cwrappers.ConstCLong;
+import org.gnu.freeway.cwrappers.CLong;
+import org.gnu.freeway.cwrappers.ConstCInt;
 
 public class CPluginLoaderTest extends TestCase {
 
-       public void testService() {
+       public void testServiceLoad() {
                CPluginLoader cpl = new CPluginLoader();
                CPluginLoader.Handle modulePtr = cpl.loadService("module_chat");
                assertFalse(modulePtr._ == 0);
                cpl.unloadService(modulePtr);
        }
        
-
+       public void testStatService() {
+               CPluginLoader cpl = new CPluginLoader();
+               StatsService statsService = (StatsService) 
cpl.createService("StatsService");
+               CInt statHandle = statsService.create(new ConstCString("# of 
test stats"));
+               //assertFalse(statHandle.getValue() == 0);
+               statsService.set(statHandle, new ConstCLong(0));
+               statsService.change(statHandle, new ConstCInt(1));
+               CLong result = statsService.get(statHandle);
+               assertFalse(result == null);
+               assertTrue(result.getValue() == 1);
+       }
        
        public static void main(String[] args) {
                TestRunner.run(CPluginLoaderTest.class);

Added: freeway/src/org/gnu/freeway/services/impl/StatsService.java
===================================================================
--- freeway/src/org/gnu/freeway/services/impl/StatsService.java 2006-05-29 
17:39:53 UTC (rev 2940)
+++ freeway/src/org/gnu/freeway/services/impl/StatsService.java 2006-05-29 
18:21:23 UTC (rev 2941)
@@ -0,0 +1,40 @@
+// This class was autogenerated by SwitchTableGenerator
+package org.gnu.freeway.services.impl;
+
+import org.gnu.freeway.cwrappers.CInt;
+import org.gnu.freeway.cwrappers.ConstCLong;
+import org.gnu.freeway.cwrappers.CLong;
+import org.gnu.freeway.cwrappers.ConstCInt;
+import org.gnu.freeway.cwrappers.ConstCString;
+import org.gnu.freeway.server.CPluginLoader;
+
+public class StatsService implements org.gnu.freeway.services.StatsService {
+private CPluginLoader loader;
+private CPluginLoader.Handle handle;
+
+public StatsService(CPluginLoader loader) {
+this.loader = loader;
+handle = loader.loadService("module_stats");
+}
+
+protected void finalize() {
+loader.unloadService(handle);
+}
+
+public void change(ConstCInt arg0, ConstCInt arg1) {
+loader.callC(handle, "change", this, new Object[] {arg0, arg1});
+}
+
+public CLong get(ConstCInt arg0) {
+return (CLong) loader.callC(handle, "get", this, new Object[] {arg0});
+}
+
+public void set(ConstCInt arg0, ConstCLong arg1) {
+loader.callC(handle, "set", this, new Object[] {arg0, arg1});
+}
+
+public CInt create(ConstCString arg0) {
+return (CInt) loader.callC(handle, "create", this, new Object[] {arg0});
+}
+
+}





reply via email to

[Prev in Thread] Current Thread [Next in Thread]