JIMS: add jvoid 48/11948/2
Calixte DENIZET [Fri, 5 Jul 2013 10:07:29 +0000 (12:07 +0200)]
Change-Id: I6521fd47afee843bc0857e7d7f8e3ad9536c6b9a

16 files changed:
scilab/modules/external_objects/macros/%_EVoid_p.sci [new file with mode: 0644]
scilab/modules/external_objects/src/cpp/ScilabObjects.cpp
scilab/modules/external_objects/src/cpp/doubleExclam_invoke.cpp
scilab/modules/external_objects/src/cpp/invoke.cpp
scilab/modules/external_objects/src/cpp/invoke_lu.cpp
scilab/modules/external_objects/src/cpp/invoker.cpp
scilab/modules/external_objects/src/cpp/newInstance.cpp
scilab/modules/external_objects_java/Makefile.am
scilab/modules/external_objects_java/Makefile.in
scilab/modules/external_objects_java/etc/external_objects_java.start
scilab/modules/external_objects_java/includes/gw_external_objects_java.h
scilab/modules/external_objects_java/macros/!_deff_wrapper.sci [deleted file]
scilab/modules/external_objects_java/macros/buildmacros.sce
scilab/modules/external_objects_java/sci_gateway/c/gw_external_objects_java.c
scilab/modules/external_objects_java/sci_gateway/cpp/sci_jvoid.cpp [deleted file]
scilab/modules/external_objects_java/sci_gateway/external_objects_java_gateway.xml

diff --git a/scilab/modules/external_objects/macros/%_EVoid_p.sci b/scilab/modules/external_objects/macros/%_EVoid_p.sci
new file mode 100644 (file)
index 0000000..39326e6
--- /dev/null
@@ -0,0 +1,13 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Calixte DENIZET
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+//
+
+function %_EVoid_p(x)
+    write(%io(2), "External Objects: void wrapper")
+endfunction
\ No newline at end of file
index 024e180..4878dcf 100644 (file)
@@ -32,7 +32,6 @@ void ScilabObjects::initialization(ScilabAbstractEnvironment & env, void * pvApi
     if (!isInit)
     {
         isInit = true;
-        //createNamedEnvironmentObject(EXTERNAL_VOID, "evoid", 0, 0, pvApiCtx);
     }
 }
 
index 90aec9b..5c1e11d 100644 (file)
@@ -29,6 +29,7 @@ int ScilabGateway::doubleExclam_invoke(char * fname, const int envId, void * pvA
     int ret = 0;
     int * sret = 0;
     int len = Rhs;
+    int nbArgs = len;
 
     CheckOutputArgument(pvApiCtx, 1, 1);
 
index 1e84c47..b5362c9 100644 (file)
@@ -24,6 +24,7 @@ int ScilabGateway::invoke(char * fname, const int envId, void * pvApiCtx)
     int idObj = 0;
     int * ret = 0;
     char * methName = 0;
+    int nbArgs = Rhs - 2;
 
     if (Rhs < 2)
     {
@@ -86,6 +87,11 @@ int ScilabGateway::invoke(char * fname, const int envId, void * pvApiCtx)
             delete[] tmpvar;
             throw;
         }
+
+        if (args[i] == VOID_OBJECT)
+        {
+            nbArgs = 0;
+        }
     }
 
     try
@@ -102,7 +108,7 @@ int ScilabGateway::invoke(char * fname, const int envId, void * pvApiCtx)
 
     try
     {
-        ret = env.invoke(idObj, methName, args, Rhs - 2);
+        ret = env.invoke(idObj, methName, args, nbArgs);
     }
     catch (std::exception & e)
     {
index 9c36546..7d49dd6 100644 (file)
@@ -30,6 +30,7 @@ int ScilabGateway::invoke_lu(char * fname, const int envId, void * pvApiCtx)
     int * eId;
     int row, col;
     int * ret = 0;
+    int nbArgs = 0;
 
     CheckInputArgument(pvApiCtx, 4, 4);
 
@@ -152,6 +153,7 @@ int ScilabGateway::invoke_lu(char * fname, const int envId, void * pvApiCtx)
     *tmpvar = 0;
 
     args = new int[len];
+    nbArgs = len;
 
     for (int i = 0; i < len; i++)
     {
@@ -174,6 +176,11 @@ int ScilabGateway::invoke_lu(char * fname, const int envId, void * pvApiCtx)
             delete[] tmpvar;
             throw;
         }
+
+        if (args[i] == VOID_OBJECT)
+        {
+            nbArgs = 0;
+        }
     }
 
     try
