#pragma once #include // Forward declarations namespace wfr { namespace enactment { class WepBuilder; } namespace wfs { class ActivityInstance; } // Main namespace namespace wep { class ActivityWepNode : public AbstractWepNode { friend class enactment::WepBuilder; // Mutable properties that need to be accessed via getter-/setter-functions. protected: wfr::wfs::ActivityInstanceStatus lastKnownActivityStatus; // Invariant properties that can be accessed directly. public: wfs::ActivityInstance& activity; public: ActivityWepNode(WepNodeType nodeType, wfs::ActivityInstance& activity) noexcept; virtual void addToVisitationCount(uint64_t val = 1) noexcept override; virtual wfs::ActivityInstanceStatus getLastKnownInstanceStatus() const noexcept { return lastKnownActivityStatus; } virtual void updateInstanceStatus(); }; } /* namespace wep */ } /* namespace wfr */