Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
continue to mess up with simdag
[simgrid.git] / include / simgrid / simdag.h
index cfabc7b..466be70 100644 (file)
@@ -6,6 +6,7 @@
 #ifndef SIMGRID_SIMDAG_H
 #define SIMGRID_SIMDAG_H
 
+#include <simgrid/engine.h>
 #include <simgrid/host.h>
 #include <simgrid/link.h>
 #include <simgrid/version.h>
 
 #ifdef __cplusplus
 #include <set>
+
+namespace simgrid {
+namespace sd {
+class Task;
+XBT_PUBLIC std::set<Task*>* simulate(double how_long);
+} // namespace sd
+} // namespace simgrid
+
+using sg_sd_Task = simgrid::sd::Task;
+#else
+typedef struct sd_Task sg_sd_Task;
 #endif
 
-SG_BEGIN_DECL
+#ifdef __cplusplus
+extern "C" {
+#endif
 
 /** @brief Link opaque datatype
     @ingroup SD_link_api
@@ -34,8 +48,8 @@ typedef sg_link_t SD_link_t;
     Each task has a <em>@ref e_SD_task_state_t "state"</em> indicating whether the task is scheduled, running, done, ...
 
     */
-typedef struct s_SD_task_t* SD_task_t;
-typedef const struct s_SD_task_t* const_SD_task_t;
+typedef sg_sd_Task* SD_task_t;
+typedef const sg_sd_Task* const_SD_task_t;
 
 /** @brief Task states
     @ingroup SD_task_api */
@@ -154,8 +168,6 @@ XBT_PUBLIC void SD_config(const char* key, const char* value);
 XBT_PUBLIC void SD_create_environment(const char* platform_file);
 XBT_PUBLIC void SD_simulate(double how_long);
 XBT_PUBLIC void SD_simulate_with_update(double how_long, xbt_dynar_t changed_tasks_dynar);
-XBT_PUBLIC double SD_get_clock();
-XBT_PUBLIC void SD_exit();
 XBT_PUBLIC xbt_dynar_t SD_daxload(const char* filename);
 XBT_PUBLIC xbt_dynar_t SD_dotload(const char* filename);
 XBT_PUBLIC xbt_dynar_t SD_dotload_with_sched(const char* filename);
@@ -163,6 +175,7 @@ XBT_PUBLIC xbt_dynar_t SD_PTG_dotload(const char* filename);
 /** @} */
 
 /* Support some backward compatibility */
+#define SD_get_clock simgrid_get_clock
 #define SD_workstation_t sg_host_t
 
 #define SD_link_get_name sg_link_get_name
@@ -196,13 +209,7 @@ XBT_PUBLIC xbt_dynar_t SD_PTG_dotload(const char* filename);
 //SD_route_get_size
 //SD_route_get_list
 //TRACE_sd_set_task_category
-SG_END_DECL
-
 #ifdef __cplusplus
-namespace simgrid {
-namespace sd {
-XBT_PUBLIC std::set<SD_task_t>* simulate(double how_long);
-}
 }
 #endif