Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
move kernel timers from simix:: to kernel::timer::
[simgrid.git] / src / kernel / timer / Timer.cpp
1 /* Copyright (c) 2021. 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 #include "simgrid/kernel/Timer.hpp"
8
9 namespace simgrid {
10 namespace kernel {
11 namespace timer {
12
13 Timer* Timer::set(double date, xbt::Task<void()>&& callback)
14 {
15   auto* timer    = new Timer(date, std::move(callback));
16   timer->handle_ = kernel_timers().emplace(std::make_pair(date, timer));
17   return timer;
18 }
19
20 /** @brief cancels a timer that was added earlier */
21 void Timer::remove()
22 {
23   kernel_timers().erase(handle_);
24   delete this;
25 }
26
27 } // namespace timer
28 } // namespace kernel
29 } // namespace simgrid