From 5a748db52be480e865ef76469f90ce7ef8abee26 Mon Sep 17 00:00:00 2001 From: MichalG315 Date: Thu, 16 Oct 2025 17:35:59 +0200 Subject: [PATCH] homework done --- homework/schedule/CMakeLists.txt | 2 +- homework/schedule/schedule.cpp | 16 ++++++++++++++++ homework/schedule/schedule.hpp | 15 +++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 homework/schedule/schedule.cpp create mode 100644 homework/schedule/schedule.hpp diff --git a/homework/schedule/CMakeLists.txt b/homework/schedule/CMakeLists.txt index a50c9e4..440f616 100644 --- a/homework/schedule/CMakeLists.txt +++ b/homework/schedule/CMakeLists.txt @@ -7,7 +7,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) include_directories(.) -add_executable(${PROJECT_NAME} main.cpp) +add_executable(${PROJECT_NAME} main.cpp schedule.cpp schedule.hpp) add_executable(${PROJECT_NAME}-ut tests/catch/catch_amalgamated.cpp tests/catch/catch_main.cpp tests/tests.cpp) add_executable(${PROJECT_NAME}-ut-bonus tests/catch/catch_amalgamated.cpp tests/catch/catch_main.cpp tests/tests-bonus.cpp) diff --git a/homework/schedule/schedule.cpp b/homework/schedule/schedule.cpp new file mode 100644 index 0000000..917dbb6 --- /dev/null +++ b/homework/schedule/schedule.cpp @@ -0,0 +1,16 @@ +#include "schedule.hpp" + +void schedule(std::function func, std::chrono::seconds duration) { + std::this_thread::sleep_for(duration); + func(); +} + +void schedule(std::function func, std::chrono::seconds duration, int value) { + std::this_thread::sleep_for(duration); + func(value); +} + +void schedule(std::function func, std::chrono::seconds duration, std::string str, double value) { + std::this_thread::sleep_for(duration); + func(str, value); +} \ No newline at end of file diff --git a/homework/schedule/schedule.hpp b/homework/schedule/schedule.hpp new file mode 100644 index 0000000..c552b48 --- /dev/null +++ b/homework/schedule/schedule.hpp @@ -0,0 +1,15 @@ +#pragma once +#include +#include +#include +#include + +void schedule(std::function func, std::chrono::seconds duration); +void schedule(std::function func, std::chrono::seconds duration, int value); +void schedule(std::function func, std::chrono::seconds duration, std::string str, double value); + +template +void schedule(Func func, std::chrono::seconds dur, Args... args) { + std::this_thread::sleep_for(dur); + func(args...); +} \ No newline at end of file