A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[sonar] Declare functions "const" in src/s4u/.
[simgrid.git]
/
include
/
simgrid
/
s4u
/
Engine.hpp
diff --git
a/include/simgrid/s4u/Engine.hpp
b/include/simgrid/s4u/Engine.hpp
index
c35db1d
..
58e0e8f
100644
(file)
--- a/
include/simgrid/s4u/Engine.hpp
+++ b/
include/simgrid/s4u/Engine.hpp
@@
-41,41
+41,43
@@
public:
static void shutdown();
/** Run the simulation after initialization */
static void shutdown();
/** Run the simulation after initialization */
- void run();
+ void run()
const
;
/** @brief Retrieve the simulation time (in seconds) */
static double get_clock();
/** @brief Retrieve the engine singleton */
static s4u::Engine* get_instance();
/** @brief Retrieve the simulation time (in seconds) */
static double get_clock();
/** @brief Retrieve the engine singleton */
static s4u::Engine* get_instance();
- void load_platform(const std::string& platf);
+ void load_platform(const std::string& platf)
const
;
XBT_ATTRIB_DEPRECATED_v330("Please change the return code of your actors to void") void register_function(
const std::string& name, int (*code)(int, char**));
XBT_ATTRIB_DEPRECATED_v330("Please change the return code of your actors to void") void register_function(
const std::string& name, int (*code)(int, char**));
- void register_function(const std::string& name,
void (*code)(int, char**)
);
- void register_function(const std::string& name,
void (*code)(std::vector<std::string>)
);
+ void register_function(const std::string& name,
const std::function<void(int, char**)>& code
);
+ void register_function(const std::string& name,
const std::function<void(std::vector<std::string>)>& code
);
XBT_ATTRIB_DEPRECATED_v330("Please change the return code of your actors to void") void register_default(
int (*code)(int, char**));
XBT_ATTRIB_DEPRECATED_v330("Please change the return code of your actors to void") void register_default(
int (*code)(int, char**));
- void register_default(
void (*code)(int, char**)
);
+ void register_default(
const std::function<void(int, char**)>& code
);
void register_default(const kernel::actor::ActorCodeFactory& factory);
void register_function(const std::string& name, const kernel::actor::ActorCodeFactory& factory);
template <class F> void register_actor(const std::string& name)
{
void register_default(const kernel::actor::ActorCodeFactory& factory);
void register_function(const std::string& name, const kernel::actor::ActorCodeFactory& factory);
template <class F> void register_actor(const std::string& name)
{
-
register_function(name,
[](std::vector<std::string> args) {
+
kernel::actor::ActorCodeFactory code_factory =
[](std::vector<std::string> args) {
return kernel::actor::ActorCode([args] {
F code(std::move(args));
code();
});
return kernel::actor::ActorCode([args] {
F code(std::move(args));
code();
});
- });
+ };
+ register_function(name, std::move(code_factory));
}
template <class F> void register_actor(const std::string& name, F code)
{
}
template <class F> void register_actor(const std::string& name, F code)
{
-
register_function(name,
[code](std::vector<std::string> args) {
+
kernel::actor::ActorCodeFactory code_factory =
[code](std::vector<std::string> args) {
return kernel::actor::ActorCode([code, args] { code(std::move(args)); });
return kernel::actor::ActorCode([code, args] { code(std::move(args)); });
- });
+ };
+ register_function(name, std::move(code_factory));
}
void load_deployment(const std::string& deploy);
}
void load_deployment(const std::string& deploy);
@@
-101,44
+103,44
@@
protected:
public:
/** Returns the amount of hosts existing in the platform. */
public:
/** Returns the amount of hosts existing in the platform. */
- size_t get_host_count();
+ size_t get_host_count()
const
;
/** Returns a vector of all hosts found in the platform.
*
* The order is generally different from the creation/declaration order in the XML platform because we use a hash
* table internally.
*/
/** Returns a vector of all hosts found in the platform.
*
* The order is generally different from the creation/declaration order in the XML platform because we use a hash
* table internally.
*/
- std::vector<Host*> get_all_hosts();
- std::vector<Host*> get_filtered_hosts(const std::function<bool(Host*)>& filter);
- Host* host_by_name(const std::string& name);
- Host* host_by_name_or_null(const std::string& name);
+ std::vector<Host*> get_all_hosts()
const
;
+ std::vector<Host*> get_filtered_hosts(const std::function<bool(Host*)>& filter)
const
;
+ Host* host_by_name(const std::string& name)
const
;
+ Host* host_by_name_or_null(const std::string& name)
const
;
- size_t get_link_count();
- std::vector<Link*> get_all_links();
- std::vector<Link*> get_filtered_links(const std::function<bool(Link*)>& filter);
- Link* link_by_name(const std::string& name);
- Link* link_by_name_or_null(const std::string& name);
+ size_t get_link_count()
const
;
+ std::vector<Link*> get_all_links()
const
;
+ std::vector<Link*> get_filtered_links(const std::function<bool(Link*)>& filter)
const
;
+ Link* link_by_name(const std::string& name)
const
;
+ Link* link_by_name_or_null(const std::string& name)
const
;
- size_t get_actor_count();
- std::vector<ActorPtr> get_all_actors();
- std::vector<ActorPtr> get_filtered_actors(const std::function<bool(ActorPtr)>& filter);
+ size_t get_actor_count()
const
;
+ std::vector<ActorPtr> get_all_actors()
const
;
+ std::vector<ActorPtr> get_filtered_actors(const std::function<bool(ActorPtr)>& filter)
const
;
#ifndef DOXYGEN
#ifndef DOXYGEN
- size_t get_storage_count();
- std::vector<Storage*> get_all_storages();
- Storage* storage_by_name(const std::string& name);
- Storage* storage_by_name_or_null(const std::string& name);
+ size_t get_storage_count()
const
;
+ std::vector<Storage*> get_all_storages()
const
;
+ Storage* storage_by_name(const std::string& name)
const
;
+ Storage* storage_by_name_or_null(const std::string& name)
const
;
#endif
#endif
- std::vector<kernel::routing::NetPoint*> get_all_netpoints();
- kernel::routing::NetPoint* netpoint_by_name_or_null(const std::string& name);
+ std::vector<kernel::routing::NetPoint*> get_all_netpoints()
const
;
+ kernel::routing::NetPoint* netpoint_by_name_or_null(const std::string& name)
const
;
- NetZone* get_netzone_root();
+ NetZone* get_netzone_root()
const
;
void set_netzone_root(const NetZone* netzone);
void set_netzone_root(const NetZone* netzone);
- NetZone* netzone_by_name_or_null(const std::string& name);
+ NetZone* netzone_by_name_or_null(const std::string& name)
const
;
/** @brief Retrieves all netzones of the type indicated by the template argument */
/** @brief Retrieves all netzones of the type indicated by the template argument */
- template <class T> std::vector<T*> get_filtered_netzones()
+ template <class T> std::vector<T*> get_filtered_netzones()
const
{
static_assert(std::is_base_of<kernel::routing::NetZoneImpl, T>::value,
"Filtering netzones is only possible for subclasses of kernel::routing::NetZoneImpl");
{
static_assert(std::is_base_of<kernel::routing::NetZoneImpl, T>::value,
"Filtering netzones is only possible for subclasses of kernel::routing::NetZoneImpl");
@@
-160,6
+162,10
@@
public:
* e->set_config("host/model:ptask_L07");
*/
void set_config(const std::string& str);
* e->set_config("host/model:ptask_L07");
*/
void set_config(const std::string& str);
+ void set_config(const std::string& name, int value);
+ void set_config(const std::string& name, bool value);
+ void set_config(const std::string& name, double value);
+ void set_config(const std::string& name, const std::string& value);
/** Callback fired when the platform is created (ie, the xml file parsed),
* right before the actual simulation starts. */
/** Callback fired when the platform is created (ie, the xml file parsed),
* right before the actual simulation starts. */
@@
-175,7
+181,8
@@
public:
/** Callback fired when the time jumps into the future */
static xbt::signal<void(double)> on_time_advance;
/** Callback fired when the time jumps into the future */
static xbt::signal<void(double)> on_time_advance;
- /** Callback fired when the time cannot advance because of inter-actors deadlock */
+ /** Callback fired when the time cannot advance because of inter-actors deadlock. Note that the on_exit of each actor
+ * is also executed on deadlock. */
static xbt::signal<void(void)> on_deadlock;
private:
static xbt::signal<void(void)> on_deadlock;
private: