Minecraft Community Edition 0.1.0
Loading...
Searching...
No Matches
CoroutineScheduler.hpp
Go to the documentation of this file.
1#pragma once
2#include <mutex>
3#include <SFML/System/Clock.hpp>
4#include <SFML/System/Time.hpp>
5#include <EASTL/functional.h>
6#include <EASTL/vector.h>
7
12
13namespace mce {
32 public:
39 using Callback = eastl::function<sf::Time()>;
40
44 CoroutineScheduler() = default;
46
53 struct Task {
55 sf::Time interval;
56 sf::Clock clock;
57 };
58
66 void addTask(Callback cb);
67
76 void processTasks();
77 private:
78 std::mutex tasksMutex;
79 eastl::vector<Task> vecTasks;
80
81 sf::Clock clock;
82 };
83}
84
CoroutineScheduler()=default
Default constructor.
void processTasks()
Process all scheduled tasks.
Definition CoroutineScheduler.cpp:20
void addTask(Callback cb)
Add a task to the scheduler.
Definition CoroutineScheduler.cpp:10
eastl::function< sf::Time()> Callback
Callback type invoked by scheduled tasks.
Definition CoroutineScheduler.hpp:39
Represents a single scheduled task.
Definition CoroutineScheduler.hpp:53
sf::Clock clock
Definition CoroutineScheduler.hpp:56
Callback callback
Definition CoroutineScheduler.hpp:54
sf::Time interval
Definition CoroutineScheduler.hpp:55