50 lines
1.2 KiB
C++
50 lines
1.2 KiB
C++
/*
|
|
{{copyright}}
|
|
*/
|
|
|
|
/*
|
|
{{version}}
|
|
*/
|
|
|
|
/*
|
|
{{license}}
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <chrono>
|
|
|
|
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
|