fd::timepiece_test_player — A test player for a single timepiece.
// In header: <fd/timepiece_test_player.h> class timepiece_test_player { public: // types typedef void(const schedule_timepoint &, zeitgeber_timepoint_type) callback_signature; typedef std::function< callback_signature > callback_type; // member classes/structs/unions struct parameters { // private static functions template<bool = true> static scheduling_purpose default_purpose() noexcept; // public data members scheduling_purpose purpose; schedule_timepoint now; int nSets; // How many repetitions the player should cycle through [note: these are not cycles]. bool suppress_contiguously_up_or_down; }; struct State { // public member functions bool force_handler_call() const; bool test_limit_reached() const noexcept; // public data members const timepiece_test_player::parameters & params; schedule_timepiece & schedule; const timepiece_test_player::callback_type f; const scheduling_purpose purpose; const int nMaxReps; const int nInitialReps; const bool beganWithinInterval; schedule_timepoint now; }; // public member functions timepiece_test_player(parameters, timepiece_settings, interval_schedule_definition); const schedule_timepiece & get_schedule() const; const parameters & get_parameters() const; void play(callback_type); // private member functions void play_task_execution(callback_type); void play_app_restart(callback_type); void play_app_uptime(callback_type); void play_app_downtime(callback_type); };
timepiece_test_player
public member functionstimepiece_test_player(parameters params, timepiece_settings settings, interval_schedule_definition def);Construct the test player.
Requires: |
Given schedule must be active. |
const schedule_timepiece & get_schedule() const;
const parameters & get_parameters() const;
void play(callback_type f);