-/* Copyright (c) 2004-2018. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2004-2019. 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 "simgrid/s4u/Engine.hpp"
#include "simgrid/sg_config.hpp"
#include "src/internal_config.h"
+#include "src/simgrid/version.h"
#include "src/surf/HostImpl.hpp"
#include "src/surf/xml/platf.hpp"
#include "surf/surf.hpp"
* Utils *
*********/
-std::vector<simgrid::kernel::resource::Model*>* all_existing_models = nullptr; /* to destroy models correctly */
+std::vector<simgrid::kernel::resource::Model*> all_existing_models; /* to destroy models correctly */
-simgrid::trace_mgr::future_evt_set *future_evt_set = nullptr;
+simgrid::kernel::profile::FutureEvtSet future_evt_set;
std::vector<std::string> surf_path;
-std::vector<simgrid::s4u::Host*> host_that_restart;
/** set of hosts for which one want to be notified if they ever restart. */
std::set<std::string> watched_hosts;
-extern std::map<std::string, simgrid::surf::StorageType*> storage_types;
+extern std::map<std::string, simgrid::kernel::resource::StorageType*> storage_types;
s_surf_model_description_t* surf_plugin_description = nullptr;
XBT_PUBLIC void simgrid_add_plugin_description(const char* name, const char* description, void_f_void_t init_fun)
}
/* returns whether #file_path is a absolute file path. Surprising, isn't it ? */
-static bool is_absolute_file_path(const char* file_path)
+static bool is_absolute_file_path(const std::string& file_path)
{
#ifdef _WIN32
WIN32_FIND_DATA wfd = {0};
- HANDLE hFile = FindFirstFile(file_path, &wfd);
+ HANDLE hFile = FindFirstFile(file_path.c_str(), &wfd);
if (INVALID_HANDLE_VALUE == hFile)
return false;
FindClose(hFile);
return true;
#else
- return (file_path[0] == '/');
+ return (file_path.c_str()[0] == '/');
#endif
}
-std::ifstream* surf_ifsopen(std::string name)
+std::ifstream* surf_ifsopen(const std::string& name)
{
xbt_assert(not name.empty());
std::ifstream* fs = new std::ifstream();
- if (is_absolute_file_path(name.c_str())) { /* don't mess with absolute file names */
+ if (is_absolute_file_path(name)) { /* don't mess with absolute file names */
fs->open(name.c_str(), std::ifstream::in);
}
return fs;
}
-FILE *surf_fopen(const char *name, const char *mode)
+FILE* surf_fopen(const std::string& name, const char* mode)
{
FILE *file = nullptr;
- xbt_assert(name);
-
if (is_absolute_file_path(name)) /* don't mess with absolute file names */
- return fopen(name, mode);
+ return fopen(name.c_str(), mode);
/* search relative files in the path */
for (auto const& path_elm : surf_path) {
printf(" %s: %s\n", table[i].name, table[i].description);
}
-int find_model_description(s_surf_model_description_t* table, std::string name)
+int find_model_description(s_surf_model_description_t* table, const std::string& name)
{
for (int i = 0; table[i].name; i++)
if (name == table[i].name)
abort();
}
if (lib_version_patch != SIMGRID_VERSION_PATCH) {
- if (SIMGRID_VERSION_PATCH >= 90 || lib_version_patch >= 90) {
+ if (SIMGRID_VERSION_PATCH > 89 || lib_version_patch > 89) {
fprintf(
stderr,
"FATAL ERROR: Your program was compiled with SimGrid version %d.%d.%d, "
USER_HOST_LEVEL = simgrid::s4u::Host::extension_create(nullptr);
xbt_init(argc, argv);
- if (not all_existing_models)
- all_existing_models = new std::vector<simgrid::kernel::resource::Model*>();
- if (not future_evt_set)
- future_evt_set = new simgrid::trace_mgr::future_evt_set();
sg_config_init(argc, argv);
{
simgrid::s4u::Engine::shutdown();
for (auto const& e : storage_types) {
- simgrid::surf::StorageType* stype = e.second;
+ simgrid::kernel::resource::StorageType* stype = e.second;
delete stype->properties;
delete stype->model_properties;
delete stype;
}
- for (auto const& model : *all_existing_models)
+ for (auto const& model : all_existing_models)
delete model;
- delete all_existing_models;
- delete future_evt_set;
- future_evt_set = nullptr;
+ xbt_free(surf_plugin_description);
tmgr_finalize();
sg_platf_exit();