[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r3288 - in freeway: . native src/org/gnu/freeway/server src
From: |
mdonoughe |
Subject: |
[GNUnet-SVN] r3288 - in freeway: . native src/org/gnu/freeway/server src/org/gnu/freeway/services src/org/gnu/freeway/services/c src/org/gnu/freeway/util |
Date: |
Mon, 21 Aug 2006 17:43:07 -0700 (PDT) |
Author: mdonoughe
Date: 2006-08-21 17:42:55 -0700 (Mon, 21 Aug 2006)
New Revision: 3288
Added:
freeway/src/org/gnu/freeway/services/SqstoreService.java
freeway/src/org/gnu/freeway/services/c/SqstoreService.java
Modified:
freeway/
freeway/native/core.c
freeway/native/java.c
freeway/native/switch-table.c
freeway/native/switch-table.h
freeway/native/util.c
freeway/native/util.h
freeway/src/org/gnu/freeway/server/CPluginLoader.java
freeway/src/org/gnu/freeway/util/ServiceManager.java
Log:
SqstoreService
fixes a bug that kept C services from being able to use each other
Property changes on: freeway
___________________________________________________________________
Name: svk:merge
- 9da852c3-611b-0410-9456-b3f9f3a8f88d:/local/freeway:72
ca0d4bff-9018-0410-8ce9-c5d843b21c37:/local/freeway:73
+ 9da852c3-611b-0410-9456-b3f9f3a8f88d:/local/freeway:75
ca0d4bff-9018-0410-8ce9-c5d843b21c37:/local/freeway:73
Modified: freeway/native/core.c
===================================================================
--- freeway/native/core.c 2006-08-21 22:28:19 UTC (rev 3287)
+++ freeway/native/core.c 2006-08-22 00:42:55 UTC (rev 3288)
@@ -111,7 +111,7 @@
return 0;
ret = (*env)->GetLongField(env, retHandle, handle_);
fprintf(stderr, "leaving requestService: %x\n", ret);
- return (void *) (long) ret;
+ return ((ModuleList *) (long) ret)->moduleFptrStruct;
}
static int releaseService(void * ptr) {
@@ -135,7 +135,7 @@
GNUNET_ASSERT(newHandle != NULL);
method = (*env)->GetMethodID(env, capiClazz, "releaseService",
"(Lorg/gnu/freeway/server/CPluginLoader$Handle;)Lorg/gnu/freeway/cwrappers/CInt;");
GNUNET_ASSERT(method != NULL);
- jptr = (*env)->NewObject(env, handleClazz, newHandle, (jlong) (long) ptr);
+ jptr = (*env)->NewObject(env, handleClazz, newHandle, (jlong) (long)
fptrToModule(ptr));
GNUNET_ASSERT(jptr != NULL);
(*env)->CallVoidMethod(env, t->jcapi, method, jptr);
fprintf(stderr, "leaving releaseService\n");
Modified: freeway/native/java.c
===================================================================
--- freeway/native/java.c 2006-08-21 22:28:19 UTC (rev 3287)
+++ freeway/native/java.c 2006-08-22 00:42:55 UTC (rev 3288)
@@ -135,7 +135,6 @@
MUTEX_CREATE(&threadsLock);
MUTEX_CREATE(&modulesLock);
registerThread(env, capi);
- FREENONNULL(setConfigurationString("GNUNETD", "_MAGIC_", "NO"));
char * * jargs = NULL;
int jargLength;
GNUNET_ASSERT(env != NULL);
@@ -152,6 +151,7 @@
fprintf(stderr, "%s\n", jargs[jargsI]);
}
}
+ initConfiguration();
ok = initUtil(jargLength, jargs, &parseGnunetdCommandLine);
if(jargs != NULL) {
int jargsI;
Modified: freeway/native/switch-table.c
===================================================================
--- freeway/native/switch-table.c 2006-08-21 22:28:19 UTC (rev 3287)
+++ freeway/native/switch-table.c 2006-08-22 00:42:55 UTC (rev 3288)
@@ -48,6 +48,20 @@
oret = convLongToCLong(cret, env);
break;
}
+ case 511: {
+ PointerObject * carg0 = convObjectToPtr(jargs[0], env);
+ PointerObject * carg1 = convObjectToPtr(jargs[1], env);
+ int carg2 = convCIntToInt(jargs[2], env);
+ int cret = ((FunctionType511)
((void**)m->moduleFptrStruct)[functionOffset])(carg0->pointer, carg1->pointer,
carg2);
+ updateObjectFromPtr(jargs[1], carg1, env);
+ updateObjectFromPtr(jargs[0], carg0, env);
+ oret = convIntToCInt(cret, env);
+ break;
+ }
+ case 0: {
+ ((FunctionType0) ((void**)m->moduleFptrStruct)[functionOffset])();
+ break;
+ }
default:
GNUNET_ASSERT(0);
}
Modified: freeway/native/switch-table.h
===================================================================
--- freeway/native/switch-table.h 2006-08-21 22:28:19 UTC (rev 3287)
+++ freeway/native/switch-table.h 2006-08-22 00:42:55 UTC (rev 3288)
@@ -5,3 +5,5 @@
typedef int (*FunctionType85)(void * arg0, void * arg1);
typedef void (*FunctionType42)(int arg0, int arg1);
typedef long long (*FunctionType10)(int arg0);
+typedef int (*FunctionType511)(void * arg0, void * arg1, int arg2);
+typedef void (*FunctionType0)();
Modified: freeway/native/util.c
===================================================================
--- freeway/native/util.c 2006-08-21 22:28:19 UTC (rev 3287)
+++ freeway/native/util.c 2006-08-22 00:42:55 UTC (rev 3288)
@@ -49,7 +49,6 @@
*/
int hasModule(char * prefix, char * name) {
ModuleList * pos;
- void * temp;
MUTEX_LOCK(&modulesLock);
pos = modules;
while(pos != NULL) {
@@ -69,6 +68,24 @@
}
/**
+ * takes an fptr from GNUnet, and gets the corresponding ModuleList
+ * @param the fptr struct
+ * @return the ModuleList
+ */
+ModuleList * fptrToModule(void * fptr) {
+ ModuleList * pos;
+ MUTEX_LOCK(&modulesLock);
+ pos = modules;
+ while(pos != NULL) {
+ if(pos->moduleFptrStruct == fptr)
+ break;
+ pos = pos->next;
+ }
+ MUTEX_UNLOCK(&modulesLock);
+ return pos;
+}
+
+/**
* get a ModuleList structure. will attempt to load the library if needed
* @param the prefix
* @param the name of the library
Modified: freeway/native/util.h
===================================================================
--- freeway/native/util.h 2006-08-21 22:28:19 UTC (rev 3287)
+++ freeway/native/util.h 2006-08-22 00:42:55 UTC (rev 3288)
@@ -98,4 +98,6 @@
jobject convJStringToCString(jstring input, JNIEnv * env);
int parseGnunetdCommandLine(int argc, char * argv[]);
+
+ModuleList * fptrToModule(void * fptr);
#endif
Modified: freeway/src/org/gnu/freeway/server/CPluginLoader.java
===================================================================
--- freeway/src/org/gnu/freeway/server/CPluginLoader.java 2006-08-21
22:28:19 UTC (rev 3287)
+++ freeway/src/org/gnu/freeway/server/CPluginLoader.java 2006-08-22
00:42:55 UTC (rev 3288)
@@ -132,6 +132,8 @@
assert (serviceName != null);
if(!loaded || !CoreAPI._.isReady())
return Handle.NULL;
+ if(serviceName.equals("module_sqstore"))
+ serviceName = "module_sqstore_sqlite";
return new Handle(cLoadService(serviceName, CoreAPI._));
}
Added: freeway/src/org/gnu/freeway/services/SqstoreService.java
===================================================================
--- freeway/src/org/gnu/freeway/services/SqstoreService.java 2006-08-21
22:28:19 UTC (rev 3287)
+++ freeway/src/org/gnu/freeway/services/SqstoreService.java 2006-08-22
00:42:55 UTC (rev 3288)
@@ -0,0 +1,51 @@
+ /*
+ This file is part of Freeway
+
+ Freeway is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ Freeway is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Freeway; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+ */
+
+package org.gnu.freeway.services;
+
+import org.gnu.freeway.cwrappers.CDatastoreValue;
+import org.gnu.freeway.cwrappers.CHashCode512;
+import org.gnu.freeway.cwrappers.CInt;
+import org.gnu.freeway.cwrappers.CLong;
+import org.gnu.freeway.cwrappers.CUnsignedInt;
+import org.gnu.freeway.util.NativeService;
+
+/**
+ * @file SqstoreService.java
+ * @brief
+ * @author mdonoughe
+ */
+public interface SqstoreService extends NativeService {
+ public CLong getSize();
+
+ public CInt put(CHashCode512 key, CDatastoreValue value);
+
+ //TODO
+ //public CInt get(CHashCode512 key, CUnsignedInt type, CDatumIterator
iter, CPluginLoader.Handle closure);
+
+ public CInt update(CHashCode512 key, CDatastoreValue value, CInt delta);
+
+ //public CInt iterateLowPriority(CUnsignedInt type, CDatumIterator
iter, CPluginLoader.Handle closure);
+
+ //public CInt iterateExpirationTime(CUnsignedInt type, CDatumIterator
iter, CPluginLoader.Handle closure);
+
+ public CInt del(CHashCode512 key, CDatastoreValue value);
+
+ public void drop();
+}
Added: freeway/src/org/gnu/freeway/services/c/SqstoreService.java
===================================================================
--- freeway/src/org/gnu/freeway/services/c/SqstoreService.java 2006-08-21
22:28:19 UTC (rev 3287)
+++ freeway/src/org/gnu/freeway/services/c/SqstoreService.java 2006-08-22
00:42:55 UTC (rev 3288)
@@ -0,0 +1,41 @@
+// This class was autogenerated by SwitchTableGenerator
+package org.gnu.freeway.services.c;
+
+import org.gnu.freeway.util.NativeService;
+import org.gnu.freeway.cwrappers.CInt;
+import org.gnu.freeway.cwrappers.CDatastoreValue;
+import org.gnu.freeway.cwrappers.CLong;
+import org.gnu.freeway.cwrappers.CHashCode512;
+import org.gnu.freeway.util.AbstractNativeService;
+import org.gnu.freeway.server.CPluginLoader;
+
+public class SqstoreService extends AbstractNativeService implements
NativeService, org.gnu.freeway.services.SqstoreService {
+
+ public CLong getSize() {
+ return (CLong) loader.callC(handle, 0, 4, new Object[] {});
+ }
+
+ public CInt put(CHashCode512 arg0, CDatastoreValue arg1) {
+ return (CInt) loader.callC(handle, 1, 85, new Object[] {arg0,
arg1});
+ }
+
+ public CInt update(CHashCode512 arg0, CDatastoreValue arg1, CInt arg2) {
+ return (CInt) loader.callC(handle, 2, 511, new Object[] {arg0,
arg1, arg2});
+ }
+
+ public CInt del(CHashCode512 arg0, CDatastoreValue arg1) {
+ return (CInt) loader.callC(handle, 3, 85, new Object[] {arg0,
arg1});
+ }
+
+ public void drop() {
+ loader.callC(handle, 4, 0, new Object[] {});
+ }
+
+ public SqstoreService() {
+ this(CPluginLoader._);
+ }
+
+ public SqstoreService(CPluginLoader loader) {
+ super(loader);
+ }
+}
Property changes on: freeway/src/org/gnu/freeway/services/c/SqstoreService.java
___________________________________________________________________
Name: svn:mime-type
+ text/cpp
Modified: freeway/src/org/gnu/freeway/util/ServiceManager.java
===================================================================
--- freeway/src/org/gnu/freeway/util/ServiceManager.java 2006-08-21
22:28:19 UTC (rev 3287)
+++ freeway/src/org/gnu/freeway/util/ServiceManager.java 2006-08-22
00:42:55 UTC (rev 3288)
@@ -152,7 +152,6 @@
}
}
catch( Throwable x ) {
- System.err.println("Failed to init/start service
'"+s.getName()+"' !");
err("Failed to init/start service '"+s.getName()+"'
!",x);
services.remove(c);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r3288 - in freeway: . native src/org/gnu/freeway/server src/org/gnu/freeway/services src/org/gnu/freeway/services/c src/org/gnu/freeway/util,
mdonoughe <=