/* 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. */
+/* This file implements the public API to platform parsing */
+
#include <simgrid/Exception.hpp>
#include <simgrid/kernel/routing/DijkstraZone.hpp>
#include <simgrid/kernel/routing/DragonflyZone.hpp>
#include <simgrid/s4u/Engine.hpp>
#include <simgrid/s4u/NetZone.hpp>
-#include "simgrid/sg_config.hpp"
#include "src/kernel/EngineImpl.hpp"
#include "src/kernel/resource/DiskImpl.hpp"
#include "src/kernel/resource/HostImpl.hpp"
#include "src/kernel/resource/profile/Profile.hpp"
#include "src/kernel/xml/platf.hpp"
#include "src/kernel/xml/platf_private.hpp"
+#include "src/simgrid/sg_config.hpp"
#include <algorithm>
#include <string>
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(platf_parse);
+/* This function acts as a main in the parsing area. */
+void parse_platform_file(const std::string& file)
+{
+ /* init the flex parser */
+ simgrid_parse_open(file);
+
+ /* Do the actual parsing */
+ simgrid_parse(true);
+
+ simgrid_parse_close();
+}
+
namespace simgrid::kernel::routing {
xbt::signal<void(ClusterCreationArgs const&)> on_cluster_creation;
} // namespace simgrid::kernel::routing
const simgrid::kernel::routing::HostLinkCreationArgs* hostlink,
const simgrid::s4u::Link* backbone)
{
- const auto engine = simgrid::s4u::Engine::get_instance();
- auto netpoint = engine->host_by_name(hostlink->id)->get_netpoint();
+ const auto* engine = simgrid::s4u::Engine::get_instance();
+ auto* netpoint = engine->host_by_name(hostlink->id)->get_netpoint();
xbt_assert(netpoint, "Host '%s' not found!", hostlink->id.c_str());
- const auto linkUp = engine->link_by_name_or_null(hostlink->link_up);
- const auto linkDown = engine->link_by_name_or_null(hostlink->link_down);
+ const auto* linkUp = engine->link_by_name_or_null(hostlink->link_up);
+ const auto* linkDown = engine->link_by_name_or_null(hostlink->link_down);
xbt_assert(linkUp, "Link '%s' not found!", hostlink->link_up.c_str());
xbt_assert(linkDown, "Link '%s' not found!", hostlink->link_down.c_str());