From b451ddd2d748c6115bb1563015d80ca0230973c1 Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Tue, 12 Aug 2025 21:27:32 -0500 Subject: [PATCH] Feature: Add F_future, F_past, and F_present status groups. I am updating threads and realized that I should probably have a `F_future` status code. Futures are common asynchronous terminology. For completeness, I added `F_past` and `F_preset`. This includes all of the respective "_not" codes. --- level_0/f_status/c/status.h | 6 ++++ level_0/f_status_string/c/status_string.c | 36 ++++++++++++++++++++++ level_0/f_status_string/c/status_string.h | 18 +++++++++++ .../tests/unit/c/test-status_string-to.c | 14 ++++++++- level_1/fl_status_string/c/status_string.c | 36 ++++++++++++++++++++++ .../tests/unit/c/test-status_string-from.c | 14 ++++++++- 6 files changed, 122 insertions(+), 2 deletions(-) diff --git a/level_0/f_status/c/status.h b/level_0/f_status/c/status.h index dba15b6..621e093 100644 --- a/level_0/f_status/c/status.h +++ b/level_0/f_status/c/status.h @@ -502,6 +502,8 @@ extern "C" { F_found_not, F_full, F_full_not, + F_future, + F_future_not, F_group, F_group_not, F_halt, @@ -645,6 +647,8 @@ extern "C" { F_parent_not, F_partial, F_partial_not, + F_past, + F_past_not, F_payload, F_payload_not, F_payload_too_large, @@ -655,6 +659,8 @@ extern "C" { F_pipe_not, F_port, F_port_not, + F_present, + F_present_not, F_previous, F_previous_not, F_process, diff --git a/level_0/f_status_string/c/status_string.c b/level_0/f_status_string/c/status_string.c index c1af845..845fbd1 100644 --- a/level_0/f_status_string/c/status_string.c +++ b/level_0/f_status_string/c/status_string.c @@ -371,6 +371,8 @@ extern "C" { const f_string_static_t f_status_found_not_s = macro_f_string_static_t_initialize_1(F_status_found_not_s, 0, F_status_found_not_s_length); const f_string_static_t f_status_full_s = macro_f_string_static_t_initialize_1(F_status_full_s, 0, F_status_full_s_length); const f_string_static_t f_status_full_not_s = macro_f_string_static_t_initialize_1(F_status_full_not_s, 0, F_status_full_not_s_length); + const f_string_static_t f_status_future_s = macro_f_string_static_t_initialize_1(F_status_future_s, 0, F_status_future_s_length); + const f_string_static_t f_status_future_not_s = macro_f_string_static_t_initialize_1(F_status_future_not_s, 0, F_status_future_not_s_length); const f_string_static_t f_status_group_s = macro_f_string_static_t_initialize_1(F_status_group_s, 0, F_status_group_s_length); const f_string_static_t f_status_group_not_s = macro_f_string_static_t_initialize_1(F_status_group_not_s, 0, F_status_group_not_s_length); const f_string_static_t f_status_halt_s = macro_f_string_static_t_initialize_1(F_status_halt_s, 0, F_status_halt_s_length); @@ -521,6 +523,8 @@ extern "C" { const f_string_static_t f_status_parent_not_s = macro_f_string_static_t_initialize_1(F_status_parent_not_s, 0, F_status_parent_not_s_length); const f_string_static_t f_status_partial_s = macro_f_string_static_t_initialize_1(F_status_partial_s, 0, F_status_partial_s_length); const f_string_static_t f_status_partial_not_s = macro_f_string_static_t_initialize_1(F_status_partial_not_s, 0, F_status_partial_not_s_length); + const f_string_static_t f_status_past_s = macro_f_string_static_t_initialize_1(F_status_past_s, 0, F_status_past_s_length); + const f_string_static_t f_status_past_not_s = macro_f_string_static_t_initialize_1(F_status_past_not_s, 0, F_status_past_not_s_length); const f_string_static_t f_status_payload_s = macro_f_string_static_t_initialize_1(F_status_payload_s, 0, F_status_payload_s_length); const f_string_static_t f_status_payload_not_s = macro_f_string_static_t_initialize_1(F_status_payload_not_s, 0, F_status_payload_not_s_length); const f_string_static_t f_status_payload_too_large_s = macro_f_string_static_t_initialize_1(F_status_payload_too_large_s, 0, F_status_payload_too_large_s_length); @@ -531,6 +535,8 @@ extern "C" { const f_string_static_t f_status_pipe_not_s = macro_f_string_static_t_initialize_1(F_status_pipe_not_s, 0, F_status_pipe_not_s_length); const f_string_static_t f_status_port_s = macro_f_string_static_t_initialize_1(F_status_port_s, 0, F_status_port_s_length); const f_string_static_t f_status_port_not_s = macro_f_string_static_t_initialize_1(F_status_port_not_s, 0, F_status_port_not_s_length); + const f_string_static_t f_status_present_s = macro_f_string_static_t_initialize_1(F_status_present_s, 0, F_status_present_s_length); + const f_string_static_t f_status_present_not_s = macro_f_string_static_t_initialize_1(F_status_present_not_s, 0, F_status_present_not_s_length); const f_string_static_t f_status_previous_s = macro_f_string_static_t_initialize_1(F_status_previous_s, 0, F_status_previous_s_length); const f_string_static_t f_status_previous_not_s = macro_f_string_static_t_initialize_1(F_status_previous_not_s, 0, F_status_previous_not_s_length); const f_string_static_t f_status_process_s = macro_f_string_static_t_initialize_1(F_status_process_s, 0, F_status_process_s_length); @@ -2524,6 +2530,16 @@ extern "C" { break; + case F_future: + *name = f_status_future_s; + + break; + + case F_future_not: + *name = f_status_future_not_s; + + break; + case F_group: *name = f_status_group_s; @@ -3240,6 +3256,16 @@ extern "C" { break; + case F_past: + *name = f_status_past_s; + + break; + + case F_past_not: + *name = f_status_past_not_s; + + break; + case F_payload: *name = f_status_payload_s; @@ -3290,6 +3316,16 @@ extern "C" { break; + case F_present: + *name = f_status_present_s; + + break; + + case F_present_not: + *name = f_status_present_not_s; + + break; + case F_previous: *name = f_status_previous_s; diff --git a/level_0/f_status_string/c/status_string.h b/level_0/f_status_string/c/status_string.h index d8f9b3f..1b4515e 100644 --- a/level_0/f_status_string/c/status_string.h +++ b/level_0/f_status_string/c/status_string.h @@ -530,6 +530,8 @@ extern "C" { #define F_status_found_not_s "F_found_not" #define F_status_full_s "F_full" #define F_status_full_not_s "F_full_not" + #define F_status_future_s "F_future" + #define F_status_future_not_s "F_future_not" #define F_status_group_s "F_group" #define F_status_group_not_s "F_group_not" #define F_status_halt_s "F_halt" @@ -673,6 +675,8 @@ extern "C" { #define F_status_parent_not_s "F_parent_not" #define F_status_partial_s "F_partial" #define F_status_partial_not_s "F_partial_not" + #define F_status_past_s "F_past" + #define F_status_past_not_s "F_past_not" #define F_status_payload_s "F_payload" #define F_status_payload_not_s "F_payload_not" #define F_status_payload_too_large_s "F_payload_too_large" @@ -683,6 +687,8 @@ extern "C" { #define F_status_pipe_not_s "F_pipe_not" #define F_status_port_s "F_port" #define F_status_port_not_s "F_port_not" + #define F_status_present_s "F_present" + #define F_status_present_not_s "F_present_not" #define F_status_previous_s "F_previous" #define F_status_previous_not_s "F_previous_not" #define F_status_process_s "F_process" @@ -1136,6 +1142,8 @@ extern "C" { #define F_status_found_not_s_length 11 #define F_status_full_s_length 6 #define F_status_full_not_s_length 10 + #define F_status_future_s_length 8 + #define F_status_future_not_s_length 12 #define F_status_group_s_length 7 #define F_status_group_not_s_length 11 #define F_status_halt_s_length 6 @@ -1279,6 +1287,8 @@ extern "C" { #define F_status_parent_not_s_length 12 #define F_status_partial_s_length 9 #define F_status_partial_not_s_length 13 + #define F_status_past_s_length 6 + #define F_status_past_not_s_length 10 #define F_status_payload_s_length 9 #define F_status_payload_not_s_length 13 #define F_status_payload_too_large_s_length 19 @@ -1289,6 +1299,8 @@ extern "C" { #define F_status_pipe_not_s_length 10 #define F_status_port_s_length 6 #define F_status_port_not_s_length 10 + #define F_status_present_s_length 9 + #define F_status_present_not_s_length 13 #define F_status_previous_s_length 10 #define F_status_previous_not_s_length 14 #define F_status_process_s_length 9 @@ -1744,6 +1756,8 @@ extern "C" { extern const f_string_static_t f_status_found_not_s; extern const f_string_static_t f_status_full_s; extern const f_string_static_t f_status_full_not_s; + extern const f_string_static_t f_status_future_s; + extern const f_string_static_t f_status_future_not_s; extern const f_string_static_t f_status_group_s; extern const f_string_static_t f_status_group_not_s; extern const f_string_static_t f_status_halt_s; @@ -1887,12 +1901,16 @@ extern "C" { extern const f_string_static_t f_status_parent_not_s; extern const f_string_static_t f_status_partial_s; extern const f_string_static_t f_status_partial_not_s; + extern const f_string_static_t f_status_past_s; + extern const f_string_static_t f_status_past_not_s; extern const f_string_static_t f_status_payload_s; extern const f_string_static_t f_status_payload_not_s; extern const f_string_static_t f_status_payload_too_large_s; extern const f_string_static_t f_status_payload_too_large_not_s; extern const f_string_static_t f_status_payload_too_small_s; extern const f_string_static_t f_status_payload_too_small_not_s; + extern const f_string_static_t f_status_present_s; + extern const f_string_static_t f_status_present_not_s; extern const f_string_static_t f_status_previous_s; extern const f_string_static_t f_status_previous_not_s; extern const f_string_static_t f_status_pipe_s; diff --git a/level_0/f_status_string/tests/unit/c/test-status_string-to.c b/level_0/f_status_string/tests/unit/c/test-status_string-to.c index 70360f7..262e092 100644 --- a/level_0/f_status_string/tests/unit/c/test-status_string-to.c +++ b/level_0/f_status_string/tests/unit/c/test-status_string-to.c @@ -396,6 +396,8 @@ void test__f_status_string_to__works(void **state) { F_found_not, F_full, F_full_not, + F_future, + F_future_not, F_group, F_group_not, F_halt, @@ -539,6 +541,8 @@ void test__f_status_string_to__works(void **state) { F_parent_not, F_partial, F_partial_not, + F_past, + F_past_not, F_payload, F_payload_not, F_payload_too_large, @@ -549,6 +553,8 @@ void test__f_status_string_to__works(void **state) { F_pipe_not, F_port, F_port_not, + F_present, + F_present_not, F_previous, F_previous_not, F_process, @@ -1071,6 +1077,8 @@ void test__f_status_string_to__works(void **state) { f_status_found_not_s, f_status_full_s, f_status_full_not_s, + f_status_future_s, + f_status_future_not_s, f_status_group_s, f_status_group_not_s, f_status_halt_s, @@ -1214,6 +1222,8 @@ void test__f_status_string_to__works(void **state) { f_status_parent_not_s, f_status_partial_s, f_status_partial_not_s, + f_status_past_s, + f_status_past_not_s, f_status_payload_s, f_status_payload_not_s, f_status_payload_too_large_s, @@ -1224,6 +1234,8 @@ void test__f_status_string_to__works(void **state) { f_status_pipe_not_s, f_status_port_s, f_status_port_not_s, + f_status_present_s, + f_status_present_not_s, f_status_previous_s, f_status_previous_not_s, f_status_process_s, @@ -1379,7 +1391,7 @@ void test__f_status_string_to__works(void **state) { f_status_status_code_last_s, }; - for (uint16_t i = 0; i < 668; ++i) { + for (uint16_t i = 0; i < 674; ++i) { f_string_static_t result = f_string_static_t_initialize; diff --git a/level_1/fl_status_string/c/status_string.c b/level_1/fl_status_string/c/status_string.c index 975931a..7fa3476 100644 --- a/level_1/fl_status_string/c/status_string.c +++ b/level_1/fl_status_string/c/status_string.c @@ -2233,6 +2233,18 @@ extern "C" { return F_okay; } + if (f_compare_dynamic(name, f_status_future_s) == F_equal_to) { + *code = F_future; + + return F_okay; + } + + if (f_compare_dynamic(name, f_status_future_not_s) == F_equal_to) { + *code = F_future_not; + + return F_okay; + } + if (f_compare_dynamic(name, f_status_group_s) == F_equal_to) { *code = F_group; @@ -3090,6 +3102,18 @@ extern "C" { return F_okay; } + if (f_compare_dynamic(name, f_status_past_s) == F_equal_to) { + *code = F_past; + + return F_okay; + } + + if (f_compare_dynamic(name, f_status_past_not_s) == F_equal_to) { + *code = F_past_not; + + return F_okay; + } + if (f_compare_dynamic(name, f_status_payload_s) == F_equal_to) { *code = F_payload; @@ -3150,6 +3174,18 @@ extern "C" { return F_okay; } + if (f_compare_dynamic(name, f_status_present_s) == F_equal_to) { + *code = F_present; + + return F_okay; + } + + if (f_compare_dynamic(name, f_status_present_not_s) == F_equal_to) { + *code = F_present_not; + + return F_okay; + } + if (f_compare_dynamic(name, f_status_previous_s) == F_equal_to) { *code = F_previous; diff --git a/level_1/fl_status_string/tests/unit/c/test-status_string-from.c b/level_1/fl_status_string/tests/unit/c/test-status_string-from.c index f8142de..dbaf291 100644 --- a/level_1/fl_status_string/tests/unit/c/test-status_string-from.c +++ b/level_1/fl_status_string/tests/unit/c/test-status_string-from.c @@ -412,6 +412,8 @@ void test__fl_status_string_from__works(void **state) { F_found_not, F_full, F_full_not, + F_future, + F_future_not, F_group, F_group_not, F_halt, @@ -555,6 +557,8 @@ void test__fl_status_string_from__works(void **state) { F_parent_not, F_partial, F_partial_not, + F_past, + F_past_not, F_payload, F_payload_not, F_payload_too_large, @@ -565,6 +569,8 @@ void test__fl_status_string_from__works(void **state) { F_pipe_not, F_port, F_port_not, + F_present, + F_present_not, F_previous, F_previous_not, F_process, @@ -1087,6 +1093,8 @@ void test__fl_status_string_from__works(void **state) { f_status_found_not_s, f_status_full_s, f_status_full_not_s, + f_status_future_s, + f_status_future_not_s, f_status_group_s, f_status_group_not_s, f_status_halt_s, @@ -1230,6 +1238,8 @@ void test__fl_status_string_from__works(void **state) { f_status_parent_not_s, f_status_partial_s, f_status_partial_not_s, + f_status_past_s, + f_status_past_not_s, f_status_payload_s, f_status_payload_not_s, f_status_payload_too_large_s, @@ -1240,6 +1250,8 @@ void test__fl_status_string_from__works(void **state) { f_status_pipe_not_s, f_status_port_s, f_status_port_not_s, + f_status_present_s, + f_status_present_not_s, f_status_previous_s, f_status_previous_not_s, f_status_process_s, @@ -1395,7 +1407,7 @@ void test__fl_status_string_from__works(void **state) { f_status_status_code_last_s, }; - for (uint16_t i = 0; i < 668; ++i) { + for (uint16_t i = 0; i < 674; ++i) { f_status_t result = F_okay; -- 1.8.3.1