Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] Remove extra extern "C" {}
[simgrid.git] / src / mc / mc_request.h
1 /* Copyright (c) 2007-2015. 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_REQUEST_H
8 #define SIMGRID_MC_REQUEST_H
9
10 #include <xbt/base.h>
11
12 #include "src/simix/smx_private.h"
13
14 namespace simgrid {
15 namespace mc {
16
17 enum class RequestType {
18   simix,
19   executed,
20   internal,
21 };
22
23 XBT_PRIVATE bool request_depend(smx_simcall_t req1, smx_simcall_t req2);
24
25 XBT_PRIVATE char* request_to_string(smx_simcall_t req, int value, simgrid::mc::RequestType type);
26
27 /** Check if the given simcall is visible
28  *
29  *  \return `TRUE` or `FALSE`
30  */
31 XBT_PRIVATE bool request_is_visible(smx_simcall_t req);
32
33 XBT_PRIVATE bool request_is_enabled_by_idx(smx_simcall_t req, unsigned int idx);
34
35 /** Is the process ready to execute its simcall?
36  *
37  *  This is true if the request associated with the process is ready.
38  */
39 XBT_PRIVATE bool process_is_enabled(smx_process_t process);
40
41 XBT_PRIVATE char *request_get_dot_output(smx_simcall_t req, int value);
42
43 }
44 }
45
46 #endif