16 #include <nn/pia/common/common_Definitions.h>
18 #include <nn/pia/common/common_RootObject.h>
19 #include <nn/pia/common/common_Job.h>
20 #include <nn/pia/common/common_Trace.h>
30 #define NN_PIA_JOBSTEP(STEP) Step(static_cast<StepMethod>(&STEP), #STEP)
40 class StepSequenceJob :
public nn::pia::common::Job
43 typedef Job::ExecuteResult (StepSequenceJob::*StepMethod)();
49 : m_pStepMethod(NULL), m_pName(NULL)
52 Step(StepMethod pStepMethod,
const char* pName)
53 : m_pStepMethod(pStepMethod), m_pName(pName)
61 const char* GetName(
void)
const
63 return m_pName ? m_pName :
"(no name)";
66 Job::ExecuteResult Execute(StepSequenceJob* pJob)
68 return (pJob->*m_pStepMethod)();
71 bool operator==(
const Step& rhs)
const;
72 bool operator!=(
const Step& rhs)
const
74 return !(*
this == rhs);
77 virtual void Trace(uint64_t flag)
const
79 PIA_TRACE(flag,
"StepSequenceJob::Step::Trace() called. (%s)", GetName());
83 StepMethod m_pStepMethod;
91 StepSequenceJob(
void);
97 virtual ~StepSequenceJob(
void);
100 virtual void Reset(
bool isCheck =
true);
103 void CancelStepSequence()
105 m_IsCancelStepSequence =
true;
108 virtual void CancelCleanup()
120 void SetStep(
const Step& step)
125 void WaitForCompletion(uint32_t sleepTime);
132 void SetTraceFlags(uint64_t flags)
134 m_TraceFlags = flags;
141 uint64_t GetTraceFlags(
void)
const
151 virtual void Trace(uint64_t flag)
const;
155 virtual Job::ExecuteResult ExecuteCore();
158 const Step& GetStep(
void)
const
167 volatile bool m_IsCancelStepSequence;
170 uint64_t m_TraceFlags;