[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r2940 - in freeway/src/org/gnu/freeway: cwrappers/util serv
From: |
mdonoughe |
Subject: |
[GNUnet-SVN] r2940 - in freeway/src/org/gnu/freeway: cwrappers/util services |
Date: |
Mon, 29 May 2006 10:39:55 -0700 (PDT) |
Author: mdonoughe
Date: 2006-05-29 10:39:53 -0700 (Mon, 29 May 2006)
New Revision: 2940
Modified:
freeway/src/org/gnu/freeway/cwrappers/util/SwitchTableGenerator.java
freeway/src/org/gnu/freeway/services/StatsService.java
Log:
added a missing function to StatsService
SwitchTableGenerator gernerates compiling Java classes
Modified: freeway/src/org/gnu/freeway/cwrappers/util/SwitchTableGenerator.java
===================================================================
--- freeway/src/org/gnu/freeway/cwrappers/util/SwitchTableGenerator.java
2006-05-29 03:53:10 UTC (rev 2939)
+++ freeway/src/org/gnu/freeway/cwrappers/util/SwitchTableGenerator.java
2006-05-29 17:39:53 UTC (rev 2940)
@@ -56,6 +56,7 @@
c =
Class.forName("org.gnu.freeway.services.StatsService");
} catch(ClassNotFoundException e) {
e.printStackTrace();
+ return;
}
implementClass(c);
}
@@ -67,40 +68,60 @@
}
System.err.println("Implementing " + c.getName());
- //open file
- //write class head
HashMap imports = new HashMap();
- //use some magic to include the yet-to-be-determined import
statements here
+ cleanClassName("org.gnu.freeway.server.CPluginLoader", imports);
Method[] methods = c.getMethods();
ArrayList methodList = new ArrayList();
+ // write every method to the buffer
for(int i = 0; i < methods.length; i++) {
- //write methods
StringBuffer buffer = new StringBuffer();
+ StringBuffer arrayBuffer = new StringBuffer();
buffer.append("public " +
cleanClassName(methods[i].getReturnType().getName(), imports) + " " +
methods[i].getName() + "(");
Class[] argTypes = methods[i].getParameterTypes();
- for(int j = 0; j < argTypes.length; j++) {
- if(j > 0)
+ int j;
+ // add every argument to the arguments list and the
Object[]
+ for(j = 0; j < argTypes.length; j++) {
+ if(j > 0) {
buffer.append(", ");
-
buffer.append(cleanClassName(argTypes[j].getName(), imports) + " arg" + j);
+ arrayBuffer.append(", ");
+ }
+ String paramClassName =
cleanClassName(argTypes[j].getName(), imports);
+ String paramName = "arg" + j;
+ buffer.append(paramClassName + " " + paramName);
+ arrayBuffer.append(paramName);
}
buffer.append(") {\n");
- buffer.append("//TODO: write code that writes code
here\n");
+ if(!"void".equals(methods[i].getReturnType().getName()))
+ buffer.append("return (" +
cleanClassName(methods[i].getReturnType().getName(), imports) + ") ");
+ buffer.append("loader.callC(handle, \"" +
methods[i].getName() + "\", this, new Object[] {" + arrayBuffer + "});\n");
buffer.append("}");
methodList.add(buffer.toString());
}
System.out.println("// This class was autogenerated by
SwitchTableGenerator");
- System.out.println("pacakge org.gnu.freeway.services.impl;");
+ System.out.println("package org.gnu.freeway.services.impl;");
System.out.println();
Collection importSet = imports.values();
for(Iterator i = importSet.iterator(); i.hasNext(); )
System.out.println("import " + (String) i.next() + ";");
System.out.println();
System.out.println("public class " + stripPackage(c.getName())
+ " implements " + c.getName() + " {");
+ System.out.println("private CPluginLoader loader;");
+ System.out.println("private CPluginLoader.Handle handle;");
+ System.out.println();
+ System.out.println("public " + stripPackage(c.getName()) +
"(CPluginLoader loader) {");
+ System.out.println("this.loader = loader;");
+ System.out.println("handle = loader.loadService(\"" +
stripPackage(c.getName()) + "\");");
+ System.out.println("}");
+ System.out.println();
+ System.out.println("protected void finalize() {");
+ System.out.println("loader.unloadService(handle);");
+ System.out.println("}");
+ System.out.println();
for(Iterator i = methodList.iterator(); i.hasNext(); )
- System.out.println((String) i.next());
+ System.out.println((String) i.next() + "\n");
System.out.println("}");
}
@@ -153,5 +174,4 @@
throw new Error(t);
}
}
-
}
Modified: freeway/src/org/gnu/freeway/services/StatsService.java
===================================================================
--- freeway/src/org/gnu/freeway/services/StatsService.java 2006-05-29
03:53:10 UTC (rev 2939)
+++ freeway/src/org/gnu/freeway/services/StatsService.java 2006-05-29
17:39:53 UTC (rev 2940)
@@ -33,4 +33,5 @@
public CInt create(ConstCString name);
public void set(ConstCInt handle, ConstCLong value);
public CLong get(ConstCInt handle); //cannot return a constant type
because those can't be deserialized
+ public void change(ConstCInt handle, ConstCInt delta);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r2940 - in freeway/src/org/gnu/freeway: cwrappers/util services,
mdonoughe <=