JNIEXPORT jobjectArray JNICALL Java_org_simgrid_msg_Host_getMountedStorage(JNIEnv * env, jobject jhost) { msg_host_t host = jhost_get_native(env, jhost); jobject jstorage; jstring jname; if (!host) { jxbt_throw_notbound(env, "host", jhost); return 0; } int index = 0; jobjectArray jtable; xbt_dict_t dict = MSG_host_get_mounted_storage_list(host); int count = xbt_dict_length(dict); jclass cls = env->FindClass("org/simgrid/msg/Storage"); jtable = env->NewObjectArray((jsize) count, cls, nullptr); if (!jtable) { jxbt_throw_jni(env, "Storages table allocation failed"); return nullptr; } xbt_dict_cursor_t cursor=nullptr; const char* mount_name; const char* storage_name; xbt_dict_foreach(dict,cursor,mount_name,storage_name) { jname = env->NewStringUTF(storage_name); jstorage = Java_org_simgrid_msg_Storage_getByName(env,cls,jname); env->SetObjectArrayElement(jtable, index, jstorage); index++; }
static int host(int argc, char *argv[]){ const char* host_name = MSG_host_get_name(MSG_host_self()); /* - Display information on the disks mounted by the current host */ XBT_INFO("*** Storage info on %s ***", host_name); xbt_dict_cursor_t cursor = NULL; char* mount_name; char* storage_name; msg_storage_t storage = NULL; /* - Retrieve all mount points of current host */ xbt_dict_t storage_list = MSG_host_get_mounted_storage_list(MSG_host_self()); xbt_dict_foreach(storage_list,cursor,mount_name,storage_name) { /* - For each disk mounted on host: - Retrieve disk's information */ XBT_INFO("Storage name: %s, mount name: %s", storage_name, mount_name); storage = MSG_storage_get_by_name(storage_name); sg_size_t free_size = MSG_storage_get_free_size(storage); sg_size_t used_size = MSG_storage_get_used_size(storage); sg_size_t size = MSG_storage_get_size(storage); XBT_INFO("Total size: %llu bytes", size); XBT_INFO("Free size: %llu bytes", free_size); XBT_INFO("Used size: %llu bytes", used_size); }
void storage_info(msg_host_t host) { const char* host_name = MSG_host_get_name(host); XBT_INFO("*** Storage info on %s ***", host_name); xbt_dict_cursor_t cursor = NULL; char* mount_name; char* storage_name; msg_storage_t storage; xbt_dict_t storage_list = MSG_host_get_mounted_storage_list(MSG_host_self()); xbt_dict_foreach(storage_list,cursor,mount_name,storage_name) { XBT_INFO("\tStorage name: %s, mount name: %s", storage_name, mount_name); storage = MSG_storage_get_by_name(storage_name); sg_size_t free_size = MSG_storage_get_free_size(storage); sg_size_t used_size = MSG_storage_get_used_size(storage); XBT_INFO("\t\tFree size: %llu bytes", free_size); XBT_INFO("\t\tUsed size: %llu bytes", used_size); display_storage_properties(storage); dump_storage_by_name(storage_name); }