set(JMSG_C_SRC
src/bindings/java/jmsg.c
src/bindings/java/jmsg.h
+ src/bindings/java/jmsg_as.c
+ src/bindings/java/jmsg_as.h
src/bindings/java/jmsg_comm.c
src/bindings/java/jmsg_comm.h
src/bindings/java/jmsg_file.c
)
set(JMSG_JAVA_SRC
+ src/bindings/java/org/simgrid/msg/As.java
src/bindings/java/org/simgrid/msg/Comm.java
src/bindings/java/org/simgrid/msg/File.java
src/bindings/java/org/simgrid/msg/Host.java
* want to send your task, but only the name of this mailbox. */
typedef struct s_smx_rvpoint *msg_mailbox_t;
+/* ******************************** Environment ************************************ */
+typedef struct s_as *msg_as_t;
/* ******************************** Host ************************************ */
XBT_PUBLIC(double) MSG_get_clock(void);
XBT_PUBLIC(unsigned long int) MSG_get_sent_msg(void);
+/************************** Environment ***********************************/
+XBT_PUBLIC(msg_as_t) MSG_environment_get_routing_root(void);
+XBT_PUBLIC(const char *) MSG_environment_as_get_name(msg_as_t as);
+XBT_PUBLIC(xbt_dict_t) MSG_environment_as_get_routing_sons(msg_as_t as);
+XBT_PUBLIC(const char *)MSG_environment_as_get_property_value(msg_as_t as, const char *name);
/************************** File handling ***********************************/
XBT_PUBLIC(double) MSG_file_read(void* ptr, size_t size, size_t nmemb, msg_file_t stream);
#include "jmsg_process.h"
+#include "jmsg_as.h"
+
#include "jmsg_host.h"
#include "jmsg_task.h"
#include "jxbt_utilities.h"
(*env)->ReleaseStringUTFChars(env, jplatformFile, platformFile);
}
+
+JNIEXPORT jobject JNICALL
+Java_org_simgrid_msg_Msg_environmentGetRoutingRoot(JNIEnv * env, jclass cls)
+{
+ msg_as_t as = MSG_environment_get_routing_root();
+ jobject jas = jas_new_instance(env);
+ if (!jas) {
+ jxbt_throw_jni(env, "java As instantiation failed");
+ return NULL;
+ }
+ jas = jas_ref(env, jas);
+ if (!jas) {
+ jxbt_throw_jni(env, "new global ref allocation failed");
+ return NULL;
+ }
+ jas_bind(jas, as, env);
+
+ return (jobject) jas;
+}
+
JNIEXPORT void JNICALL
Java_org_simgrid_msg_Msg_debug(JNIEnv * env, jclass cls, jstring js)
{
JNIEXPORT void JNICALL
Java_org_simgrid_msg_Msg_createEnvironment(JNIEnv * env, jclass cls,
jstring jplatformFile);
+JNIEXPORT jobject JNICALL
+Java_org_simgrid_msg_Msg_environmentGetRoutingRoot(JNIEnv * env, jclass cls);
JNIEXPORT void JNICALL
Java_org_simgrid_msg_Msg_deployApplication(JNIEnv * env, jclass cls,
jstring jdeploymentFile);
MSG_vm_save(vm);
}
JNIEXPORT void JNICALL
-Java_org_simgrid_msg_VM_retore(JNIEnv *env, jobject jvm) {
+Java_org_simgrid_msg_VM_restore(JNIEnv *env, jobject jvm) {
msg_vm_t vm = jvm_get_native(env,jvm);
MSG_vm_restore(vm);
}
JNIEXPORT void JNICALL
Java_org_simgrid_msg_VM_restore(JNIEnv *env, jobject jvm);
+JNIEXPORT jobject JNICALL
+Java_org_simgrid_msg_VM_get_pm(JNIEnv *env, jobject jvm);
#endif
*/
public final static native void createEnvironment(String platformFile);
+ public final static native As environmentGetRoutingRoot();
+
/**
* The method to deploy the simulation.
*
XBT_PUBLIC_DATA(xbt_dynar_t) model_list;
XBT_PUBLIC_DATA(xbt_dynar_t) model_list_invoke;
+/*******************************************/
+/*** SURF Platform *************************/
+/*******************************************/
+typedef struct s_as *AS_t;
+
+XBT_PUBLIC_DATA(AS_t) surf_AS_get_routing_root(void);
+XBT_PUBLIC_DATA(const char *)surf_AS_get_name(AS_t as);
+XBT_PUBLIC_DATA(xbt_dict_t) surf_AS_get_routing_sons(AS_t as);
+
+
/*******************************************/
/*** SURF Globals **************************/
/*******************************************/
__MSG_host_create(xbt_dict_cursor_get_elm(cursor));
}
}
+
+msg_as_t MSG_environment_get_routing_root() {
+ return surf_AS_get_routing_root();
+}
+
+const char *MSG_environment_as_get_name(msg_as_t as) {
+ return surf_AS_get_name(as);
+}
+
+xbt_dict_t MSG_environment_as_get_routing_sons(msg_as_t as) {
+ xbt_dict_t res = surf_AS_get_routing_sons(as);
+ return res;
+}
+
+const char *MSG_environment_as_get_property_value(msg_as_t as, const char *name)
+{
+ xbt_dict_t dict = xbt_lib_get_or_null(as_router_lib, MSG_environment_as_get_name(as), ROUTING_PROP_ASR_LEVEL);
+ return xbt_dict_get_or_null(dict, name);
+}
*/
int __surf_is_absolute_file_path(const char *file_path);
-typedef struct s_as *AS_t;
typedef struct s_routing_edge {
AS_t rc_component;
e_surf_network_element_type_t rc_type;
finalize_rec(routing_platf->root);
xbt_free(routing_platf);
}
+
+AS_t surf_AS_get_routing_root() {
+ return routing_platf->root;
+}
+
+const char *surf_AS_get_name(AS_t as) {
+ return as->name;
+}
+
+xbt_dict_t surf_AS_get_routing_sons(AS_t as) {
+ return as->routing_sons;
+}
+
+