-/* 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/forward.h"
#include "xbt/sysdep.h"
+
#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;
+ Resource* 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 XBT_PRIVATE simgrid::trace_mgr::future_evt_set future_evt_set;
/**
- * \brief Free a trace event structure
+ * @brief Free a trace event structure
*
* This function frees a trace_event if it can be freed, ie, if it has the free_me flag set to 1.
* This flag indicates whether the structure is still used somewhere or not.
* When the structure is freed, the argument is set to nullptr
-*/
+ */
XBT_PUBLIC void tmgr_trace_event_unref(tmgr_trace_event_t* trace_event);
XBT_PUBLIC void tmgr_finalize();
XBT_PUBLIC tmgr_trace_t tmgr_trace_new_from_file(std::string filename);
XBT_PUBLIC tmgr_trace_t tmgr_trace_new_from_string(std::string id, std::string input, double periodicity);
-}
namespace simgrid {
/** @brief Modeling of the availability profile (due to an external load) or the churn
*
* There is 4 main concepts in this module:
- * - #DatedValue: a pair <timestamp, value> (both are of type double)
- * - #trace: a list of dated values
- * - #trace_event: links a given trace to a given SimGrid resource.
+ * - #simgrid::trace_mgr::DatedValue: a pair <timestamp, value> (both are of type double)
+ * - #simgrid::trace_mgr::trace: a list of dated values
+ * - #simgrid::trace_mgr::trace_event: links a given trace to a given SimGrid resource.
* A Cpu for example has 2 kinds of events: state (ie, is it ON/OFF) and speed,
* while a link has 3 iterators: state, bandwidth and latency.
- * - #future_evt_set: makes it easy to find the next occuring event of all traces
+ * - #simgrid::trace_mgr::future_evt_set: makes it easy to find the next occuring event of all traces
*/
namespace trace_mgr {
class XBT_PUBLIC DatedValue {