1#pragma once
2
3#include "prim/seadDelegate.h"
4#include "prim/seadNamable.h"
5
6namespace sead
7{
8class Job : public INamable
9{
10public:
11 virtual ~Job();
12 virtual void invoke() = 0;
13};
14
15template <typename T>
16class Job0 : public Job
17{
18public:
19 Job0(const Delegate<T>& delegate) : mDelegate(delegate) {}
20 void invoke() override { mDelegate.invoke(); }
21
22protected:
23 Delegate<T> mDelegate;
24};
25} // namespace sead
26