NW4F Snd
Loading...
Searching...
No Matches
snd_Task.h
Go to the documentation of this file.
1#ifndef NW_SND_TASK_H_
2#define NW_SND_TASK_H_
3
4#include <nw/ut/ut_LinkList.h>
5#include <nw/ut/os/ut_Event.h>
6
7namespace nw { namespace snd { namespace internal {
8
9class TaskManager;
10
11class Task
12{
13 friend class TaskManager;
14
15public:
24 static_assert(sizeof(Status) == 4);
25
27 virtual ~Task();
28
29 void SetId(u32 id) { m_Id = id; }
30
31 Status GetStatus() const { return m_Status; }
32
33 void Wait() { m_Event.Wait(); }
34 bool TryWait() { return m_Event.TryWait(); }
35
36protected:
37 virtual void Execute() = 0;
38
40
41private:
43
48};
49static_assert(sizeof(Task) == 0x38);
50
51} } } // namespace nw::snd::internal
52
53#endif // NW_SND_TASK_H_
Definition snd_Task.h:12
void SetId(u32 id)
Definition snd_Task.h:29
Status m_Status
Definition snd_Task.h:46
ut::Event m_Event
Definition snd_Task.h:45
bool TryWait()
Definition snd_Task.h:34
u32 m_Id
Definition snd_Task.h:47
void Wait()
Definition snd_Task.h:33
Status
Definition snd_Task.h:17
@ STATUS_EXECUTE
Definition snd_Task.h:20
@ STATUS_APPEND
Definition snd_Task.h:19
@ STATUS_DONE
Definition snd_Task.h:21
@ STATUS_FREE
Definition snd_Task.h:18
@ STATUS_CANCEL
Definition snd_Task.h:22
virtual void Execute()=0
ut::LinkListNode m_TaskLink
Definition snd_Task.h:44
Status GetStatus() const
Definition snd_Task.h:31
void InitializeStatus()
Definition snd_Task.h:39
Definition snd_BasicSound.cpp:3
Definition snd_BasicSound.cpp:3