Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
proper check for the -std=gnu++11 standard, and take in on clang too
[simgrid.git] / src / mc / mc_forward.h
index 267f82c..a3a56e6 100644 (file)
@@ -4,19 +4,27 @@
 /* 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 MC_FORWARD_H
-#define MC_FORWARD_H
-
-#include <mc/datatypes.h>
-#include "mc_interface.h"
-
-typedef struct s_mc_object_info s_mc_object_info_t, *mc_object_info_t;
-typedef struct s_dw_type s_dw_type_t, *dw_type_t;
-typedef struct s_memory_map s_memory_map_t, *memory_map_t;
-typedef struct s_dw_variable s_dw_variable_t, *dw_variable_t;
-typedef struct s_dw_frame s_dw_frame_t, *dw_frame_t;
-typedef struct s_mc_pages_store s_mc_pages_store_t, *mc_pages_store_t;
-typedef struct s_mc_model_checker s_mc_model_checker_t, *mc_model_checker_t;
-extern mc_model_checker_t mc_model_checker;
+/** \file mc_forward.h
+ *
+ *  Define type names for pointers of MC objects for the C code
+ */
+
+#ifndef SIMGRID_MC_FORWARD_H
+#define SIMGRID_MC_FORWARD_H
+
+#ifdef __cplusplus
+
+// If we're in C++, we give the real definition:
+#include "mc_forward.hpp"
+typedef simgrid::mc::Snapshot *mc_snapshot_t;
+typedef simgrid::mc::Type *mc_type_t;
+
+#else
+
+// Otherwise we use dummy opaque structs:
+typedef struct _mc_snapshot_t *mc_snapshot_t;
+typedef struct _s_mc_type_t *mc_type_t;
+
+#endif
 
 #endif