/* {{copyright}} */ /* {{version}} */ /* {{license}} */ #pragma once #include namespace sdi_toolBox::dateTime { //-------------------------------------------------------------- /** * @brief Abstract interface for pause functionality. * * Provides a common interface for implementing pause or delay mechanisms. * Derived classes must implement the wait() method to pause execution * for a specified duration. */ class IPause { public: using Duration = std::chrono::milliseconds; public: ~IPause() = default; // Default destructor IPause(const IPause &obj) = default; // Copy constructor IPause(IPause &&obj) noexcept = default; // Move constructor IPause &operator=(const IPause &obj) = default; // Copy assignment operator IPause &operator=(IPause &&obj) noexcept = default; // Move assignment operator /** * @brief Pause execution for the specified duration. * @param duration Duration of the pause. */ virtual void wait(const Duration &duration) const = 0; protected: IPause() = default; // Default constructor }; //-------------------------------------------------------------- } // namespace sdi_toolBox::dateTime