-/* Copyright (c) 2006-2020. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2006-2021. The SimGrid Team. All rights reserved. */
/* 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. */
#include <simgrid/chrono.hpp>
#include <xbt/Extendable.hpp>
-#include <xbt/functional.hpp>
#include <xbt/signal.hpp>
#include <xbt/string.hpp>
#include <functional>
-#include <map> // deprecated wrappers
#include <unordered_map>
namespace simgrid {
/** Signal to others that an actor wakes up for a sleep **/
static xbt::signal<void(Actor const&)> on_wake_up;
/** Signal to others that an actor is has been migrated to another host **/
- static xbt::signal<void(Actor const&, Host const& previous_location)> on_host_change;
+ static xbt::signal<void(const Actor&, const Host& previous_location)> on_host_change;
#ifndef DOXYGEN
static xbt::signal<void(Actor const&)> on_migration_start; // XBT_ATTRIB_DEPRECATED_v329
static xbt::signal<void(Actor const&)> on_migration_end; // XBT_ATTRIB_DEPRECATED_v329
* Note that the arguments will be copied, so move-only parameters are forbidden */
template <class F, class... Args,
// This constructor is enabled only if the call code(args...) is valid:
- typename = typename std::result_of<F(Args...)>::type>
+ typename = typename std::result_of_t<F(Args...)>>
static ActorPtr create(const std::string& name, s4u::Host* host, F code, Args... args)
{
return create(name, host, std::bind(std::move(code), std::move(args)...));
/** Sets the time at which that actor should be killed */
void set_kill_time(double time);
/** Retrieves the time at which that actor will be killed (or -1 if not set) */
- double get_kill_time();
+ double get_kill_time() const;
/** @brief Moves the actor to another host
*
* Blocks the calling actor until the joined actor is terminated. If actor alice executes bob.join(), then alice is
* blocked until bob terminates.
*/
- void join();
+ void join() const;
/** Wait for the actor to finish, or for the timeout to elapse.
*
* Blocks the calling actor until the joined actor is terminated. If actor alice executes bob.join(), then alice is
* blocked until bob terminates.
*/
- void join(double timeout);
+ void join(double timeout) const;
/** Kill that actor and restart it from start. */
Actor* restart();