Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Move collective algorithms to separate folders
[simgrid.git] / src / mc / mc_request.h
1 /* Copyright (c) 2007-2017. The SimGrid Team. All rights reserved.          */
2
3 /* This program is free software; you can redistribute it and/or modify it
4  * under the terms of the license (GNU LGPL) which comes with this package. */
5
6 #ifndef SIMGRID_MC_REQUEST_H
7 #define SIMGRID_MC_REQUEST_H
8
9 #include <string>
10
11 #include <xbt/base.h>
12
13 #include "src/simix/smx_private.h"
14
15 namespace simgrid {
16 namespace mc {
17
18 enum class RequestType {
19   simix,
20   executed,
21   internal,
22 };
23
24 XBT_PRIVATE bool request_depend(smx_simcall_t req1, smx_simcall_t req2);
25
26 XBT_PRIVATE std::string request_to_string(smx_simcall_t req, int value, simgrid::mc::RequestType type);
27
28 XBT_PRIVATE bool request_is_enabled_by_idx(smx_simcall_t req, unsigned int idx);
29
30 /** Is the process ready to execute its simcall?
31  *
32  *  This is true if the request associated with the process is ready.
33  */
34 XBT_PRIVATE bool actor_is_enabled(smx_actor_t process);
35
36 XBT_PRIVATE std::string request_get_dot_output(smx_simcall_t req, int value);
37
38 }
39 }
40
41 #endif