gnunet-svn
[Top][All Lists]
Advanced

[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);
                        }





reply via email to

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