Esempio n. 1
0
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++;
  }
Esempio n. 2
0
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);
  }
Esempio n. 3
0
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);
    }