X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a279c221114b93985c6aa249e71cc4141082b310..9e74a8baa9c785f592bf0694e43cc3fba79e3f17:/src/msg/msg_io.c diff --git a/src/msg/msg_io.c b/src/msg/msg_io.c index 9a8b5c4076..86c58c99cb 100644 --- a/src/msg/msg_io.c +++ b/src/msg/msg_io.c @@ -100,19 +100,19 @@ sg_size_t MSG_file_read(msg_file_t fd, sg_size_t size) /* Find the host where the file is physically located and read it */ msg_storage_t storage_src =(msg_storage_t) xbt_lib_get_elm_or_null(storage_lib, file_priv->storageId); msg_storage_priv_t storage_priv_src = MSG_storage_priv(storage_src); - msg_host_t remote_host = MSG_get_host_by_name(storage_priv_src->host); - read_size = simcall_file_read(file_priv->simdata->smx_file, size, remote_host); + msg_host_t attached_host = MSG_get_host_by_name(storage_priv_src->hostname); + read_size = simcall_file_read(file_priv->simdata->smx_file, size, attached_host); - if(strcmp(storage_priv_src->host, MSG_host_get_name(MSG_host_self()))){ + if(strcmp(storage_priv_src->hostname, MSG_host_get_name(MSG_host_self()))){ /* the file is hosted on a remote host, initiate a communication between src and dest hosts for data transfer */ - XBT_DEBUG("File is on %s remote host, initiate data transfer of %llu bytes.", storage_priv_src->host, read_size); + XBT_DEBUG("File is on %s remote host, initiate data transfer of %llu bytes.", storage_priv_src->hostname, read_size); msg_host_t *m_host_list = NULL; m_host_list = calloc(2, sizeof(msg_host_t)); m_host_list[0] = MSG_host_self(); - m_host_list[1] = remote_host; + m_host_list[1] = attached_host; double computation_amount[] = { 0, 0 }; - double communication_amount[] = { 0, (double)read_size, 0, 0 }; + double communication_amount[] = { 0, 0, (double)read_size, 0 }; msg_task_t task = MSG_parallel_task_create("file transfer for read", 2, m_host_list, computation_amount, communication_amount, NULL); msg_error_t transfer = MSG_parallel_task_execute(task); @@ -120,7 +120,7 @@ sg_size_t MSG_file_read(msg_file_t fd, sg_size_t size) free(m_host_list); if(transfer != MSG_OK){ if (transfer == MSG_HOST_FAILURE) - XBT_WARN("Transfer error, remote host just turned off!"); + XBT_WARN("Transfer error, %s remote host just turned off!", MSG_host_get_name(attached_host)); if (transfer == MSG_TASK_CANCELED) XBT_WARN("Transfer error, task has been canceled!"); @@ -145,18 +145,18 @@ sg_size_t MSG_file_write(msg_file_t fd, sg_size_t size) /* Find the host where the file is physically located (remote or local)*/ msg_storage_t storage_src =(msg_storage_t) xbt_lib_get_elm_or_null(storage_lib, file_priv->storageId); msg_storage_priv_t storage_priv_src = MSG_storage_priv(storage_src); - msg_host_t remote_host = MSG_get_host_by_name(storage_priv_src->host); + msg_host_t attached_host = MSG_get_host_by_name(storage_priv_src->hostname); - if(strcmp(storage_priv_src->host, MSG_host_get_name(MSG_host_self()))){ + if(strcmp(storage_priv_src->hostname, MSG_host_get_name(MSG_host_self()))){ /* the file is hosted on a remote host, initiate a communication between src and dest hosts for data transfer */ - XBT_DEBUG("File is on %s remote host, initiate data transfer of %llu bytes.", storage_priv_src->host, size); + XBT_DEBUG("File is on %s remote host, initiate data transfer of %llu bytes.", storage_priv_src->hostname, size); msg_host_t *m_host_list = NULL; m_host_list = calloc(2, sizeof(msg_host_t)); m_host_list[0] = MSG_host_self(); - m_host_list[1] = remote_host; + m_host_list[1] = attached_host; double computation_amount[] = { 0, 0 }; - double communication_amount[] = { 0, 0, 0, (double)size }; + double communication_amount[] = { 0, (double)size, 0, 0 }; msg_task_t task = MSG_parallel_task_create("file transfer for write", 2, m_host_list, computation_amount, communication_amount, NULL); msg_error_t transfer = MSG_parallel_task_execute(task); @@ -164,7 +164,7 @@ sg_size_t MSG_file_write(msg_file_t fd, sg_size_t size) free(m_host_list); if(transfer != MSG_OK){ if (transfer == MSG_HOST_FAILURE) - XBT_WARN("Transfer error, remote host just turned off!"); + XBT_WARN("Transfer error, %s remote host just turned off!", MSG_host_get_name(attached_host)); if (transfer == MSG_TASK_CANCELED) XBT_WARN("Transfer error, task has been canceled!"); @@ -172,7 +172,7 @@ sg_size_t MSG_file_write(msg_file_t fd, sg_size_t size) } } /* Write file on local or remote host */ - write_size = simcall_file_write(file_priv->simdata->smx_file, size, remote_host); + write_size = simcall_file_write(file_priv->simdata->smx_file, size, attached_host); return write_size; } @@ -228,7 +228,7 @@ int MSG_file_close(msg_file_t fd) * \param fd is the file descriptor (#msg_file_t) * \return 0 on success or 1 on error */ -int MSG_file_unlink(msg_file_t fd) +msg_error_t MSG_file_unlink(msg_file_t fd) { msg_file_priv_t priv = MSG_file_priv(fd); int res = simcall_file_unlink(priv->simdata->smx_file); @@ -246,30 +246,6 @@ sg_size_t MSG_file_get_size(msg_file_t fd){ return simcall_file_get_size(priv->simdata->smx_file); } -/** \ingroup msg_file_management - * \brief Search for file - * - * \param mount is the mount point where find the file is located - * \param path the file regex to find - * \return a xbt_dict_t of file where key is the name of file and the - * value the msg_stat_t corresponding to the key - */ -xbt_dict_t MSG_file_ls(const char *mount, const char *path) -{ - xbt_assert(path,"You must set path"); - int size = strlen(path); - if(size && path[size-1] != '/') - { - char *new_path = bprintf("%s/",path); - XBT_DEBUG("Change '%s' for '%s'",path,new_path); - xbt_dict_t dict = simcall_file_ls(mount, new_path); - xbt_free(new_path); - return dict; - } - - return simcall_file_ls(mount, path); -} - /** * \ingroup msg_file_management * \brief Set the file position indicator in the msg_file_t by adding offset bytes @@ -341,7 +317,7 @@ msg_error_t MSG_file_rcopy (msg_file_t file, msg_host_t host, const char* fullpa msg_storage_priv_t storage_priv_src = MSG_storage_priv(storage_src); const char *host_name_src, *host_name_dest; - host_name_src = storage_priv_src->host; + host_name_src = storage_priv_src->hostname; /* Find the real host destination where the file will be physically stored */ xbt_dict_cursor_t cursor = NULL; @@ -365,7 +341,7 @@ msg_error_t MSG_file_rcopy (msg_file_t file, msg_host_t host, const char* fullpa if(longest_prefix_length>0){ /* Mount point found, retrieve the host the storage is attached to */ msg_storage_priv_t storage_dest_priv = MSG_storage_priv(storage_dest); - host_name_dest = storage_dest_priv->host; + host_name_dest = storage_dest_priv->hostname; }else{ XBT_WARN("Can't find mount point for '%s' on destination host '%s'", fullpath, SIMIX_host_get_name(host)); @@ -441,7 +417,7 @@ msg_storage_t __MSG_storage_create(smx_storage_t storage) const char *name = SIMIX_storage_get_name(storage); const char *host = SIMIX_storage_get_host(storage); msg_storage_priv_t storage_private = xbt_new0(s_msg_storage_priv_t, 1); - storage_private->host = host; + storage_private->hostname = host; xbt_lib_set(storage_lib,name,MSG_STORAGE_LEVEL,storage_private); return xbt_lib_get_elm_or_null(storage_lib, name); } @@ -588,5 +564,5 @@ sg_size_t MSG_storage_get_size(msg_storage_t storage) const char *MSG_storage_get_host(msg_storage_t storage) { xbt_assert((storage != NULL), "Invalid parameters"); msg_storage_priv_t priv = MSG_storage_priv(storage); - return priv->host; + return priv->hostname; }