-/* Copyright (c) 2004-2022. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2004-2023. 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 <fstream>
#include <string>
-#ifdef _WIN32
-#include <windows.h>
-#endif
-
XBT_LOG_NEW_CATEGORY(surf, "All SURF categories");
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_kernel, surf, "Logging specific to SURF (kernel)");
{"Full", "Full update of remaining and variables. Slow but may be useful when debugging.", nullptr},
};
-/* returns whether #file_path is an absolute file path. Surprising, isn't it ? */
-static bool is_absolute_file_path(const std::string& file_path)
-{
-#ifdef _WIN32
- WIN32_FIND_DATA wfd = {0};
- HANDLE hFile = FindFirstFile(file_path.c_str(), &wfd);
-
- if (INVALID_HANDLE_VALUE == hFile)
- return false;
-
- FindClose(hFile);
- return true;
-#else
- return (file_path.c_str()[0] == '/');
-#endif
-}
-
-std::ifstream* surf_ifsopen(const std::string& name)
-{
- xbt_assert(not name.empty());
-
- auto* fs = new std::ifstream();
- if (is_absolute_file_path(name)) { /* don't mess with absolute file names */
- fs->open(name.c_str(), std::ifstream::in);
- }
-
- /* search relative files in the path */
- for (auto const& path_elm : surf_path) {
- std::string buff = path_elm + "/" + name;
- fs->open(buff.c_str(), std::ifstream::in);
-
- if (not fs->fail()) {
- XBT_DEBUG("Found file at %s", buff.c_str());
- return fs;
- }
- }
-
- return fs;
-}
-
-FILE* surf_fopen(const std::string& name, const char* mode)
-{
- FILE* file = nullptr;
-
- if (is_absolute_file_path(name)) /* don't mess with absolute file names */
- return fopen(name.c_str(), mode);
-
- /* search relative files in the path */
- for (auto const& path_elm : surf_path) {
- std::string buff = path_elm + "/" + name;
- file = fopen(buff.c_str(), mode);
-
- if (file)
- return file;
- }
- return nullptr;
-}
-
/** Displays the long description of all registered models, and quit */
void model_help(const char* category, const std::vector<surf_model_description_t>& table)
{