Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
The JNI interface for the Java ApplicationHandler
[simgrid.git] / src / java / jmsg_application_handler.c
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