Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
The JNI interface for the Java ApplicationHandler
authorcherierm <cherierm@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 11 Jul 2008 15:18:24 +0000 (15:18 +0000)
committercherierm <cherierm@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 11 Jul 2008 15:18:24 +0000 (15:18 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@5868 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/java/jmsg_application_handler.c [new file with mode: 0644]
src/java/jmsg_application_handler.h [new file with mode: 0644]

diff --git a/src/java/jmsg_application_handler.c b/src/java/jmsg_application_handler.c
new file mode 100644 (file)
index 0000000..f1e74bd
--- /dev/null
@@ -0,0 +1,105 @@
+#include "jmsg_application_handler.h"\r
+\r
+#include "jmsg.h"\r
+\r
+#include "surf/surfxml_parse.h"\r
+#include "jxbt_utilities.h"\r
+\r
+\r
+\r
+\r
+void\r
+japplication_handler_on_start_document(void)\r
+{\r
+       jclass cls;\r
+       JNIEnv * env = get_current_thread_env();\r
+       \r
+       jmethodID id = jxbt_get_static_smethod(env,"simgrid/msg/ApplicationHandler","onStartDocument", "()V") ;\r
+       \r
+       if(!id || !(cls = jxbt_get_class(env , "simgrid/msg/ApplicationHandler")))\r
+               return;\r
+       \r
+       (*env)->CallStaticVoidMethod(env, cls, id);             \r
+}\r
+\r
+void\r
+japplication_handler_on_end_document(void)\r
+{\r
+       jclass cls;\r
+       JNIEnv * env = get_current_thread_env();\r
+       \r
+       jmethodID id = jxbt_get_static_smethod(env,"simgrid/msg/ApplicationHandler","onEndDocument", "()V") ;\r
+       \r
+       if(!id || !(cls = jxbt_get_class(env , "simgrid/msg/ApplicationHandler")))\r
+               return;\r
+       \r
+       (*env)->CallStaticVoidMethod(env, cls, id);             \r
+}\r
+\r
+void\r
+japplication_handler_on_begin_process(void)\r
+{\r
+       jstring jhostName;\r
+       jstring jfunction;\r
+       jclass cls;\r
+       JNIEnv * env = get_current_thread_env();\r
+       \r
+       jmethodID id = jxbt_get_static_smethod(env,"simgrid/msg/ApplicationHandler","onBeginProcess", "(Ljava/lang/String;Ljava/lang/String;)V") ;\r
+       \r
+       if(!id || !(cls = jxbt_get_class(env , "simgrid/msg/ApplicationHandler")))\r
+               return;\r
+               \r
+       jhostName = (jstring)(*env)->NewStringUTF(env, A_surfxml_process_host);\r
+       jfunction = (jstring)(*env)->NewStringUTF(env, A_surfxml_process_function);\r
+       \r
+       (*env)->CallStaticVoidMethod(env, cls, id, jhostName, jfunction);               \r
+}\r
+\r
+void\r
+japplication_handler_on_process_arg(void)\r
+{\r
+       jstring jarg;\r
+       jclass cls;\r
+       JNIEnv * env = get_current_thread_env();\r
+       \r
+       jmethodID id = jxbt_get_static_smethod(env,"simgrid/msg/ApplicationHandler","onProcessArg", "(Ljava/lang/String;)V") ;\r
+       \r
+       if(!id || !(cls = jxbt_get_class(env , "simgrid/msg/ApplicationHandler")))\r
+               return;\r
+               \r
+       jarg = (jstring)(*env)->NewStringUTF(env, A_surfxml_argument_value);\r
+       \r
+       (*env)->CallStaticVoidMethod(env, cls, id, jarg);               \r
+}\r
+\r
+void\r
+japplication_handler_on_property(void)\r
+{\r
+       jstring jid;\r
+       jstring jvalue;\r
+       jclass cls;\r
+       JNIEnv * env = get_current_thread_env();\r
+       \r
+       jmethodID id = jxbt_get_static_smethod(env,"simgrid/msg/ApplicationHandler","onProperty", "(Ljava/lang/String;Ljava/lang/String;)V") ;\r
+       \r
+       if(!id || !(cls = jxbt_get_class(env , "simgrid/msg/ApplicationHandler")))\r
+               return;\r
+               \r
+       jid = (jstring)(*env)->NewStringUTF(env, A_surfxml_prop_id);\r
+       jvalue = (jstring)(*env)->NewStringUTF(env, A_surfxml_prop_value);\r
+       \r
+       (*env)->CallStaticVoidMethod(env, cls, id, jid, jvalue);                        \r
+}\r
+\r
+void\r
+japplication_handler_on_end_process(void)\r
+{\r
+       JNIEnv * env = get_current_thread_env();\r
+       jclass cls;\r
+       jmethodID id = jxbt_get_static_smethod(env,"simgrid/msg/ApplicationHandler","onEndProcess", "()V") ;\r
+       \r
+       if(!id || !(cls = jxbt_get_class(env , "simgrid/msg/ApplicationHandler")))\r
+               return;\r
+               \r
+       (*env)->CallStaticVoidMethod(env, cls, id);                             \r
+}
\ No newline at end of file
diff --git a/src/java/jmsg_application_handler.h b/src/java/jmsg_application_handler.h
new file mode 100644 (file)
index 0000000..e4ab86c
--- /dev/null
@@ -0,0 +1,38 @@
+/*\r
+ * $Id: jmsg_application_handler.h 3684 2007-07-08 20:51:53Z mquinson $\r
+ *\r
+ * Copyright 2006,2007 Martin Quinson, Malek Cherier All right reserved. \r
+ *\r
+ * This program is free software; you can redistribute it and/or modify it \r
+ * under the terms of the license (GNU LGPL) which comes with this package.\r
+ *\r
+ * This contains the declarations of the functions in relation with the java\r
+ * host instance.\r
+ */\r
\r
+#ifndef MSG_JAPPLICATION_HANDLER_H\r
+#define MSG_JAPPLICATION_HANDLER_H\r
+\r
+#include <jni.h>\r
+#include "msg/msg.h"\r
+\r
+void\r
+japplication_handler_on_start_document(void);\r
+\r
+void\r
+japplication_handler_on_end_document(void);\r
+\r
+void\r
+japplication_handler_on_begin_process(void);\r
+\r
+void\r
+japplication_handler_on_process_arg(void);\r
+\r
+void\r
+japplication_handler_on_property(void);\r
+\r
+void\r
+japplication_handler_on_end_process(void);\r
+\r
+\r
+#endif /* !MSG_JAPPLICATION_HANDLER_H */
\ No newline at end of file