Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
try to reduce the ugliness of file management
[simgrid.git] / src / s4u / s4u_file.cpp
index bb87435..e63eba2 100644 (file)
@@ -1,32 +1,36 @@
-/* Copyright (c) 2015. The SimGrid Team. All rights reserved.               */
+/* Copyright (c) 2015-2017. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include "xbt/log.h"
+#include "simgrid/simix.h"
 #include "src/msg/msg_private.h"
+#include "xbt/log.h"
 
 #include "simgrid/s4u/Actor.hpp"
-#include "simgrid/s4u/comm.hpp"
-#include "simgrid/s4u/host.hpp"
+#include "simgrid/s4u/Comm.hpp"
+#include "simgrid/s4u/File.hpp"
+#include "simgrid/s4u/Host.hpp"
 #include "simgrid/s4u/Mailbox.hpp"
+#include "simgrid/s4u/Storage.hpp"
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_file,"S4U files");
 
-#include "simgrid/s4u/file.hpp"
-#include "simgrid/s4u/host.hpp"
-#include "simgrid/simix.h"
-
 namespace simgrid {
 namespace s4u {
 
 File::File(const char* fullpath, void* userdata) : path_(fullpath), userdata_(userdata)
 {
   // this cannot fail because we get a xbt_die if the mountpoint does not exist
-  pimpl_ = simcall_file_open(fullpath, Host::current());
+  pimpl_           = simcall_file_open(fullpath, Host::current());
+  xbt_dynar_t info = simcall_file_get_info(pimpl_);
+  storage_type     = xbt_dynar_pop_as(info, char*);
+  storageId        = xbt_dynar_pop_as(info, char*);
+  mount_point      = xbt_dynar_pop_as(info, char*);
 }
 
 File::~File() {
+  //  Host::current()->extension<simgrid::MsgHostExt>()->file_descriptor_table->push_back(desc_id_);
   simcall_file_close(pimpl_, Host::current());
 }