Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] OOPify/C++ify Type
[simgrid.git] / src / mc / mc_forward.h
1 /* Copyright (c) 2007-2014. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5  * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 #ifndef SIMGRID_MC_FORWARD_H
8 #define SIMGRID_MC_FORWARD_H
9
10 #include <xbt/misc.h>
11 #include <mc/datatypes.h>
12
13 #ifdef __cplusplus
14
15 #define MC_OVERRIDE
16
17 namespace simgrid {
18 namespace mc {
19
20 class PageStore;
21 class ModelChecker;
22 class AddressSpace;
23 class Process;
24 class Snapshot;
25 class ObjectInformation;
26 class Type;
27
28 }
29 }
30
31 typedef ::simgrid::mc::ModelChecker s_mc_model_checker_t;
32 typedef ::simgrid::mc::PageStore s_mc_pages_store_t;
33 typedef ::simgrid::mc::AddressSpace s_mc_address_space_t;
34 typedef ::simgrid::mc::Process s_mc_process_t;
35 typedef ::simgrid::mc::Snapshot s_mc_snapshot_t;
36 typedef ::simgrid::mc::ObjectInformation s_mc_object_info_t;
37 typedef ::simgrid::mc::Type s_mc_type_t;
38
39 #else
40
41 typedef struct _s_mc_model_checker s_mc_model_checker_t;
42 typedef struct _s_mc_pages_store s_mc_pages_store_t;
43 typedef struct _s_mc_address_space_t s_mc_address_space_t;
44 typedef struct _s_mc_process_t s_mc_process_t;
45 typedef struct _s_mc_snapshot_t s_mc_snapshot_t;
46 typedef struct _s_mc_object_info_t s_mc_object_info_t;
47 typedef struct _s_mc_type_t s_mc_type_t;
48
49 #endif
50
51 typedef struct s_memory_map s_memory_map_t, *memory_map_t;
52 typedef struct s_dw_variable s_dw_variable_t, *dw_variable_t;
53 typedef struct s_dw_frame s_dw_frame_t, *dw_frame_t;
54
55 typedef s_mc_pages_store_t *mc_pages_store_t;
56 typedef s_mc_model_checker_t *mc_model_checker_t;
57 typedef s_mc_address_space_t *mc_address_space_t;
58 typedef s_mc_process_t *mc_process_t;
59 typedef s_mc_snapshot_t *mc_snapshot_t;
60 typedef s_mc_object_info_t *mc_object_info_t;
61 typedef s_mc_type_t *mc_type_t;
62
63 SG_BEGIN_DECL()
64 extern mc_model_checker_t mc_model_checker;
65 SG_END_DECL()
66
67 #endif