1#pragma once
2
3#include <thread/seadMessageQueue.h>
4#include <thread/seadThread.h>
5
6namespace sead
7{
8template <typename A1, typename A2>
9class IDelegate2;
10
11class DelegateThread : public Thread
12{
13public:
14 DelegateThread(const SafeString& name, IDelegate2<Thread*, MessageQueue::Element>* delegate,
15 Heap* heap, s32 priority, MessageQueue::BlockType block_type,
16 MessageQueue::Element quit_msg, s32 stack_size, s32 message_queue_size);
17 ~DelegateThread() override;
18
19protected:
20 void calc_(MessageQueue::Element msg) override;
21
22 IDelegate2<Thread*, MessageQueue::Element>* mDelegate;
23};
24
25} // namespace sead
26