16 #include <nn/pia/common/common_Definitions.h>
17 #include <nn/pia/common/common_ListNode.h>
18 #include <nn/pia/common/common_Time.h>
34 class Job :
public RootObject
77 virtual void Reset(
bool isCheck =
true);
87 void Ready(
bool isBackground =
false);
97 void Resume(
bool isBackground =
false);
116 State GetState()
const;
123 bool IsRunning()
const;
130 bool IsForeground()
const;
136 bool IsBackground()
const;
145 uint32_t GetExecutedCount()
const
147 return m_ExecutedCount;
156 const Time& GetExecutionTime()
const
158 return m_ExecutionTime;
169 void Execute(
bool isBackground);
177 static int32_t GetListNodeOffset()
179 NN_PIA_PRAGMA_PUSH_WARNINGS
180 NN_PIA_DISABLE_WARNING_CLANG_INVALID_OFFSETOF
181 return offsetof(Job, m_ListNode);
182 NN_PIA_PRAGMA_POP_WARNINGS
192 ExecuteState_Continue,
193 ExecuteState_Complete,
195 ExecuteState_Suspend,
197 ExecuteState_WaitNext,
198 ExecuteState_ContinueMain,
199 ExecuteState_ContinueBackground,
202 PIA_COMPILE_ASSERT(ExecuteState_Max < 255);
216 ExecuteResult(ExecuteState executeState)
217 : m_ExecuteState(static_cast<uint8_t>(executeState)), m_WaitTime(0)
219 PIA_ASSERT(executeState >= 0 && executeState < ExecuteState_Max);
227 ExecuteResult(ExecuteState executeState, uint16_t waitTime)
228 : m_ExecuteState(static_cast<uint8_t>(executeState)), m_WaitTime(waitTime)
230 PIA_ASSERT(executeState == ExecuteState_Wait || waitTime == 0);
233 uint8_t m_ExecuteState;
245 virtual ExecuteResult ExecuteCore() = 0;
252 InnerState_FgWaiting,
254 InnerState_FgRunning,
255 InnerState_BgWaiting,
257 InnerState_BgRunning,
269 static const char* GetInnerStateString(InnerState innerState);
273 volatile InnerState m_InnerState;
276 uint32_t m_ExecutedCount;
279 Time m_ExecutionTime;