#pragma once #include "dtcore/inc/dtservicescript.h" #include "dtcore/inc/dtscript.h" namespace dt { class ScriptStatementLeafImpl; class ScriptStatementLeaf : public ScriptStatement { public: DT_CORE_DLL_ENTRY ScriptStatementLeaf(); DT_CORE_DLL_ENTRY ~ScriptStatementLeaf(); DT_CORE_DLL_ENTRY virtual bool InternalUpdate() override; DT_CORE_DLL_ENTRY virtual void SetCompleted() override; DT_CORE_DLL_ENTRY virtual void Skip() override; enum class State { Pending, Synchronize, Initialize, Run, Cleanup, Done }; DT_CORE_DLL_ENTRY const State GetState() const; private: DT_CORE_DLL_ENTRY virtual void InternalTimeout() override; ScriptStatementLeafImpl* m_Impl; }; }