Commit Graph

57 Commits

Author SHA1 Message Date
Dr. Nicholas J. Kinar
7c7d290792
Update README.md (#37)
In the Examples section, added an expression for every minute and a note providing a comment on the expression formatting.
2024-07-31 10:57:29 +02:00
Tindy X
41f238ceb0
Add default copy assignment operator to data classes (#32) 2023-11-14 08:45:11 +01:00
progheal
0dd9df49d7
Fix task may appear to be triggered more than 1 second late (#27)
* Fix task may appear to be triggered more than 1 second late

* Add comment

Co-authored-by: Per Malmberg <PerMalmberg@users.noreply.github.com>
2022-08-27 09:06:52 +02:00
Per Malmberg
5f8ecc9690
Ci (#28)
* Add CI tests.
2022-08-27 09:00:54 +02:00
Per Malmberg
5c8de082c1
Update README.md (#26) 2021-12-20 08:26:13 +01:00
Peter Jansson
a3b892a24a
Added "convenience scheduling" using @yearly, @annually, @monthly, @weekly, @daily or @hourly. (#24) 2021-12-20 08:16:36 +01:00
Vanilla
d4679b7c3c
[+] CMakeLists.txt: Add install phase. (#23) 2021-11-22 11:07:19 +01:00
Sebastian Haglund
e91a51afc1
Use newer catch2 for Apple M1 support (#18) 2021-08-23 18:36:41 +02:00
Tindy X
b0046755bd
Fix warning: ignoring '#pragma warning ' (#11)
* Fix warning: ignoring '#pragma warning '

* Remove redundant macro test
2020-12-04 11:44:42 +01:00
Per Malmberg
9edb758ca8
Avoid compiler warnings on compilers supporting std::uncaught_exceptions() (#12)
* Avoid compiler warnings on compilers supporting std::uncaught_exceptions()

* Remove test that is depends on the performance of the CPU.
2020-12-04 11:43:18 +01:00
Heinz-Peter Liechtenecker
f3fddf5f19
Improving libcron performance (#9)
Co-authored-by: Heinz-Peter Liechtenecker <h.liechtenecker@fh-kaernten.at>
Co-authored-by: Per Malmberg <PerMalmberg@users.noreply.github.com>
2020-09-26 13:32:54 +02:00
Heinz-Peter Liechtenecker
7ef39558a1
Feature/add executed on time check (#7)
* Initial commit on executed on time feature. A task was executed on time if the function call happened within one second since it expired.

* Adding tests, fixing some errors.

* Using recursirve mutex to allowing to call safely call was_executed_on_time in an Mt-environment

* Changing from boolean expression to get_delay, being even more flexibel

* Cleanup

* Adding dedicated TaskContext

* Changing to Interface-Class Approach

* Renaming to TaskInformation, making it pure virtual

* Removing unnecessary Proxy-Class

* Cleaning up

* Passing a const reference instead of a pointer to avoid nullptr checks in the callback

* Cleaning up add_schedule.

* Adding TaskInformation API to readme.

Co-authored-by: Heinz-Peter Liechtenecker <h.liechtenecker@fh-kaernten.at>
2020-09-10 19:03:50 +02:00
Heinz-Peter Liechtenecker
76da315c13
Adding remove-feature to Cron-Class (#6)
* Adding functions to remove a specific schedule (by the given name) or all scheduled tasks from the Cron class.

* Update libcron/include/libcron/Task.h

Co-authored-by: Per Malmberg <PerMalmberg@users.noreply.github.com>

* Update libcron/include/libcron/Task.h

Co-authored-by: Per Malmberg <PerMalmberg@users.noreply.github.com>

* Update libcron/include/libcron/Cron.h

Co-authored-by: Per Malmberg <PerMalmberg@users.noreply.github.com>

* Update libcron/include/libcron/Cron.h

Co-authored-by: Per Malmberg <PerMalmberg@users.noreply.github.com>

* Update libcron/include/libcron/Cron.h

Co-authored-by: Per Malmberg <PerMalmberg@users.noreply.github.com>

* Adding Multithreading support via template, adding documentation

* Apply suggestions from code review

Co-authored-by: Per Malmberg <PerMalmberg@users.noreply.github.com>

* Finishing suggestions from code-review (renaming elements)

Co-authored-by: Per Malmberg <PerMalmberg@users.noreply.github.com>
2020-09-02 15:57:14 +02:00
Heinz-Peter Liechtenecker
440f5099ba
Use c_encoding function for datatype conversion (#5)
* Use c_encoding function 

The MSVC compiler does not accept direct conversion from weekday datatype (used in the date.h dependency) to unsigned int used in the DayOfWeek Enum. However, the c_encoding function gives the necessary datatype conversion.

* Updated submodule libcron/externals/date

Co-authored-by: Heinz-Peter Liechtenecker <h.liechtenecker@fh-kaernten.at>
2020-06-30 19:07:58 +02:00
PerMalmberg
b82267acca
Merge pull request #3 from PerMalmberg/feature/random-via-textual-names
Implemented support for using textual names in randomization.
2019-05-17 15:27:28 +02:00
Per Malmberg
d61086f69e Implemented support for using textual names in randomization. 2019-05-17 13:39:32 +02:00
Per Malmberg
a918f3d93f #1 - Update output path. 2019-03-18 08:47:22 +01:00
PerMalmberg
bdc5054354
Merge pull request #2 from PerMalmberg/feature/1-add-randomization
Feature/1 add randomization
2019-03-15 15:52:16 +01:00
Per Malmberg
e725abf87f #1 Build on clang. 2019-03-15 11:45:23 +01:00
Per Malmberg
802d8e724e #1 Updated readme, added test cases for examples. 2019-03-15 11:18:10 +01:00
Per Malmberg
18dc065f00 #1 - Code formatting. 2019-03-15 10:18:06 +01:00
Per Malmberg
2a3b8914e5 #1 - Randomization tests green. 2019-03-14 22:29:22 +01:00
Per Malmberg
70f55b8ce6 #1 - Randomization WiP. 2019-03-14 17:09:25 +01:00
Per Malmberg
6ed4bc3b2e #1 Some small code cleanups. 2019-03-13 10:28:29 +01:00
Per Malmberg
c20a146980 #1 - Moved files into new structure for more modern CMake usage. 2019-03-13 10:20:21 +01:00
Per Malmberg
4a4cbd47aa Disable warning in date.h 2019-02-12 09:05:41 +01:00
Per Malmberg
448d01eef0 Updated to date.h v2.4.1 2019-02-11 08:53:59 +01:00
Per Malmberg
a5201b58ce Added negative test case. 2018-06-20 11:18:06 +02:00
Per Malmberg
0436cda4ef Simplified handling of clock changes 2018-05-22 21:45:00 +02:00
Per Malmberg
efeb1e4769 Fixed problem where multiple ticks within the same second causes task to expire multiple times that second. 2018-05-16 16:48:51 +02:00
Per Malmberg
392948cdee Compile on Linux again. 2018-03-25 10:22:33 +02:00
Per Malmberg
c441da4287 Added UTC handling for Windows 2018-03-22 22:38:55 +01:00
Per Malmberg
5395c75061 More tests 2018-03-13 02:41:24 -07:00
Per Malmberg
35a35d99e9 Handles jumps backwards backwards >3h 2018-03-13 02:37:31 -07:00
Per Malmberg
97a0a5a9c2 Handles jumps of >=3h 2018-03-13 01:23:50 -07:00
Per Malmberg
e99b049d2b Work on DST handling. 2018-03-13 00:46:03 +01:00
Per Malmberg
5d60fa7133 Don't move() in returns. 2018-03-12 00:43:44 -07:00
Per Malmberg
47a615897a Initial thought about handling clock changes: Follow RedHat's implementation at https://access.redhat.com/solutions/477963
If time moves >=3h, then consider it a adjustment and reschedule based on the new time.
If time changes backwards <3h, prevent running tasks twice.
If forward <3h run tasks that would have run in the skipped time.
2018-03-12 00:08:20 +01:00
Per Malmberg
9f7c5dc2fa Added LocalClock. 2018-03-11 23:38:12 +01:00
Per Malmberg
582d0c4369 date.h as git submodule. 2018-03-11 20:24:55 +01:00
Per Malmberg
74e1ad4d60 Added the concept of a clock to Cron. 2018-03-11 20:09:06 +01:00
Per Malmberg
be2b4424a1 Added note about UTC. 2018-03-11 19:07:35 +01:00
Per Malmberg
d7c17be4d1 Updated README.
Added tests.
Made use of ? mandatory for DoM/DoW.
2018-03-11 18:45:27 +01:00
Per Malmberg
9d7134c527 clang-tidy 2018-03-11 15:28:51 +01:00
Per Malmberg
d2ec26f494 Moce functionality in main Cron class with added tests. 2018-03-11 15:26:26 +01:00
Per Malmberg
0db05ac71b Functionality in main Cron class. 2018-03-10 23:42:00 +01:00
Per Malmberg
20667ae3c6 More tests.
Fix for february.
Limit iterations in calculate_from.
2018-03-10 21:01:20 +01:00
Per Malmberg
cb6a7958e8 Validation of days vs. months with more tests. 2018-03-10 00:39:04 +01:00
Per Malmberg
f7442f6972 More tests, seems to be working. Still needs to handle non-existent dates. 2018-03-09 23:51:13 +01:00
Per Malmberg
74800b0d5e Test case added. 2018-03-09 08:26:57 -08:00