@@ -190,7 +197,7 @@ int ScilabGateway::invoke_lu(char * fname, const int envId, void * pvApiCtx)
 
     try
     {
-        ret = env.invoke(idObj, methName, args, len);
+        ret = env.invoke(idObj, methName, args, nbArgs);
     }
     catch (std::exception & e)
     {
index 626c527..4a1a5c6 100644 (file)
@@ -22,6 +22,7 @@ int ScilabGateway::invoke(char * fname, const int envId, ScilabAbstractInvoker &
     int * addr = 0;
     int * args = 0;
     int ret = 0;
+    int nbArgs = Rhs;
 
     CheckOutputArgument(pvApiCtx, 1, 1);
 
@@ -56,11 +57,16 @@ int ScilabGateway::invoke(char * fname, const int envId, ScilabAbstractInvoker &
             delete[] tmpvar;
             throw;
         }
+
+        if (args[i] == VOID_OBJECT)
+        {
+            nbArgs = 0;
+        }
     }
 
     try
     {
-        ret = invoker.invoke(args, Rhs);
+        ret = invoker.invoke(args, nbArgs);
     }
     catch (std::exception & e)
     {
index a384867..1868471 100644 (file)
@@ -30,6 +30,7 @@ int ScilabGateway::newInstance(char * fname, const int envId, void * pvApiCtx)
     char * className = 0;
     int error = 0;
     char * cwd = 0;
+    int nbArgs = Rhs - 1;
 
     if (Rhs == 0)
     {
@@ -101,11 +102,16 @@ int ScilabGateway::newInstance(char * fname, const int envId, void * pvApiCtx)
             delete[] tmpvar;
             throw;
         }
+
+        if (args[i] == VOID_OBJECT)
+        {
+            nbArgs = 0;
+        }
     }
 
     try
     {
-        ret = env.newinstance(idClass, args, Rhs - 1);
+        ret = env.newinstance(idClass, args, nbArgs);
     }
     catch (std::exception & e)
     {
index 4b3251d..25dc3a0 100644 (file)
@@ -58,7 +58,6 @@ sci_gateway/cpp/sci_junwraprem.cpp \
 sci_gateway/cpp/sci_jenableTrace.cpp \
 sci_gateway/cpp/sci_jdisableTrace.cpp \
 sci_gateway/cpp/sci_jdeff.cpp \
-sci_gateway/cpp/sci_jvoid.cpp \
 sci_gateway/cpp/sci_jarray.cpp \
 sci_gateway/cpp/sci_jcast.cpp \
 sci_gateway/cpp/sci_jallowClassReloading.cpp \
index fd18f66..6e61a2b 100644 (file)
@@ -180,7 +180,6 @@ am__objects_3 =  \
        libsciexternal_objects_java_la-sci_jenableTrace.lo \
        libsciexternal_objects_java_la-sci_jdisableTrace.lo \
        libsciexternal_objects_java_la-sci_jdeff.lo \
-       libsciexternal_objects_java_la-sci_jvoid.lo \
        libsciexternal_objects_java_la-sci_jarray.lo \
        libsciexternal_objects_java_la-sci_jcast.lo \
        libsciexternal_objects_java_la-sci_jallowClassReloading.lo \
@@ -608,7 +607,6 @@ sci_gateway/cpp/sci_junwraprem.cpp \
 sci_gateway/cpp/sci_jenableTrace.cpp \
 sci_gateway/cpp/sci_jdisableTrace.cpp \
 sci_gateway/cpp/sci_jdeff.cpp \
-sci_gateway/cpp/sci_jvoid.cpp \
 sci_gateway/cpp/sci_jarray.cpp \
 sci_gateway/cpp/sci_jcast.cpp \
 sci_gateway/cpp/sci_jallowClassReloading.cpp \
@@ -780,7 +778,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsciexternal_objects_java_la-sci_jsetfield.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsciexternal_objects_java_la-sci_junwrap.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsciexternal_objects_java_la-sci_junwraprem.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsciexternal_objects_java_la-sci_jvoid.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsciexternal_objects_java_la-sci_jwrap.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsciexternal_objects_java_la-sci_jwrapinfloat.Plo@am__quote@
 
@@ -1008,13 +1005,6 @@ libsciexternal_objects_java_la-sci_jdeff.lo: sci_gateway/cpp/sci_jdeff.cpp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciexternal_objects_java_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsciexternal_objects_java_la-sci_jdeff.lo `test -f 'sci_gateway/cpp/sci_jdeff.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_jdeff.cpp
 
-libsciexternal_objects_java_la-sci_jvoid.lo: sci_gateway/cpp/sci_jvoid.cpp
-@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciexternal_objects_java_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsciexternal_objects_java_la-sci_jvoid.lo -MD -MP -MF $(DEPDIR)/libsciexternal_objects_java_la-sci_jvoid.Tpo -c -o libsciexternal_objects_java_la-sci_jvoid.lo `test -f 'sci_gateway/cpp/sci_jvoid.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_jvoid.cpp
-@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libsciexternal_objects_java_la-sci_jvoid.Tpo $(DEPDIR)/libsciexternal_objects_java_la-sci_jvoid.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_jvoid.cpp' object='libsciexternal_objects_java_la-sci_jvoid.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciexternal_objects_java_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsciexternal_objects_java_la-sci_jvoid.lo `test -f 'sci_gateway/cpp/sci_jvoid.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_jvoid.cpp
-
 libsciexternal_objects_java_la-sci_jarray.lo: sci_gateway/cpp/sci_jarray.cpp
 @am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciexternal_objects_java_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsciexternal_objects_java_la-sci_jarray.lo -MD -MP -MF $(DEPDIR)/libsciexternal_objects_java_la-sci_jarray.Tpo -c -o libsciexternal_objects_java_la-sci_jarray.lo `test -f 'sci_gateway/cpp/sci_jarray.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_jarray.cpp
 @am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libsciexternal_objects_java_la-sci_jarray.Tpo $(DEPDIR)/libsciexternal_objects_java_la-sci_jarray.Plo
index 9bd2787..cdb5487 100644 (file)
@@ -7,6 +7,7 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
-// TODO : make this '71' more dynamic (with a funptr)
-intppty(71);
-load("SCI/modules/external_objects/macros/lib");
\ No newline at end of file
+// TODO : make this '72' more dynamic (with a funptr)
+intppty(72);
+jvoid = evoid;
+//load("SCI/modules/external_objects_java/macros/lib");
\ No newline at end of file
index 654f4c8..9406dfc 100644 (file)
@@ -32,7 +32,6 @@ EXTERNAL_OBJECTS_JAVA_SCILAB_IMPEXP int sci_junwraprem(char *fname, unsigned lon
 EXTERNAL_OBJECTS_JAVA_SCILAB_IMPEXP int sci_jenableTrace(char *fname, unsigned long fname_len);
 EXTERNAL_OBJECTS_JAVA_SCILAB_IMPEXP int sci_jdisableTrace(char *fname, unsigned long fname_len);
 EXTERNAL_OBJECTS_JAVA_SCILAB_IMPEXP int sci_jdeff(char *fname, unsigned long fname_len);
-EXTERNAL_OBJECTS_JAVA_SCILAB_IMPEXP int sci_jvoid(char *fname, unsigned long fname_len);
 EXTERNAL_OBJECTS_JAVA_SCILAB_IMPEXP int sci_jarray(char *fname, unsigned long fname_len);
 EXTERNAL_OBJECTS_JAVA_SCILAB_IMPEXP int sci_jcast(char *fname, unsigned long fname_len);
 EXTERNAL_OBJECTS_JAVA_SCILAB_IMPEXP int sci_jallowClassReloading(char *fname, unsigned long fname_len);
diff --git a/scilab/modules/external_objects_java/macros/!_deff_wrapper.sci b/scilab/modules/external_objects_java/macros/!_deff_wrapper.sci
deleted file mode 100644 (file)
index d2ed2b4..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-function !_deff_wrapper(name, definition, code)
-    deff(definition, code);
-    execstr(name + "=resume(" + name + ")");
-endfunction
index cbcd94d..24ed36b 100644 (file)
@@ -12,5 +12,5 @@ if (isdef("genlib") == %f) then
     exec(SCI+"/modules/functions/scripts/buildmacros/loadgenlib.sce");
 end
 
-genlib("external_objectslib","SCI/modules/external_objects/macros",%f,%t);
+genlib("external_objectslib","SCI/modules/external_objects_java/macros",%f,%t);
 
index 60ea6f8..d012c2c 100644 (file)
@@ -34,7 +34,6 @@ static gw_generic_table Tab[] =
     {sci_jenableTrace, "jenableTrace"},
     {sci_jdisableTrace, "jdisableTrace"},
     {sci_jdeff, "jdeff"},
-    {sci_jvoid, "jvoid"},
     {sci_jarray, "jarray"},
     {sci_jcast, "jcast"},
     {sci_jallowClassReloading, "jallowClassReloading"},
diff --git a/scilab/modules/external_objects_java/sci_gateway/cpp/sci_jvoid.cpp b/scilab/modules/external_objects_java/sci_gateway/cpp/sci_jvoid.cpp
deleted file mode 100644 (file)
index d39cbfe..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * PIMS ( http://forge.scilab.org/index.php/p/pims ) - This file is part of PIMS
- * Copyright (C) 2012 - Scilab Enterprises - Calixte DENIZET
- * Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
- *
- * This file must be used under the terms of the CeCILL.
- * This source file is licensed as described in the file COPYING, which
- * you should have received as part of this distribution.  The terms
- * are also available at
- * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-#include "ScilabJavaEnvironment.hxx"
-#include "ScilabGateway.hxx"
-
-extern "C" {
-#include "Scierror.h"
-#include "gw_external_objects_java.h"
-}
-
-using namespace org_scilab_modules_external_objects_java;
-using namespace org_modules_external_objects;
-
-int sci_jvoid(char * fname, unsigned long fname_len)
-{
-    try
-    {
-        const int envId = ScilabJavaEnvironment::start();
-        //        return ScilabGateway::void(fname, envId, pvApiCtx);
-    }
-    catch (std::exception & e)
-    {
-        Scierror(999, "%s: An error occured: %s", fname, e.what());
-        return 0;
-    }
-
-    return 0;
-}
index 57563a7..0ad3281 100644 (file)
     <PRIMITIVE gatewayId="72" primitiveId="13" primitiveName="jenableTrace" />
     <PRIMITIVE gatewayId="72" primitiveId="14" primitiveName="jdisableTrace" />
     <PRIMITIVE gatewayId="72" primitiveId="15" primitiveName="jdeff" />
-    <PRIMITIVE gatewayId="72" primitiveId="16" primitiveName="jvoid" />
-    <PRIMITIVE gatewayId="72" primitiveId="17" primitiveName="jarray" />
-    <PRIMITIVE gatewayId="72" primitiveId="18" primitiveName="jcast" />
-    <PRIMITIVE gatewayId="72" primitiveId="19" primitiveName="jallowClassReloading" />
-    <PRIMITIVE gatewayId="72" primitiveId="20" primitiveName="jwrapinfloat" />
-    <PRIMITIVE gatewayId="72" primitiveId="21" primitiveName="jsetfield" />
-    <PRIMITIVE gatewayId="72" primitiveId="22" primitiveName="jautoUnwrap" />
+    <PRIMITIVE gatewayId="72" primitiveId="16" primitiveName="jarray" />
+    <PRIMITIVE gatewayId="72" primitiveId="17" primitiveName="jcast" />
+    <PRIMITIVE gatewayId="72" primitiveId="18" primitiveName="jallowClassReloading" />
+    <PRIMITIVE gatewayId="72" primitiveId="19" primitiveName="jwrapinfloat" />
+    <PRIMITIVE gatewayId="72" primitiveId="20" primitiveName="jsetfield" />
+    <PRIMITIVE gatewayId="72" primitiveId="21" primitiveName="jautoUnwrap" />
 </GATEWAY>