#ifndef SIMGRID_KERNEL_RESOURCE_RESOURCE_HPP
#define SIMGRID_KERNEL_RESOURCE_RESOURCE_HPP
-#include "src/surf/surf_interface.hpp"
+#include <simgrid/forward.h>
+#include <xbt/signal.hpp>
+#include <xbt/str.h>
+#include <xbt/utility.hpp>
namespace simgrid {
namespace kernel {
* @param event What happened
* @param value [TODO]
*/
- virtual void apply_event(tmgr_trace_event_t event, double value) = 0;
+ virtual void apply_event(TraceEvent* event, double value) = 0;
/** @brief Check if the current Resource is used (if it currently serves an action) */
virtual bool isUsed() = 0;
protected:
struct Metric {
- double peak; /**< The peak of the metric, ie its max value */
- double scale; /**< Current availability of the metric according to the traces, in [0,1] */
- tmgr_trace_event_t event; /**< The associated trace event associated to the metric */
+ double peak; /**< The peak of the metric, ie its max value */
+ double scale; /**< Current availability of the metric according to the traces, in [0,1] */
+ TraceEvent* event; /**< The associated trace event associated to the metric */
};
};
} // namespace resource
-/* Copyright (c) 2013-2017. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2013-2018. 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. */
#ifndef SIMGRID_ROUTING_GENERIC_HPP_
#define SIMGRID_ROUTING_GENERIC_HPP_
-#include "simgrid/kernel/routing/NetZoneImpl.hpp"
+#include <simgrid/kernel/routing/NetZoneImpl.hpp>
namespace simgrid {
namespace kernel {
{
tmgr_trace_event_t trace_iterator = nullptr;
- trace_iterator = new s_tmgr_trace_event_t;
+ trace_iterator = new simgrid::kernel::resource::TraceEvent();
trace_iterator->trace = trace;
trace_iterator->idx = 0;
trace_iterator->resource = resource;
#include <queue>
#include <vector>
-extern "C" {
/* Iterator within a trace */
-struct s_tmgr_trace_event_t {
+namespace simgrid {
+namespace kernel {
+namespace resource {
+class TraceEvent {
+public:
tmgr_trace_t trace;
unsigned int idx;
sg_resource_t resource;
bool free_me;
};
-typedef s_tmgr_trace_event_t* tmgr_trace_event_t;
+
+} // namespace resource
+} // namespace kernel
+} // namespace simgrid
+typedef simgrid::kernel::resource::TraceEvent* tmgr_trace_event_t;
+extern "C" {
/**
* \brief Free a trace event structure