From 11ebb642663713a622c5218ba8023a5ae1ddee16 Mon Sep 17 00:00:00 2001 From: mrouffet Date: Sat, 10 Feb 2024 23:26:57 +0000 Subject: [PATCH] [Auto] Deploy Doxygen 0fad0feb49d56795b1f35c9a9827a648e7f205a8 --- .nojekyll | 0 _a_log_stream_8hpp.html | 107 + _a_log_stream_8hpp_source.html | 141 ++ _assert_macro_8hpp_source.html | 178 ++ _channel_name_8hpp_source.html | 123 + _config_8hpp.html | 95 + _config_8hpp_source.html | 101 + _console_color_8hpp.html | 229 ++ _console_color_8hpp_source.html | 185 ++ _console_color_theme_8hpp.html | 105 + _console_color_theme_8hpp_source.html | 142 ++ _console_log_stream_8hpp.html | 106 + _console_log_stream_8hpp_source.html | 129 + _date_time_8hpp.html | 135 + _date_time_8hpp_source.html | 183 ++ _exception_8hpp.html | 116 + _exception_8hpp_source.html | 158 ++ _exception___equals0_8hpp.html | 105 + _exception___equals0_8hpp_source.html | 142 ++ _exception___equals1_8hpp.html | 105 + _exception___equals1_8hpp_source.html | 142 ++ _exception___equals_8hpp.html | 105 + _exception___equals_8hpp_source.html | 162 ++ _exception___is_valid_8hpp.html | 105 + _exception___is_valid_8hpp_source.html | 145 ++ _exception___not_equals0_8hpp.html | 106 + _exception___not_equals0_8hpp_source.html | 133 + _exception___not_equals1_8hpp.html | 106 + _exception___not_equals1_8hpp_source.html | 133 + _exception___not_equals_8hpp.html | 105 + _exception___not_equals_8hpp_source.html | 126 + _exception___nullptr_8hpp.html | 105 + _exception___nullptr_8hpp_source.html | 133 + _exception___out_of_array_range_8hpp.html | 105 + ...tion___out_of_array_range_8hpp_source.html | 156 ++ _exception___out_of_range_8hpp.html | 105 + _exception___out_of_range_8hpp_source.html | 159 ++ _exception___reach_bad_a_p_i_8hpp.html | 107 + _exception___reach_bad_a_p_i_8hpp_source.html | 144 ++ _exception__equals0_tests_8cpp-example.html | 123 + _exception__equals1_tests_8cpp-example.html | 123 + _exception__equals_tests_8cpp-example.html | 110 + _exception__is_valid_tests_8cpp-example.html | 135 + ...ption__not_equals0_tests_8cpp-example.html | 125 + ...ption__not_equals1_tests_8cpp-example.html | 125 + ...eption__not_equals_tests_8cpp-example.html | 110 + _exception__nullptr_tests_8cpp-example.html | 104 + ...out_of_array_range_tests_8cpp-example.html | 159 ++ ...tion__out_of_range_tests_8cpp-example.html | 131 + ...n__reach_bad_a_p_i_tests_8cpp-example.html | 99 + _file_log_stream_8hpp.html | 106 + _file_log_stream_8hpp_source.html | 139 + _file_name_8hpp_source.html | 113 + _function_name_8hpp_source.html | 122 + _log_8hpp.html | 136 + _log_8hpp_source.html | 165 ++ _log_channel_filter_8hpp.html | 105 + _log_channel_filter_8hpp_source.html | 122 + _log_level_8hpp.html | 239 ++ _log_level_8hpp_source.html | 144 ++ _log_macro_8hpp_source.html | 211 ++ _log_r_a_i_i_8hpp_source.html | 132 + _logger_8hpp.html | 123 + _logger_8hpp_source.html | 183 ++ _logger_thread_8hpp.html | 110 + _logger_thread_8hpp_source.html | 163 ++ _string_format_8hpp_source.html | 156 ++ _to_string_8hpp.html | 485 ++++ _to_string_8hpp_source.html | 188 ++ _unparenthese_8hpp_source.html | 112 + annotated.html | 113 + bc_s.png | Bin 0 -> 676 bytes bc_sd.png | Bin 0 -> 635 bytes class_s_a_1_1_a_log_stream-members.html | 98 + class_s_a_1_1_a_log_stream.html | 268 ++ class_s_a_1_1_a_log_stream.png | Bin 0 -> 963 bytes class_s_a_1_1_console_log_stream-members.html | 98 + class_s_a_1_1_console_log_stream.html | 178 ++ class_s_a_1_1_console_log_stream.png | Bin 0 -> 677 bytes class_s_a_1_1_exception-members.html | 103 + class_s_a_1_1_exception.html | 227 ++ class_s_a_1_1_exception.png | Bin 0 -> 4315 bytes class_s_a_1_1_exception___equals-members.html | 106 + class_s_a_1_1_exception___equals.html | 334 +++ class_s_a_1_1_exception___equals.png | Bin 0 -> 1556 bytes ...s_s_a_1_1_exception___equals0-members.html | 107 + class_s_a_1_1_exception___equals0.html | 230 ++ class_s_a_1_1_exception___equals0.png | Bin 0 -> 1157 bytes ...s_s_a_1_1_exception___equals1-members.html | 107 + class_s_a_1_1_exception___equals1.html | 230 ++ class_s_a_1_1_exception___equals1.png | Bin 0 -> 1156 bytes ..._s_a_1_1_exception___is_valid-members.html | 104 + class_s_a_1_1_exception___is_valid.html | 224 ++ class_s_a_1_1_exception___is_valid.png | Bin 0 -> 823 bytes ..._a_1_1_exception___not_equals-members.html | 104 + class_s_a_1_1_exception___not_equals.html | 203 ++ class_s_a_1_1_exception___not_equals.png | Bin 0 -> 1644 bytes ...a_1_1_exception___not_equals0-members.html | 105 + class_s_a_1_1_exception___not_equals0.html | 205 ++ class_s_a_1_1_exception___not_equals0.png | Bin 0 -> 1222 bytes ...a_1_1_exception___not_equals1-members.html | 105 + class_s_a_1_1_exception___not_equals1.html | 205 ++ class_s_a_1_1_exception___not_equals1.png | Bin 0 -> 1227 bytes ...s_s_a_1_1_exception___nullptr-members.html | 104 + class_s_a_1_1_exception___nullptr.html | 212 ++ class_s_a_1_1_exception___nullptr.png | Bin 0 -> 781 bytes ...xception___out_of_array_range-members.html | 109 + ..._a_1_1_exception___out_of_array_range.html | 259 ++ ...s_a_1_1_exception___out_of_array_range.png | Bin 0 -> 1322 bytes ..._1_1_exception___out_of_range-members.html | 108 + class_s_a_1_1_exception___out_of_range.html | 308 +++ class_s_a_1_1_exception___out_of_range.png | Bin 0 -> 1334 bytes ...tion___query_bad_a_p_i_object-members.html | 104 + ..._1_exception___query_bad_a_p_i_object.html | 203 ++ ...1_1_exception___query_bad_a_p_i_object.png | Bin 0 -> 1340 bytes ...1_exception___reach_bad_a_p_i-members.html | 104 + ...s_s_a_1_1_exception___reach_bad_a_p_i.html | 207 ++ class_s_a_1_1_exception___reach_bad_a_p_i.png | Bin 0 -> 1351 bytes class_s_a_1_1_file_log_stream-members.html | 102 + class_s_a_1_1_file_log_stream.html | 319 +++ class_s_a_1_1_file_log_stream.png | Bin 0 -> 607 bytes class_s_a_1_1_log-members.html | 102 + class_s_a_1_1_log.html | 254 ++ class_s_a_1_1_log.png | Bin 0 -> 4323 bytes class_s_a_1_1_log_channel_filter-members.html | 92 + class_s_a_1_1_log_channel_filter.html | 137 + class_s_a_1_1_log_r_a_i_i-members.html | 93 + class_s_a_1_1_log_r_a_i_i.html | 101 + class_s_a_1_1_logger-members.html | 105 + class_s_a_1_1_logger.html | 470 ++++ class_s_a_1_1_logger.png | Bin 0 -> 564 bytes class_s_a_1_1_logger_thread-members.html | 104 + class_s_a_1_1_logger_thread.html | 246 ++ class_s_a_1_1_logger_thread.png | Bin 0 -> 556 bytes classes.html | 108 + clipboard.js | 61 + closed.png | Bin 0 -> 132 bytes cookie.js | 58 + dir_06e8ab06559c1f3880717ed02ded38a5.html | 101 + dir_334e8dcef9eb594a64cbd177ebad972f.html | 100 + dir_44e3ece6b88e5298d391eff2985b9a07.html | 114 + dir_53d8d22392512752130cf4439e7945ef.html | 95 + dir_5e42f1ed0250ef473f569b10c537902f.html | 94 + dir_74c5e88be65fcb978bfca12bd6788eb0.html | 104 + dir_7cdbe1d274c0bbbb0e754cc9743078b6.html | 102 + dir_81f580c597db740fb18c0845cc03bcf9.html | 128 + dir_856524284ebe840938865dc061f982fb.html | 88 + dir_9cc8eabe79b720a03714bc4a9d3c6f45.html | 103 + doc.svg | 12 + docd.svg | 12 + doxygen.css | 2225 +++++++++++++++++ doxygen.svg | 28 + doxygen_crawl.html | 208 ++ dynsections.js | 194 ++ examples.html | 97 + files.html | 131 + folderclosed.svg | 11 + folderclosedd.svg | 11 + folderopen.svg | 17 + folderopend.svg | 12 + functions.html | 235 ++ functions_func.html | 181 ++ functions_vars.html | 171 ++ group___logger.html | 120 + group___logger___console.html | 101 + group___logger___exception.html | 128 + group___logger___file.html | 95 + group___logger___misc.html | 98 + group___logger___stream.html | 103 + hierarchy.html | 112 + index.html | 85 + jquery.js | 34 + menu.js | 134 + menudata.js | 94 + minus.svg | 8 + minusd.svg | 8 + namespace_s_a_1_1_debug.html | 117 + namespacemembers.html | 85 + namespacemembers_vars.html | 85 + namespaces.html | 86 + nav_f.png | Bin 0 -> 153 bytes nav_fd.png | Bin 0 -> 169 bytes nav_g.png | Bin 0 -> 95 bytes nav_h.png | Bin 0 -> 98 bytes nav_hd.png | Bin 0 -> 114 bytes open.png | Bin 0 -> 123 bytes plus.svg | 9 + plusd.svg | 9 + search/all_0.js | 10 + search/all_1.js | 10 + search/all_10.js | 8 + search/all_11.js | 4 + search/all_12.js | 7 + search/all_13.js | 6 + search/all_14.js | 7 + search/all_2.js | 20 + search/all_3.js | 11 + search/all_4.js | 32 + search/all_5.js | 11 + search/all_6.js | 6 + search/all_7.js | 4 + search/all_8.js | 6 + search/all_9.js | 21 + search/all_a.js | 12 + search/all_b.js | 8 + search/all_c.js | 7 + search/all_d.js | 4 + search/all_e.js | 7 + search/all_f.js | 8 + search/classes_0.js | 4 + search/classes_1.js | 4 + search/classes_2.js | 5 + search/classes_3.js | 4 + search/classes_4.js | 16 + search/classes_5.js | 4 + search/classes_6.js | 8 + search/close.svg | 18 + search/enums_0.js | 4 + search/enums_1.js | 4 + search/enumvalues_0.js | 5 + search/enumvalues_1.js | 8 + search/enumvalues_2.js | 5 + search/enumvalues_3.js | 4 + search/enumvalues_4.js | 4 + search/enumvalues_5.js | 5 + search/enumvalues_6.js | 4 + search/enumvalues_7.js | 5 + search/enumvalues_8.js | 6 + search/enumvalues_9.js | 6 + search/enumvalues_a.js | 5 + search/enumvalues_b.js | 5 + search/files_0.js | 4 + search/files_1.js | 7 + search/files_2.js | 4 + search/files_3.js | 15 + search/files_4.js | 4 + search/files_5.js | 8 + search/files_6.js | 4 + search/functions_0.js | 4 + search/functions_1.js | 6 + search/functions_2.js | 6 + search/functions_3.js | 16 + search/functions_4.js | 6 + search/functions_5.js | 4 + search/functions_6.js | 4 + search/functions_7.js | 5 + search/functions_8.js | 4 + search/functions_9.js | 7 + search/functions_a.js | 4 + search/functions_b.js | 4 + search/functions_c.js | 5 + search/functions_d.js | 6 + search/functions_e.js | 4 + search/functions_f.js | 7 + search/groups_0.js | 4 + search/groups_1.js | 4 + search/groups_2.js | 4 + search/groups_3.js | 4 + search/groups_4.js | 4 + search/groups_5.js | 4 + search/mag.svg | 24 + search/mag_d.svg | 24 + search/mag_sel.svg | 31 + search/mag_seld.svg | 31 + search/namespaces_0.js | 4 + search/search.css | 291 +++ search/search.js | 694 +++++ search/searchdata.js | 42 + search/typedefs_0.js | 4 + search/typedefs_1.js | 4 + search/typedefs_2.js | 4 + search/variables_0.js | 5 + search/variables_1.js | 4 + search/variables_2.js | 6 + search/variables_3.js | 6 + search/variables_4.js | 4 + search/variables_5.js | 6 + search/variables_6.js | 4 + search/variables_7.js | 4 + search/variables_8.js | 8 + search/variables_9.js | 9 + search/variables_a.js | 4 + search/variables_b.js | 4 + search/variables_c.js | 4 + search/variables_d.js | 5 + search/variables_e.js | 4 + splitbar.png | Bin 0 -> 314 bytes splitbard.png | Bin 0 -> 282 bytes ...t_s_a_1_1_console_color_theme-members.html | 99 + struct_s_a_1_1_console_color_theme.html | 182 ++ struct_s_a_1_1_date_time-members.html | 107 + struct_s_a_1_1_date_time.html | 460 ++++ ...a_1_1_exception_1_1_base_info-members.html | 97 + struct_s_a_1_1_exception_1_1_base_info.html | 129 + sync_off.png | Bin 0 -> 853 bytes sync_on.png | Bin 0 -> 845 bytes tab_a.png | Bin 0 -> 142 bytes tab_ad.png | Bin 0 -> 135 bytes tab_b.png | Bin 0 -> 169 bytes tab_bd.png | Bin 0 -> 173 bytes tab_h.png | Bin 0 -> 177 bytes tab_hd.png | Bin 0 -> 180 bytes tab_s.png | Bin 0 -> 184 bytes tab_sd.png | Bin 0 -> 188 bytes tabs.css | 1 + topics.html | 94 + 306 files changed, 26077 insertions(+) create mode 100644 .nojekyll create mode 100644 _a_log_stream_8hpp.html create mode 100644 _a_log_stream_8hpp_source.html create mode 100644 _assert_macro_8hpp_source.html create mode 100644 _channel_name_8hpp_source.html create mode 100644 _config_8hpp.html create mode 100644 _config_8hpp_source.html create mode 100644 _console_color_8hpp.html create mode 100644 _console_color_8hpp_source.html create mode 100644 _console_color_theme_8hpp.html create mode 100644 _console_color_theme_8hpp_source.html create mode 100644 _console_log_stream_8hpp.html create mode 100644 _console_log_stream_8hpp_source.html create mode 100644 _date_time_8hpp.html create mode 100644 _date_time_8hpp_source.html create mode 100644 _exception_8hpp.html create mode 100644 _exception_8hpp_source.html create mode 100644 _exception___equals0_8hpp.html create mode 100644 _exception___equals0_8hpp_source.html create mode 100644 _exception___equals1_8hpp.html create mode 100644 _exception___equals1_8hpp_source.html create mode 100644 _exception___equals_8hpp.html create mode 100644 _exception___equals_8hpp_source.html create mode 100644 _exception___is_valid_8hpp.html create mode 100644 _exception___is_valid_8hpp_source.html create mode 100644 _exception___not_equals0_8hpp.html create mode 100644 _exception___not_equals0_8hpp_source.html create mode 100644 _exception___not_equals1_8hpp.html create mode 100644 _exception___not_equals1_8hpp_source.html create mode 100644 _exception___not_equals_8hpp.html create mode 100644 _exception___not_equals_8hpp_source.html create mode 100644 _exception___nullptr_8hpp.html create mode 100644 _exception___nullptr_8hpp_source.html create mode 100644 _exception___out_of_array_range_8hpp.html create mode 100644 _exception___out_of_array_range_8hpp_source.html create mode 100644 _exception___out_of_range_8hpp.html create mode 100644 _exception___out_of_range_8hpp_source.html create mode 100644 _exception___reach_bad_a_p_i_8hpp.html create mode 100644 _exception___reach_bad_a_p_i_8hpp_source.html create mode 100644 _exception__equals0_tests_8cpp-example.html create mode 100644 _exception__equals1_tests_8cpp-example.html create mode 100644 _exception__equals_tests_8cpp-example.html create mode 100644 _exception__is_valid_tests_8cpp-example.html create mode 100644 _exception__not_equals0_tests_8cpp-example.html create mode 100644 _exception__not_equals1_tests_8cpp-example.html create mode 100644 _exception__not_equals_tests_8cpp-example.html create mode 100644 _exception__nullptr_tests_8cpp-example.html create mode 100644 _exception__out_of_array_range_tests_8cpp-example.html create mode 100644 _exception__out_of_range_tests_8cpp-example.html create mode 100644 _exception__reach_bad_a_p_i_tests_8cpp-example.html create mode 100644 _file_log_stream_8hpp.html create mode 100644 _file_log_stream_8hpp_source.html create mode 100644 _file_name_8hpp_source.html create mode 100644 _function_name_8hpp_source.html create mode 100644 _log_8hpp.html create mode 100644 _log_8hpp_source.html create mode 100644 _log_channel_filter_8hpp.html create mode 100644 _log_channel_filter_8hpp_source.html create mode 100644 _log_level_8hpp.html create mode 100644 _log_level_8hpp_source.html create mode 100644 _log_macro_8hpp_source.html create mode 100644 _log_r_a_i_i_8hpp_source.html create mode 100644 _logger_8hpp.html create mode 100644 _logger_8hpp_source.html create mode 100644 _logger_thread_8hpp.html create mode 100644 _logger_thread_8hpp_source.html create mode 100644 _string_format_8hpp_source.html create mode 100644 _to_string_8hpp.html create mode 100644 _to_string_8hpp_source.html create mode 100644 _unparenthese_8hpp_source.html create mode 100644 annotated.html create mode 100644 bc_s.png create mode 100644 bc_sd.png create mode 100644 class_s_a_1_1_a_log_stream-members.html create mode 100644 class_s_a_1_1_a_log_stream.html create mode 100644 class_s_a_1_1_a_log_stream.png create mode 100644 class_s_a_1_1_console_log_stream-members.html create mode 100644 class_s_a_1_1_console_log_stream.html create mode 100644 class_s_a_1_1_console_log_stream.png create mode 100644 class_s_a_1_1_exception-members.html create mode 100644 class_s_a_1_1_exception.html create mode 100644 class_s_a_1_1_exception.png create mode 100644 class_s_a_1_1_exception___equals-members.html create mode 100644 class_s_a_1_1_exception___equals.html create mode 100644 class_s_a_1_1_exception___equals.png create mode 100644 class_s_a_1_1_exception___equals0-members.html create mode 100644 class_s_a_1_1_exception___equals0.html create mode 100644 class_s_a_1_1_exception___equals0.png create mode 100644 class_s_a_1_1_exception___equals1-members.html create mode 100644 class_s_a_1_1_exception___equals1.html create mode 100644 class_s_a_1_1_exception___equals1.png create mode 100644 class_s_a_1_1_exception___is_valid-members.html create mode 100644 class_s_a_1_1_exception___is_valid.html create mode 100644 class_s_a_1_1_exception___is_valid.png create mode 100644 class_s_a_1_1_exception___not_equals-members.html create mode 100644 class_s_a_1_1_exception___not_equals.html create mode 100644 class_s_a_1_1_exception___not_equals.png create mode 100644 class_s_a_1_1_exception___not_equals0-members.html create mode 100644 class_s_a_1_1_exception___not_equals0.html create mode 100644 class_s_a_1_1_exception___not_equals0.png create mode 100644 class_s_a_1_1_exception___not_equals1-members.html create mode 100644 class_s_a_1_1_exception___not_equals1.html create mode 100644 class_s_a_1_1_exception___not_equals1.png create mode 100644 class_s_a_1_1_exception___nullptr-members.html create mode 100644 class_s_a_1_1_exception___nullptr.html create mode 100644 class_s_a_1_1_exception___nullptr.png create mode 100644 class_s_a_1_1_exception___out_of_array_range-members.html create mode 100644 class_s_a_1_1_exception___out_of_array_range.html create mode 100644 class_s_a_1_1_exception___out_of_array_range.png create mode 100644 class_s_a_1_1_exception___out_of_range-members.html create mode 100644 class_s_a_1_1_exception___out_of_range.html create mode 100644 class_s_a_1_1_exception___out_of_range.png create mode 100644 class_s_a_1_1_exception___query_bad_a_p_i_object-members.html create mode 100644 class_s_a_1_1_exception___query_bad_a_p_i_object.html create mode 100644 class_s_a_1_1_exception___query_bad_a_p_i_object.png create mode 100644 class_s_a_1_1_exception___reach_bad_a_p_i-members.html create mode 100644 class_s_a_1_1_exception___reach_bad_a_p_i.html create mode 100644 class_s_a_1_1_exception___reach_bad_a_p_i.png create mode 100644 class_s_a_1_1_file_log_stream-members.html create mode 100644 class_s_a_1_1_file_log_stream.html create mode 100644 class_s_a_1_1_file_log_stream.png create mode 100644 class_s_a_1_1_log-members.html create mode 100644 class_s_a_1_1_log.html create mode 100644 class_s_a_1_1_log.png create mode 100644 class_s_a_1_1_log_channel_filter-members.html create mode 100644 class_s_a_1_1_log_channel_filter.html create mode 100644 class_s_a_1_1_log_r_a_i_i-members.html create mode 100644 class_s_a_1_1_log_r_a_i_i.html create mode 100644 class_s_a_1_1_logger-members.html create mode 100644 class_s_a_1_1_logger.html create mode 100644 class_s_a_1_1_logger.png create mode 100644 class_s_a_1_1_logger_thread-members.html create mode 100644 class_s_a_1_1_logger_thread.html create mode 100644 class_s_a_1_1_logger_thread.png create mode 100644 classes.html create mode 100644 clipboard.js create mode 100644 closed.png create mode 100644 cookie.js create mode 100644 dir_06e8ab06559c1f3880717ed02ded38a5.html create mode 100644 dir_334e8dcef9eb594a64cbd177ebad972f.html create mode 100644 dir_44e3ece6b88e5298d391eff2985b9a07.html create mode 100644 dir_53d8d22392512752130cf4439e7945ef.html create mode 100644 dir_5e42f1ed0250ef473f569b10c537902f.html create mode 100644 dir_74c5e88be65fcb978bfca12bd6788eb0.html create mode 100644 dir_7cdbe1d274c0bbbb0e754cc9743078b6.html create mode 100644 dir_81f580c597db740fb18c0845cc03bcf9.html create mode 100644 dir_856524284ebe840938865dc061f982fb.html create mode 100644 dir_9cc8eabe79b720a03714bc4a9d3c6f45.html create mode 100644 doc.svg create mode 100644 docd.svg create mode 100644 doxygen.css create mode 100644 doxygen.svg create mode 100644 doxygen_crawl.html create mode 100644 dynsections.js create mode 100644 examples.html create mode 100644 files.html create mode 100644 folderclosed.svg create mode 100644 folderclosedd.svg create mode 100644 folderopen.svg create mode 100644 folderopend.svg create mode 100644 functions.html create mode 100644 functions_func.html create mode 100644 functions_vars.html create mode 100644 group___logger.html create mode 100644 group___logger___console.html create mode 100644 group___logger___exception.html create mode 100644 group___logger___file.html create mode 100644 group___logger___misc.html create mode 100644 group___logger___stream.html create mode 100644 hierarchy.html create mode 100644 index.html create mode 100644 jquery.js create mode 100644 menu.js create mode 100644 menudata.js create mode 100644 minus.svg create mode 100644 minusd.svg create mode 100644 namespace_s_a_1_1_debug.html create mode 100644 namespacemembers.html create mode 100644 namespacemembers_vars.html create mode 100644 namespaces.html create mode 100644 nav_f.png create mode 100644 nav_fd.png create mode 100644 nav_g.png create mode 100644 nav_h.png create mode 100644 nav_hd.png create mode 100644 open.png create mode 100644 plus.svg create mode 100644 plusd.svg create mode 100644 search/all_0.js create mode 100644 search/all_1.js create mode 100644 search/all_10.js create mode 100644 search/all_11.js create mode 100644 search/all_12.js create mode 100644 search/all_13.js create mode 100644 search/all_14.js create mode 100644 search/all_2.js create mode 100644 search/all_3.js create mode 100644 search/all_4.js create mode 100644 search/all_5.js create mode 100644 search/all_6.js create mode 100644 search/all_7.js create mode 100644 search/all_8.js create mode 100644 search/all_9.js create mode 100644 search/all_a.js create mode 100644 search/all_b.js create mode 100644 search/all_c.js create mode 100644 search/all_d.js create mode 100644 search/all_e.js create mode 100644 search/all_f.js create mode 100644 search/classes_0.js create mode 100644 search/classes_1.js create mode 100644 search/classes_2.js create mode 100644 search/classes_3.js create mode 100644 search/classes_4.js create mode 100644 search/classes_5.js create mode 100644 search/classes_6.js create mode 100644 search/close.svg create mode 100644 search/enums_0.js create mode 100644 search/enums_1.js create mode 100644 search/enumvalues_0.js create mode 100644 search/enumvalues_1.js create mode 100644 search/enumvalues_2.js create mode 100644 search/enumvalues_3.js create mode 100644 search/enumvalues_4.js create mode 100644 search/enumvalues_5.js create mode 100644 search/enumvalues_6.js create mode 100644 search/enumvalues_7.js create mode 100644 search/enumvalues_8.js create mode 100644 search/enumvalues_9.js create mode 100644 search/enumvalues_a.js create mode 100644 search/enumvalues_b.js create mode 100644 search/files_0.js create mode 100644 search/files_1.js create mode 100644 search/files_2.js create mode 100644 search/files_3.js create mode 100644 search/files_4.js create mode 100644 search/files_5.js create mode 100644 search/files_6.js create mode 100644 search/functions_0.js create mode 100644 search/functions_1.js create mode 100644 search/functions_2.js create mode 100644 search/functions_3.js create mode 100644 search/functions_4.js create mode 100644 search/functions_5.js create mode 100644 search/functions_6.js create mode 100644 search/functions_7.js create mode 100644 search/functions_8.js create mode 100644 search/functions_9.js create mode 100644 search/functions_a.js create mode 100644 search/functions_b.js create mode 100644 search/functions_c.js create mode 100644 search/functions_d.js create mode 100644 search/functions_e.js create mode 100644 search/functions_f.js create mode 100644 search/groups_0.js create mode 100644 search/groups_1.js create mode 100644 search/groups_2.js create mode 100644 search/groups_3.js create mode 100644 search/groups_4.js create mode 100644 search/groups_5.js create mode 100644 search/mag.svg create mode 100644 search/mag_d.svg create mode 100644 search/mag_sel.svg create mode 100644 search/mag_seld.svg create mode 100644 search/namespaces_0.js create mode 100644 search/search.css create mode 100644 search/search.js create mode 100644 search/searchdata.js create mode 100644 search/typedefs_0.js create mode 100644 search/typedefs_1.js create mode 100644 search/typedefs_2.js create mode 100644 search/variables_0.js create mode 100644 search/variables_1.js create mode 100644 search/variables_2.js create mode 100644 search/variables_3.js create mode 100644 search/variables_4.js create mode 100644 search/variables_5.js create mode 100644 search/variables_6.js create mode 100644 search/variables_7.js create mode 100644 search/variables_8.js create mode 100644 search/variables_9.js create mode 100644 search/variables_a.js create mode 100644 search/variables_b.js create mode 100644 search/variables_c.js create mode 100644 search/variables_d.js create mode 100644 search/variables_e.js create mode 100644 splitbar.png create mode 100644 splitbard.png create mode 100644 struct_s_a_1_1_console_color_theme-members.html create mode 100644 struct_s_a_1_1_console_color_theme.html create mode 100644 struct_s_a_1_1_date_time-members.html create mode 100644 struct_s_a_1_1_date_time.html create mode 100644 struct_s_a_1_1_exception_1_1_base_info-members.html create mode 100644 struct_s_a_1_1_exception_1_1_base_info.html create mode 100644 sync_off.png create mode 100644 sync_on.png create mode 100644 tab_a.png create mode 100644 tab_ad.png create mode 100644 tab_b.png create mode 100644 tab_bd.png create mode 100644 tab_h.png create mode 100644 tab_hd.png create mode 100644 tab_s.png create mode 100644 tab_sd.png create mode 100644 tabs.css create mode 100644 topics.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/_a_log_stream_8hpp.html b/_a_log_stream_8hpp.html new file mode 100644 index 0000000..cc10f53 --- /dev/null +++ b/_a_log_stream_8hpp.html @@ -0,0 +1,107 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Streams/ALogStream.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ALogStream.hpp File Reference
+
+
+ +

Log base stream implementation. +More...

+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  SA::ALogStream
 Abstract log stream class. More...
 
+

Detailed Description

+

Log base stream implementation.

+

Stream used by Logger.

+
+ + + + diff --git a/_a_log_stream_8hpp_source.html b/_a_log_stream_8hpp_source.html new file mode 100644 index 0000000..abb2bab --- /dev/null +++ b/_a_log_stream_8hpp_source.html @@ -0,0 +1,141 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Streams/ALogStream.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ALogStream.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_ALOG_STREAM_GUARD
+
6#define SAPPHIRE_LOGGER_ALOG_STREAM_GUARD
+
7
+ + +
10
+
23namespace SA
+
24{
+
+ +
27 {
+
28 protected:
+
34 virtual void Output(const Log& _log) = 0;
+
35
+
36 public:
+ +
39
+
41 uint8_t levelFlags = LogLevel::Default;
+
42
+
44 virtual ~ALogStream() = default;
+
45
+
52 void ProcessLog(const Log& _log, bool _bForce = false);
+
53
+
57 virtual void Flush();
+
58
+
66 ALogStream& operator<<(const Log& _log);
+
67 };
+
+
68}
+
69
+
70
+
73#endif // GUARD
+
Log type implementation.
+
Channel filter implementation.
+
Abstract log stream class.
Definition ALogStream.hpp:27
+
virtual ~ALogStream()=default
Default virtual destructor.
+
virtual void Output(const Log &_log)=0
Output a log in stream.
+
ALogStream & operator<<(const Log &_log)
Output log operator.
+
void ProcessLog(const Log &_log, bool _bForce=false)
Process a log to output in stream.
+
LogChannelFilter channelFilter
Channel filter used for log in stream.
Definition ALogStream.hpp:38
+
virtual void Flush()
Force the stream to flush.
+
uint8_t levelFlags
Level filter used for log in stream.
Definition ALogStream.hpp:41
+
Definition LogChannelFilter.hpp:31
+
Log type implementation.
Definition Log.hpp:25
+
+ + + + diff --git a/_assert_macro_8hpp_source.html b/_assert_macro_8hpp_source.html new file mode 100644 index 0000000..b34949d --- /dev/null +++ b/_assert_macro_8hpp_source.html @@ -0,0 +1,178 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Preprocessors/AssertMacro.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
AssertMacro.hpp
+
+
+
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_ASSERT_MACRO_GUARD
+
6#define SAPPHIRE_LOGGER_ASSERT_MACRO_GUARD
+
7
+
8#include <SA/Logger/Preprocessors/LogMacro.hpp>
+
9
+
10namespace SA
+
11{
+
12//{ Callback
+
13
+
15
+
16 #define __SA_ASSERT(_exc)\
+
17 if (SA::Debug::logger)\
+
18 SA::Debug::logger->Assert(std::move(_exc));\
+
19 else if (SA::Debug::logCB)\
+
20 SA::Debug::logCB(_exc);\
+
21 else\
+
22 std::cerr << "Try logging with invalid logger instance or callback! Initialize SA::Debug::logger or SA::Debug::logCB." << std::endl;
+
23
+
25
+
26//}
+
27
+
29
+
30 #define __SA_CREATE_EXCEPTION_TYPE(_chan, _dets, _type, ...) __SA_CREATE_EXCEPTION_##_type(\
+
31 (SA::Exception::BaseInfo{\
+
32 __SA_FILE_NAME,\
+
33 __LINE__,\
+
34 __SA_FUNC_NAME,\
+
35 __SA_CHAN_NAME(_chan),\
+
36 _dets,\
+
37 __SA_LOG_FRAME_NUM\
+
38 }),\
+
39 ##__VA_ARGS__\
+
40 )
+
41
+
42 #define __SA_CREATE_EXCEPTION(_type_params, _chan, _dets)\
+
43 __SA_EVAL_PASTE(__SA_CREATE_, EXCEPTION_TYPE(_chan, _dets, __SA_UNPARENT(_type_params)))
+
44
+
45
+
46 #define __SA_SELECT_ASSERT_MACRO(_1, _2, _3, _name, ...) _name
+
47
+
48 #define __SA_ASSERT3(_type_params, _chan, _dets){\
+
49 auto exc = __SA_CREATE_EXCEPTION(_type_params, _chan, SA::StringFormat(__SA_UNPARENT(_dets)));\
+
50 __SA_ASSERT(exc);\
+
51 if(exc.level == SA::LogLevel::AssertFailure) throw exc;\
+
52 }
+
53 #define __SA_ASSERT2(_type_params, _chan) __SA_ASSERT3(_type_params, _chan, L"")
+
54 #define __SA_ASSERT1(_type_params) __SA_ASSERT2(_type_params, Default)
+
55
+
56
+
57 #define __SA_THROW3(_type_params, _chan, _dets){\
+
58 auto exc = __SA_CREATE_EXCEPTION(_type_params, _chan, SA::StringFormat(__SA_UNPARENT(_dets)));\
+
59 __SA_ASSERT(exc);\
+
60 throw exc;\
+
61 }
+
62 #define __SA_THROW2(_type_params, _chan) __SA_THROW3(_type_params, _chan, L"")
+
63 #define __SA_THROW1(_type_params) __SA_THROW2(_type_params, Default)
+
64
+
66
+
67#if defined(DOXYGEN)
+
68
+
81 #define SA_THROW((_type, _params...), _chan, _dets)
+
82
+
95 #define SA_ASSERT((_type, _params...), _chan, _dets)
+
96
+
97#elif SA_DEBUG || SA_LOG_RELEASE_OPT
+
98
+
99 #define SA_THROW(...){ __SA_SELECT_ASSERT_MACRO(__VA_ARGS__, __SA_THROW3, __SA_THROW2, __SA_THROW1)(__VA_ARGS__) }
+
100
+
101 #define SA_ASSERT(...) { __SA_SELECT_ASSERT_MACRO(__VA_ARGS__, __SA_ASSERT3, __SA_ASSERT2, __SA_ASSERT1)(__VA_ARGS__) }
+
102
+
103#else
+
104
+
105 #define SA_THROW(...) {}
+
106
+
107 #define SA_ASSERT(...) {}
+
108
+
109#endif
+
110
+
111}
+
112
+
113#endif // GUARD
+
+ + + + diff --git a/_channel_name_8hpp_source.html b/_channel_name_8hpp_source.html new file mode 100644 index 0000000..5eec87b --- /dev/null +++ b/_channel_name_8hpp_source.html @@ -0,0 +1,123 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Preprocessors/ChannelName.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ChannelName.hpp
+
+
+
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_CHANNEL_NAME_GUARD
+
6#define SAPPHIRE_LOGGER_CHANNEL_NAME_GUARD
+
7
+
8#include <string>
+
9#include <algorithm>
+
10
+
11#include <SA/Support/Stringify.hpp>
+
12
+
13namespace SA
+
14{
+
16
+
17 namespace Intl
+
18 {
+
26 inline std::wstring RemoveSpaces(std::wstring _str) noexcept
+
27 {
+
28 _str.erase(std::remove_if(_str.begin(), _str.end(), isspace), _str.end());
+
29
+
30 return _str;
+
31 }
+
32 }
+
33
+
34 #define __SA_CHAN_NAME(_chan) SA::Intl::RemoveSpaces(SA_WSTR(_chan))
+
35
+
37}
+
38
+
39#endif // GUARD
+
+ + + + diff --git a/_config_8hpp.html b/_config_8hpp.html new file mode 100644 index 0000000..4e29d11 --- /dev/null +++ b/_config_8hpp.html @@ -0,0 +1,95 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Config.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Config.hpp File Reference
+
+
+ +

Logger specific config file. +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Logger specific config file.

+
+ + + + diff --git a/_config_8hpp_source.html b/_config_8hpp_source.html new file mode 100644 index 0000000..565d594 --- /dev/null +++ b/_config_8hpp_source.html @@ -0,0 +1,101 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Config.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Config.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_CONFIG_GUARD
+
6#define SAPPHIRE_LOGGER_CONFIG_GUARD
+
7
+
59#endif // GUARD
+
+ + + + diff --git a/_console_color_8hpp.html b/_console_color_8hpp.html new file mode 100644 index 0000000..81633ec --- /dev/null +++ b/_console_color_8hpp.html @@ -0,0 +1,229 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Streams/Console/ConsoleColor.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ConsoleColor.hpp File Reference
+
+
+ +

Console Color enum implementation. +More...

+
#include <cstdint>
+
+

Go to the source code of this file.

+ + + + + +

+Typedefs

+using SA::CslColor = ConsoleColor
 Shortcut alias.
 
+ + + + +

+Enumerations

enum  SA::ConsoleColor : uint8_t {
+  SA::None_FG = 0 +, SA::Red_FG = 1 +, SA::Green_FG = 2 +, SA::Blue_FG = 3 +,
+  SA::Cyan_FG = 4 +, SA::Magenta_FG = 5 +, SA::Yellow_FG = 6 +, SA::Black_FG = 7 +,
+  SA::Bright_FG = 8 +, SA::None_BG = 0 << 4 +, SA::Red_BG = 1 << 4 +, SA::Green_BG = 2 << 4 +,
+  SA::Blue_BG = 3 << 4 +, SA::Cyan_BG = 4 << 4 +, SA::Magenta_BG = 5 << 4 +, SA::Yellow_BG = 6 << 4 +,
+  SA::White_BG = 7 << 4 +, SA::Bright_BG = 8 << 4 +, SA::Reset = None_FG | None_BG +
+ }
 Console Color enum. More...
 
+ + + + +

+Functions

void SA::SetConsoleColor (ConsoleColor _cslColor)
 Crossplatform implementation of set color in console.
 
+

Detailed Description

+

Console Color enum implementation.

+

Enumeration Type Documentation

+ +

◆ ConsoleColor

+ +
+
+ + + + +
enum SA::ConsoleColor : uint8_t
+
+ +

Console Color enum.

+

Bright BG bit BG Color bits Bright FG bit FG Color bits 0 000 0 000

+ + + + + + + + + + + + + + + + + + + + +
Enumerator
None_FG 

Default foreground.

+
Red_FG 

Red foreground.

+
Green_FG 

Green foreground.

+
Blue_FG 

Blue foreground.

+
Cyan_FG 

Cyan foreground.

+
Magenta_FG 

Magenta foreground.

+
Yellow_FG 

Yellow foreground.

+
Black_FG 

Black foreground.

+
Bright_FG 

1 bit for bright attribute.

+
None_BG 

Default background.

+
Red_BG 

Red background.

+
Green_BG 

Green background.

+
Blue_BG 

Blue background.

+
Cyan_BG 

Cyan background.

+
Magenta_BG 

Magenta background.

+
Yellow_BG 

Yellow background.

+
White_BG 

White background.

+
Bright_BG 

1 bit for Bright attribute.

+
Reset 

Reset console color value.

+
+ +
+
+

Function Documentation

+ +

◆ SetConsoleColor()

+ +
+
+ + + + + + + +
void SA::SetConsoleColor (ConsoleColor _cslColor)
+
+ +

Crossplatform implementation of set color in console.

+
Parameters
+ + +
[in]_cslColorConsole color mask.
+
+
+ +
+
+
+ + + + diff --git a/_console_color_8hpp_source.html b/_console_color_8hpp_source.html new file mode 100644 index 0000000..e17ac77 --- /dev/null +++ b/_console_color_8hpp_source.html @@ -0,0 +1,185 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Streams/Console/ConsoleColor.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ConsoleColor.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_CONSOLE_COLOR_GUARD
+
6#define SAPPHIRE_LOGGER_CONSOLE_COLOR_GUARD
+
7
+
8#include <cstdint>
+
9
+
19namespace SA
+
20{
+
+
27 enum ConsoleColor : uint8_t
+
28 {
+
29 // 4 bits for foreground attributes.
+
30
+
31 // 3 bits for foreground color (text).
+
32
+ +
35
+
37 Red_FG = 1,
+
38
+ +
41
+ +
44
+ +
47
+ +
50
+ +
53
+ +
56
+
57
+ +
60
+
61
+
62 // 4 bits for background attributes.
+
63
+
64 // 3 bits for background color.
+
65
+
67 None_BG = 0 << 4,
+
68
+
70 Red_BG = 1 << 4,
+
71
+
73 Green_BG = 2 << 4,
+
74
+
76 Blue_BG = 3 << 4,
+
77
+
79 Cyan_BG = 4 << 4,
+
80
+
82 Magenta_BG = 5 << 4,
+
83
+
85 Yellow_BG = 6 << 4,
+
86
+
88 White_BG = 7 << 4,
+
89
+
90
+
92 Bright_BG = 8 << 4,
+
93
+ +
96 };
+
+
97
+ +
100
+ +
107}
+
108
+
111#endif // GUARD
+
void SetConsoleColor(ConsoleColor _cslColor)
Crossplatform implementation of set color in console.
+
ConsoleColor
Console Color enum.
Definition ConsoleColor.hpp:28
+
@ Red_FG
Red foreground.
Definition ConsoleColor.hpp:37
+
@ Bright_FG
1 bit for bright attribute.
Definition ConsoleColor.hpp:59
+
@ White_BG
White background.
Definition ConsoleColor.hpp:88
+
@ Cyan_BG
Cyan background.
Definition ConsoleColor.hpp:79
+
@ Yellow_FG
Yellow foreground.
Definition ConsoleColor.hpp:52
+
@ None_BG
Default background.
Definition ConsoleColor.hpp:67
+
@ Blue_BG
Blue background.
Definition ConsoleColor.hpp:76
+
@ Cyan_FG
Cyan foreground.
Definition ConsoleColor.hpp:46
+
@ Yellow_BG
Yellow background.
Definition ConsoleColor.hpp:85
+
@ Green_FG
Green foreground.
Definition ConsoleColor.hpp:40
+
@ Reset
Reset console color value.
Definition ConsoleColor.hpp:95
+
@ Bright_BG
1 bit for Bright attribute.
Definition ConsoleColor.hpp:92
+
@ Red_BG
Red background.
Definition ConsoleColor.hpp:70
+
@ Magenta_FG
Magenta foreground.
Definition ConsoleColor.hpp:49
+
@ None_FG
Default foreground.
Definition ConsoleColor.hpp:34
+
@ Blue_FG
Blue foreground.
Definition ConsoleColor.hpp:43
+
@ Magenta_BG
Magenta background.
Definition ConsoleColor.hpp:82
+
@ Black_FG
Black foreground.
Definition ConsoleColor.hpp:55
+
@ Green_BG
Green background.
Definition ConsoleColor.hpp:73
+
+ + + + diff --git a/_console_color_theme_8hpp.html b/_console_color_theme_8hpp.html new file mode 100644 index 0000000..3a676e6 --- /dev/null +++ b/_console_color_theme_8hpp.html @@ -0,0 +1,105 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Streams/Console/ConsoleColorTheme.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ConsoleColorTheme.hpp File Reference
+
+
+ +

Define color theme by LogLevel. +More...

+ +

Go to the source code of this file.

+ + + + +

+Classes

struct  SA::ConsoleColorTheme
 
+

Detailed Description

+

Define color theme by LogLevel.

+
+ + + + diff --git a/_console_color_theme_8hpp_source.html b/_console_color_theme_8hpp_source.html new file mode 100644 index 0000000..10adddf --- /dev/null +++ b/_console_color_theme_8hpp_source.html @@ -0,0 +1,142 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Streams/Console/ConsoleColorTheme.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ConsoleColorTheme.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_CONSOLE_COLOR_THEME_GUARD
+
6#define SAPPHIRE_LOGGER_CONSOLE_COLOR_THEME_GUARD
+
7
+ + +
10
+
20namespace SA
+
21{
+
+ +
26 {
+
28 uint8_t normal = CslColor::Bright_FG;
+
29
+
31 uint8_t info = CslColor::Blue_FG | CslColor::Bright_FG;
+
32
+
34 uint8_t warning = CslColor::Yellow_FG;
+
35
+
37 uint8_t error = CslColor::Red_FG | CslColor::Bright_FG;
+
38
+
40 uint8_t assertSuccess = CslColor::Green_FG | CslColor::Bright_FG;
+
41
+
43 uint8_t assertFailure = CslColor::Magenta_FG | CslColor::Bright_FG;
+
44
+
45
+
51 const uint8_t* Data() const;
+
52
+ +
59 };
+
+
60}
+
61
+
62
+
65#endif // GUARD
+
Console Color enum implementation.
+
Log level enum implementation.
+
LogLevel
All levels of logging.
Definition LogLevel.hpp:25
+
Definition ConsoleColorTheme.hpp:26
+
uint8_t error
Error level color.
Definition ConsoleColorTheme.hpp:37
+
uint8_t info
Info level color.
Definition ConsoleColorTheme.hpp:31
+
void SetConsoleColorFromLevel(LogLevel _lvl) const
Set console color from log level using theme.
+
uint8_t assertSuccess
Assert Success level color.
Definition ConsoleColorTheme.hpp:40
+
const uint8_t * Data() const
convert theme to data type.
+
uint8_t normal
Normal level color.
Definition ConsoleColorTheme.hpp:28
+
uint8_t warning
Warning level color.
Definition ConsoleColorTheme.hpp:34
+
uint8_t assertFailure
Assert Failure level color.
Definition ConsoleColorTheme.hpp:43
+
+ + + + diff --git a/_console_log_stream_8hpp.html b/_console_log_stream_8hpp.html new file mode 100644 index 0000000..dd38b2f --- /dev/null +++ b/_console_log_stream_8hpp.html @@ -0,0 +1,106 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Streams/Console/ConsoleLogStream.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ConsoleLogStream.hpp File Reference
+
+
+ +

Log console stream type implementation. +More...

+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  SA::ConsoleLogStream
 Console log stream implementation. More...
 
+

Detailed Description

+

Log console stream type implementation.

+
+ + + + diff --git a/_console_log_stream_8hpp_source.html b/_console_log_stream_8hpp_source.html new file mode 100644 index 0000000..6157118 --- /dev/null +++ b/_console_log_stream_8hpp_source.html @@ -0,0 +1,129 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Streams/Console/ConsoleLogStream.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ConsoleLogStream.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_CONSOLE_LOG_STREAM_GUARD
+
6#define SAPPHIRE_LOGGER_CONSOLE_LOG_STREAM_GUARD
+
7
+ + +
10
+
21namespace SA
+
22{
+
+ +
25 {
+
26 void Output(const Log& _log) override final;
+
27
+
28 public:
+ +
31
+
32
+
33 void Flush() override final;
+
34 };
+
+
35}
+
36
+
37
+
40#endif // GUARD
+
Log base stream implementation.
+
Define color theme by LogLevel.
+
Abstract log stream class.
Definition ALogStream.hpp:27
+
Console log stream implementation.
Definition ConsoleLogStream.hpp:25
+
void Flush() override final
Force the stream to flush.
+
ConsoleColorTheme theme
Color theme.
Definition ConsoleLogStream.hpp:30
+
Log type implementation.
Definition Log.hpp:25
+
Definition ConsoleColorTheme.hpp:26
+
+ + + + diff --git a/_date_time_8hpp.html b/_date_time_8hpp.html new file mode 100644 index 0000000..212422a --- /dev/null +++ b/_date_time_8hpp.html @@ -0,0 +1,135 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Misc/DateTime.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
DateTime.hpp File Reference
+
+
+ +

Date Time definition. +More...

+
#include <cstdint>
+#include <string>
+
+

Go to the source code of this file.

+ + + + + +

+Classes

struct  SA::DateTime
 Date time structure type. More...
 
+ + + + +

+Functions

std::string SA::ToString (const DateTime &_date)
 Convert DtaeTime to string with date-time format.
 
+

Detailed Description

+

Date Time definition.

+

Function Documentation

+ +

◆ ToString()

+ +
+
+ + + + + + + +
std::string SA::ToString (const DateTime & _date)
+
+ +

Convert DtaeTime to string with date-time format.

+

<month>.<day>.<year>-<hour>h<minute>m<second>s Ex: 2/27/2021 at 12:07:43 => "2.27.2021-12h07m43s"

+
Returns
this as a string.
+ +
+
+
+ + + + diff --git a/_date_time_8hpp_source.html b/_date_time_8hpp_source.html new file mode 100644 index 0000000..417e523 --- /dev/null +++ b/_date_time_8hpp_source.html @@ -0,0 +1,183 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Misc/DateTime.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
DateTime.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_DATE_TIME_GUARD
+
6#define SAPPHIRE_LOGGER_DATE_TIME_GUARD
+
7
+
8#include <cstdint>
+
9
+
10#include <string>
+
11
+
22namespace SA
+
23{
+
+
25 struct DateTime
+
26 {
+
28 uint8_t second = 0;
+
29
+
31 uint8_t minute = 0;
+
32
+
34 uint8_t hour = 0;
+
35
+
37 uint8_t day = 0;
+
38
+
40 uint8_t month = 0;
+
41
+
43 uint16_t year = 0;
+
44
+
46 uint8_t weekday = 0;
+
47
+
48
+
49//{ Constructors
+
50
+
52 DateTime() = default;
+
53
+
65 DateTime(uint8_t _second,
+
66 uint8_t _minute = 0u,
+
67 uint8_t _hour = 0u,
+
68 uint8_t _day = 0u,
+
69 uint8_t _month = 0u,
+
70 uint16_t _year = 0u,
+
71 uint8_t _weekday = 0u
+
72 ) noexcept;
+
73
+
79 DateTime(const struct tm& _time) noexcept;
+
80
+
81//}
+
82
+
83//{ Equals
+
84
+
92 bool Equals(const DateTime& _other) const noexcept;
+
93
+
101 bool operator==(const DateTime& _rhs) const noexcept;
+
102
+
110 bool operator!=(const DateTime& _rhs) const noexcept;
+
111
+
112//}
+
113
+
119 static DateTime Now() noexcept;
+
120
+
126 static DateTime GMNow() noexcept;
+
127
+
128
+
136 static DateTime FileStats(const std::string& _path);
+
137 };
+
+
138
+
139
+
148 std::string ToString(const DateTime& _date);
+
149}
+
150
+
151
+
154#endif // GUARD
+
Date time structure type.
Definition DateTime.hpp:26
+
static DateTime FileStats(const std::string &_path)
Query file date time stats at path.
+
uint8_t hour
hour number [0, 23].
Definition DateTime.hpp:34
+
uint8_t second
second number [0, 59].
Definition DateTime.hpp:28
+
uint8_t day
day of the month number [1, 31].
Definition DateTime.hpp:37
+
uint8_t minute
minute number [0, 59].
Definition DateTime.hpp:31
+
bool operator!=(const DateTime &_rhs) const noexcept
Compare two DateTime inequality.
+
uint8_t month
month number [1, 12].
Definition DateTime.hpp:40
+
DateTime(uint8_t _second, uint8_t _minute=0u, uint8_t _hour=0u, uint8_t _day=0u, uint8_t _month=0u, uint16_t _year=0u, uint8_t _weekday=0u) noexcept
+
uint16_t year
Year number.
Definition DateTime.hpp:43
+
DateTime(const struct tm &_time) noexcept
+
static DateTime GMNow() noexcept
Get the current date time at Greenwich.
+
static DateTime Now() noexcept
Get the current local date time.
+
bool Equals(const DateTime &_other) const noexcept
Compare two DateTime equality.
+
uint8_t weekday
day number of the week [0, 6].
Definition DateTime.hpp:46
+
DateTime()=default
Default constructor.
+
bool operator==(const DateTime &_rhs) const noexcept
Compare two DateTime equality.
+
+ + + + diff --git a/_exception_8hpp.html b/_exception_8hpp.html new file mode 100644 index 0000000..2d16a84 --- /dev/null +++ b/_exception_8hpp.html @@ -0,0 +1,116 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Exception.hpp File Reference
+
+
+ +

Default Exception type implementation. +More...

+ +

Go to the source code of this file.

+ + + + + + + + +

+Classes

class  SA::Exception
 Default (base) Exception type. More...
 
struct  SA::Exception::BaseInfo
 Base exception create info. More...
 
+ + + + +

+Typedefs

+using SA::Exception_Default = Exception
 Default type of exception.
 
+

Detailed Description

+

Default Exception type implementation.

+
+ + + + diff --git a/_exception_8hpp_source.html b/_exception_8hpp_source.html new file mode 100644 index 0000000..e0e636c --- /dev/null +++ b/_exception_8hpp_source.html @@ -0,0 +1,158 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Exception.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_EXCEPTION_GUARD
+
6#define SAPPHIRE_LOGGER_EXCEPTION_GUARD
+
7
+ +
9
+
20namespace SA
+
21{
+
+
23 class Exception : public Log
+
24 {
+
25 public:
+
+
27 struct BaseInfo
+
28 {
+
30 std::wstring file;
+
31
+
33 uint32_t line;
+
34
+
36 std::string function;
+
37
+
39 std::wstring chanName;
+
40
+
42 std::wstring details;
+
43
+
45 uint32_t frameNum;
+
46 };
+
+
47
+ +
56 BaseInfo _info,
+
57 bool _pred,
+
58 std::wstring _msg = L""
+
59 ) noexcept;
+
60 };
+
+
61
+ +
64
+
65
+
67
+
69 #define __SA_CREATE_EXCEPTION_Default(_baseInfo, _pred, ...) SA::Exception_Default(\
+
70 _baseInfo,\
+
71 _pred,\
+
72 SA_WSTR(_pred) L"\tevaluated to false!"\
+
73 )
+
74
+
76}
+
77
+
78
+
81#endif // GUARD
+
Log type implementation.
+
Default (base) Exception type.
Definition Exception.hpp:24
+
Exception(BaseInfo _info, bool _pred, std::wstring _msg=L"") noexcept
+
Log type implementation.
Definition Log.hpp:25
+
Base exception create info.
Definition Exception.hpp:28
+
std::string function
Function name.
Definition Exception.hpp:36
+
uint32_t line
line number.
Definition Exception.hpp:33
+
std::wstring chanName
LogChannel name.
Definition Exception.hpp:39
+
std::wstring file
File name.
Definition Exception.hpp:30
+
std::wstring details
Additional details string.
Definition Exception.hpp:42
+
uint32_t frameNum
Frame num.
Definition Exception.hpp:45
+
+ + + + diff --git a/_exception___equals0_8hpp.html b/_exception___equals0_8hpp.html new file mode 100644 index 0000000..eac6972 --- /dev/null +++ b/_exception___equals0_8hpp.html @@ -0,0 +1,105 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_Equals0.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Exception_Equals0.hpp File Reference
+
+
+ +

Equals 0 Exception type implementation. +More...

+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  SA::Exception_Equals0
 Equals 0 exception implementation. More...
 
+

Detailed Description

+

Equals 0 Exception type implementation.

+
+ + + + diff --git a/_exception___equals0_8hpp_source.html b/_exception___equals0_8hpp_source.html new file mode 100644 index 0000000..842625b --- /dev/null +++ b/_exception___equals0_8hpp_source.html @@ -0,0 +1,142 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_Equals0.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Exception_Equals0.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_EXCEPTION_EQUALS_0_GUARD
+
6#define SAPPHIRE_LOGGER_EXCEPTION_EQUALS_0_GUARD
+
7
+ +
9
+
20namespace SA
+
21{
+
+ +
24 {
+
25 public:
+
35 template <typename T>
+
+ +
37 BaseInfo _info,
+
38 const T& _lhs,
+
39 std::wstring _predStr = L"pred"
+
40 ) noexcept :
+ +
42 std::move(_info),
+
43 _lhs,
+
44 T(),
+
45 std::move(_predStr))
+
46 {
+
47 }
+
+
48 };
+
+
49
+
51
+
53 #define __SA_CREATE_EXCEPTION_Equals0(_baseInfo, _lhs) SA::Exception_Equals0(\
+
54 _baseInfo,\
+
55 _lhs,\
+
56 SA_WSTR(_lhs) L" == " + SA::ToWString(typeid(_lhs).name()) + L"()"\
+
57 )
+
58
+
60}
+
61
+
70#endif // GUARD
+
Equals Exception base type implementation.
+
Equals 0 exception implementation.
Definition Exception_Equals0.hpp:24
+
Exception_Equals0(BaseInfo _info, const T &_lhs, std::wstring _predStr=L"pred") noexcept
Definition Exception_Equals0.hpp:36
+
Equals exception base type.
Definition Exception_Equals.hpp:24
+
Exception_Equals(BaseInfo _info, const T &_lhs, const T &_rhs, std::wstring _predStr=L"pred") noexcept
Definition Exception_Equals.hpp:39
+
Base exception create info.
Definition Exception.hpp:28
+
+ + + + diff --git a/_exception___equals1_8hpp.html b/_exception___equals1_8hpp.html new file mode 100644 index 0000000..e9b3182 --- /dev/null +++ b/_exception___equals1_8hpp.html @@ -0,0 +1,105 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_Equals1.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Exception_Equals1.hpp File Reference
+
+
+ +

Equals 1 Exception type implementation. +More...

+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  SA::Exception_Equals1
 Equals 1 exception implementation. More...
 
+

Detailed Description

+

Equals 1 Exception type implementation.

+
+ + + + diff --git a/_exception___equals1_8hpp_source.html b/_exception___equals1_8hpp_source.html new file mode 100644 index 0000000..e44dad7 --- /dev/null +++ b/_exception___equals1_8hpp_source.html @@ -0,0 +1,142 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_Equals1.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Exception_Equals1.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_EXCEPTION_EQUALS_1_GUARD
+
6#define SAPPHIRE_LOGGER_EXCEPTION_EQUALS_1_GUARD
+
7
+ +
9
+
20namespace SA
+
21{
+
+ +
24 {
+
25 public:
+
35 template <typename T>
+
+ +
37 BaseInfo _info,
+
38 const T& _lhs,
+
39 std::wstring _predStr = L"pred"
+
40 ) noexcept :
+ +
42 std::move(_info),
+
43 _lhs,
+
44 T(1),
+
45 std::move(_predStr))
+
46 {
+
47 }
+
+
48 };
+
+
49
+
51
+
53 #define __SA_CREATE_EXCEPTION_Equals1(_baseInfo, _lhs) SA::Exception_Equals1(\
+
54 _baseInfo,\
+
55 _lhs,\
+
56 SA_WSTR(_lhs) L" == " + SA::ToWString(typeid(_lhs).name()) + L"(1)"\
+
57 )
+
58
+
60}
+
61
+
70#endif // GUARD
+
Equals Exception base type implementation.
+
Equals 1 exception implementation.
Definition Exception_Equals1.hpp:24
+
Exception_Equals1(BaseInfo _info, const T &_lhs, std::wstring _predStr=L"pred") noexcept
Definition Exception_Equals1.hpp:36
+
Equals exception base type.
Definition Exception_Equals.hpp:24
+
Exception_Equals(BaseInfo _info, const T &_lhs, const T &_rhs, std::wstring _predStr=L"pred") noexcept
Definition Exception_Equals.hpp:39
+
Base exception create info.
Definition Exception.hpp:28
+
+ + + + diff --git a/_exception___equals_8hpp.html b/_exception___equals_8hpp.html new file mode 100644 index 0000000..664f737 --- /dev/null +++ b/_exception___equals_8hpp.html @@ -0,0 +1,105 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_Equals.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Exception_Equals.hpp File Reference
+
+
+ +

Equals Exception base type implementation. +More...

+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  SA::Exception_Equals
 Equals exception base type. More...
 
+

Detailed Description

+

Equals Exception base type implementation.

+
+ + + + diff --git a/_exception___equals_8hpp_source.html b/_exception___equals_8hpp_source.html new file mode 100644 index 0000000..59127b0 --- /dev/null +++ b/_exception___equals_8hpp_source.html @@ -0,0 +1,162 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_Equals.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Exception_Equals.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_EXCEPTION_EQUALS_GUARD
+
6#define SAPPHIRE_LOGGER_EXCEPTION_EQUALS_GUARD
+
7
+ +
9
+
20namespace SA
+
21{
+
+ +
24 {
+
25 public:
+
38 template <typename T>
+
+ +
40 BaseInfo _info,
+
41 const T& _lhs,
+
42 const T& _rhs,
+
43 std::wstring _predStr = L"pred"
+
44 ) noexcept :
+
45 Exception(std::move(_info),
+
46 _lhs == _rhs,
+
47 std::move(_predStr) + L" => { " + ToWString(_lhs) + L" == " + ToWString(_rhs)+ L" }: Values must be equal.")
+
48 {
+
49 }
+
+
50
+
51
+ +
63 BaseInfo _info,
+
64 float _lhs,
+
65 float _rhs,
+
66 std::wstring _predStr = L"pred"
+
67 ) noexcept;
+
68
+
69
+ +
81 BaseInfo _info,
+
82 double _lhs,
+
83 double _rhs,
+
84 std::wstring _predStr = L"pred"
+
85 ) noexcept;
+
86 };
+
+
87
+
88
+
90
+
92 #define __SA_CREATE_EXCEPTION_Equals(_baseInfo, _lhs, _rhs) SA::Exception_Equals(\
+
93 _baseInfo,\
+
94 _lhs,\
+
95 _rhs,\
+
96 L"\'" SA_WSTR(_lhs) L"\' == \'" SA_WSTR(_rhs) L"\'"\
+
97 )
+
98
+
100}
+
101
+
110#endif // GUARD
+
Default Exception type implementation.
+
std::wstring ToWString(const Log &_log)
ToWString implementation for log.
+
Equals exception base type.
Definition Exception_Equals.hpp:24
+
Exception_Equals(BaseInfo _info, double _lhs, double _rhs, std::wstring _predStr=L"pred") noexcept
+
Exception_Equals(BaseInfo _info, float _lhs, float _rhs, std::wstring _predStr=L"pred") noexcept
+
Exception_Equals(BaseInfo _info, const T &_lhs, const T &_rhs, std::wstring _predStr=L"pred") noexcept
Definition Exception_Equals.hpp:39
+
Default (base) Exception type.
Definition Exception.hpp:24
+
Exception(BaseInfo _info, bool _pred, std::wstring _msg=L"") noexcept
+
Base exception create info.
Definition Exception.hpp:28
+
+ + + + diff --git a/_exception___is_valid_8hpp.html b/_exception___is_valid_8hpp.html new file mode 100644 index 0000000..62905e1 --- /dev/null +++ b/_exception___is_valid_8hpp.html @@ -0,0 +1,105 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_IsValid.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Exception_IsValid.hpp File Reference
+
+
+ +

IsValid Exception type implementation. +More...

+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  SA::Exception_IsValid
 IsValid Exception type. More...
 
+

Detailed Description

+

IsValid Exception type implementation.

+
+ + + + diff --git a/_exception___is_valid_8hpp_source.html b/_exception___is_valid_8hpp_source.html new file mode 100644 index 0000000..2c1e157 --- /dev/null +++ b/_exception___is_valid_8hpp_source.html @@ -0,0 +1,145 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_IsValid.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Exception_IsValid.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_EXCEPTION_IS_VALID_GUARD
+
6#define SAPPHIRE_LOGGER_EXCEPTION_IS_VALID_GUARD
+
7
+ +
9
+
20namespace SA
+
21{
+
+ +
28 {
+
29 public:
+
39 template <typename T>
+
+ +
41 const T& _obj,
+
42 std::wstring _objStr
+
43 ) noexcept :
+
44 Exception(std::move(_info),
+
45 _obj.IsValid(),
+
46 SA::StringFormat(L"Object \'%1\' of type [%2] and value [%3] .IsValid() must return true!", _objStr, typeid(T).name(), _obj)
+
47 )
+
48 {
+
49 }
+
+
50 };
+
+
51
+
52
+
54
+
56 #define __SA_CREATE_EXCEPTION_IsValid(_baseInfo, _obj) SA::Exception_IsValid(\
+
57 _baseInfo,\
+
58 _obj,\
+
59 SA_WSTR(_obj)\
+
60 )
+
61
+
63 #define __SA_CREATE_EXCEPTION_IsThisValid(_baseInfo)\
+
64 __SA_CREATE_EXCEPTION_IsValid(_baseInfo, *this)
+
65
+
67}
+
68
+
69
+
78#endif // GUARD
+
Default Exception type implementation.
+
IsValid Exception type.
Definition Exception_IsValid.hpp:28
+
Exception_IsValid(BaseInfo _info, const T &_obj, std::wstring _objStr) noexcept
Value constructor
Definition Exception_IsValid.hpp:40
+
Default (base) Exception type.
Definition Exception.hpp:24
+
Exception(BaseInfo _info, bool _pred, std::wstring _msg=L"") noexcept
+
Base exception create info.
Definition Exception.hpp:28
+
+ + + + diff --git a/_exception___not_equals0_8hpp.html b/_exception___not_equals0_8hpp.html new file mode 100644 index 0000000..66d4d18 --- /dev/null +++ b/_exception___not_equals0_8hpp.html @@ -0,0 +1,106 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_NotEquals0.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Exception_NotEquals0.hpp File Reference
+
+
+ +

Not Equals 0 Exception type implementation. +More...

+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  SA::Exception_NotEquals0
 Not Equals 0 exception implementation. More...
 
+

Detailed Description

+

Not Equals 0 Exception type implementation.

+
+ + + + diff --git a/_exception___not_equals0_8hpp_source.html b/_exception___not_equals0_8hpp_source.html new file mode 100644 index 0000000..c763639 --- /dev/null +++ b/_exception___not_equals0_8hpp_source.html @@ -0,0 +1,133 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_NotEquals0.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Exception_NotEquals0.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_EXCEPTION_NOT_EQUALS_0_GUARD
+
6#define SAPPHIRE_LOGGER_EXCEPTION_NOT_EQUALS_0_GUARD
+
7
+ + +
10
+
21namespace SA
+
22{
+
+ +
25 {
+
26 public:
+
+ +
33 Exception_NotEquals(std::move(_exc))
+
34 {
+
35 }
+
+
36 };
+
+
37
+
39
+
41 #define __SA_CREATE_EXCEPTION_NotEquals0(_baseInfo, _lhs) SA::Exception_NotEquals0(\
+
42 __SA_CREATE_EXCEPTION_Equals0(_baseInfo, _lhs)\
+
43 )
+
44
+
46}
+
47
+
56#endif // GUARD
+
Equals 0 Exception type implementation.
+
Not Equals Exception base type implementation.
+
Equals 0 exception implementation.
Definition Exception_Equals0.hpp:24
+
Not Equals 0 exception implementation.
Definition Exception_NotEquals0.hpp:25
+
Exception_NotEquals0(Exception_Equals0 &&_exc) noexcept
Definition Exception_NotEquals0.hpp:32
+
Not Equals exception base type.
Definition Exception_NotEquals.hpp:24
+
Exception_NotEquals(Exception_Equals &&_exc) noexcept
+
+ + + + diff --git a/_exception___not_equals1_8hpp.html b/_exception___not_equals1_8hpp.html new file mode 100644 index 0000000..2356bd1 --- /dev/null +++ b/_exception___not_equals1_8hpp.html @@ -0,0 +1,106 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_NotEquals1.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Exception_NotEquals1.hpp File Reference
+
+
+ +

Not Equals 1 Exception type implementation. +More...

+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  SA::Exception_NotEquals1
 Not Equals 1 exception implementation. More...
 
+

Detailed Description

+

Not Equals 1 Exception type implementation.

+
+ + + + diff --git a/_exception___not_equals1_8hpp_source.html b/_exception___not_equals1_8hpp_source.html new file mode 100644 index 0000000..f5ba14e --- /dev/null +++ b/_exception___not_equals1_8hpp_source.html @@ -0,0 +1,133 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_NotEquals1.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Exception_NotEquals1.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_EXCEPTION_NOT_EQUALS_1_GUARD
+
6#define SAPPHIRE_LOGGER_EXCEPTION_NOT_EQUALS_1_GUARD
+
7
+ + +
10
+
21namespace SA
+
22{
+
+ +
25 {
+
26 public:
+
+ +
33 Exception_NotEquals(std::move(_exc))
+
34 {
+
35 }
+
+
36 };
+
+
37
+
39
+
41 #define __SA_CREATE_EXCEPTION_NotEquals1(_baseInfo, _lhs) SA::Exception_NotEquals1(\
+
42 __SA_CREATE_EXCEPTION_Equals1(_baseInfo, _lhs)\
+
43 )
+
44
+
46}
+
47
+
56#endif // GUARD
+
Equals 1 Exception type implementation.
+
Not Equals Exception base type implementation.
+
Equals 1 exception implementation.
Definition Exception_Equals1.hpp:24
+
Not Equals 1 exception implementation.
Definition Exception_NotEquals1.hpp:25
+
Exception_NotEquals1(Exception_Equals1 &&_exc) noexcept
Definition Exception_NotEquals1.hpp:32
+
Not Equals exception base type.
Definition Exception_NotEquals.hpp:24
+
Exception_NotEquals(Exception_Equals &&_exc) noexcept
+
+ + + + diff --git a/_exception___not_equals_8hpp.html b/_exception___not_equals_8hpp.html new file mode 100644 index 0000000..d00d30f --- /dev/null +++ b/_exception___not_equals_8hpp.html @@ -0,0 +1,105 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_NotEquals.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Exception_NotEquals.hpp File Reference
+
+
+ +

Not Equals Exception base type implementation. +More...

+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  SA::Exception_NotEquals
 Not Equals exception base type. More...
 
+

Detailed Description

+

Not Equals Exception base type implementation.

+
+ + + + diff --git a/_exception___not_equals_8hpp_source.html b/_exception___not_equals_8hpp_source.html new file mode 100644 index 0000000..4d37afb --- /dev/null +++ b/_exception___not_equals_8hpp_source.html @@ -0,0 +1,126 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_NotEquals.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Exception_NotEquals.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_EXCEPTION_NOT_EQUALS_GUARD
+
6#define SAPPHIRE_LOGGER_EXCEPTION_NOT_EQUALS_GUARD
+
7
+ +
9
+
20namespace SA
+
21{
+
+ +
24 {
+
25 public:
+ +
32 };
+
+
33
+
34
+
36
+
38 #define __SA_CREATE_EXCEPTION_NotEquals(_baseInfo, _lhs, _rhs) SA::Exception_NotEquals(\
+
39 __SA_CREATE_EXCEPTION_Equals(_baseInfo, _lhs, _rhs)\
+
40 )
+
41
+
43}
+
44
+
53#endif // GUARD
+
Equals Exception base type implementation.
+
Equals exception base type.
Definition Exception_Equals.hpp:24
+
Not Equals exception base type.
Definition Exception_NotEquals.hpp:24
+
Exception_NotEquals(Exception_Equals &&_exc) noexcept
+
Default (base) Exception type.
Definition Exception.hpp:24
+
+ + + + diff --git a/_exception___nullptr_8hpp.html b/_exception___nullptr_8hpp.html new file mode 100644 index 0000000..777fd08 --- /dev/null +++ b/_exception___nullptr_8hpp.html @@ -0,0 +1,105 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_Nullptr.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Exception_Nullptr.hpp File Reference
+
+
+ +

Nullptr Exception type implementation. +More...

+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  SA::Exception_Nullptr
 Nullptr Exception type. More...
 
+

Detailed Description

+

Nullptr Exception type implementation.

+
+ + + + diff --git a/_exception___nullptr_8hpp_source.html b/_exception___nullptr_8hpp_source.html new file mode 100644 index 0000000..1aceee1 --- /dev/null +++ b/_exception___nullptr_8hpp_source.html @@ -0,0 +1,133 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_Nullptr.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Exception_Nullptr.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_EXCEPTION_NULLPTR_GUARD
+
6#define SAPPHIRE_LOGGER_EXCEPTION_NULLPTR_GUARD
+
7
+ +
9
+
20namespace SA
+
21{
+
+ +
24 {
+
25 public:
+ +
34 BaseInfo _info,
+
35 bool _pred,
+
36 std::wstring _predStr = L"ptr"
+
37 ) noexcept;
+
38 };
+
+
39
+
40
+
41
+
43
+
45 #define __SA_CREATE_EXCEPTION_Nullptr(_baseInfo, _pred) SA::Exception_Nullptr(\
+
46 _baseInfo,\
+
47 _pred,\
+
48 SA_WSTR(_pred)\
+
49 )
+
50
+
52}
+
53
+
62#endif // GUARD
+
Default Exception type implementation.
+
Nullptr Exception type.
Definition Exception_Nullptr.hpp:24
+
Exception_Nullptr(BaseInfo _info, bool _pred, std::wstring _predStr=L"ptr") noexcept
+
Default (base) Exception type.
Definition Exception.hpp:24
+
Base exception create info.
Definition Exception.hpp:28
+
+ + + + diff --git a/_exception___out_of_array_range_8hpp.html b/_exception___out_of_array_range_8hpp.html new file mode 100644 index 0000000..6011092 --- /dev/null +++ b/_exception___out_of_array_range_8hpp.html @@ -0,0 +1,105 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_OutOfArrayRange.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Exception_OutOfArrayRange.hpp File Reference
+
+
+ +

OutOfRange Array Exception type implementation. +More...

+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  SA::Exception_OutOfArrayRange
 OutOfArrayRange Exception type. More...
 
+

Detailed Description

+

OutOfRange Array Exception type implementation.

+
+ + + + diff --git a/_exception___out_of_array_range_8hpp_source.html b/_exception___out_of_array_range_8hpp_source.html new file mode 100644 index 0000000..41b409b --- /dev/null +++ b/_exception___out_of_array_range_8hpp_source.html @@ -0,0 +1,156 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_OutOfArrayRange.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Exception_OutOfArrayRange.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_EXCEPTION_OUT_OF_ARRAY_RANGE_GUARD
+
6#define SAPPHIRE_LOGGER_EXCEPTION_OUT_OF_ARRAY_RANGE_GUARD
+
7
+ +
9
+
20namespace SA
+
21{
+
+ +
28 {
+
29 public:
+
41 template <typename U>
+
+ +
43 uint32_t _currIndex,
+
44 std::wstring _currIndexStr,
+
45 const U& _array,
+
46 std::wstring _arrayName = L"",
+
47 uint32_t _minBound = 0,
+
48 uint32_t _maxBound = uint32_t(-1)
+
49 ) noexcept :
+
50 Exception_OutOfRange(std::move(_info),
+
51 _currIndex,
+
52 _minBound < static_cast<uint32_t>(_array.size()) ? _minBound : static_cast<uint32_t>(_array.size()) - 1,
+
53 _maxBound < static_cast<uint32_t>(_array.size()) ? _maxBound : static_cast<uint32_t>(_array.size()) - 1,
+
54 L"")
+
55 {
+
56 // Post initialization to use min/max bounds variables.
+
57 msg = L"Index \'" + _currIndexStr + L"\' [" + ToWString(_currIndex) + L"] must be in array \'" + _arrayName +
+
58 L"\' range [" + ToWString(minBound) + L';' + ToWString(maxBound) + L']';
+
59 }
+
+
60 };
+
+
61
+
62
+
64
+
66 #define __SA_CREATE_EXCEPTION_OutOfArrayRange(_baseInfo, _currIndex, _array, ...) SA::Exception_OutOfArrayRange(\
+
67 _baseInfo,\
+
68 _currIndex,\
+
69 SA_WSTR(_currIndex),\
+
70 _array,\
+
71 SA_WSTR(_array),\
+
72 ##__VA_ARGS__\
+
73 )
+
74
+
76}
+
77
+
78
+
87#endif // GUARD
+
OutOfRange Exception type implementation.
+
std::wstring ToWString(const Log &_log)
ToWString implementation for log.
+
OutOfArrayRange Exception type.
Definition Exception_OutOfArrayRange.hpp:28
+
Exception_OutOfArrayRange(BaseInfo _info, uint32_t _currIndex, std::wstring _currIndexStr, const U &_array, std::wstring _arrayName=L"", uint32_t _minBound=0, uint32_t _maxBound=uint32_t(-1)) noexcept
Definition Exception_OutOfArrayRange.hpp:42
+
OutOfRange Exception type.
Definition Exception_OutOfRange.hpp:28
+
uint32_t minBound
Minimum bound included.
Definition Exception_OutOfRange.hpp:34
+
uint32_t maxBound
Maximum bound included.
Definition Exception_OutOfRange.hpp:37
+
std::wstring msg
User string message.
Definition Log.hpp:37
+
Base exception create info.
Definition Exception.hpp:28
+
+ + + + diff --git a/_exception___out_of_range_8hpp.html b/_exception___out_of_range_8hpp.html new file mode 100644 index 0000000..576f17c --- /dev/null +++ b/_exception___out_of_range_8hpp.html @@ -0,0 +1,105 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_OutOfRange.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Exception_OutOfRange.hpp File Reference
+
+
+ +

OutOfRange Exception type implementation. +More...

+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  SA::Exception_OutOfRange
 OutOfRange Exception type. More...
 
+

Detailed Description

+

OutOfRange Exception type implementation.

+
+ + + + diff --git a/_exception___out_of_range_8hpp_source.html b/_exception___out_of_range_8hpp_source.html new file mode 100644 index 0000000..6124f5f --- /dev/null +++ b/_exception___out_of_range_8hpp_source.html @@ -0,0 +1,159 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_OutOfRange.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Exception_OutOfRange.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_EXCEPTION_OUT_OF_RANGE_GUARD
+
6#define SAPPHIRE_LOGGER_EXCEPTION_OUT_OF_RANGE_GUARD
+
7
+ +
9
+
20namespace SA
+
21{
+
+ +
28 {
+
29 public:
+
31 uint32_t currIndex = 0u;
+
32
+
34 uint32_t minBound = 0u;
+
35
+
37 uint32_t maxBound = 1u;
+
38
+ +
49 BaseInfo _info,
+
50 uint32_t _currIndex,
+
51 uint32_t _minBound,
+
52 uint32_t _maxBound,
+
53 std::wstring _msg
+
54 ) noexcept;
+
55
+
56
+ +
69 BaseInfo _info,
+
70 uint32_t _currIndex,
+
71 std::wstring _currIndexStr,
+
72 uint32_t _minBound,
+
73 std::wstring _minBoundStr,
+
74 uint32_t _maxBound,
+
75 std::wstring _maxBoundStr
+
76 ) noexcept;
+
77 };
+
+
78
+
79
+
81
+
83 #define __SA_CREATE_EXCEPTION_OutOfRange(_baseInfo, _currIndex, _minBound, _maxBound) SA::Exception_OutOfRange(\
+
84 _baseInfo,\
+
85 _currIndex,\
+
86 SA_WSTR(_currIndex),\
+
87 _minBound,\
+
88 SA_WSTR(_minBound),\
+
89 _maxBound,\
+
90 SA_WSTR(_maxBound)\
+
91 )
+
92
+
94}
+
95
+
104#endif // GUARD
+
Default Exception type implementation.
+
OutOfRange Exception type.
Definition Exception_OutOfRange.hpp:28
+
Exception_OutOfRange(BaseInfo _info, uint32_t _currIndex, std::wstring _currIndexStr, uint32_t _minBound, std::wstring _minBoundStr, uint32_t _maxBound, std::wstring _maxBoundStr) noexcept
+
uint32_t minBound
Minimum bound included.
Definition Exception_OutOfRange.hpp:34
+
uint32_t currIndex
Index used for access.
Definition Exception_OutOfRange.hpp:31
+
Exception_OutOfRange(BaseInfo _info, uint32_t _currIndex, uint32_t _minBound, uint32_t _maxBound, std::wstring _msg) noexcept
+
uint32_t maxBound
Maximum bound included.
Definition Exception_OutOfRange.hpp:37
+
Default (base) Exception type.
Definition Exception.hpp:24
+
Base exception create info.
Definition Exception.hpp:28
+
+ + + + diff --git a/_exception___reach_bad_a_p_i_8hpp.html b/_exception___reach_bad_a_p_i_8hpp.html new file mode 100644 index 0000000..0d23a0e --- /dev/null +++ b/_exception___reach_bad_a_p_i_8hpp.html @@ -0,0 +1,107 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_ReachBadAPI.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Exception_ReachBadAPI.hpp File Reference
+
+
+ +

ReachBadAPI Exception type implementation. +More...

+ +

Go to the source code of this file.

+ + + + + + + +

+Classes

class  SA::Exception_ReachBadAPI
 ReachBadAPI. More...
 
class  SA::Exception_QueryBadAPIObject
 
+

Detailed Description

+

ReachBadAPI Exception type implementation.

+
+ + + + diff --git a/_exception___reach_bad_a_p_i_8hpp_source.html b/_exception___reach_bad_a_p_i_8hpp_source.html new file mode 100644 index 0000000..aece102 --- /dev/null +++ b/_exception___reach_bad_a_p_i_8hpp_source.html @@ -0,0 +1,144 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions/Exception_ReachBadAPI.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Exception_ReachBadAPI.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_EXCEPTION_REACH_BAD_API_GUARD
+
6#define SAPPHIRE_LOGGER_EXCEPTION_REACH_BAD_API_GUARD
+
7
+ +
9
+
20namespace SA
+
21{
+
+ +
24 {
+
25 public:
+ +
33 BaseInfo _info,
+
34 std::wstring _str
+
35 ) noexcept;
+
36 };
+
+
37
+ +
43
+
44
+
46
+
48 #define __SA_CREATE_EXCEPTION_ReachBadAPI(_baseInfo, _apiName) SA::Exception_ReachBadAPI(\
+
49 _baseInfo,\
+
50 L"Reach bad [" SA_WSTR(_apiName) L"] API call."\
+
51 )
+
52
+
54 #define __SA_CREATE_EXCEPTION_QueryBadAPIObject(_baseInfo, _apiName) SA::Exception_QueryBadAPIObject(\
+
55 _baseInfo,\
+
56 L"Query [" SA_WSTR(_apiName) L"] API handle from non-[" SA_WSTR(_apiName) L"] object!"\
+
57 )
+
58
+
60}
+
61
+
68#endif // SAPPHIRE_LOGGER_EXCEPTION_REACH_BAD_API_GUARD
+
Default Exception type implementation.
+
Definition Exception_ReachBadAPI.hpp:39
+
ReachBadAPI.
Definition Exception_ReachBadAPI.hpp:24
+
Exception_ReachBadAPI(BaseInfo _info, std::wstring _str) noexcept
+
Default (base) Exception type.
Definition Exception.hpp:24
+
Base exception create info.
Definition Exception.hpp:28
+
+ + + + diff --git a/_exception__equals0_tests_8cpp-example.html b/_exception__equals0_tests_8cpp-example.html new file mode 100644 index 0000000..1972757 --- /dev/null +++ b/_exception__equals0_tests_8cpp-example.html @@ -0,0 +1,123 @@ + + + + + + + +SA_Logger: Exception_Equals0Tests.cpp + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Exception_Equals0Tests.cpp
+
+
+

Examples and Unitary Tests for Exception_Equals0.

+
// Copyright (c) 2023 Sapphire development team. All Rights Reserved.
+
+
#include <gtest/gtest.h>
+
+
#include <SA/Collections/Debug>
+
+
namespace SA::UT::Exc_Eq0
+
{
+
int zero = 0;
+
int one = 1;
+
+
TEST(Exception, Equals0_Success)
+
{
+
EXPECT_NO_THROW(SA_ASSERT((Equals0, zero), SA/UnitTests/Exception));
+
}
+
+
TEST(Exception, Equals0_Failure)
+
{
+
EXPECT_THROW(SA_ASSERT((Equals0, one), SA/UnitTests/Exception, L"Some details!"), Exception_Equals0);
+
}
+
+
TEST(Exception, Equals0_CatchAny)
+
{
+
// try catching any equals exception.
+
+
EXPECT_THROW(SA_ASSERT((Equals0, one), SA/UnitTests/Exception), Exception_Equals);
+
}
+
+
TEST(Exception, Equals0Float)
+
{
+
EXPECT_NO_THROW(SA_ASSERT((Equals0, std::numeric_limits<float>::epsilon()), SA/UnitTests/Exception));
+
}
+
+
TEST(Exception, Equals0Double)
+
{
+
EXPECT_NO_THROW(SA_ASSERT((Equals0, std::numeric_limits<double>::epsilon()), SA/UnitTests/Exception));
+
}
+
}
+
+ + + + diff --git a/_exception__equals1_tests_8cpp-example.html b/_exception__equals1_tests_8cpp-example.html new file mode 100644 index 0000000..463dc84 --- /dev/null +++ b/_exception__equals1_tests_8cpp-example.html @@ -0,0 +1,123 @@ + + + + + + + +SA_Logger: Exception_Equals1Tests.cpp + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Exception_Equals1Tests.cpp
+
+
+

Examples and Unitary Tests for Exception_Equals1.

+
// Copyright (c) 2023 Sapphire development team. All Rights Reserved.
+
+
#include <gtest/gtest.h>
+
+
#include <SA/Collections/Debug>
+
+
namespace SA::UT::Exc_Eq1
+
{
+
int one = 1;
+
int two = 2;
+
+
TEST(Exception, Equals1_Success)
+
{
+
EXPECT_NO_THROW(SA_ASSERT((Equals1, one), SA/UnitTests/Exception));
+
}
+
+
TEST(Exception, Equals1_Failure)
+
{
+
EXPECT_THROW(SA_ASSERT((Equals1, two), SA/UnitTests/Exception, L"Some details!"), Exception_Equals1);
+
}
+
+
TEST(Exception, Equals1_CatchAny)
+
{
+
// try catching any equals exception.
+
+
EXPECT_THROW(SA_ASSERT((Equals1, two), SA/UnitTests/Exception), Exception_Equals);
+
}
+
+
TEST(Exception, Equals1Float)
+
{
+
EXPECT_NO_THROW(SA_ASSERT((Equals1, 1.0f + std::numeric_limits<float>::epsilon()), SA/UnitTests/Exception));
+
}
+
+
TEST(Exception, Equals1Double)
+
{
+
EXPECT_NO_THROW(SA_ASSERT((Equals1, 1.0 + std::numeric_limits<double>::epsilon()), SA/UnitTests/Exception));
+
}
+
}
+
+ + + + diff --git a/_exception__equals_tests_8cpp-example.html b/_exception__equals_tests_8cpp-example.html new file mode 100644 index 0000000..d8c42d5 --- /dev/null +++ b/_exception__equals_tests_8cpp-example.html @@ -0,0 +1,110 @@ + + + + + + + +SA_Logger: Exception_EqualsTests.cpp + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Exception_EqualsTests.cpp
+
+
+

Examples and Unitary Tests for Exception_Equals.

+
// Copyright (c) 2023 Sapphire development team. All Rights Reserved.
+
+
#include <gtest/gtest.h>
+
+
#include <limits>
+
+
#include <SA/Collections/Debug>
+
+
namespace SA::UT::Exc_Eq
+
{
+
int four = 4;
+
int six = 6;
+
+
TEST(Exception, Equals_Success)
+
{
+
EXPECT_NO_THROW(SA_ASSERT((Equals, four, four), SA/UnitTests/Exception));
+
EXPECT_NO_THROW(SA_ASSERT((Equals, 4.0f, 4.0f + std::numeric_limits<float>::epsilon()), SA/UnitTests/Exception));
+
EXPECT_NO_THROW(SA_ASSERT((Equals, 4.0, 4.0 + std::numeric_limits<double>::epsilon()), SA/UnitTests/Exception));
+
}
+
+
TEST(Exception, Equals_Failure)
+
{
+
EXPECT_THROW(SA_ASSERT((Equals, four, six), SA/UnitTests/Exception, L"Some details!"), Exception_Equals);
+
}
+
}
+
+ + + + diff --git a/_exception__is_valid_tests_8cpp-example.html b/_exception__is_valid_tests_8cpp-example.html new file mode 100644 index 0000000..756978e --- /dev/null +++ b/_exception__is_valid_tests_8cpp-example.html @@ -0,0 +1,135 @@ + + + + + + + +SA_Logger: Exception_IsValidTests.cpp + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Exception_IsValidTests.cpp
+
+
+

Examples and Unitary Tests for Exception_IsValid.

+
// Copyright (c) 2023 Sapphire development team. All Rights Reserved.
+
+
#include <gtest/gtest.h>
+
+
#include <SA/Collections/Debug>
+
+
namespace SA::UT::Exc_IsValid
+
{
+
class MyClass
+
{
+
public:
+
int i = 0;
+
+
MyClass(int _i) noexcept : i{_i}
+
{
+
}
+
+
bool IsValid() const noexcept { return i > 0;}
+
+
void Foo()
+
{
+
SA_ASSERT(IsThisValid, SA/UnitTests/Exception, L"Must be valid before executing Foo()");
+
}
+
};
+
+
TEST(Exception, IsValid_Success)
+
{
+
MyClass m1(4);
+
+
EXPECT_NO_THROW(SA_ASSERT((IsValid, m1), SA/UnitTests/Exception));
+
EXPECT_NO_THROW(m1.Foo());
+
}
+
+
TEST(Exception, IsValid_Failure)
+
{
+
MyClass m2(-1);
+
+
EXPECT_THROW(SA_ASSERT((IsValid, m2), SA/UnitTests/Exception), Exception_IsValid);
+
EXPECT_THROW(m2.Foo(), Exception_IsValid);
+
}
+
}
+
+
namespace SA
+
{
+
template <>
+
std::string ToString(const UT::Exc_IsValid::MyClass& _m)
+
{
+
return "i: " + std::to_string(_m.i);
+
}
+
}
+
+ + + + diff --git a/_exception__not_equals0_tests_8cpp-example.html b/_exception__not_equals0_tests_8cpp-example.html new file mode 100644 index 0000000..d3e8dd0 --- /dev/null +++ b/_exception__not_equals0_tests_8cpp-example.html @@ -0,0 +1,125 @@ + + + + + + + +SA_Logger: Exception_NotEquals0Tests.cpp + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Exception_NotEquals0Tests.cpp
+
+
+

Examples and Unitary Tests for Exception_NotEquals0.

+
// Copyright (c) 2023 Sapphire development team. All Rights Reserved.
+
+
#include <gtest/gtest.h>
+
+
#include <SA/Collections/Debug>
+
+
namespace SA::UT::Exc_NEq0
+
{
+
int zero = 0;
+
int one = 1;
+
+
TEST(Exception, NotEquals0_Success)
+
{
+
EXPECT_NO_THROW(SA_ASSERT((NotEquals0, one), SA/UnitTests/Exception));
+
}
+
+
TEST(Exception, NotEquals0_Failure)
+
{
+
EXPECT_THROW(SA_ASSERT((NotEquals0, zero), SA/UnitTests/Exception, L"Some details!"), Exception_NotEquals0);
+
}
+
+
TEST(Exception, NotEquals0_CatchAny)
+
{
+
// try catching any not equals exception.
+
+
EXPECT_THROW(SA_ASSERT((NotEquals0, zero), SA/UnitTests/Exception), Exception_NotEquals0);
+
}
+
+
TEST(Exception, NotEquals0Float)
+
{
+
EXPECT_THROW(SA_ASSERT((NotEquals0, std::numeric_limits<float>::epsilon()),
+
SA/UnitTests/Exception), Exception_NotEquals0);
+
}
+
+
TEST(Exception, NotEquals0Double)
+
{
+
EXPECT_THROW(SA_ASSERT((NotEquals0, std::numeric_limits<double>::epsilon()),
+
SA/UnitTests/Exception), Exception_NotEquals0);
+
}
+
}
+
+ + + + diff --git a/_exception__not_equals1_tests_8cpp-example.html b/_exception__not_equals1_tests_8cpp-example.html new file mode 100644 index 0000000..6ee388f --- /dev/null +++ b/_exception__not_equals1_tests_8cpp-example.html @@ -0,0 +1,125 @@ + + + + + + + +SA_Logger: Exception_NotEquals1Tests.cpp + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Exception_NotEquals1Tests.cpp
+
+
+

Examples and Unitary Tests for Exception_NotEquals1.

+
// Copyright (c) 2023 Sapphire development team. All Rights Reserved.
+
+
#include <gtest/gtest.h>
+
+
#include <SA/Collections/Debug>
+
+
namespace SA::UT::Exc_NEq1
+
{
+
int one = 1;
+
int two = 2;
+
+
TEST(Exception, NotEquals1_Success)
+
{
+
EXPECT_NO_THROW(SA_ASSERT((NotEquals1, two), SA/UnitTests/Exception));
+
}
+
+
TEST(Exception, NotEquals1_Failure)
+
{
+
EXPECT_THROW(SA_ASSERT((NotEquals1, one), SA/UnitTests/Exception, L"Some details!"), Exception_NotEquals1);
+
}
+
+
TEST(Exception, NotEquals1_CatchAny)
+
{
+
// try catching any not equals exception.
+
+
EXPECT_THROW(SA_ASSERT((NotEquals1, one), SA/UnitTests/Exception), Exception_NotEquals);
+
}
+
+
TEST(Exception, NotEquals1Float)
+
{
+
EXPECT_THROW(SA_ASSERT((NotEquals1, 1.0f + std::numeric_limits<float>::epsilon()),
+
SA/UnitTests/Exception), Exception_NotEquals1);
+
}
+
+
TEST(Exception, NotEquals1Double)
+
{
+
EXPECT_THROW(SA_ASSERT((NotEquals1, 1.0 + std::numeric_limits<double>::epsilon()),
+
SA/UnitTests/Exception), Exception_NotEquals1);
+
}
+
}
+
+ + + + diff --git a/_exception__not_equals_tests_8cpp-example.html b/_exception__not_equals_tests_8cpp-example.html new file mode 100644 index 0000000..d8dfc7f --- /dev/null +++ b/_exception__not_equals_tests_8cpp-example.html @@ -0,0 +1,110 @@ + + + + + + + +SA_Logger: Exception_NotEqualsTests.cpp + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Exception_NotEqualsTests.cpp
+
+
+

Examples and Unitary Tests for Exception_NotEquals.

+
// Copyright (c) 2023 Sapphire development team. All Rights Reserved.
+
+
#include <gtest/gtest.h>
+
+
#include <limits>
+
+
#include <SA/Collections/Debug>
+
+
namespace SA::UT::Exc_NEq
+
{
+
int four = 4;
+
int six = 6;
+
+
TEST(Exception, NotEquals_Success)
+
{
+
EXPECT_NO_THROW(SA_ASSERT((NotEquals, four, six), SA/UnitTests/Exception));
+
}
+
+
TEST(Exception, NotEquals_Failure)
+
{
+
EXPECT_THROW(SA_ASSERT((NotEquals, four, four), SA/UnitTests/Exception, L"Some details!"), Exception_NotEquals);
+
EXPECT_THROW(SA_ASSERT((NotEquals, 4.0f, 4.0f + std::numeric_limits<float>::epsilon()), SA/UnitTests/Exception), Exception_NotEquals);
+
EXPECT_THROW(SA_ASSERT((NotEquals, 4.0, 4.0 + std::numeric_limits<double>::epsilon()), SA/UnitTests/Exception), Exception_NotEquals);
+
}
+
}
+
+ + + + diff --git a/_exception__nullptr_tests_8cpp-example.html b/_exception__nullptr_tests_8cpp-example.html new file mode 100644 index 0000000..73bb063 --- /dev/null +++ b/_exception__nullptr_tests_8cpp-example.html @@ -0,0 +1,104 @@ + + + + + + + +SA_Logger: Exception_NullptrTests.cpp + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Exception_NullptrTests.cpp
+
+
+

Examples and Unitary Tests for Exception_Nullptr.

+
// Copyright (c) 2023 Sapphire development team. All Rights Reserved.
+
+
#include <gtest/gtest.h>
+
+
#include <SA/Collections/Debug>
+
+
namespace SA::UT::Exc_Nullptr
+
{
+
TEST(Exception, Nullptr_Success)
+
{
+
int i = 5;
+
EXPECT_NO_THROW(SA_ASSERT((Nullptr, &i), SA/UnitTests/Exception));
+
}
+
+
TEST(Exception, Nullptr_Failure)
+
{
+
EXPECT_THROW(SA_ASSERT((Nullptr, (int*)nullptr), SA/UnitTests/Exception), Exception_Nullptr);
+
}
+
}
+
+ + + + diff --git a/_exception__out_of_array_range_tests_8cpp-example.html b/_exception__out_of_array_range_tests_8cpp-example.html new file mode 100644 index 0000000..5e8ec4d --- /dev/null +++ b/_exception__out_of_array_range_tests_8cpp-example.html @@ -0,0 +1,159 @@ + + + + + + + +SA_Logger: Exception_OutOfArrayRangeTests.cpp + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Exception_OutOfArrayRangeTests.cpp
+
+
+

Examples and Unitary Tests for Exception_OutOfArrayRange.

+
// Copyright (c) 2023 Sapphire development team. All Rights Reserved.
+
+
#include <gtest/gtest.h>
+
+
#include <SA/Collections/Debug>
+
+
#include <array>
+
#include <vector>
+
#include <list>
+
+
namespace SA::UT::Exc_OOAR
+
{
+
TEST(Exception, OutOfArrayRange_Success)
+
{
+
const std::array<float, 6> tab{ 1.2f, 3.36f, 45.2f, 78.21f, 6.3f, 11.2f };
+
+
EXPECT_NO_THROW(SA_ASSERT((OutOfArrayRange, 0, tab), SA/UnitTests/Exception));
+
EXPECT_NO_THROW(SA_ASSERT((OutOfArrayRange, 1, tab), SA/UnitTests/Exception));
+
EXPECT_NO_THROW(SA_ASSERT((OutOfArrayRange, 5, tab), SA/UnitTests/Exception));
+
EXPECT_NO_THROW(SA_ASSERT((OutOfArrayRange, 2, tab, 1, 4), SA/UnitTests/Exception));
+
+
+
const std::vector<float> v{ 1.2f, 3.36f, 45.2f, 78.21f, 6.3f, 11.2f };
+
+
EXPECT_NO_THROW(SA_ASSERT((OutOfArrayRange, 0, v), SA/UnitTests/Exception));
+
EXPECT_NO_THROW(SA_ASSERT((OutOfArrayRange, 3, v), SA/UnitTests/Exception));
+
EXPECT_NO_THROW(SA_ASSERT((OutOfArrayRange, 5, v), SA/UnitTests/Exception));
+
EXPECT_NO_THROW(SA_ASSERT((OutOfArrayRange, 2, v, 1, 4), SA/UnitTests/Exception));
+
+
+
const std::list<float> l{ 1.2f, 3.36f, 45.2f, 78.21f, 6.3f, 11.2f };
+
+
EXPECT_NO_THROW(SA_ASSERT((OutOfArrayRange, 0, l), SA/UnitTests/Exception));
+
EXPECT_NO_THROW(SA_ASSERT((OutOfArrayRange, 2, l), SA/UnitTests/Exception));
+
EXPECT_NO_THROW(SA_ASSERT((OutOfArrayRange, 5, l), SA/UnitTests/Exception));
+
EXPECT_NO_THROW(SA_ASSERT((OutOfArrayRange, 2, l, 1, 4), SA/UnitTests/Exception));
+
}
+
+
TEST(Exception, OutOfArrayRange_Failure)
+
{
+
const std::vector<float> v{ 1.2f, 3.36f, 45.2f, 78.21f, 6.3f, 11.2f };
+
+
EXPECT_THROW(SA_ASSERT((OutOfArrayRange, 6, v), SA/UnitTests/Exception), Exception_OutOfRange);
+
EXPECT_THROW(SA_ASSERT((OutOfArrayRange, 5, v, 1, 4), SA/UnitTests/Exception), Exception_OutOfRange);
+
+
try
+
{
+
SA_ASSERT((OutOfArrayRange, 5, v, 1, 4), SA/UnitTests/Exception);
+
}
+
catch (Exception_OutOfRange& _exc)
+
{
+
EXPECT_EQ(_exc.currIndex, 5u);
+
EXPECT_EQ(_exc.minBound, 1u);
+
EXPECT_EQ(_exc.maxBound, 4u);
+
}
+
+
+
EXPECT_THROW(SA_ASSERT((OutOfArrayRange, 10, v), SA/UnitTests/Exception), Exception_OutOfRange);
+
+
try
+
{
+
SA_ASSERT((OutOfArrayRange, 10, v), SA/UnitTests/Exception);
+
}
+
catch (Exception_OutOfRange& _exc)
+
{
+
EXPECT_EQ(_exc.currIndex, 10u);
+
EXPECT_EQ(_exc.minBound, 0u);
+
EXPECT_EQ(_exc.maxBound, 5u);
+
}
+
+
const std::vector<float> v1;
+
EXPECT_THROW(SA_ASSERT((OutOfArrayRange, 0, v1), SA/UnitTests/Exception), Exception_OutOfRange);
+
}
+
}
+
+ + + + diff --git a/_exception__out_of_range_tests_8cpp-example.html b/_exception__out_of_range_tests_8cpp-example.html new file mode 100644 index 0000000..7fc0192 --- /dev/null +++ b/_exception__out_of_range_tests_8cpp-example.html @@ -0,0 +1,131 @@ + + + + + + + +SA_Logger: Exception_OutOfRangeTests.cpp + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Exception_OutOfRangeTests.cpp
+
+
+

Examples and Unitary Tests for Exception_OutOfRange.

+
// Copyright (c) 2023 Sapphire development team. All Rights Reserved.
+
+
#include <gtest/gtest.h>
+
+
#include <SA/Collections/Debug>
+
+
namespace SA::UT::Exc_OOR
+
{
+
TEST(Exception, OutOfRange_Success)
+
{
+
SA_ASSERT((OutOfRange, 4, 0, 6), SA/UnitTests/Exception);
+
+
EXPECT_NO_THROW(SA_ASSERT((OutOfRange, 4, 0, 6), SA/UnitTests/Exception));
+
EXPECT_NO_THROW(SA_ASSERT((OutOfRange, 6, 0, 6), SA/UnitTests/Exception));
+
}
+
+
TEST(Exception, OutOfRange_Failure)
+
{
+
EXPECT_THROW(SA_ASSERT((OutOfRange, 2, 4, 6), SA/UnitTests/Exception), Exception_OutOfRange);
+
+
try
+
{
+
SA_ASSERT((OutOfRange, 2, 4, 6), SA/UnitTests/Exception);
+
}
+
catch (Exception_OutOfRange& _exc)
+
{
+
EXPECT_EQ(_exc.currIndex, 2u);
+
EXPECT_EQ(_exc.minBound, 4u);
+
EXPECT_EQ(_exc.maxBound, 6u);
+
}
+
+
+
EXPECT_THROW(SA_ASSERT((OutOfRange, 10, 0, 6), SA/UnitTests/Exception), Exception_OutOfRange);
+
+
try
+
{
+
SA_ASSERT((OutOfRange, 10, 0, 6), SA/UnitTests/Exception);
+
}
+
catch (Exception_OutOfRange& _exc)
+
{
+
EXPECT_EQ(_exc.currIndex, 10u);
+
EXPECT_EQ(_exc.minBound, 0u);
+
EXPECT_EQ(_exc.maxBound, 6u);
+
}
+
}
+
}
+
+ + + + diff --git a/_exception__reach_bad_a_p_i_tests_8cpp-example.html b/_exception__reach_bad_a_p_i_tests_8cpp-example.html new file mode 100644 index 0000000..2fc322e --- /dev/null +++ b/_exception__reach_bad_a_p_i_tests_8cpp-example.html @@ -0,0 +1,99 @@ + + + + + + + +SA_Logger: Exception_ReachBadAPITests.cpp + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Exception_ReachBadAPITests.cpp
+
+
+

Examples and Unitary Tests for Exception_ReachBadAPI.

+
// Copyright (c) 2023 Sapphire development team. All Rights Reserved.
+
+
#include <gtest/gtest.h>
+
+
#include <SA/Collections/Debug>
+
+
namespace SA::UT::Exc_ReachBadAPI
+
{
+
TEST(Exception, ReachBadAPI)
+
{
+
EXPECT_THROW(SA_THROW((ReachBadAPI, MyAPI), SA.UnitTests.Exception), Exception_ReachBadAPI);
+
EXPECT_THROW(SA_THROW((QueryBadAPIObject, MyAPI), SA.UnitTests.Exception), Exception_QueryBadAPIObject);
+
}
+
}
+
+ + + + diff --git a/_file_log_stream_8hpp.html b/_file_log_stream_8hpp.html new file mode 100644 index 0000000..f21b6e2 --- /dev/null +++ b/_file_log_stream_8hpp.html @@ -0,0 +1,106 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Streams/File/FileLogStream.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
FileLogStream.hpp File Reference
+
+
+ +

Log file stream type implementation. +More...

+
#include <fstream>
+#include <SA/Logger/Streams/ALogStream.hpp>
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  SA::FileLogStream
 Log file stream type. More...
 
+

Detailed Description

+

Log file stream type implementation.

+
+ + + + diff --git a/_file_log_stream_8hpp_source.html b/_file_log_stream_8hpp_source.html new file mode 100644 index 0000000..ce07c8b --- /dev/null +++ b/_file_log_stream_8hpp_source.html @@ -0,0 +1,139 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Streams/File/FileLogStream.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
FileLogStream.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_FILE_LOG_STREAM_GUARD
+
6#define SAPPHIRE_LOGGER_FILE_LOG_STREAM_GUARD
+
7
+
8#include <fstream>
+
9
+ +
11
+
22namespace SA
+
23{
+
+ +
26 {
+
27 protected:
+
29 std::wofstream mHandle;
+
30
+
36 void CreateLogFile(const std::string& _fileFullPath);
+
37
+
38
+
39 void Output(const Log& _log) override final;
+
40
+
41 public:
+
47 FileLogStream(const std::string& _fileFullPath = "Logs/log.txt") noexcept;
+
48
+
52 ~FileLogStream() noexcept;
+
53
+
54
+
55 void Flush() override final;
+
56 };
+
+
57}
+
58
+
59
+
62#endif // GUARD
+
Log base stream implementation.
+
Abstract log stream class.
Definition ALogStream.hpp:27
+
Log file stream type.
Definition FileLogStream.hpp:26
+
FileLogStream(const std::string &_fileFullPath="Logs/log.txt") noexcept
+
void Output(const Log &_log) override final
Output a log in stream.
+
std::wofstream mHandle
Handled file stream.
Definition FileLogStream.hpp:29
+
void Flush() override final
Force the stream to flush.
+
void CreateLogFile(const std::string &_fileFullPath)
Create log and log backup files.
+
Log type implementation.
Definition Log.hpp:25
+
+ + + + diff --git a/_file_name_8hpp_source.html b/_file_name_8hpp_source.html new file mode 100644 index 0000000..d4b30e0 --- /dev/null +++ b/_file_name_8hpp_source.html @@ -0,0 +1,113 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Preprocessors/FileName.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
FileName.hpp
+
+
+
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_FILE_NAME_GUARD
+
6#define SAPPHIRE_LOGGER_FILE_NAME_GUARD
+
7
+
8namespace SA
+
9{
+
11
+
12 namespace Intl
+
13 {
+
21 const wchar_t* FileNameFromPath(const wchar_t* _filePath) noexcept;
+
22 }
+
23
+
24 #define __SA_FILE_NAME SA::Intl::FileNameFromPath(SA_WIDE(__FILE__))
+
25
+
27}
+
28
+
29#endif // GUARD
+
+ + + + diff --git a/_function_name_8hpp_source.html b/_function_name_8hpp_source.html new file mode 100644 index 0000000..65a98d0 --- /dev/null +++ b/_function_name_8hpp_source.html @@ -0,0 +1,122 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Preprocessors/FunctionName.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
FunctionName.hpp
+
+
+
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_FUNCTION_NAME_GUARD
+
6#define SAPPHIRE_LOGGER_FUNCTION_NAME_GUARD
+
7
+
8#include <SA/Support/Compilers.hpp>
+
9
+
10namespace SA
+
11{
+
13
+
14 #if SA_GNU || SA_CLANG && !SA_MSVC
+
15
+
16 #define __SA_FUNC_NAME __PRETTY_FUNCTION__
+
17
+
18 #elif SA_MSVC
+
19
+
20 #define __SA_FUNC_NAME __FUNCSIG__
+
21
+
22 #else
+
23
+
24 #define __SA_FUNC_NAME __FUNCTION__
+
25
+
26 #endif
+
27
+
29}
+
30
+
31#endif // GUARD
+
+ + + + diff --git a/_log_8hpp.html b/_log_8hpp.html new file mode 100644 index 0000000..cf1af65 --- /dev/null +++ b/_log_8hpp.html @@ -0,0 +1,136 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Log/Log.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Log.hpp File Reference
+
+
+ +

Log type implementation. +More...

+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  SA::Log
 Log type implementation. More...
 
+ + + + +

+Functions

std::wstring SA::ToWString (const Log &_log)
 ToWString implementation for log.
 
+

Detailed Description

+

Log type implementation.

+

Function Documentation

+ +

◆ ToWString()

+ +
+
+ + + + + + + +
std::wstring SA::ToWString (const Log & _log)
+
+ +

ToWString implementation for log.

+

Convert log to wstring.

+
Returns
log as a wstring.
+ +
+
+
+ + + + diff --git a/_log_8hpp_source.html b/_log_8hpp_source.html new file mode 100644 index 0000000..ec5f2b1 --- /dev/null +++ b/_log_8hpp_source.html @@ -0,0 +1,165 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Log/Log.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Log.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_LOG_GUARD
+
6#define SAPPHIRE_LOGGER_LOG_GUARD
+
7
+ + + +
11
+
21namespace SA
+
22{
+
+
24 class Log
+
25 {
+
26 public:
+
28 std::wstring file;
+
29
+
31 uint32_t line = 0u;
+
32
+
34 std::string function;
+
35
+
37 std::wstring msg = L"Hello, World!";
+
38
+
40 LogLevel level = LogLevel::Normal;
+
41
+
43 std::wstring chanName = L"Default";
+
44
+
46 std::wstring details;
+
47
+
49 uint32_t frameNum = 0u;
+
50
+
52 std::string backtrace;
+
53
+ +
56
+ +
71 std::wstring _file,
+
72 uint32_t _line,
+
73 std::string _function,
+
74 std::wstring _msg = L"Hello, World!",
+
75 LogLevel _level = LogLevel::Normal,
+
76 std::wstring _chanName = L"Default",
+
77 std::wstring _details = L"",
+
78 uint32_t _frameNum = 0u,
+
79 std::string _backtrace = ""
+
80 ) noexcept;
+
81 };
+
+
82
+
90 std::wstring ToWString(const Log& _log);
+
91}
+
92
+
95#endif // GUARD
+
Date Time definition.
+
Log level enum implementation.
+
LogLevel
All levels of logging.
Definition LogLevel.hpp:25
+
Definition of Sapphire ToString methods.
+
Log type implementation.
Definition Log.hpp:25
+
DateTime date
Date time.
Definition Log.hpp:55
+
uint32_t line
Line number.
Definition Log.hpp:31
+
std::wstring chanName
Output channel name.
Definition Log.hpp:43
+
std::string backtrace
backtracing of logging call.
Definition Log.hpp:52
+
std::string function
Function name.
Definition Log.hpp:34
+
std::wstring msg
User string message.
Definition Log.hpp:37
+
std::wstring file
File name.
Definition Log.hpp:28
+
Log(std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexcept
Value Move Constructor.
+
uint32_t frameNum
Frame number.
Definition Log.hpp:49
+
std::wstring details
Additional details string.
Definition Log.hpp:46
+
LogLevel level
Output level.
Definition Log.hpp:40
+
Date time structure type.
Definition DateTime.hpp:26
+
+ + + + diff --git a/_log_channel_filter_8hpp.html b/_log_channel_filter_8hpp.html new file mode 100644 index 0000000..d10ce04 --- /dev/null +++ b/_log_channel_filter_8hpp.html @@ -0,0 +1,105 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Log/LogChannelFilter.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
LogChannelFilter.hpp File Reference
+
+
+ +

Channel filter implementation. +More...

+
#include <string>
+#include <unordered_map>
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  SA::LogChannelFilter
 
+

Detailed Description

+

Channel filter implementation.

+
+ + + + diff --git a/_log_channel_filter_8hpp_source.html b/_log_channel_filter_8hpp_source.html new file mode 100644 index 0000000..b274636 --- /dev/null +++ b/_log_channel_filter_8hpp_source.html @@ -0,0 +1,122 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Log/LogChannelFilter.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
LogChannelFilter.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_LOG_CHANNEL_FILTER_GUARD
+
6#define SAPPHIRE_LOGGER_LOG_CHANNEL_FILTER_GUARD
+
7
+
8#include <string>
+
9#include <unordered_map>
+
10
+
21namespace SA
+
22{
+
+ +
31 {
+
33 std::unordered_map<std::wstring, bool> mChannels;
+
34
+
35 bool IsSingleChannelEnabled(const std::wstring& _chanName) const;
+
36
+
37 public:
+
46 bool IsChannelEnabled(const std::wstring& _chanName, size_t _offset = 0u) const;
+
47 };
+
+
48}
+
49
+
50
+
53#endif // GUARD
+
Definition LogChannelFilter.hpp:31
+
bool IsChannelEnabled(const std::wstring &_chanName, size_t _offset=0u) const
+
+ + + + diff --git a/_log_level_8hpp.html b/_log_level_8hpp.html new file mode 100644 index 0000000..e54e100 --- /dev/null +++ b/_log_level_8hpp.html @@ -0,0 +1,239 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Log/LogLevel.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
LogLevel.hpp File Reference
+
+
+ +

Log level enum implementation. +More...

+
#include <string>
+#include <cstdint>
+
+

Go to the source code of this file.

+ + + + + +

+Typedefs

+using SA::LogLvl = LogLevel
 Shortcut alias.
 
+ + + + +

+Enumerations

enum  SA::LogLevel : uint8_t {
+  SA::Normal = (1 << 0) +, SA::Info = (1 << 1) +, SA::Warning = (1 << 2) +, SA::Error = (1 << 3) +,
+  SA::AssertSuccess = (1 << 4) +, SA::AssertFailure = (1 << 5) +, SA::Default = Normal | Info | Warning | Error | AssertFailure +, Max = uint8_t(-1) +
+ }
 All levels of logging. More...
 
+ + + + + + + +

+Functions

std::string SA::ToString (LogLevel _lvl) noexcept
 ToString implementation for LogLevel.
 
std::wstring SA::ToWString (LogLevel _lvl) noexcept
 ToWString implementation for LogLevel.
 
+

Detailed Description

+

Log level enum implementation.

+

Enumeration Type Documentation

+ +

◆ LogLevel

+ +
+
+ + + + +
enum SA::LogLevel : uint8_t
+
+ +

All levels of logging.

+ + + + + + + + +
Enumerator
Normal 

Normal level.

+
Info 

Info level.

+
Warning 

Warning level.

+
Error 

Error level.

+
AssertSuccess 

Assertion Success level.

+
AssertFailure 

Assertion Failure level.

+
Default 

Default log level (no assert success).

+
+ +
+
+

Function Documentation

+ +

◆ ToString()

+ +
+
+ + + + + +
+ + + + + + + +
std::string SA::ToString (LogLevel _lvl)
+
+noexcept
+
+ +

ToString implementation for LogLevel.

+
Parameters
+ + +
[in]_lvlLevel to convert.
+
+
+
Returns
LogLevel as a string.
+
Examples
Exception_IsValidTests.cpp.
+
+ +
+
+ +

◆ ToWString()

+ +
+
+ + + + + +
+ + + + + + + +
std::wstring SA::ToWString (LogLevel _lvl)
+
+noexcept
+
+ +

ToWString implementation for LogLevel.

+
Parameters
+ + +
[in]_lvlLevel to convert.
+
+
+
Returns
LogLevel as a wstring.
+ +
+
+
+ + + + diff --git a/_log_level_8hpp_source.html b/_log_level_8hpp_source.html new file mode 100644 index 0000000..3fe771f --- /dev/null +++ b/_log_level_8hpp_source.html @@ -0,0 +1,144 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Log/LogLevel.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
LogLevel.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_LOG_LEVEL_GUARD
+
6#define SAPPHIRE_LOGGER_LOG_LEVEL_GUARD
+
7
+
8#include <string>
+
9#include <cstdint>
+
10
+
21namespace SA
+
22{
+
+
24 enum LogLevel : uint8_t
+
25 {
+
27 Normal = (1 << 0),
+
28
+
30 Info = (1 << 1),
+
31
+
33 Warning = (1 << 2),
+
34
+
36 Error = (1 << 3),
+
37
+
39 AssertSuccess = (1 << 4),
+
40
+
42 AssertFailure = (1 << 5),
+
43
+ +
46
+
47 Max = uint8_t(-1)
+
48 };
+
+
49
+ +
52
+
60 std::string ToString(LogLevel _lvl) noexcept;
+
61
+
69 std::wstring ToWString(LogLevel _lvl) noexcept;
+
70}
+
71
+
74#endif // GUARD
+
std::wstring ToWString(const Log &_log)
ToWString implementation for log.
+
std::string ToString(LogLevel _lvl) noexcept
ToString implementation for LogLevel.
+
LogLevel
All levels of logging.
Definition LogLevel.hpp:25
+
@ Warning
Warning level.
Definition LogLevel.hpp:33
+
@ Normal
Normal level.
Definition LogLevel.hpp:27
+
@ AssertSuccess
Assertion Success level.
Definition LogLevel.hpp:39
+
@ Default
Default log level (no assert success).
Definition LogLevel.hpp:45
+
@ Info
Info level.
Definition LogLevel.hpp:30
+
@ Error
Error level.
Definition LogLevel.hpp:36
+
@ AssertFailure
Assertion Failure level.
Definition LogLevel.hpp:42
+
+ + + + diff --git a/_log_macro_8hpp_source.html b/_log_macro_8hpp_source.html new file mode 100644 index 0000000..5167eac --- /dev/null +++ b/_log_macro_8hpp_source.html @@ -0,0 +1,211 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Preprocessors/LogMacro.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
LogMacro.hpp
+
+
+
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_LOG_MACRO_GUARD
+
6#define SAPPHIRE_LOGGER_LOG_MACRO_GUARD
+
7
+
8#include <iostream>
+
9
+
10#include <SA/Support/Debug.hpp>
+
11
+
12#include <SA/Logger/Log/Log.hpp>
+
13#include <SA/Logger/Misc/StringFormat.hpp>
+
14#include <SA/Logger/Preprocessors/FileName.hpp>
+
15#include <SA/Logger/Preprocessors/FunctionName.hpp>
+
16#include <SA/Logger/Preprocessors/ChannelName.hpp>
+
17#include <SA/Logger/Preprocessors/Unparenthese.hpp>
+
18
+
19namespace SA
+
20{
+
21//{ Callback
+
22
+
23 class Logger;
+
24
+
26 namespace Debug
+
27 {
+
29 extern Logger* logger;
+
30
+
32 extern void (*logCB)(SA::Log);
+
33
+
34 void InitDefaultLogger();
+
35 void InitDefaultLoggerThread();
+
36
+
37 namespace Intl
+
38 {
+
39 void DefaultLogCallback(SA::Log _log);
+
40 }
+
41 }
+
42
+
44
+
45 #define __SA_LOGGER(_log)\
+
46 if (SA::Debug::logger)\
+
47 SA::Debug::logger->Log(_log);\
+
48 else if (SA::Debug::logCB)\
+
49 SA::Debug::logCB(_log);\
+
50 else\
+
51 std::cerr << "Try logging with invalid logger instance or callback! Initialize SA::Debug::logger or SA::Debug::logCB." << std::endl;
+
52
+
53 #define __SA_LOG_FRAME_NUM\
+
54 SA::Debug::logger ? SA::Debug::logger->GetFrameNum() : 0u
+
55
+
57
+
58//}
+
59
+
60
+
62
+
63 //#define __SA_TRY_FAST_WIDE(_str) std::is_same_v<std::remove_extent_t<std::remove_reference_t<decltype(_str)>>, const char> ? (SA_WIDE(_str)) : SA::ToWString(_str)
+
64
+
65 #define __SA_CREATE_LOG(_str, _lvl, _chan, _dets) SA::Log(\
+
66 __SA_FILE_NAME,\
+
67 __LINE__,\
+
68 __SA_FUNC_NAME,\
+
69 SA::StringFormat(__SA_UNPARENT(_str)),\
+
70 SA::LogLevel::_lvl,\
+
71 __SA_CHAN_NAME(_chan),\
+
72 SA::StringFormat(__SA_UNPARENT(_dets)),\
+
73 __SA_LOG_FRAME_NUM,\
+
74 std::string()\
+
75 )
+
76
+
77 // TODO: Add backtrace.
+
78
+
79 #define __SA_SELECT_LOG_MACRO(_1, _2, _3, _4, _5, _name, ...) _name
+
80
+
81 #define __SA_LOG4(_str, _lvl, _chan, _dets) __SA_LOGGER(__SA_CREATE_LOG(_str, _lvl, _chan, _dets));
+
82 #define __SA_LOG5(_str, _lvl, _chan, _dets, _postCmd) { __SA_LOG4(_str, _lvl, _chan, L"") _postCmd; }
+
83 #define __SA_LOG3(_str, _lvl, _chan) __SA_LOG4(_str, _lvl, _chan, L"")
+
84 #define __SA_LOG2(_str, _lvl) __SA_LOG3(_str, _lvl, Default)
+
85 #define __SA_LOG1(_str) __SA_LOG2(_str, Normal)
+
86
+
87 #define __SA_COND_LOG(_pred, _lvl, ...) if(!(_pred)) SA_LOG(L"{ " SA_WSTR(_pred) " }\tevaluated to false!", _lvl, ##__VA_ARGS__)
+
88
+
90
+
91#if defined(DOXYGEN)
+
92
+
106 #define SA_LOG((_str, _args), _lvl, _chan, _dets)
+
107
+
120 #define SA_WARN(_pred, _chan, _dets, _postCmd)
+
121
+
134 #define SA_ERROR(_pred, _chan, _dets, _postCmd)
+
135
+
136#elif SA_DEBUG || SA_LOG_RELEASE_OPT
+
137
+
138 #define SA_LOG_END_OF_FRAME() { if(SA::Debug::logger) SA::Debug::logger->IncrementFrameNum(); }
+
139
+
140 #define SA_LOG(...) { __SA_SELECT_LOG_MACRO(__VA_ARGS__, __SA_LOG5, __SA_LOG4, __SA_LOG3, __SA_LOG2, __SA_LOG1)(__VA_ARGS__) }
+
141
+
142 #define SA_WARN(_pred, ...) { __SA_COND_LOG(_pred, Warning, ##__VA_ARGS__) }
+
143
+
144 #define SA_ERROR(_pred, ...) { __SA_COND_LOG(_pred, Error, ##__VA_ARGS__) }
+
145
+
146#else
+
147
+
148 #define SA_LOG(...) {}
+
149
+
150 #define SA_WARN(...) {}
+
151
+
152 #define SA_ERROR(...) {}
+
153
+
154#endif
+
155}
+
156
+
157#endif // GUARD
+
Log type implementation.
+
Log type implementation.
Definition Log.hpp:25
+
Basic Logger class implementation.
Definition Logger.hpp:31
+
Logger * logger
Logger instance.
Definition LogMacro.hpp:29
+
void(* logCB)(SA::Log)
Simple logger callback.
+
+ + + + diff --git a/_log_r_a_i_i_8hpp_source.html b/_log_r_a_i_i_8hpp_source.html new file mode 100644 index 0000000..73e9dbf --- /dev/null +++ b/_log_r_a_i_i_8hpp_source.html @@ -0,0 +1,132 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Log/LogRAII.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
LogRAII.hpp
+
+
+
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_LOG_RAII_GUARD
+
6#define SAPPHIRE_LOGGER_LOG_RAII_GUARD
+
7
+
8#include <SA/Logger/Preprocessors/LogMacro.hpp>
+
9
+
10namespace SA
+
11{
+
+
12 class LogRAII
+
13 {
+
14 Log mHandle;
+
15
+
16 public:
+
17 LogRAII(Log&& _log);
+
18 ~LogRAII();
+
19 };
+
+
20
+
22
+
23 #define __SA_SELECT_LOG_RAII_MACRO(_1, _2, _3, _4, _name, ...) _name
+
24
+
25 #define __SA_LOG_RAII4(_str, _lvl, _chan, _dets) __SA_CREATE_LOG(_str, _lvl, _chan, _dets)
+
26 #define __SA_LOG_RAII3(_str, _lvl, _chan) __SA_LOG_RAII4(_str, _lvl, _chan, L"")
+
27 #define __SA_LOG_RAII2(_str, _lvl) __SA_LOG_RAII3(_str, _lvl, Default)
+
28 #define __SA_LOG_RAII1(_str) __SA_LOG_RAII2(_str, Normal)
+
29
+
31
+
46 #define SA_LOG_RAII(...) SA::LogRAII __log_raii(\
+
47 __SA_SELECT_LOG_RAII_MACRO(__VA_ARGS__, __SA_LOG_RAII4, __SA_LOG_RAII3, __SA_LOG_RAII2, __SA_LOG_RAII1)(__VA_ARGS__)\
+
48 );
+
49}
+
50
+
51#endif // SAPPHIRE_LOGGER_LOG_RAII_GUARD
+
Log type implementation.
Definition Log.hpp:25
+
Definition LogRAII.hpp:13
+
+ + + + diff --git a/_logger_8hpp.html b/_logger_8hpp.html new file mode 100644 index 0000000..275f174 --- /dev/null +++ b/_logger_8hpp.html @@ -0,0 +1,123 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Logger.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Logger.hpp File Reference
+
+
+ +

Logger class implementation. +More...

+
#include <list>
+#include <SA/Logger/Streams/ALogStream.hpp>
+#include <SA/Logger/Exceptions/Exception.hpp>
+#include <SA/Logger/Logger.inl>
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  SA::Logger
 Basic Logger class implementation. More...
 
+ + + + +

+Namespaces

namespace  SA::Debug
 Global Debug namespace.
 
+ + + + +

+Variables

+LoggerSA::Debug::logger
 Logger instance.
 
+

Detailed Description

+

Logger class implementation.

+
+ + + + diff --git a/_logger_8hpp_source.html b/_logger_8hpp_source.html new file mode 100644 index 0000000..7ee4f57 --- /dev/null +++ b/_logger_8hpp_source.html @@ -0,0 +1,183 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Logger.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Logger.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_LOGGER_GUARD
+
6#define SAPPHIRE_LOGGER_LOGGER_GUARD
+
7
+
8#include <list>
+
9
+ + +
12
+
23namespace SA
+
24{
+
+
30 class Logger
+
31 {
+
32 protected:
+
33 std::list<ALogStream*> mStreams;
+
34
+
35 uint32_t mFrameNum = 0u;
+
36
+
37//{ Streams
+
38
+
45 virtual void ProcessLog(const SA::Log& _log, bool _bForce = false);
+
46
+
52 virtual void RegisterStream(ALogStream* _stream);
+
53
+
61 virtual bool UnregisterStream(ALogStream* _stream);
+
62
+
63//}
+
64
+
65 public:
+
70 virtual ~Logger();
+
71
+
77 virtual void Log(SA::Log _log);
+
78
+
88 template <typename ExcepT>
+
89 void Assert(ExcepT _exc);
+
90
+
91//{ Streams
+
92
+
102 template <typename StreamT, typename... Args>
+
103 StreamT& CreateSteam(Args&&... _args);
+
104
+
114 template <typename StreamT>
+
115 bool DestroyStream(StreamT& _stream, bool _bFlush = true);
+
116
+
122 void ClearStreams(bool _bFlush = true);
+
123
+
127 virtual void Flush();
+
128
+
129//}
+
130
+
131//{ Frame Num
+
132
+
133 void IncrementFrameNum();
+
134
+
135 uint32_t GetFrameNum() const;
+
136//}
+
137 };
+
+
138
+
+
140 namespace Debug
+
141 {
+
143 extern Logger* logger;
+
144 }
+
+
145}
+
146
+
147#include <SA/Logger/Logger.inl>
+
148
+
151#endif // GUARD
+
Log base stream implementation.
+
Default Exception type implementation.
+
Abstract log stream class.
Definition ALogStream.hpp:27
+
Log type implementation.
Definition Log.hpp:25
+
Basic Logger class implementation.
Definition Logger.hpp:31
+
StreamT & CreateSteam(Args &&... _args)
Create a new stream to output in.
+
virtual bool UnregisterStream(ALogStream *_stream)
Unregister a stream from output.
+
void Assert(ExcepT _exc)
Process exception.
+
virtual void Log(SA::Log _log)
Push a new log in logger.
+
virtual void ProcessLog(const SA::Log &_log, bool _bForce=false)
Process log to output.
+
virtual void RegisterStream(ALogStream *_stream)
Register a stream to output.
+
virtual void Flush()
Force logger to flush all streams.
+
void ClearStreams(bool _bFlush=true)
+
bool DestroyStream(StreamT &_stream, bool _bFlush=true)
Destroy a previously created stream.
+
virtual ~Logger()
Destructor Destroy all created log streams.
+
Logger * logger
Logger instance.
Definition LogMacro.hpp:29
+
+ + + + diff --git a/_logger_thread_8hpp.html b/_logger_thread_8hpp.html new file mode 100644 index 0000000..3c96775 --- /dev/null +++ b/_logger_thread_8hpp.html @@ -0,0 +1,110 @@ + + + + + + + +SA_Logger: Include/SA/Logger/LoggerThread.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
LoggerThread.hpp File Reference
+
+
+ +

Multithread Logger class implementation. +More...

+
#include <SA/Logger/Logger.hpp>
+#include <queue>
+#include <mutex>
+#include <atomic>
+#include <thread>
+#include <condition_variable>
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  SA::LoggerThread
 Multithread logger class. More...
 
+

Detailed Description

+

Multithread Logger class implementation.

+
+ + + + diff --git a/_logger_thread_8hpp_source.html b/_logger_thread_8hpp_source.html new file mode 100644 index 0000000..fa8718c --- /dev/null +++ b/_logger_thread_8hpp_source.html @@ -0,0 +1,163 @@ + + + + + + + +SA_Logger: Include/SA/Logger/LoggerThread.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
LoggerThread.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_LOGGER_THREAD_GUARD
+
6#define SAPPHIRE_LOGGER_LOGGER_THREAD_GUARD
+
7
+ +
9
+
10#include <queue>
+
11#include <mutex>
+
12#include <atomic>
+
13#include <thread>
+
14#include <condition_variable>
+
15
+
25namespace SA
+
26{
+
+
33 class LoggerThread : public Logger
+
34 {
+
35 //{ Thread
+
36
+
38 std::thread mThread;
+
39
+
41 std::atomic<bool> mIsRunning = true;
+
42
+
44 std::mutex mLogQueueMutex;
+
45
+
47 std::condition_variable mLogConditionVar;
+
48
+
50 std::queue<SA::Log> mLogQueue;
+
51
+
53 std::atomic<size_t> mQueueSize = 0;
+
54
+
55 void ThreadLoop();
+
56
+
57 //}
+
58
+
59 //{ Streams
+
60
+
62 std::mutex mStreamMutex;
+
63
+
64 void ProcessLog(const SA::Log& _log, bool _bForce = false) override final;
+
65
+
66 void RegisterStream(ALogStream* _stream) override final;
+
67 bool UnregisterStream(ALogStream* _stream) override final;
+
68
+
69 //}
+
70
+
71 public:
+
73 LoggerThread() noexcept;
+
74
+ +
80
+
81 void Log(SA::Log _log) override final;
+
82
+
83 void Flush() override final;
+
84 };
+
+
85}
+
86
+
87
+
90#endif // GUARD
+
Logger class implementation.
+
Abstract log stream class.
Definition ALogStream.hpp:27
+
Log type implementation.
Definition Log.hpp:25
+
Basic Logger class implementation.
Definition Logger.hpp:31
+
Multithread logger class.
Definition LoggerThread.hpp:34
+
LoggerThread() noexcept
Default Constructor.
+
void Flush() override final
Force logger to flush all streams.
+
+ + + + diff --git a/_string_format_8hpp_source.html b/_string_format_8hpp_source.html new file mode 100644 index 0000000..0a36b16 --- /dev/null +++ b/_string_format_8hpp_source.html @@ -0,0 +1,156 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Misc/StringFormat.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
StringFormat.hpp
+
+
+
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_STRING_FORMAT_GUARD
+
6#define SAPPHIRE_LOGGER_STRING_FORMAT_GUARD
+
7
+
8#include <string>
+
9
+
10namespace SA
+
11{
+
12 namespace Intl
+
13 {
+
14 template <typename StringT>
+
15 uint32_t ReplaceAllInString(StringT& _str, const StringT& _what, const StringT& _with){
+
16
+
17 uint32_t count = 0u;
+
18
+
19 for(typename StringT::size_type pos{}; (pos = _str.find(_what, pos)) != _str.npos; pos += _with.size())
+
20 {
+
21 _str.replace(pos, _what.size(), _with);
+
22 ++count;
+
23 }
+
24
+
25 return count;
+
26 }
+
27
+
28 template <typename FirstT, typename... Args>
+
29 void StringFormatImpl(std::wstring& _str, uint32_t _depth, FirstT&& _first, Args&&... _args)
+
30 {
+
31 const uint32_t count = Intl::ReplaceAllInString(_str, L'%' + std::to_wstring(_depth), ToWString(_first));
+
32
+
33 // No more args to parse.
+
34 // Must be constexpr for valid recursive compilation.
+
35 if constexpr (sizeof...(Args) == 0)
+
36 return;
+
37 else
+
38 {
+
39 // No more token to parse.
+
40 if(!count)
+
41 return;
+
42
+
43 StringFormatImpl(_str, _depth + 1, std::forward<Args>(_args)...);
+
44 }
+
45 }
+
46 }
+
47
+
48 template <typename FirstT, typename... Args>
+
49 std::wstring StringFormat(FirstT _first, Args&&... _args)
+
50 {
+
51 // Force convert to wstring. Input might be string or any object.
+
52 std::wstring str = SA::ToWString(std::forward<FirstT>(_first));
+
53
+
54 // Arguments means string formatting.
+
55 if constexpr (sizeof...(Args) != 0)
+
56 Intl::StringFormatImpl(str, 1u, std::forward<Args>(_args)...);
+
57
+
58 return str;
+
59 }
+
60}
+
61
+
62#endif // GUARD
+
std::wstring ToWString(const Log &_log)
ToWString implementation for log.
+
+ + + + diff --git a/_to_string_8hpp.html b/_to_string_8hpp.html new file mode 100644 index 0000000..df2a51e --- /dev/null +++ b/_to_string_8hpp.html @@ -0,0 +1,485 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Misc/ToString.hpp File Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ToString.hpp File Reference
+
+
+ +

Definition of Sapphire ToString methods. +More...

+
#include <cstdint>
+#include <string>
+#include <vector>
+#include <SA/Logger/Misc/ToString.inl>
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
std::string SA::ToStringBinary (const T &_elem) noexcept
 Binary ToString implementation.
 
template<typename T >
std::string SA::ToString (const T &_elem)
 ToString default implementation used to print elem.
 
template<typename T >
std::string SA::ToString (T *_ptr)
 ToString implementation used to print a pointer.
 
template<typename T >
std::string SA::ToString (const T *_elems, uint64_t _size)
 ToString implementation used to print an array.
 
template<typename T >
std::string SA::ToString (const std::vector< T > &_vec)
 ToString implementation used to print a vector.
 
template<typename T >
std::wstring SA::ToWString (const T &_elem) noexcept
 ToWString default implementation used to print elem.
 
template<typename T >
std::wstring SA::ToWString (T *_ptr) noexcept
 ToWString implementation used to print a pointer.
 
template<typename T >
std::wstring SA::ToWString (const T *_elems, uint64_t _size)
 ToWString implementation used to print an array.
 
template<typename T >
std::wstring SA::ToWString (const std::vector< T > &_vec)
 ToWString implementation used to print a vector.
 
+

Detailed Description

+

Definition of Sapphire ToString methods.

+

Function Documentation

+ +

◆ ToString() [1/4]

+ +
+
+
+template<typename T >
+ + + + + + + +
std::string SA::ToString (const std::vector< T > & _vec)
+
+ +

ToString implementation used to print a vector.

+
Template Parameters
+ + +
TType of the vector.
+
+
+
Parameters
+ + +
[in]_vecVector to convert to string.
+
+
+
Returns
std::string from vector converted.
+ +
+
+ +

◆ ToString() [2/4]

+ +
+
+
+template<typename T >
+ + + + + + + +
std::string SA::ToString (const T & _elem)
+
+ +

ToString default implementation used to print elem.

+

Convert basic types to string, otherwise make binary conversion.

+
Template Parameters
+ + +
TType of element.
+
+
+
Parameters
+ + +
[in]_elemElement to convert to string.
+
+
+
Returns
std::string from element converted.
+ +
+
+ +

◆ ToString() [3/4]

+ +
+
+
+template<typename T >
+ + + + + + + + + + + +
std::string SA::ToString (const T * _elems,
uint64_t _size )
+
+ +

ToString implementation used to print an array.

+
Template Parameters
+ + +
TType of the array.
+
+
+
Parameters
+ + + +
[in]_elemsArray pointer to convert to string.
[in]_sizeSize of the array.
+
+
+
Returns
std::string from array converted.
+ +
+
+ +

◆ ToString() [4/4]

+ +
+
+
+template<typename T >
+ + + + + + + +
std::string SA::ToString (T * _ptr)
+
+ +

ToString implementation used to print a pointer.

+
Template Parameters
+ + +
TType of the pointer.
+
+
+
Parameters
+ + +
[in]_ptrPointer to convert to string.
+
+
+
Returns
std::string from pointer converted.
+ +
+
+ +

◆ ToStringBinary()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
std::string SA::ToStringBinary (const T & _elem)
+
+noexcept
+
+ +

Binary ToString implementation.

+

Convert elem into bit array and print as hex values.

+
Template Parameters
+ + +
TType of element.
+
+
+
Parameters
+ + +
[in]_elemElement to convert to string.
+
+
+
Returns
std::string from element converted in binary.
+ +
+
+ +

◆ ToWString() [1/4]

+ +
+
+
+template<typename T >
+ + + + + + + +
std::wstring SA::ToWString (const std::vector< T > & _vec)
+
+ +

ToWString implementation used to print a vector.

+
Template Parameters
+ + +
TType of the vector.
+
+
+
Parameters
+ + +
[in]_vecVector to convert to wstring.
+
+
+
Returns
std::wstring from vector converted.
+ +
+
+ +

◆ ToWString() [2/4]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
std::wstring SA::ToWString (const T & _elem)
+
+noexcept
+
+ +

ToWString default implementation used to print elem.

+

Convert basic types to wstring, otherwise make binary conversion.

+
Template Parameters
+ + +
TType of element.
+
+
+
Parameters
+ + +
[in]_elemElement to convert to wstring.
+
+
+
Returns
std::wstring from element converted.
+ +
+
+ +

◆ ToWString() [3/4]

+ +
+
+
+template<typename T >
+ + + + + + + + + + + +
std::wstring SA::ToWString (const T * _elems,
uint64_t _size )
+
+ +

ToWString implementation used to print an array.

+
Template Parameters
+ + +
TType of the array.
+
+
+
Parameters
+ + + +
[in]_elemsArray pointer to convert to wstring.
[in]_sizeSize of the array.
+
+
+
Returns
std::wstring from array converted.
+ +
+
+ +

◆ ToWString() [4/4]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
std::wstring SA::ToWString (T * _ptr)
+
+noexcept
+
+ +

ToWString implementation used to print a pointer.

+
Template Parameters
+ + +
TType of pointer.
+
+
+
Parameters
+ + +
[in]_ptrPointer to convert to wstring.
+
+
+
Returns
std::wstring from pointer converted.
+ +
+
+
+ + + + diff --git a/_to_string_8hpp_source.html b/_to_string_8hpp_source.html new file mode 100644 index 0000000..7085f27 --- /dev/null +++ b/_to_string_8hpp_source.html @@ -0,0 +1,188 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Misc/ToString.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ToString.hpp
+
+
+Go to the documentation of this file.
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_TO_STRING_GUARD
+
6#define SAPPHIRE_LOGGER_TO_STRING_GUARD
+
7
+
8#include <cstdint>
+
9
+
10#include <string>
+
11#include <vector>
+
12
+
22namespace SA
+
23{
+
24
+
25//{ ToString
+
26
+
37 template <typename T>
+
38 std::string ToStringBinary(const T& _elem) noexcept;
+
39
+
41
+
42 namespace Intl
+
43 {
+
54 std::string ToStringBinary(const char* _data, uint64_t _size) noexcept;
+
55 }
+
56
+
58
+
59
+
70 template <typename T>
+
71 std::string ToString(const T& _elem);
+
72
+
81 template <typename T>
+
82 std::string ToString(T* _ptr);
+
83
+
93 template <typename T>
+
94 std::string ToString(const T* _elems, uint64_t _size);
+
95
+
104 template <typename T>
+
105 std::string ToString(const std::vector<T>& _vec);
+
106
+
107
+
109
+
111 std::string ToString(const char& _char);
+
112
+
114 std::string ToString(const char* _cstr);
+
115
+
117 std::string ToString(const std::string& _str) noexcept;
+
118
+
120 std::string ToString(std::string&& _str) noexcept;
+
121
+
123
+
124//}
+
125
+
126
+
127//{ ToWString
+
128
+
139 template <typename T>
+
140 std::wstring ToWString(const T& _elem) noexcept;
+
141
+
150 template <typename T>
+
151 std::wstring ToWString(T* _ptr) noexcept;
+
152
+
162 template <typename T>
+
163 std::wstring ToWString(const T* _elems, uint64_t _size);
+
164
+
173 template <typename T>
+
174 std::wstring ToWString(const std::vector<T>& _vec);
+
175
+
176
+
178
+
180 std::wstring ToWString(const char& _char);
+
181
+
183 std::wstring ToWString(const char* _cstr);
+
184
+
186 std::wstring ToWString(const wchar_t& _char);
+
187
+
189 std::wstring ToWString(const wchar_t* _cstr);
+
190
+
192 std::wstring ToWString(const std::string& _str);
+
193
+
195 std::wstring ToWString(const std::wstring& _str) noexcept;
+
196
+
198 std::wstring ToWString(std::wstring&& _str) noexcept;
+
199
+
201
+
202//}
+
203
+
204} // namespace SA
+
205
+
206#include <SA/Logger/Misc/ToString.inl>
+
207
+
210#endif // GUARD
+
std::wstring ToWString(const Log &_log)
ToWString implementation for log.
+
std::string ToString(LogLevel _lvl) noexcept
ToString implementation for LogLevel.
+
std::string ToStringBinary(const T &_elem) noexcept
Binary ToString implementation.
+
+ + + + diff --git a/_unparenthese_8hpp_source.html b/_unparenthese_8hpp_source.html new file mode 100644 index 0000000..e3cb76b --- /dev/null +++ b/_unparenthese_8hpp_source.html @@ -0,0 +1,112 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Preprocessors/Unparenthese.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Unparenthese.hpp
+
+
+
1// Copyright (c) 2023 Sapphire's Suite. All Rights Reserved.
+
2
+
3#pragma once
+
4
+
5#ifndef SAPPHIRE_LOGGER_UNPARENTHESES_GUARD
+
6#define SAPPHIRE_LOGGER_UNPARENTHESES_GUARD
+
7
+
8namespace SA
+
9{
+
11
+
20 #define __SA_EXTRACT(...) __SA_EXTRACT __VA_ARGS__
+
21 #define __SA_NOTHING__SA_EXTRACT
+
22 #define __SA_PASTE(_x, ...) _x ## __VA_ARGS__
+
23 #define __SA_EVAL_PASTE(_x, ...) __SA_PASTE(_x, __VA_ARGS__)
+
24 #define __SA_UNPARENT(_x) __SA_EVAL_PASTE(__SA_NOTHING, __SA_EXTRACT _x)
+
25
+
27}
+
28
+
29#endif // GUARD
+
+ + + + diff --git a/annotated.html b/annotated.html new file mode 100644 index 0000000..8ab0971 --- /dev/null +++ b/annotated.html @@ -0,0 +1,113 @@ + + + + + + + +SA_Logger: Class List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 123]
+ + + + + + + + + + + + + + + + + + + + + + + + + +
 NSA
 CALogStreamAbstract log stream class
 CConsoleColorTheme
 CConsoleLogStreamConsole log stream implementation
 CDateTimeDate time structure type
 CExceptionDefault (base) Exception type
 CBaseInfoBase exception create info
 CException_EqualsEquals exception base type
 CException_Equals0Equals 0 exception implementation
 CException_Equals1Equals 1 exception implementation
 CException_IsValidIsValid Exception type
 CException_NotEqualsNot Equals exception base type
 CException_NotEquals0Not Equals 0 exception implementation
 CException_NotEquals1Not Equals 1 exception implementation
 CException_NullptrNullptr Exception type
 CException_OutOfArrayRangeOutOfArrayRange Exception type
 CException_OutOfRangeOutOfRange Exception type
 CException_QueryBadAPIObject
 CException_ReachBadAPIReachBadAPI
 CFileLogStreamLog file stream type
 CLogLog type implementation
 CLogChannelFilter
 CLoggerBasic Logger class implementation
 CLoggerThreadMultithread logger class
 CLogRAII
+
+
+ + + + diff --git a/bc_s.png b/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/bc_sd.png b/bc_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..31ca888dc71049713b35c351933a8d0f36180bf1 GIT binary patch literal 635 zcmV->0)+jEP)Jwi0r1~gdSq#w{Bu1q z`craw(p2!hu$4C_$Oc3X(sI6e=9QSTwPt{G) z=htT&^~&c~L2~e{r5_5SYe7#Is-$ln>~Kd%$F#tC65?{LvQ}8O`A~RBB0N~`2M+waajO;5>3B&-viHGJeEK2TQOiPRa zfDKyqwMc4wfaEh4jt>H`nW_Zidwk@Bowp`}(VUaj-pSI(-1L>FJVsX}Yl9~JsqgsZ zUD9(rMwf23Gez6KPa|wwInZodP-2}9@fK0Ga_9{8SOjU&4l`pH4@qlQp83>>HT$xW zER^U>)MyV%t(Lu=`d=Y?{k1@}&r7ZGkFQ%z%N+sE9BtYjovzxyxCPxN6&@wLK{soQ zSmkj$aLI}miuE^p@~4}mg9OjDfGEkgY4~^XzLRUBB*O{+&vq<3v(E%+k_i%=`~j%{ Vj14gnt9}3g002ovPDHLkV1n!oC4m3{ literal 0 HcmV?d00001 diff --git a/class_s_a_1_1_a_log_stream-members.html b/class_s_a_1_1_a_log_stream-members.html new file mode 100644 index 0000000..e638ac4 --- /dev/null +++ b/class_s_a_1_1_a_log_stream-members.html @@ -0,0 +1,98 @@ + + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::ALogStream Member List
+
+
+ +

This is the complete list of members for SA::ALogStream, including all inherited members.

+ + + + + + + + +
channelFilterSA::ALogStream
Flush()SA::ALogStreamvirtual
levelFlagsSA::ALogStream
operator<<(const Log &_log)SA::ALogStream
Output(const Log &_log)=0SA::ALogStreamprotectedpure virtual
ProcessLog(const Log &_log, bool _bForce=false)SA::ALogStream
~ALogStream()=defaultSA::ALogStreamvirtual
+ + + + diff --git a/class_s_a_1_1_a_log_stream.html b/class_s_a_1_1_a_log_stream.html new file mode 100644 index 0000000..a047f5d --- /dev/null +++ b/class_s_a_1_1_a_log_stream.html @@ -0,0 +1,268 @@ + + + + + + + +SA_Logger: SA::ALogStream Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::ALogStream Class Referenceabstract
+
+
+ +

Abstract log stream class. + More...

+ +

#include <ALogStream.hpp>

+
+Inheritance diagram for SA::ALogStream:
+
+
+ + +SA::ConsoleLogStream +SA::FileLogStream + +
+ + + + + + + + + + + + + + +

+Public Member Functions

+virtual ~ALogStream ()=default
 Default virtual destructor.
 
void ProcessLog (const Log &_log, bool _bForce=false)
 Process a log to output in stream.
 
virtual void Flush ()
 Force the stream to flush.
 
ALogStreamoperator<< (const Log &_log)
 Output log operator.
 
+ + + + + + + +

+Public Attributes

+LogChannelFilter channelFilter
 Channel filter used for log in stream.
 
+uint8_t levelFlags = LogLevel::Default
 Level filter used for log in stream.
 
+ + + + +

+Protected Member Functions

virtual void Output (const Log &_log)=0
 Output a log in stream.
 
+

Detailed Description

+

Abstract log stream class.

+

Member Function Documentation

+ +

◆ Flush()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void SA::ALogStream::Flush ()
+
+virtual
+
+ +

Force the stream to flush.

+ +

Reimplemented in SA::ConsoleLogStream, and SA::FileLogStream.

+ +
+
+ +

◆ operator<<()

+ +
+
+ + + + + + + +
ALogStream & SA::ALogStream::operator<< (const Log & _log)
+
+ +

Output log operator.

+
Parameters
+ + +
[in]_logLog to output.
+
+
+
Returns
this.
+ +
+
+ +

◆ Output()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void SA::ALogStream::Output (const Log & _log)
+
+protectedpure virtual
+
+ +

Output a log in stream.

+
Parameters
+ + +
[in]_logLog to output.
+
+
+ +

Implemented in SA::FileLogStream.

+ +
+
+ +

◆ ProcessLog()

+ +
+
+ + + + + + + + + + + +
void SA::ALogStream::ProcessLog (const Log & _log,
bool _bForce = false )
+
+ +

Process a log to output in stream.

+
Parameters
+ + + +
[in]_logLog to process.
[in]_bForceShould force log process. Default is false.
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_a_log_stream.png b/class_s_a_1_1_a_log_stream.png new file mode 100644 index 0000000000000000000000000000000000000000..52bd1e78e1ce609e8f2d7d87c03778d6cbcff803 GIT binary patch literal 963 zcmeAS@N?(olHy`uVBq!ia0y~yU{nFJ12~w0Wc%YEdx4a6fKQ0)|NsAi%olIImi8Z7 zZegHVATj;Siw6%L0L4wuhAjcgah3%61v3EoU|`NP`w9aCv!ADnV@L(#+qn<>niT}t zj`tsV^V|O8R&|c3lD*f|wrv+bwwbHM`oO#RhRqUfi92{0!cz>4cXKG7Jaa}-W#&xF z78PUT_6aFz&ptFxdiPZA{>;eB%liK|R$eH6W$%CKeRoY{$tn5W%%^A9tFGL-Nm29t z_S;)e{j4>!)yQA|ckBE2%Kgz>r)K7*%YUAI(%H6q@`|!Mu}@Czn0fWv#7^t?O;2y$ zni5iUH6bl~)ychUzbw3(drPpGO@C#j|D~eSQ_uZmsGGecm2ckev+}zq-E#bE{PVo( zRGBNDaq-%k@)KL9UW+WAlvO&L{p_KvQthp8Ul&c9c{4F?-mBZHYrPiCym|lUuen=R zG^C~Ze~|B+J@ckF+&2P~&YY2Pnly9f;ZjxJ!v-;|4ewJ~I2g8ZdNTa(NseH;p{m08 zrnp#S8pAgZPX@h(90wFt7%f^<7}_VWJP??~Amb#|;OxOv0F>lY4J+-`5|I>HK0kJ0a@*1+HP`>&+QV@`-2A(qxxAB9rf+|{#NHj~lyZ4^(0mqIhZ + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::ConsoleLogStream Member List
+
+
+ +

This is the complete list of members for SA::ConsoleLogStream, including all inherited members.

+ + + + + + + + +
channelFilterSA::ALogStream
Flush() override finalSA::ConsoleLogStreamvirtual
levelFlagsSA::ALogStream
operator<<(const Log &_log)SA::ALogStream
ProcessLog(const Log &_log, bool _bForce=false)SA::ALogStream
themeSA::ConsoleLogStream
~ALogStream()=defaultSA::ALogStreamvirtual
+ + + + diff --git a/class_s_a_1_1_console_log_stream.html b/class_s_a_1_1_console_log_stream.html new file mode 100644 index 0000000..f4d8ba7 --- /dev/null +++ b/class_s_a_1_1_console_log_stream.html @@ -0,0 +1,178 @@ + + + + + + + +SA_Logger: SA::ConsoleLogStream Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::ConsoleLogStream Class Reference
+
+
+ +

Console log stream implementation. + More...

+ +

#include <ConsoleLogStream.hpp>

+
+Inheritance diagram for SA::ConsoleLogStream:
+
+
+ + +SA::ALogStream + +
+ + + + + + + + + + + + + + + +

+Public Member Functions

void Flush () override final
 Force the stream to flush.
 
- Public Member Functions inherited from SA::ALogStream
+virtual ~ALogStream ()=default
 Default virtual destructor.
 
void ProcessLog (const Log &_log, bool _bForce=false)
 Process a log to output in stream.
 
ALogStreamoperator<< (const Log &_log)
 Output log operator.
 
+ + + + + + + + + + + +

+Public Attributes

+ConsoleColorTheme theme
 Color theme.
 
- Public Attributes inherited from SA::ALogStream
+LogChannelFilter channelFilter
 Channel filter used for log in stream.
 
+uint8_t levelFlags = LogLevel::Default
 Level filter used for log in stream.
 
+ +

+Additional Inherited Members

+

Detailed Description

+

Console log stream implementation.

+

Member Function Documentation

+ +

◆ Flush()

+ +
+
+ + + + + +
+ + + + + + + +
void SA::ConsoleLogStream::Flush ()
+
+finaloverridevirtual
+
+ +

Force the stream to flush.

+ +

Reimplemented from SA::ALogStream.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_console_log_stream.png b/class_s_a_1_1_console_log_stream.png new file mode 100644 index 0000000000000000000000000000000000000000..0802d6f4cb2a226143b7417d86ea000443ba1447 GIT binary patch literal 677 zcmV;W0$TlvP)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0006o zNklyGOn41|Y4s^t!-tZ`}>;$!BQB?GI>b1n<{Q@f<4y z_OwLo9Q6F8I#$)tZ5y{IWy5}qg=k#&AYNP}+1q&*SHI?CIi#_CN+efx*dO|?ahtk;xP z)b+d}$+vawCG!cI>o4Gs#Ad2HlDwe!hLfbPpdm?L+tK8l^DY8_U(gKzw$WBJx7$uQ zThZKMHp1D9CTa=*jubQi;45eVz*o=!fUlqd0AE1^0KS3-0DJ`v0Qd?T0Pqzw0N^WV z0Kiw!0D!OmlP0Bzy}d)T+WKPSb>4V1o+a;nGdgamzt+!jP4z?QHPtK+7VXa} z%FP=|`dxj``X_1Ld;$N}ck1OgMbgyb8!kz{f<}^jZAX(*O1tPE(A{)_tyVo?00000 LNkvXXu0mjfzgR{m literal 0 HcmV?d00001 diff --git a/class_s_a_1_1_exception-members.html b/class_s_a_1_1_exception-members.html new file mode 100644 index 0000000..73a36d3 --- /dev/null +++ b/class_s_a_1_1_exception-members.html @@ -0,0 +1,103 @@ + + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::Exception Member List
+
+
+ +

This is the complete list of members for SA::Exception, including all inherited members.

+ + + + + + + + + + + + + +
backtraceSA::Log
chanNameSA::Log
dateSA::Log
detailsSA::Log
Exception(BaseInfo _info, bool _pred, std::wstring _msg=L"") noexceptSA::Exception
fileSA::Log
frameNumSA::Log
functionSA::Log
levelSA::Log
lineSA::Log
Log(std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexceptSA::Log
msgSA::Log
+ + + + diff --git a/class_s_a_1_1_exception.html b/class_s_a_1_1_exception.html new file mode 100644 index 0000000..08cfc5a --- /dev/null +++ b/class_s_a_1_1_exception.html @@ -0,0 +1,227 @@ + + + + + + + +SA_Logger: SA::Exception Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::Exception Class Reference
+
+
+ +

Default (base) Exception type. + More...

+ +

#include <Exception.hpp>

+
+Inheritance diagram for SA::Exception:
+
+
+ + +SA::Log +SA::Exception_Equals +SA::Exception_IsValid +SA::Exception_NotEquals +SA::Exception_Nullptr +SA::Exception_OutOfRange +SA::Exception_ReachBadAPI +SA::Exception_Equals0 +SA::Exception_Equals1 +SA::Exception_NotEquals0 +SA::Exception_NotEquals1 +SA::Exception_OutOfArrayRange +SA::Exception_QueryBadAPIObject + +
+ + + + + +

+Classes

struct  BaseInfo
 Base exception create info. More...
 
+ + + + + + + +

+Public Member Functions

 Exception (BaseInfo _info, bool _pred, std::wstring _msg=L"") noexcept
 
- Public Member Functions inherited from SA::Log
 Log (std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexcept
 Value Move Constructor.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from SA::Log
+std::wstring file
 File name.
 
+uint32_t line = 0u
 Line number.
 
+std::string function
 Function name.
 
+std::wstring msg = L"Hello, World!"
 User string message.
 
+LogLevel level = LogLevel::Normal
 Output level.
 
+std::wstring chanName = L"Default"
 Output channel name.
 
+std::wstring details
 Additional details string.
 
+uint32_t frameNum = 0u
 Frame number.
 
+std::string backtrace
 backtracing of logging call.
 
+DateTime date
 Date time.
 
+

Detailed Description

+

Default (base) Exception type.

+

Constructor & Destructor Documentation

+ +

◆ Exception()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
SA::Exception::Exception (BaseInfo _info,
bool _pred,
std::wstring _msg = L"" )
+
+noexcept
+
+

Value Constructor.

+
Parameters
+ + + + +
[in]_infoBase create info.
[in]_predPredicate used for assertion.
[in]_msgMessage to display on assertion.
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_exception.png b/class_s_a_1_1_exception.png new file mode 100644 index 0000000000000000000000000000000000000000..88ae977bd59e83d903dc87f0c4f4926030d6120f GIT binary patch literal 4315 zcmdT|c~sL^_Gfg^iVC*wb)o(yRw@ceSY!)zs|{PIs0?f1CxixBWD5oZ8F9(XxWtA6 zCLu&x2|ARerhtKvh_OaW0xdxx#t;xl8UhIrNJz7M=bK>r$DH5%et-PVoHKLJ$-D1< z-@EtS_ul8-dr$rn8F6yG!}|_)c6RIGpB_JDXJ=0a`%m6k3AUe|rY(YOM`YOP6952! z-Jhoy3y4qa4tsobVOyo(=h4wo@VmG0?0s--P5!BfC_7NLk?#uXfSuh26#V#+(-(g? zBmL>rykN!epI}a%Fjx>c(|4T?; zt#F;az5Nw5^w^OjN4hFr2_iviuJwU#0x9F6ZPY$4wvLP(vFMuQab+pRnJBBWV876m z*k!~s{j-*JS&I}bkX}PZCc2Y`nkKACjIBO*$poRg#I8e z?YATZ1*?l8y@pe_J2*J3VxEO+sCpUFCOL3gLZIBOY7Q=KQG&W&3Q```M;mGzOs_?i z)W6pEn=|Cc-qrZxz2+r=ZNY(9VHKoud6`VH0ElJTHqnv_RZOOq|F_NCuFrikvb*J zNs9Yi&TGZv2~LO}<9#lo&1T{LTMJQ8&7}h5_xywWS1>Ove|bL-I()Q7Kix}z_la?> zf}pKiM%5J%-Ac5X!)9}OooyRm3dRuk<5XgN_@xZFdEBfSmS~LA^bsF!@XQXQcGjk6 za&8ZWazVEf(}Yc#R_u2r{lgyG%n18^zQ)2q%$4TtmuFE6|Qty zVk&m?7*`H?@45+wk2a;lWm{KyFDWMaotqDpNnzou?R(mfTKTzjf0sWFZe9WMZBe2l zU5^?!fV}H2#nGXn;Mx zL*j7}*h-^pZKINbrl`?3@|!sy!K-_4*C5?_=yu5VDAC^TyRQWBTxuimn{>f9VGrE% z4kMIw$UA`q?zsxmru+r*tF*3Aw3!51`J1{$B{a?J+VBOfi_JmsE$rf7q>jP6%vyNa zM1646oik5qoWp8NpuGL&5F^fg09|1Wdn0R7pPXc;q7$pKZh2^#yAfvA%#2bm+SlFY z7Sa}b8PZMSwG~U#U>yV^7g!I>p)7X=L_BlD)-Z)rhbe#I4^*u5!rEv9-7}G#MT_J! zEhDRmXgOaI|1CLs4KzSCXI8Y9`NDHML;D*FZ<%q039r&DP)Fc-mfT$5w9>deoBNf% zum+C+61iMzrZF}V&>7-Cr0bi{YsP)OweOGJ-n!IXL+BgKmKzEF1;oWBv3bv(+ zU#I7fJr-#~Nc4o40@nl-9gSk@=1^xv`v~+ZD4dg%18pK@=r(S3L=G!h6hq#}s5Ws- z^>~L^6zYi=w9nG$EvP_cwjQlS_{sLbwqTh>#R$Wz1f&>5;Eb7ta1-7 z7@!t{Hz$yA<4^NlH@{H&apN&P;@haYPf1M{qtI0FUK%!H6{h52VslEb+m!exRRaL= zYx(4{xf}LKND6vDj&^9dcuVI07hj?DN-pd^Il4nok}l^ZD(V88S|Nt1H~FeC(Km^~ z#DE#Sb}#G47d#*B9$8H~2cuHnsk$jRBMfx@adrOC4`aGIm>ZGctxd0SL(5hB=K6%D zCsit6Eu~WIE;KF9mcheFns`!HXG%|ksg}%*AtOcvObc0dzN}I_&PSC<3>QC5%*8>v zuMMK*TtYy=B=(X15{48nZxrHsZWfbkFNM7c5#k6{%ub*vsxt}-91_ryH|7%Q zR7mt6gQdcntixR^73#iVt!D0QSerV8{qwYItz`85P*NU%5Sntn4m6w46zoUwq}Lfe zD2~U#tk9I#+eI-9mM>{u04Qh^=GNYB7Ep(ZAmt%M0{El99;Eug-8^v6eck$1=j9Mq zckQHp791vEIbh2#ns`Zr5MSoQJsH*r(E_^XlK}iCjb*hTC8c~2UI{suZVfP?u`JOd z{a0zbn&Aq8uj>C*J%~fDLsP25tWoOLLu-_Jz5tLMtGgW?u8UY#4h8977ofRZ;rtEHtrNi-DJkY(+D~=?bBg}iD0&9dA>DYTRMJ9DcA7@UV z{-`5(JG;+;k78j%IN0VRY;C~sGq9dKm;Vqf!==4o0iFs=h0n)R+~Ci@O9nxdht<{g ze-ui(?DaO66!wEKs`;*iloFPSddzhzhiv~8M9Fm&I)!tL4xgKhufnzO&`LO9g9PoFzkYD%u8 z-?o^hp=U@YHA2WvZm-V@h^~#>Hz4-bjsJ~<*}@Mm>^@*QNx_z1rqUKOIK++k`2u+E zRO!4W=V9Q7(WI)F;Z$p?+42bl9${`Fa~)^dMxfYOg4Sfe2UJ@+OYpvu*5*h0I+}*X zjodvbpx*D;FL7>HS!yCmcVasG4meWPU&WZ*y|p3d&CEZc{-B>j=?XM`&VW30d^mQW zBG}N6q+(~{`5Sj`<%ykwO>eHDs_B`nf4a^6`OZ8AWifTuox{G9g9GbGxSS|%WuBOy z>k|KzcJjmSy_Nxiq&5!BlMXGLCL)-JGupqPV1+FluiSmoMT42ZL(nU@d1%9d1LY?t ze_`*zYk5v<5T116i^?V%P4xo`1_|EvbsI@0OGin#aUA3)OBWU_i3PCt2yxRZDOhIy zc^~cm8csTi$;R9B0fw37~O9(Xoc&8Wo824Gk~Xrh_} zs>~_Zs_+V|(fr-%!I%wegC}qr=82qFFZPW$=PS5i&5XpiIwH8bg$4X{V;S{D|BNS` zqpw4axJmyiWXC=TZC4?FI|a)zs54hRoPx}{i0s3A_6NI_FXqx3{>*eLSsGKEGzEs# zduf##6T1`Q&g2uNi>=zZJM4*xZ^4{T&SIiCdj~2%D5QL!EDAzEft=BZDU8q2y3M9G z6wFVGq#8z8B^h$w?X_(>-i>UI&Piy(G~&|&3{Um4S&muD@6<5yMG`jft}~)8FaNM2 zgDwUW3!k~yc5gcvaZTi*H3jjh^p25C5Q@H$&?e6d^fa1`3u`MD35=fwigW#2706%4 zPsJP>8glleF7j6RJre`Sbh-G?JGs*nTZ^ZQ&wvlJpz&{2uKEa4D&899d!rZ~hO`k( zDL~Di{kY9h-g!2gbigoa3U!vHKFnZ$zzHs4qAZVzv=U38Fz`aV>ge8X@)4@xC*|nn z!SnL9tKGmu6^#Kf$vv`rPfIK_dl0NE)mVxjym!3}>|Q=%O)NixkN=X~M zSF5xJ5^x7)Hc46zrWz>ET<{Rm{qYC|OJOLx1&jTc3Tkym)1oFy_l)t7v) VoE=_a1pkJxgP({v-gq>r^zXJ+!KwfN literal 0 HcmV?d00001 diff --git a/class_s_a_1_1_exception___equals-members.html b/class_s_a_1_1_exception___equals-members.html new file mode 100644 index 0000000..b31eeb9 --- /dev/null +++ b/class_s_a_1_1_exception___equals-members.html @@ -0,0 +1,106 @@ + + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::Exception_Equals Member List
+
+
+ +

This is the complete list of members for SA::Exception_Equals, including all inherited members.

+ + + + + + + + + + + + + + + + +
backtraceSA::Log
chanNameSA::Log
dateSA::Log
detailsSA::Log
Exception(BaseInfo _info, bool _pred, std::wstring _msg=L"") noexceptSA::Exception
Exception_Equals(BaseInfo _info, const T &_lhs, const T &_rhs, std::wstring _predStr=L"pred") noexceptSA::Exception_Equalsinline
Exception_Equals(BaseInfo _info, float _lhs, float _rhs, std::wstring _predStr=L"pred") noexceptSA::Exception_Equals
Exception_Equals(BaseInfo _info, double _lhs, double _rhs, std::wstring _predStr=L"pred") noexceptSA::Exception_Equals
fileSA::Log
frameNumSA::Log
functionSA::Log
levelSA::Log
lineSA::Log
Log(std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexceptSA::Log
msgSA::Log
+ + + + diff --git a/class_s_a_1_1_exception___equals.html b/class_s_a_1_1_exception___equals.html new file mode 100644 index 0000000..8c66dcc --- /dev/null +++ b/class_s_a_1_1_exception___equals.html @@ -0,0 +1,334 @@ + + + + + + + +SA_Logger: SA::Exception_Equals Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::Exception_Equals Class Reference
+
+
+ +

Equals exception base type. + More...

+ +

#include <Exception_Equals.hpp>

+
+Inheritance diagram for SA::Exception_Equals:
+
+
+ + +SA::Exception +SA::Log +SA::Exception_Equals0 +SA::Exception_Equals1 + +
+ + + + + + + + + + + + + + + + +

+Public Member Functions

template<typename T >
 Exception_Equals (BaseInfo _info, const T &_lhs, const T &_rhs, std::wstring _predStr=L"pred") noexcept
 
 Exception_Equals (BaseInfo _info, float _lhs, float _rhs, std::wstring _predStr=L"pred") noexcept
 
 Exception_Equals (BaseInfo _info, double _lhs, double _rhs, std::wstring _predStr=L"pred") noexcept
 
- Public Member Functions inherited from SA::Exception
 Exception (BaseInfo _info, bool _pred, std::wstring _msg=L"") noexcept
 
- Public Member Functions inherited from SA::Log
 Log (std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexcept
 Value Move Constructor.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from SA::Log
+std::wstring file
 File name.
 
+uint32_t line = 0u
 Line number.
 
+std::string function
 Function name.
 
+std::wstring msg = L"Hello, World!"
 User string message.
 
+LogLevel level = LogLevel::Normal
 Output level.
 
+std::wstring chanName = L"Default"
 Output channel name.
 
+std::wstring details
 Additional details string.
 
+uint32_t frameNum = 0u
 Frame number.
 
+std::string backtrace
 backtracing of logging call.
 
+DateTime date
 Date time.
 
+

Detailed Description

+

Equals exception base type.

+

Constructor & Destructor Documentation

+ +

◆ Exception_Equals() [1/3]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
SA::Exception_Equals::Exception_Equals (BaseInfo _info,
const T & _lhs,
const T & _rhs,
std::wstring _predStr = L"pred" )
+
+inlinenoexcept
+
+

Template value Constructor.

+

Use default operator==

+
Template Parameters
+ + +
TOperands type.
+
+
+
Parameters
+ + + + + +
[in]_infoBase create info.
[in]_lhsLeft hand side operand.
[in]_rhsLeft hand side operand.
[in]_predStrPredicate as a string.
+
+
+ +
+
+ +

◆ Exception_Equals() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
SA::Exception_Equals::Exception_Equals (BaseInfo _info,
float _lhs,
float _rhs,
std::wstring _predStr = L"pred" )
+
+noexcept
+
+

Float value Constructor.

+

Perform NearlyEquals (epsilon).

+
Parameters
+ + + + + +
[in]_infoBase create info.
[in]_lhsLeft hand side float operand.
[in]_rhsLeft hand side float operand.
[in]_predStrPredicate as a string.
+
+
+ +
+
+ +

◆ Exception_Equals() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
SA::Exception_Equals::Exception_Equals (BaseInfo _info,
double _lhs,
double _rhs,
std::wstring _predStr = L"pred" )
+
+noexcept
+
+

Double value move Constructor.

+

Perform NearlyEquals (epsilon).

+
Parameters
+ + + + + +
[in]_infoBase create info.
[in]_lhsLeft hand side double operand.
[in]_rhsLeft hand side double operand.
[in]_predStrPredicate as a string.
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_exception___equals.png b/class_s_a_1_1_exception___equals.png new file mode 100644 index 0000000000000000000000000000000000000000..9ac6d31c691151b48d539f81357c96739395889f GIT binary patch literal 1556 zcmd6nYgE!_9LN7OJIm6%%$-^0atv{JTRUQAIn8WGJ@bXiI>TVz-N zCNzv%^KTvI1+fJJ(UOkc5K{_`3erjpOR7y~*-?g_(~fU;&R*=ro^!t6&*%3%?|v_y z0~->Eu5%a8g&@ck#6?pe2!(O@FRUpQr$T6cPQ_btu^iM?6(v5x1tKDGx;3pB5I-}o{lFEQ_|psZ@ED0e)M;ZU z8C_J}UZnKb&qQYpwsAIV@uuwuc{kg`_pZ91LK2uba1kFIL|$|whE82a2%sp*srbkf zWU9_yJ!Xs&B^!bn1(f|N1<;+R!Wj0;5iD3Rsty3_U+o*h0&y0Ak8hrl{B+Q8yub@0 z@aOG8-Mt1w6X~H+r=HGf@ilm^b|cM-lc4uFInavvZ&B&SPm0IwM-6bjK;#@A1~|{m za4kOFKGM6jXdxeQZAp3i5yo=lcDzEBH_0%)IndAP?Xmdl>xrO7E!gzf8Y!7?>=t|l zM)J)CX}gmIYiZpAqu+(JFf4d`Qof@X8&8zV56ps2wo zydi+X{#5zSFJ#S?ZHT^&KZe{2m5Ih51SE_Cp?-AuT!xWwDFEpHc*0a+Snv1uk_=-k zod4HG@h(^Ly`dx5-92`=2jkG_4j7I0{9C&HEO})jBI}9lH!e4$C1o5tW-a$7e2?5u zoMh-@qQ@-jEXFb#usu!GA+6@lc4b1-*Ru1u&j-)QA|Bgv%&gbjhNKs%4LD?|$>8cS z+IOfKbNG|w67f9SqQlDE8)Y>qM&J#KQJO`0ojwmXYf`sFdoty6R&T#(@g|f57e*L^D(nfrj=E z{&e~w40#4S`*r+l42so(4aXlA;->3PYZb<~G8xABI+0*xW-4QJ`IC)At?hI#BOPAa zPB+%|D0eNOpWPN$nn~3R23wX=I8to9ZmAHbQVug$eQ0}Hgd$e?e3G4B~0XeVGVI~||>>f16)X50inYZPzAviXMW`6aw+ z`FJxkPai1=l?MlEZx{QFE7kX&0eEbs_UAz0e5=c3nI7!uCXR>pwa6-7yjo{>)BK15 z8Ree?c#5~G8Ur{7{Q;$7M%0@qxQ0dhV&AnLx_d$sSlx9j%<+FiASNNYW$osQzX013 B!9D;0 literal 0 HcmV?d00001 diff --git a/class_s_a_1_1_exception___equals0-members.html b/class_s_a_1_1_exception___equals0-members.html new file mode 100644 index 0000000..2ecd60e --- /dev/null +++ b/class_s_a_1_1_exception___equals0-members.html @@ -0,0 +1,107 @@ + + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::Exception_Equals0 Member List
+
+
+ +

This is the complete list of members for SA::Exception_Equals0, including all inherited members.

+ + + + + + + + + + + + + + + + + +
backtraceSA::Log
chanNameSA::Log
dateSA::Log
detailsSA::Log
Exception(BaseInfo _info, bool _pred, std::wstring _msg=L"") noexceptSA::Exception
Exception_Equals(BaseInfo _info, const T &_lhs, const T &_rhs, std::wstring _predStr=L"pred") noexceptSA::Exception_Equalsinline
Exception_Equals(BaseInfo _info, float _lhs, float _rhs, std::wstring _predStr=L"pred") noexceptSA::Exception_Equals
Exception_Equals(BaseInfo _info, double _lhs, double _rhs, std::wstring _predStr=L"pred") noexceptSA::Exception_Equals
Exception_Equals0(BaseInfo _info, const T &_lhs, std::wstring _predStr=L"pred") noexceptSA::Exception_Equals0inline
fileSA::Log
frameNumSA::Log
functionSA::Log
levelSA::Log
lineSA::Log
Log(std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexceptSA::Log
msgSA::Log
+ + + + diff --git a/class_s_a_1_1_exception___equals0.html b/class_s_a_1_1_exception___equals0.html new file mode 100644 index 0000000..b741ed3 --- /dev/null +++ b/class_s_a_1_1_exception___equals0.html @@ -0,0 +1,230 @@ + + + + + + + +SA_Logger: SA::Exception_Equals0 Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::Exception_Equals0 Class Reference
+
+
+ +

Equals 0 exception implementation. + More...

+ +

#include <Exception_Equals0.hpp>

+
+Inheritance diagram for SA::Exception_Equals0:
+
+
+ + +SA::Exception_Equals +SA::Exception +SA::Log + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

template<typename T >
 Exception_Equals0 (BaseInfo _info, const T &_lhs, std::wstring _predStr=L"pred") noexcept
 
- Public Member Functions inherited from SA::Exception_Equals
template<typename T >
 Exception_Equals (BaseInfo _info, const T &_lhs, const T &_rhs, std::wstring _predStr=L"pred") noexcept
 
 Exception_Equals (BaseInfo _info, float _lhs, float _rhs, std::wstring _predStr=L"pred") noexcept
 
 Exception_Equals (BaseInfo _info, double _lhs, double _rhs, std::wstring _predStr=L"pred") noexcept
 
- Public Member Functions inherited from SA::Exception
 Exception (BaseInfo _info, bool _pred, std::wstring _msg=L"") noexcept
 
- Public Member Functions inherited from SA::Log
 Log (std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexcept
 Value Move Constructor.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from SA::Log
+std::wstring file
 File name.
 
+uint32_t line = 0u
 Line number.
 
+std::string function
 Function name.
 
+std::wstring msg = L"Hello, World!"
 User string message.
 
+LogLevel level = LogLevel::Normal
 Output level.
 
+std::wstring chanName = L"Default"
 Output channel name.
 
+std::wstring details
 Additional details string.
 
+uint32_t frameNum = 0u
 Frame number.
 
+std::string backtrace
 backtracing of logging call.
 
+DateTime date
 Date time.
 
+

Detailed Description

+

Equals 0 exception implementation.

+

Constructor & Destructor Documentation

+ +

◆ Exception_Equals0()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + +
SA::Exception_Equals0::Exception_Equals0 (BaseInfo _info,
const T & _lhs,
std::wstring _predStr = L"pred" )
+
+inlinenoexcept
+
+

Template value move Constructor.

+
Template Parameters
+ + +
TOperands type.
+
+
+
Parameters
+ + + + +
[in]_infoBase create info.
[in]_lhsLeft hand side operand to compare to T().
[in]_predStrPredicate as a string.
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_exception___equals0.png b/class_s_a_1_1_exception___equals0.png new file mode 100644 index 0000000000000000000000000000000000000000..e9be746abd4c9e29d5a7e77ed2d299db8fae9154 GIT binary patch literal 1157 zcmeAS@N?(olHy`uVBq!ia0vp^y+C|`gBeKjxe2HODd_;85ZC|z{{xvX-h3_XKeXJ! zK(jz%`k5CG9y|bwo1P6@0+iz{3GxeO0P?}WoN4wI1_l-ZPZ!6K3dXl{U-zvx;9+am z7drLZ{^LS{4$ihqwz=j}JCnFtV%TnH{+|@&b=P6i5}xwDfuW_($K_T^F)8cl&Pr8I-flHQVz4 zyt7i%Q#aIHVcoZ(#huNr2j)IT_6hI}?q4<`-Sv zvhMAqCkD2A-zj)n&%1p_c$&WP&)(9wke&I#>-x-AXLnvMnq@U@+0S!ZJTI|sHwqQk zn;~<>x>!o3dWM;&)$=gX>EG|MXRV$6=~-CC^F8^KmlWr{TPaj1{N`;|`sR|K3(kf~ z_8w6Tj_cT$lWcZ-@~+C@W!HY)XkT>Y?9q8uH8*X)?%OqS$?rY?oQ2IMm3aPX_nzc` z!()hKZJtgQB z+a#4zCy<#yeEwY847;bNN-Ck=wtZb-`s+eY?z8r%r%U#TRbG3V^`&@rQR$Y**weH1 zmak0Cob}%4cH*U-=RfWFHfOfKacH^*-2dB-rBz<&$t%7SQds%EcEPnX`R_MRzPg}l zMzHZNmt6D13-9n%uR3y(<-)OD=Tfil*s}5SEuXcv=Z&_8x+xc)m?FMtdd``bCc)Ru z(l*4Z*Y#ii%{VJG z`S0iZn8SIq}s;&Mk|P%?-Q$N$PawtB6_8tS^_ve7u+*TlUt{{I}U{on_4@ z9rqe9S4^*-0S!F2ZJ{yucAw3x6tzAvf7{GkJ$iw+&u++^e

Rzdz4O*h+p z$zWzw^}N)q)ji3bTlI^1E_$0iE19)2TYB@&c~{QPJR4*l=i$HVhRWiySV+j_9KIJa zcjc2^htK5v{~i73)(Pvq_Q{)%r2PN$J*Vj0&Zn1w-ue@FNbUKYS}>tDJ5i!7?g#s( X$~8``XDj@H1qOqstDnm{r-UW|O{PVg literal 0 HcmV?d00001 diff --git a/class_s_a_1_1_exception___equals1-members.html b/class_s_a_1_1_exception___equals1-members.html new file mode 100644 index 0000000..0856fba --- /dev/null +++ b/class_s_a_1_1_exception___equals1-members.html @@ -0,0 +1,107 @@ + + + + + + + +SA_Logger: Member List + + + + + + + + + + + +

+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::Exception_Equals1 Member List
+
+
+ +

This is the complete list of members for SA::Exception_Equals1, including all inherited members.

+ + + + + + + + + + + + + + + + + +
backtraceSA::Log
chanNameSA::Log
dateSA::Log
detailsSA::Log
Exception(BaseInfo _info, bool _pred, std::wstring _msg=L"") noexceptSA::Exception
Exception_Equals(BaseInfo _info, const T &_lhs, const T &_rhs, std::wstring _predStr=L"pred") noexceptSA::Exception_Equalsinline
Exception_Equals(BaseInfo _info, float _lhs, float _rhs, std::wstring _predStr=L"pred") noexceptSA::Exception_Equals
Exception_Equals(BaseInfo _info, double _lhs, double _rhs, std::wstring _predStr=L"pred") noexceptSA::Exception_Equals
Exception_Equals1(BaseInfo _info, const T &_lhs, std::wstring _predStr=L"pred") noexceptSA::Exception_Equals1inline
fileSA::Log
frameNumSA::Log
functionSA::Log
levelSA::Log
lineSA::Log
Log(std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexceptSA::Log
msgSA::Log
+ + + + diff --git a/class_s_a_1_1_exception___equals1.html b/class_s_a_1_1_exception___equals1.html new file mode 100644 index 0000000..b65eb90 --- /dev/null +++ b/class_s_a_1_1_exception___equals1.html @@ -0,0 +1,230 @@ + + + + + + + +SA_Logger: SA::Exception_Equals1 Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::Exception_Equals1 Class Reference
+
+
+ +

Equals 1 exception implementation. + More...

+ +

#include <Exception_Equals1.hpp>

+
+Inheritance diagram for SA::Exception_Equals1:
+
+
+ + +SA::Exception_Equals +SA::Exception +SA::Log + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

template<typename T >
 Exception_Equals1 (BaseInfo _info, const T &_lhs, std::wstring _predStr=L"pred") noexcept
 
- Public Member Functions inherited from SA::Exception_Equals
template<typename T >
 Exception_Equals (BaseInfo _info, const T &_lhs, const T &_rhs, std::wstring _predStr=L"pred") noexcept
 
 Exception_Equals (BaseInfo _info, float _lhs, float _rhs, std::wstring _predStr=L"pred") noexcept
 
 Exception_Equals (BaseInfo _info, double _lhs, double _rhs, std::wstring _predStr=L"pred") noexcept
 
- Public Member Functions inherited from SA::Exception
 Exception (BaseInfo _info, bool _pred, std::wstring _msg=L"") noexcept
 
- Public Member Functions inherited from SA::Log
 Log (std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexcept
 Value Move Constructor.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from SA::Log
+std::wstring file
 File name.
 
+uint32_t line = 0u
 Line number.
 
+std::string function
 Function name.
 
+std::wstring msg = L"Hello, World!"
 User string message.
 
+LogLevel level = LogLevel::Normal
 Output level.
 
+std::wstring chanName = L"Default"
 Output channel name.
 
+std::wstring details
 Additional details string.
 
+uint32_t frameNum = 0u
 Frame number.
 
+std::string backtrace
 backtracing of logging call.
 
+DateTime date
 Date time.
 
+

Detailed Description

+

Equals 1 exception implementation.

+

Constructor & Destructor Documentation

+ +

◆ Exception_Equals1()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + +
SA::Exception_Equals1::Exception_Equals1 (BaseInfo _info,
const T & _lhs,
std::wstring _predStr = L"pred" )
+
+inlinenoexcept
+
+

Template value move Constructor.

+
Template Parameters
+ + +
TOperands type.
+
+
+
Parameters
+ + + + +
[in]_infoBase create info.
[in]_lhsLeft hand side operand to compare to T(1).
[in]_predStrPredicate as a string.
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_exception___equals1.png b/class_s_a_1_1_exception___equals1.png new file mode 100644 index 0000000000000000000000000000000000000000..d2acb5001320cdc0f009db27c3943018e2d643cf GIT binary patch literal 1156 zcmeAS@N?(olHy`uVBq!ia0vp^y+C|`gBeKjxe2HODd_;85ZC|z{{xvX-h3_XKeXJ! zK(jz%`k5CG9y|bwo1P6@0+iz{3GxeO0P?}WoN4wI1_l;>PZ!6K3dXl{U+1kc;9+am zzjW&T|0C^A3T!;5zvXNXd@6camGfkR_1kza&85;Bldf=PDtj7&@coUF$Kv;XUOVZ_ z{F=jQQQPLtIh23v%I*Wp*z#=lzx%$|XX{t(&kv>c_np6?!>wyJ`-aJE{-bHJTc&<~ ze^aM$rg-%9H+P;nmj(-Oxuw&6{TcszP0wA<_Ga_%22U#Kyq`Czr2CJ&9>l7U)7 z=`-wUWOpzxN&Q^$Wy$5KXEiQQ^ouv!xt!sghjhb?EsPzW1gQO)!Csno9VRaE^N{xJ z@&w|YiN-zqtF~vy-cr>}c(Yed!BcwPZ6D!llV|@qW~IOC&i0k%?z4|>J(jtzhdKN5 zmnXMWUN%L~%;FA@;kz|?H_s&dnAs|Gi&uBOF3)G)dd2r|k^Y{-d)quOS(<+j>D|Ho zt!n$mneBfToQ;yS?sQ(ZNTBw{vD|IyrJtAi=ziVE>$-M!x9!)`Pt~t#OO-vpSN`Sq zz2$L9^{0Kzq@+u3lah9A)?7Lzj-i5?zaj6%sb?QwcrMqT9k@(+?!KHNf5tfz%@_7KKF=1jw>IOOS#Y}T&c^FX z=i6fT{=Kv8o@}nz^&}zdv1hwd31@>346NX3du5ds=oQ*tAct!R}hF-u`1td*@$I z&yuX1wsNacnNYirt76s3W3hh5rMZvIZcpB2xq0SmHJ+D8@6W!vOs+Ug@7tBA`MJwm zLZ55xe7oVYt*Ynx!pHd+wHMc)N$Weg?f>^2mCW=0w>>UNgJKheC3AtvRGi`70pfMmqGp)9e`@O6~pt*Tc7RT3Q05jEaQ(gZq2MJ z%01Xs8f9OU)t9{a+@`)ePZrqjJe}|i7I52tGS5DmzVT*i-QRh=Yk05mmEYVOyLj8o z#NR6~&RbPja`4;6yyBmxdbxl0*ae?HvDs(s)Qzw0Q?$4)dYio~nzb@pdi%|JSI*8n z8)Kg6@mQYhvE4+-i5*k8}08(4yOk%d1bFd1D$^{rTLB`5R{@Z+iRR7U(Bi w``qNTZ*iB7ozYRtJ#!|>ZFZtWTig%! + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::Exception_IsValid Member List
+
+
+ +

This is the complete list of members for SA::Exception_IsValid, including all inherited members.

+ + + + + + + + + + + + + + +
backtraceSA::Log
chanNameSA::Log
dateSA::Log
detailsSA::Log
Exception(BaseInfo _info, bool _pred, std::wstring _msg=L"") noexceptSA::Exception
Exception_IsValid(BaseInfo _info, const T &_obj, std::wstring _objStr) noexceptSA::Exception_IsValidinline
fileSA::Log
frameNumSA::Log
functionSA::Log
levelSA::Log
lineSA::Log
Log(std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexceptSA::Log
msgSA::Log
+ + + + diff --git a/class_s_a_1_1_exception___is_valid.html b/class_s_a_1_1_exception___is_valid.html new file mode 100644 index 0000000..1c99ef6 --- /dev/null +++ b/class_s_a_1_1_exception___is_valid.html @@ -0,0 +1,224 @@ + + + + + + + +SA_Logger: SA::Exception_IsValid Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::Exception_IsValid Class Reference
+
+
+ +

IsValid Exception type. + More...

+ +

#include <Exception_IsValid.hpp>

+
+Inheritance diagram for SA::Exception_IsValid:
+
+
+ + +SA::Exception +SA::Log + +
+ + + + + + + + + + + + + +

+Public Member Functions

template<typename T >
 Exception_IsValid (BaseInfo _info, const T &_obj, std::wstring _objStr) noexcept
 Value constructor
 
- Public Member Functions inherited from SA::Exception
 Exception (BaseInfo _info, bool _pred, std::wstring _msg=L"") noexcept
 
- Public Member Functions inherited from SA::Log
 Log (std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexcept
 Value Move Constructor.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from SA::Log
+std::wstring file
 File name.
 
+uint32_t line = 0u
 Line number.
 
+std::string function
 Function name.
 
+std::wstring msg = L"Hello, World!"
 User string message.
 
+LogLevel level = LogLevel::Normal
 Output level.
 
+std::wstring chanName = L"Default"
 Output channel name.
 
+std::wstring details
 Additional details string.
 
+uint32_t frameNum = 0u
 Frame number.
 
+std::string backtrace
 backtracing of logging call.
 
+DateTime date
 Date time.
 
+

Detailed Description

+

IsValid Exception type.

+

Exception will be thrown if _obj->IsValid() returns false.

+

Constructor & Destructor Documentation

+ +

◆ Exception_IsValid()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + +
SA::Exception_IsValid::Exception_IsValid (BaseInfo _info,
const T & _obj,
std::wstring _objStr )
+
+inlinenoexcept
+
+ +

Value constructor

+
Template Parameters
+ + +
TObject type
+
+
+
Parameters
+ + + + +
_infoBase create info.
_objObject to check validity
_objStrObject variable as a string.
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_exception___is_valid.png b/class_s_a_1_1_exception___is_valid.png new file mode 100644 index 0000000000000000000000000000000000000000..941b4ff68ac858126ead41bbc377ca3a943e1cc0 GIT binary patch literal 823 zcmeAS@N?(olHy`uVBq!ia0vp^?LgeY!3-pS<#W6RQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=B+%JY5_^Dj46+eciX(fTu-W znDgh~`9C%sRTO?VCvW70D+ti?Hj7PBfs`udM2-&-g4Mp#Bw z?6TSCw7W$$d+cmvjooiv+x`E|o(WGxzaRJ*{=8L%f316`%6ZxU+f`f-ItE=4bU$Zl zpU+TnotdHJfuBX&LjDPU7H&Oy4pk33J~J%{EMO2|WoIBn)rta*DNjh5RC5PtsECY; zYr0J4pNi~@(Z4*44nMy9m{G-5U1t5#KT4wr5){<-K@w8pN%zIyd_5I~h zbpCne%IICHkG{^nBeZgo-K0AoE9d^&z3rgp*N6G5SMcWEcAsRuuPDxDpU|zHR||Zc z?G71+A4vKg8n^Axr*xU334X60zuhy%DkJ{>>&FlF{E7Lp=Z{ + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::Exception_NotEquals Member List
+
+
+ +

This is the complete list of members for SA::Exception_NotEquals, including all inherited members.

+ + + + + + + + + + + + + + +
backtraceSA::Log
chanNameSA::Log
dateSA::Log
detailsSA::Log
Exception(BaseInfo _info, bool _pred, std::wstring _msg=L"") noexceptSA::Exception
Exception_NotEquals(Exception_Equals &&_exc) noexceptSA::Exception_NotEquals
fileSA::Log
frameNumSA::Log
functionSA::Log
levelSA::Log
lineSA::Log
Log(std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexceptSA::Log
msgSA::Log
+ + + + diff --git a/class_s_a_1_1_exception___not_equals.html b/class_s_a_1_1_exception___not_equals.html new file mode 100644 index 0000000..3d81b51 --- /dev/null +++ b/class_s_a_1_1_exception___not_equals.html @@ -0,0 +1,203 @@ + + + + + + + +SA_Logger: SA::Exception_NotEquals Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::Exception_NotEquals Class Reference
+
+
+ +

Not Equals exception base type. + More...

+ +

#include <Exception_NotEquals.hpp>

+
+Inheritance diagram for SA::Exception_NotEquals:
+
+
+ + +SA::Exception +SA::Log +SA::Exception_NotEquals0 +SA::Exception_NotEquals1 + +
+ + + + + + + + + + + +

+Public Member Functions

 Exception_NotEquals (Exception_Equals &&_exc) noexcept
 
- Public Member Functions inherited from SA::Exception
 Exception (BaseInfo _info, bool _pred, std::wstring _msg=L"") noexcept
 
- Public Member Functions inherited from SA::Log
 Log (std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexcept
 Value Move Constructor.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from SA::Log
+std::wstring file
 File name.
 
+uint32_t line = 0u
 Line number.
 
+std::string function
 Function name.
 
+std::wstring msg = L"Hello, World!"
 User string message.
 
+LogLevel level = LogLevel::Normal
 Output level.
 
+std::wstring chanName = L"Default"
 Output channel name.
 
+std::wstring details
 Additional details string.
 
+uint32_t frameNum = 0u
 Frame number.
 
+std::string backtrace
 backtracing of logging call.
 
+DateTime date
 Date time.
 
+

Detailed Description

+

Not Equals exception base type.

+

Constructor & Destructor Documentation

+ +

◆ Exception_NotEquals()

+ +
+
+ + + + + +
+ + + + + + + +
SA::Exception_NotEquals::Exception_NotEquals (Exception_Equals && _exc)
+
+noexcept
+
+

Value Constructor.

+
Parameters
+ + +
[in]_excEquals exception to be reversed.
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_exception___not_equals.png b/class_s_a_1_1_exception___not_equals.png new file mode 100644 index 0000000000000000000000000000000000000000..8fa1c2774c85f44b66acb7b7c854bada5a399890 GIT binary patch literal 1644 zcmb_ddobM+YTxsuh7b)E!6N^HjOzn z7BePH9*Y@6&ej^NIE6gMIIUME?-t$sXBz+j>I5fyHvoVUA>8=I7D!ULeOPGHC%I4@6bc0d$7LVFGoBS$qfM{sX19$? zrBX<5*?yi4?WtUMb0q`N`s1*I=e_~}#1g^&Yf2>SJ##XB&PGe=ZuRZab(Xx`Ph0sJ zO;gB%A1g@p*FQ=Lkcoh}3-sVtK%jDlQSD42GLnk3kgDfQ3A+m17-q3|#e>7Iz5L6N zwQ_Cnbl|%G%x;jeU>gv~Ma75>alZFgu?Sr2TENLcz=+lcZv$axL(`Y&Lk%=)7RP1gm^PSHzvq0<+s>Op{t`D~O&f zSQ@Y(95Qg6K6{@Xjw6qBIx2MAFh&!K=(QkF7|xqBs|y^T2+irOPrq@Bg~T?$*d-6* z9nG4GwepVWk{hldCsc5Yy%TyhE}io}Z^A+a30VW11ejG2&Y0#mLKP#rKGWP;HP= zx&80l4)ZA0-F?Y0x!WQDlTsn}n&S3l16wyi(v$^0xwzNMix{qL*Q z8gt9JoIdk&o>ZCDNLOZbb)XOqmed+3>y7b(iMdG=eXrLH&9gQAa{6}5Oa&eb zoQ)y5(sb4F9dA4`=0%3V7*f<+)kClqj_-(8z*!N^s)_E1h94i5aSY7&k)%shjnk`% z!a3qdR#qA9|)OAB*EtI|%^mo4GZ~vn)xN2+6yuE3_Pbh0oY<5k8fouRY`!gpwcp-cA^) zD2gvVlf@37ayj9^S0gb(&}r+(R@$q?!45X9J{%cu66nCc5=GS+99VqvcJO75_jh}+ zXR*rhM+UskmJATtbk7rqF>By(XWNZtnn~Jp{`6Ok9}qn$W2?D{2BwocHJ#AVTe%XZ zyK?1leO5Ux+Na#)`NdAtja5|5jtO;;yjAlje894xTduDO$2e51lxEYy@;;O|TJ4+= z`j1^)s|)HjT;{?wvR@z?N}S@$LaovJWGCHWuDM-ld%rzQ_aQB3d?~ypQv;85;K1LQ zVb}UHEu6!=Wtf$DFv?l~_`-6QL7a57;%UCqmG@9L#f0r=EZ`#pZt2GqBC#F#9~La& z80^awkq8EMJ7q!^38M3+g!puaLgf01Pp$b=i@ZvDbAhfO@KKK9Rg*{B69NXFL;nIm MaB#JMV(0h$pKRjvNB{r; literal 0 HcmV?d00001 diff --git a/class_s_a_1_1_exception___not_equals0-members.html b/class_s_a_1_1_exception___not_equals0-members.html new file mode 100644 index 0000000..7875ad2 --- /dev/null +++ b/class_s_a_1_1_exception___not_equals0-members.html @@ -0,0 +1,105 @@ + + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::Exception_NotEquals0 Member List
+
+
+ +

This is the complete list of members for SA::Exception_NotEquals0, including all inherited members.

+ + + + + + + + + + + + + + + +
backtraceSA::Log
chanNameSA::Log
dateSA::Log
detailsSA::Log
Exception(BaseInfo _info, bool _pred, std::wstring _msg=L"") noexceptSA::Exception
Exception_NotEquals(Exception_Equals &&_exc) noexceptSA::Exception_NotEquals
Exception_NotEquals0(Exception_Equals0 &&_exc) noexceptSA::Exception_NotEquals0inline
fileSA::Log
frameNumSA::Log
functionSA::Log
levelSA::Log
lineSA::Log
Log(std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexceptSA::Log
msgSA::Log
+ + + + diff --git a/class_s_a_1_1_exception___not_equals0.html b/class_s_a_1_1_exception___not_equals0.html new file mode 100644 index 0000000..ad18e01 --- /dev/null +++ b/class_s_a_1_1_exception___not_equals0.html @@ -0,0 +1,205 @@ + + + + + + + +SA_Logger: SA::Exception_NotEquals0 Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::Exception_NotEquals0 Class Reference
+
+
+ +

Not Equals 0 exception implementation. + More...

+ +

#include <Exception_NotEquals0.hpp>

+
+Inheritance diagram for SA::Exception_NotEquals0:
+
+
+ + +SA::Exception_NotEquals +SA::Exception +SA::Log + +
+ + + + + + + + + + + + + + +

+Public Member Functions

 Exception_NotEquals0 (Exception_Equals0 &&_exc) noexcept
 
- Public Member Functions inherited from SA::Exception_NotEquals
 Exception_NotEquals (Exception_Equals &&_exc) noexcept
 
- Public Member Functions inherited from SA::Exception
 Exception (BaseInfo _info, bool _pred, std::wstring _msg=L"") noexcept
 
- Public Member Functions inherited from SA::Log
 Log (std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexcept
 Value Move Constructor.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from SA::Log
+std::wstring file
 File name.
 
+uint32_t line = 0u
 Line number.
 
+std::string function
 Function name.
 
+std::wstring msg = L"Hello, World!"
 User string message.
 
+LogLevel level = LogLevel::Normal
 Output level.
 
+std::wstring chanName = L"Default"
 Output channel name.
 
+std::wstring details
 Additional details string.
 
+uint32_t frameNum = 0u
 Frame number.
 
+std::string backtrace
 backtracing of logging call.
 
+DateTime date
 Date time.
 
+

Detailed Description

+

Not Equals 0 exception implementation.

+

Constructor & Destructor Documentation

+ +

◆ Exception_NotEquals0()

+ +
+
+ + + + + +
+ + + + + + + +
SA::Exception_NotEquals0::Exception_NotEquals0 (Exception_Equals0 && _exc)
+
+inlinenoexcept
+
+

Value move Constructor.

+
Parameters
+ + +
[in]_excEquals 0 exception to be reversed.
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_exception___not_equals0.png b/class_s_a_1_1_exception___not_equals0.png new file mode 100644 index 0000000000000000000000000000000000000000..a0abfa2e728ff8e1e9e2f5dcacde3aee73b132d2 GIT binary patch literal 1222 zcmeAS@N?(olHy`uVBq!ia0vp^3xN0l2Q!e|@^pqPkdhAY332`Z|38rV;?396{zJ0uP%y zf6&qY|Bp^LW0~{)%bvYOQQ>o27`TOV%J)wS^0IZFw4{#H(esl))1)T{)h&AFU)r>H z(wE>JEb(ejlh#-X>#UVMShVNy)rD_(3xl`~;Pi@lFAgY+4qmR91KwNZ2pk`fBcP)y($7FEvdn zZ$I}v$nGyP{C)Svul%?F+%|04*0j0K^6X19Kb_e1>X+3$%PWkJoL!pGbba2L+zD^4 zfAPG;drxOlk=5zPbBZ_2>91`+nyvF&N1&Y)afmgSoN!#1SdJe4i{Xm9hM zeG4?-cgy^V>3AL!Ef;a};AE}3xE#@X6L!^?c75^(1pe5wsGfAExz{5&_#Q9ca%M{U z`#buc);){eg_r#^`!%O((}QKVx%RQ0KI&srzI&F@OdVF$mkrqmFWurgCp~rg{Jh6U zE`6;ssy)5*)eD=_Y4N<%uN8L8_CC0$pxS7=vb)iE4?V!PFM@O-p+t#QQkbXeSM zf%mdY!Y|z6bFR_LIQ3hJ-Mqf!bnjR5`J4O2@@tBt@kYOuP3xm~&e*@daG!ecvfODvJv9!p)n;ky zTN5&KS)ccwn(e#2FzIEL?aX~ogGx*0S)E?r=Kb1XgI4DmewXJ$`w_AkrV-Le0{ zzk=#GaZm0ON|L8;-?YCKU$*tjzZZKFEZ-enboIZ(hI!jMC-r*#R^ENQ^+C$U>Za2I z=QsB`#ca-*z3%n*+j7`~RbPzVHEGd}WquEBRz8~b`t<{yI`(X(+e^$^FJ;}zdGOc& z(Lec;^v3fXpg{ff9q84cz)(G7`Mh5k?)SqQ7CeV97}hhCzdH0OPfukju*6~TboFyt I=akR{0ODdZE&u=k literal 0 HcmV?d00001 diff --git a/class_s_a_1_1_exception___not_equals1-members.html b/class_s_a_1_1_exception___not_equals1-members.html new file mode 100644 index 0000000..283c384 --- /dev/null +++ b/class_s_a_1_1_exception___not_equals1-members.html @@ -0,0 +1,105 @@ + + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::Exception_NotEquals1 Member List
+
+
+ +

This is the complete list of members for SA::Exception_NotEquals1, including all inherited members.

+ + + + + + + + + + + + + + + +
backtraceSA::Log
chanNameSA::Log
dateSA::Log
detailsSA::Log
Exception(BaseInfo _info, bool _pred, std::wstring _msg=L"") noexceptSA::Exception
Exception_NotEquals(Exception_Equals &&_exc) noexceptSA::Exception_NotEquals
Exception_NotEquals1(Exception_Equals1 &&_exc) noexceptSA::Exception_NotEquals1inline
fileSA::Log
frameNumSA::Log
functionSA::Log
levelSA::Log
lineSA::Log
Log(std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexceptSA::Log
msgSA::Log
+ + + + diff --git a/class_s_a_1_1_exception___not_equals1.html b/class_s_a_1_1_exception___not_equals1.html new file mode 100644 index 0000000..e14c9e1 --- /dev/null +++ b/class_s_a_1_1_exception___not_equals1.html @@ -0,0 +1,205 @@ + + + + + + + +SA_Logger: SA::Exception_NotEquals1 Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::Exception_NotEquals1 Class Reference
+
+
+ +

Not Equals 1 exception implementation. + More...

+ +

#include <Exception_NotEquals1.hpp>

+
+Inheritance diagram for SA::Exception_NotEquals1:
+
+
+ + +SA::Exception_NotEquals +SA::Exception +SA::Log + +
+ + + + + + + + + + + + + + +

+Public Member Functions

 Exception_NotEquals1 (Exception_Equals1 &&_exc) noexcept
 
- Public Member Functions inherited from SA::Exception_NotEquals
 Exception_NotEquals (Exception_Equals &&_exc) noexcept
 
- Public Member Functions inherited from SA::Exception
 Exception (BaseInfo _info, bool _pred, std::wstring _msg=L"") noexcept
 
- Public Member Functions inherited from SA::Log
 Log (std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexcept
 Value Move Constructor.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from SA::Log
+std::wstring file
 File name.
 
+uint32_t line = 0u
 Line number.
 
+std::string function
 Function name.
 
+std::wstring msg = L"Hello, World!"
 User string message.
 
+LogLevel level = LogLevel::Normal
 Output level.
 
+std::wstring chanName = L"Default"
 Output channel name.
 
+std::wstring details
 Additional details string.
 
+uint32_t frameNum = 0u
 Frame number.
 
+std::string backtrace
 backtracing of logging call.
 
+DateTime date
 Date time.
 
+

Detailed Description

+

Not Equals 1 exception implementation.

+

Constructor & Destructor Documentation

+ +

◆ Exception_NotEquals1()

+ +
+
+ + + + + +
+ + + + + + + +
SA::Exception_NotEquals1::Exception_NotEquals1 (Exception_Equals1 && _exc)
+
+inlinenoexcept
+
+

Value move Constructor.

+
Parameters
+ + +
[in]_excEquals 1 exception to be reversed.
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_exception___not_equals1.png b/class_s_a_1_1_exception___not_equals1.png new file mode 100644 index 0000000000000000000000000000000000000000..ac7259dc504af1862fa78ed23ecc198c4ba9528c GIT binary patch literal 1227 zcmeAS@N?(olHy`uVBq!ia0vp^3xN0l2Q!e|@^pqPkdhAY332`Z|38rV;?396{zJY>;E{Ex5EX!H>Y$iHSBZXLblh>G~E%8&bkyfl@aCoU=UboA_+&@@RzQO)9Ped&{Q z)tAdTIPdwqYTqp7v!SnyCA;GJ`Gz8sqrNLQ#pHdes`V|X{ib!pbpvOee$#CC*V7iV zTz{c^{=UvX`-AVVCY*hvw&T~8m+#9rs_Z>qq!_<3`WOLp%$?#&Cdzw-P8e|r;TZMoL{GM#lg_g=*Ey!&_N0G&EpGfz)+`krrR@2Z`Q&-0rU_u#DB%8M@# z@4S}K+h5=Q&h(e1XI10&-8+_@O3jomZ8|-zUVBIA&AHc|yS_91taZG8&p+!!v1VNM zTKN8j-R9SORNfk_m&=WK zcKcQ7>ywTAm*YNci?F|Qtay8RwAkdhfJuB6dJ*pZO|P3@oz~x8nLKw_ZE^A6z}v5O zl}_Csy>9Vi5%cL?)eoWJ@h-05|AD`$=@r*ibQRwTW}nPif8%F%(C#~L|82c6qu=RK@X+duAnkhD?ypxx2e>lTaThn7A6I^oe?2RGKcZw-zw1J^B7Y-woO`C+pqI+H3mg-1`S%C-$v~UA$$U-J2xOs($f0W!0B6 zmb2IR6mVX?{Jh>j02n)$nCvR!_u`|l(wszS+ zvqM$-TQ literal 0 HcmV?d00001 diff --git a/class_s_a_1_1_exception___nullptr-members.html b/class_s_a_1_1_exception___nullptr-members.html new file mode 100644 index 0000000..4778e3c --- /dev/null +++ b/class_s_a_1_1_exception___nullptr-members.html @@ -0,0 +1,104 @@ + + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::Exception_Nullptr Member List
+
+
+ +

This is the complete list of members for SA::Exception_Nullptr, including all inherited members.

+ + + + + + + + + + + + + + +
backtraceSA::Log
chanNameSA::Log
dateSA::Log
detailsSA::Log
Exception(BaseInfo _info, bool _pred, std::wstring _msg=L"") noexceptSA::Exception
Exception_Nullptr(BaseInfo _info, bool _pred, std::wstring _predStr=L"ptr") noexceptSA::Exception_Nullptr
fileSA::Log
frameNumSA::Log
functionSA::Log
levelSA::Log
lineSA::Log
Log(std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexceptSA::Log
msgSA::Log
+ + + + diff --git a/class_s_a_1_1_exception___nullptr.html b/class_s_a_1_1_exception___nullptr.html new file mode 100644 index 0000000..33575c1 --- /dev/null +++ b/class_s_a_1_1_exception___nullptr.html @@ -0,0 +1,212 @@ + + + + + + + +SA_Logger: SA::Exception_Nullptr Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::Exception_Nullptr Class Reference
+
+
+ +

Nullptr Exception type. + More...

+ +

#include <Exception_Nullptr.hpp>

+
+Inheritance diagram for SA::Exception_Nullptr:
+
+
+ + +SA::Exception +SA::Log + +
+ + + + + + + + + + + +

+Public Member Functions

 Exception_Nullptr (BaseInfo _info, bool _pred, std::wstring _predStr=L"ptr") noexcept
 
- Public Member Functions inherited from SA::Exception
 Exception (BaseInfo _info, bool _pred, std::wstring _msg=L"") noexcept
 
- Public Member Functions inherited from SA::Log
 Log (std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexcept
 Value Move Constructor.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from SA::Log
+std::wstring file
 File name.
 
+uint32_t line = 0u
 Line number.
 
+std::string function
 Function name.
 
+std::wstring msg = L"Hello, World!"
 User string message.
 
+LogLevel level = LogLevel::Normal
 Output level.
 
+std::wstring chanName = L"Default"
 Output channel name.
 
+std::wstring details
 Additional details string.
 
+uint32_t frameNum = 0u
 Frame number.
 
+std::string backtrace
 backtracing of logging call.
 
+DateTime date
 Date time.
 
+

Detailed Description

+

Nullptr Exception type.

+

Constructor & Destructor Documentation

+ +

◆ Exception_Nullptr()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
SA::Exception_Nullptr::Exception_Nullptr (BaseInfo _info,
bool _pred,
std::wstring _predStr = L"ptr" )
+
+noexcept
+
+

Value Constructor.

+
Parameters
+ + + + +
[in]_infoBase create info.
[in]_predEvaluated pointer predicate.
[in]_predStrPredicate as a string.
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_exception___nullptr.png b/class_s_a_1_1_exception___nullptr.png new file mode 100644 index 0000000000000000000000000000000000000000..7600c88be89a91843edc1bc3efcb1a3bc3fcf0b8 GIT binary patch literal 781 zcmV+o1M>WdP)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0007* zNklxNx#b-50u&FQCYhiBUuu5Yz4ErdC>TvPD#oX? zu|=!3+5w|vVvVxJ8WrQywV`{lVU(z9{#K`uL5M3;^&H7=Zx*o&qB<0KijV1O@wFi6tV8Ah59o$ai}PLhu1yT=YB>o~z!-lQk<)(Zh{ zFkHmY*)v9g)Xc1x*-=f)FJmLg7dqdR8c}7^U4NNNBJD6XlJs?6qPo&HHKjImt(LTb zZEYm!>q@6+a!p>hS%a~pjKBZ@Pk|8_0N^Pw0s{a%1x8>1fTzItrx+=v)L%#Olt;5LTNo-xYnG&AdEc2v{y%h=jiY4G*3 zjPl$T%Wg`I*gR#{v3qF}vBTJoG0YPss43B!LTl67(6w69-4g9(4}a#`c8Vs~ + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::Exception_OutOfArrayRange Member List
+
+
+ +

This is the complete list of members for SA::Exception_OutOfArrayRange, including all inherited members.

+ + + + + + + + + + + + + + + + + + + +
backtraceSA::Log
chanNameSA::Log
currIndexSA::Exception_OutOfRange
dateSA::Log
detailsSA::Log
Exception(BaseInfo _info, bool _pred, std::wstring _msg=L"") noexceptSA::Exception
Exception_OutOfArrayRange(BaseInfo _info, uint32_t _currIndex, std::wstring _currIndexStr, const U &_array, std::wstring _arrayName=L"", uint32_t _minBound=0, uint32_t _maxBound=uint32_t(-1)) noexceptSA::Exception_OutOfArrayRangeinline
Exception_OutOfRange(BaseInfo _info, uint32_t _currIndex, uint32_t _minBound, uint32_t _maxBound, std::wstring _msg) noexceptSA::Exception_OutOfRange
Exception_OutOfRange(BaseInfo _info, uint32_t _currIndex, std::wstring _currIndexStr, uint32_t _minBound, std::wstring _minBoundStr, uint32_t _maxBound, std::wstring _maxBoundStr) noexceptSA::Exception_OutOfRange
fileSA::Log
frameNumSA::Log
functionSA::Log
levelSA::Log
lineSA::Log
Log(std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexceptSA::Log
maxBoundSA::Exception_OutOfRange
minBoundSA::Exception_OutOfRange
msgSA::Log
+ + + + diff --git a/class_s_a_1_1_exception___out_of_array_range.html b/class_s_a_1_1_exception___out_of_array_range.html new file mode 100644 index 0000000..544ca64 --- /dev/null +++ b/class_s_a_1_1_exception___out_of_array_range.html @@ -0,0 +1,259 @@ + + + + + + + +SA_Logger: SA::Exception_OutOfArrayRange Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::Exception_OutOfArrayRange Class Reference
+
+
+ +

OutOfArrayRange Exception type. + More...

+ +

#include <Exception_OutOfArrayRange.hpp>

+
+Inheritance diagram for SA::Exception_OutOfArrayRange:
+
+
+ + +SA::Exception_OutOfRange +SA::Exception +SA::Log + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

template<typename U >
 Exception_OutOfArrayRange (BaseInfo _info, uint32_t _currIndex, std::wstring _currIndexStr, const U &_array, std::wstring _arrayName=L"", uint32_t _minBound=0, uint32_t _maxBound=uint32_t(-1)) noexcept
 
- Public Member Functions inherited from SA::Exception_OutOfRange
 Exception_OutOfRange (BaseInfo _info, uint32_t _currIndex, uint32_t _minBound, uint32_t _maxBound, std::wstring _msg) noexcept
 
 Exception_OutOfRange (BaseInfo _info, uint32_t _currIndex, std::wstring _currIndexStr, uint32_t _minBound, std::wstring _minBoundStr, uint32_t _maxBound, std::wstring _maxBoundStr) noexcept
 
- Public Member Functions inherited from SA::Exception
 Exception (BaseInfo _info, bool _pred, std::wstring _msg=L"") noexcept
 
- Public Member Functions inherited from SA::Log
 Log (std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexcept
 Value Move Constructor.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from SA::Exception_OutOfRange
+uint32_t currIndex = 0u
 Index used for access.
 
+uint32_t minBound = 0u
 Minimum bound included.
 
+uint32_t maxBound = 1u
 Maximum bound included.
 
- Public Attributes inherited from SA::Log
+std::wstring file
 File name.
 
+uint32_t line = 0u
 Line number.
 
+std::string function
 Function name.
 
+std::wstring msg = L"Hello, World!"
 User string message.
 
+LogLevel level = LogLevel::Normal
 Output level.
 
+std::wstring chanName = L"Default"
 Output channel name.
 
+std::wstring details
 Additional details string.
 
+uint32_t frameNum = 0u
 Frame number.
 
+std::string backtrace
 backtracing of logging call.
 
+DateTime date
 Date time.
 
+

Detailed Description

+

OutOfArrayRange Exception type.

+

Exception will be thrown if curr is out of [0u;_array.size()[ range.

+

Constructor & Destructor Documentation

+ +

◆ Exception_OutOfArrayRange()

+ +
+
+
+template<typename U >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SA::Exception_OutOfArrayRange::Exception_OutOfArrayRange (BaseInfo _info,
uint32_t _currIndex,
std::wstring _currIndexStr,
const U & _array,
std::wstring _arrayName = L"",
uint32_t _minBound = 0,
uint32_t _maxBound = uint32_t(-1) )
+
+inlinenoexcept
+
+

Value with bound Constructor.

+
Parameters
+ + + + + + + + +
[in]_infoBase create info.
[in]_currIndexIndex used for access.
[in]_currIndexStrIndex variable used for access, as a wstring.
[in]_arrayArray to check bounds with.
[in]_arrayNameArray variable to access, as a wstring.
[in]_minBoundOptionnal array min bound
[in]_maxBoundoptionnal array max bound
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_exception___out_of_array_range.png b/class_s_a_1_1_exception___out_of_array_range.png new file mode 100644 index 0000000000000000000000000000000000000000..123cfaf64b9bdfa53289e38b71f2e332a18c76f9 GIT binary patch literal 1322 zcmeAS@N?(olHy`uVBq!ia0vp^CxG|>2Q!c?yL#s!kdhAY332`Z|38rV;?396{zJgnPbQo;Ck?(0db6$IFB z_pcIp|NqGG(2xVKrHad(e6?gtuQal?{ZVZZh-y&qyx-sLF-bMXWs=UvJs#KVFGb2t zUE=>~$B7G%zfAu6&)fCV%{Gr&>;8RD-0H8hcIoTRkF#0p_dRo6X6L7Lv`0tjTYAd7 z_d#FdHI2?5yK#Q!_P1R()=%8BC~e}(`#qNLbzfq_B(IqLUU-@lsF6`zVHO1%eFTJ2)Ct zV^|Id=`kg6iZgC#>1K#HEq0s&v6r0jCVcCY4%yJta?|oad$^x0Pc5d!~n$ zba`K5`+N5>yUI(e_gy@-p7xRZ^-4Z^b}x6ibTcaDlFw#ixnJzT89PoTO)8nrKJD72 z=PuharmcQ+!Sknix925aIgM{7x1N6SF`abGx?H#9^bD1|PbS7{>rTumJ(J#g;zx(? z#GPEL{;i*O?b?x=evfT)=UzE+Uw`dNu~VELrbQdF|NeQhds?T|#3iq7{;&f*|3&O< zhsUMQJ33S%54ozG6x!>-p=iQz;CLnD76)ym_2J5DYdgNk<<2lsezaSxL6<1+!$Kzp zBVsq|U-~+~B+PaB4wc*s_wUv(sH(P@pZxcs&0dw<4cbO#hW}D#>YEgOIWehp=e*>j zttx-pk|&mI6PtO<`>?rO-LYaD`E{Fa{CfNH-kh2}C)RXb@18Sh%cG3Usm*5Fj8vo6 zZE{wBdS7Ro@}$(5Bx}vj>?$iCt+;VHVajD=-A5(~JF_qDG%AZ#Sv~Qq$6b-g<>x+$ zC_Ps0@0eokVEgoU_UkP-F4qNhUzw|+{>*mb-IW%%Sn|43Zr}9mT~oetSB+Wu+OJuA z_ikAhrJ=5H^~Aw-q3;YzZy&8cw#8w&PV3bV2j)ELjrE>XcYLkAk>{=>p5Oi}8=ZSx zdvUSp*I45sJ1+k&k4y6((k8jBd%a6+LAT+t_s3n6dM*m-2_^STi*TvavY-3(d%J&+ z;k!%lz<&Ht<#*=qsV63FJ{=r?qVS8y-OKYYTTaXAyS?MVF2zmfVltOql;r>0tZ5RH zy7BAn%X=+E|^jRcrb+Vnd%Q5$Pf-`5G zu3Prz=A#pfZckgCG+!)7HK=^ioEg8Byo-QpC9eF}|(Fx!3Vo1&G2 zb*BhV$a<1+UCVre*ODLSJ=UJzC_6D#UZ*{&<6Q2W_fdw&eptWTFPYr)e9ja7{Cc;P zImgXi&;QH#-|o?4xbJk~x2pzwm4ShjRxnW_c}q+85sAgBRTF`s$o7MMW!&d;(`HQL Q2bO9Kp00i_>zopr0Lz7fe*gdg literal 0 HcmV?d00001 diff --git a/class_s_a_1_1_exception___out_of_range-members.html b/class_s_a_1_1_exception___out_of_range-members.html new file mode 100644 index 0000000..e87de01 --- /dev/null +++ b/class_s_a_1_1_exception___out_of_range-members.html @@ -0,0 +1,108 @@ + + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::Exception_OutOfRange Member List
+
+
+ +

This is the complete list of members for SA::Exception_OutOfRange, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
backtraceSA::Log
chanNameSA::Log
currIndexSA::Exception_OutOfRange
dateSA::Log
detailsSA::Log
Exception(BaseInfo _info, bool _pred, std::wstring _msg=L"") noexceptSA::Exception
Exception_OutOfRange(BaseInfo _info, uint32_t _currIndex, uint32_t _minBound, uint32_t _maxBound, std::wstring _msg) noexceptSA::Exception_OutOfRange
Exception_OutOfRange(BaseInfo _info, uint32_t _currIndex, std::wstring _currIndexStr, uint32_t _minBound, std::wstring _minBoundStr, uint32_t _maxBound, std::wstring _maxBoundStr) noexceptSA::Exception_OutOfRange
fileSA::Log
frameNumSA::Log
functionSA::Log
levelSA::Log
lineSA::Log
Log(std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexceptSA::Log
maxBoundSA::Exception_OutOfRange
minBoundSA::Exception_OutOfRange
msgSA::Log
+ + + + diff --git a/class_s_a_1_1_exception___out_of_range.html b/class_s_a_1_1_exception___out_of_range.html new file mode 100644 index 0000000..e735ccc --- /dev/null +++ b/class_s_a_1_1_exception___out_of_range.html @@ -0,0 +1,308 @@ + + + + + + + +SA_Logger: SA::Exception_OutOfRange Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::Exception_OutOfRange Class Reference
+
+
+ +

OutOfRange Exception type. + More...

+ +

#include <Exception_OutOfRange.hpp>

+
+Inheritance diagram for SA::Exception_OutOfRange:
+
+
+ + +SA::Exception +SA::Log +SA::Exception_OutOfArrayRange + +
+ + + + + + + + + + + + + +

+Public Member Functions

 Exception_OutOfRange (BaseInfo _info, uint32_t _currIndex, uint32_t _minBound, uint32_t _maxBound, std::wstring _msg) noexcept
 
 Exception_OutOfRange (BaseInfo _info, uint32_t _currIndex, std::wstring _currIndexStr, uint32_t _minBound, std::wstring _minBoundStr, uint32_t _maxBound, std::wstring _maxBoundStr) noexcept
 
- Public Member Functions inherited from SA::Exception
 Exception (BaseInfo _info, bool _pred, std::wstring _msg=L"") noexcept
 
- Public Member Functions inherited from SA::Log
 Log (std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexcept
 Value Move Constructor.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Attributes

+uint32_t currIndex = 0u
 Index used for access.
 
+uint32_t minBound = 0u
 Minimum bound included.
 
+uint32_t maxBound = 1u
 Maximum bound included.
 
- Public Attributes inherited from SA::Log
+std::wstring file
 File name.
 
+uint32_t line = 0u
 Line number.
 
+std::string function
 Function name.
 
+std::wstring msg = L"Hello, World!"
 User string message.
 
+LogLevel level = LogLevel::Normal
 Output level.
 
+std::wstring chanName = L"Default"
 Output channel name.
 
+std::wstring details
 Additional details string.
 
+uint32_t frameNum = 0u
 Frame number.
 
+std::string backtrace
 backtracing of logging call.
 
+DateTime date
 Date time.
 
+

Detailed Description

+

OutOfRange Exception type.

+

Exception will be thrown if curr is out of [min;max] range.

+

Constructor & Destructor Documentation

+ +

◆ Exception_OutOfRange() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
SA::Exception_OutOfRange::Exception_OutOfRange (BaseInfo _info,
uint32_t _currIndex,
uint32_t _minBound,
uint32_t _maxBound,
std::wstring _msg )
+
+noexcept
+
+

Value Message Constructor.

+
Parameters
+ + + + + + +
[in]_infoBase create info.
[in]_currIndexIndex used for access.
[in]_minBoundMinimum bound allowed.
[in]_maxBoundMaximum bound allowed.
[in]_msgMessage to display on assertion.
+
+
+ +
+
+ +

◆ Exception_OutOfRange() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SA::Exception_OutOfRange::Exception_OutOfRange (BaseInfo _info,
uint32_t _currIndex,
std::wstring _currIndexStr,
uint32_t _minBound,
std::wstring _minBoundStr,
uint32_t _maxBound,
std::wstring _maxBoundStr )
+
+noexcept
+
+

Full Value Constructor.

+
Parameters
+ + + + + + + + +
[in]_infoBase create info.
[in]_currIndexIndex used for access.
[in]_currIndexStrIndex variable used for access, as a wstring.
[in]_minBoundMinimum bound allowed.
[in]_minBoundStrMin bound variable used for access, as a wstring.
[in]_maxBoundMaximum bound allowed.
[in]_maxBoundStrMax bound variable used for access, as a wstring.
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_exception___out_of_range.png b/class_s_a_1_1_exception___out_of_range.png new file mode 100644 index 0000000000000000000000000000000000000000..a25a6c662b04db1895ecf9770b7559441fb5376b GIT binary patch literal 1334 zcmeAS@N?(olHy`uVBq!ia0vp^CxG|>2Q!c?yL#s!kdhAY332`Z|38rV;?396{zJCQ_%C1ONYlK^>yNs$NcrK z273Ndo8E2XHb?*Ji~10i>18gTih8eiU){HH>$HXG%ko9{)Zgu%VkkB-%~eeBzqV0- z`N?1NMKo6%_7=3UrU#t@j2~P& z7%G%p7;FTU80K*ZGWerPS4;((#W+djubrZjCs5w=(~;v!hku-08oK3(YG(V#x0S4( zRdfAa<&sZM&x+CK`RLWX+NCH{JILhoE1&HfllW}st(u{-_cUvCwq)_LTPCN2OQo0m ziax6H(pS&po6YUFpQgy1{2aU6Y*((&q$1#9O|%ql;#)GcMzqu`WtO;>-IM`!0J z*10dSIydjhiT(GZRK;(xp0F$`%DSunb>&kfca@i=djFV#p8wU6=c4km%E@IC&@Ypo zbOx#{onpoC;PoAbss-W`Z?6@e9OvTJZ|Ad1urrwZfH+a!hlNgDszlpDc8N1*>gEd= z8h>`_m@%{RQN)uvp(mHLq8_ECS@-1kYp<#Mt8sqg$8UQojW^5kxh~UN<{kR9)$iOY zowa)Bi`P^d82{#euC#NDsOI0NFK6d{|2gMW|8lKue@iRP&FySM!p@$bZFcsI*__<9 zWtW!4dA)tQau;vf*X>=h9U;1U8=KW$bETzepPOXs@3z|}RropQ>e$%_w{E=dx=QBe zxhu1kZZBJ1CN**8DOIJnoEzdkJ>L7(%X$m+Q+|b=e}KeKWgIh%>_$4X5O?{b~$qf7~pAX^CVo`5+$e>;;Kuh>^rLq zBzQb00YiPFihoOoN@bEDC_9C|e}7SE`V!e=+mDNe?XR2i{6{N)<((4cj|vuR^NVK%(-rI?afVB15U}! zOoL=)j>Rrbf?})d3JFj&3gsv0Ryc;_GQq@+=RWJ5ERl9k* zEw*zF`$fGozm>ep&;EK+649GofB&!N60g&+*pU2Kt<-KARJ1U*VUDu;^04ZLH7>LM z_uTm{V=WMQ?qHdg+{K;!kAuA@{X3@pKX}p?J^x$z@%8R0QOEgR=l{LpWWAJqKb6Mw<&;$T=ZFXh= literal 0 HcmV?d00001 diff --git a/class_s_a_1_1_exception___query_bad_a_p_i_object-members.html b/class_s_a_1_1_exception___query_bad_a_p_i_object-members.html new file mode 100644 index 0000000..ed91bf3 --- /dev/null +++ b/class_s_a_1_1_exception___query_bad_a_p_i_object-members.html @@ -0,0 +1,104 @@ + + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::Exception_QueryBadAPIObject Member List
+
+
+ +

This is the complete list of members for SA::Exception_QueryBadAPIObject, including all inherited members.

+ + + + + + + + + + + + + + +
backtraceSA::Log
chanNameSA::Log
dateSA::Log
detailsSA::Log
Exception(BaseInfo _info, bool _pred, std::wstring _msg=L"") noexceptSA::Exception
Exception_ReachBadAPI(BaseInfo _info, std::wstring _str) noexceptSA::Exception_QueryBadAPIObject
fileSA::Log
frameNumSA::Log
functionSA::Log
levelSA::Log
lineSA::Log
Log(std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexceptSA::Log
msgSA::Log
+ + + + diff --git a/class_s_a_1_1_exception___query_bad_a_p_i_object.html b/class_s_a_1_1_exception___query_bad_a_p_i_object.html new file mode 100644 index 0000000..b6814f5 --- /dev/null +++ b/class_s_a_1_1_exception___query_bad_a_p_i_object.html @@ -0,0 +1,203 @@ + + + + + + + +SA_Logger: SA::Exception_QueryBadAPIObject Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::Exception_QueryBadAPIObject Class Reference
+
+
+
+Inheritance diagram for SA::Exception_QueryBadAPIObject:
+
+
+ + +SA::Exception_ReachBadAPI +SA::Exception +SA::Log + +
+ + + + + + + + + + + + + + +

+Public Member Functions

 Exception_ReachBadAPI (BaseInfo _info, std::wstring _str) noexcept
 
- Public Member Functions inherited from SA::Exception_ReachBadAPI
 Exception_ReachBadAPI (BaseInfo _info, std::wstring _str) noexcept
 
- Public Member Functions inherited from SA::Exception
 Exception (BaseInfo _info, bool _pred, std::wstring _msg=L"") noexcept
 
- Public Member Functions inherited from SA::Log
 Log (std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexcept
 Value Move Constructor.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from SA::Log
+std::wstring file
 File name.
 
+uint32_t line = 0u
 Line number.
 
+std::string function
 Function name.
 
+std::wstring msg = L"Hello, World!"
 User string message.
 
+LogLevel level = LogLevel::Normal
 Output level.
 
+std::wstring chanName = L"Default"
 Output channel name.
 
+std::wstring details
 Additional details string.
 
+uint32_t frameNum = 0u
 Frame number.
 
+std::string backtrace
 backtracing of logging call.
 
+DateTime date
 Date time.
 
+

Member Function Documentation

+ +

◆ Exception_ReachBadAPI()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
SA::Exception_ReachBadAPI::Exception_ReachBadAPI (BaseInfo _info,
std::wstring _str )
+
+noexcept
+
+

Value Constructor.

+
Parameters
+ + + +
[in]_infoBase create info.
[in]_strMessage string.
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_exception___query_bad_a_p_i_object.png b/class_s_a_1_1_exception___query_bad_a_p_i_object.png new file mode 100644 index 0000000000000000000000000000000000000000..d437fa88ca4b4b7ec3af4666b89bb92ea2a3b914 GIT binary patch literal 1340 zcmeAS@N?(olHy`uVBq!ia0vp^SAh5c2Q!fLcHg@kNJ$6ygt-3y{~ySF@#br3|Doj; z2ATyD)6cwk@ZbSZ-1KbN5}+JsNswPK1CS2}=1jAJ2C*FXba4!+V0=6G^`=J(0&Ldu zpo|D-3shal8FG`J8 zefhh_^Oaz&rNm^uC8w_Tg+w0v_(SyU``rDmiw$ahAOC&rwdz>((pgiZmej1hBJ(@Q z@Q(M@&{;|Il>gf=sd*Z5vvhMvsm58m)$>*MI+X|M0qMC(+>2FWkM6%$H>t!@QPoop zWa$BosX<5OX<&EaI>4;R`k)b2`u${d@90gEI_AGKYU{N!&s&K#Rreex{hOA(M6PgZbLYp_ zg7xOR!dAuPE?rd=x%H(1&^bM6$oWyJCCpq%VTvVf#1rp5dFdUTWpa)9iC%tlL-zkZ7`8utdhnz#R`EZZximd@&Cpw_@-n(*ib|!z5|xw8i$lCLOW6+a z7c#%-m0Oy(oo{W`6sfttHopqeS|#7WkKMaCLSv7=m*!VC&q=?OKqi9%+F~+FC|r41 zQt)?c?);bAWKKVREaA6AuKCnKpMrOv*PJ$5sj_y%`VDWB53gwdzVy`9u&jAiRV%+f zz3cz|_3^oxw>?ZB-&%Lu?z-pMgIDBdsjVv3Eq`X>@h$sSSkUUi*AG{>Z(dzm=f5gz zt8~RV&D|T#4fB}do`zVLnRcJlG(LDn-E!+6zsWm3hbo(vRytsp()b8;Bi@Ny*+u;<7biAEKTkAPFbe& zw}hOttWKD?E4;TTb-ulw<@1^oKfdfZeEH&K{U>wImhaL%{^>_y`0jTsS<-1MmwryL z-oK$QJvN8K^7)>_e&W(@wmM1b#_znQu3me^rnEBnDLlOU)-61Acb{CjSI*n-?b&UWTh`W8&tiIObC=4UytprLw(0G+*IPdNWX=Ai@4eM=&eM?S*>BqNu08b0s{Fe8dV<*3 zqjR#RRZE(zeed~o_0v^1!{7eDvTS;7>E|+i+tY>qr~dfA4ci~}=GL53md~$O)<1C- zmiZT3>zWmHKi# + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::Exception_ReachBadAPI Member List
+
+
+ +

This is the complete list of members for SA::Exception_ReachBadAPI, including all inherited members.

+ + + + + + + + + + + + + + +
backtraceSA::Log
chanNameSA::Log
dateSA::Log
detailsSA::Log
Exception(BaseInfo _info, bool _pred, std::wstring _msg=L"") noexceptSA::Exception
Exception_ReachBadAPI(BaseInfo _info, std::wstring _str) noexceptSA::Exception_ReachBadAPI
fileSA::Log
frameNumSA::Log
functionSA::Log
levelSA::Log
lineSA::Log
Log(std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexceptSA::Log
msgSA::Log
+ + + + diff --git a/class_s_a_1_1_exception___reach_bad_a_p_i.html b/class_s_a_1_1_exception___reach_bad_a_p_i.html new file mode 100644 index 0000000..0423687 --- /dev/null +++ b/class_s_a_1_1_exception___reach_bad_a_p_i.html @@ -0,0 +1,207 @@ + + + + + + + +SA_Logger: SA::Exception_ReachBadAPI Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::Exception_ReachBadAPI Class Reference
+
+
+ +

ReachBadAPI. + More...

+ +

#include <Exception_ReachBadAPI.hpp>

+
+Inheritance diagram for SA::Exception_ReachBadAPI:
+
+
+ + +SA::Exception +SA::Log +SA::Exception_QueryBadAPIObject + +
+ + + + + + + + + + + +

+Public Member Functions

 Exception_ReachBadAPI (BaseInfo _info, std::wstring _str) noexcept
 
- Public Member Functions inherited from SA::Exception
 Exception (BaseInfo _info, bool _pred, std::wstring _msg=L"") noexcept
 
- Public Member Functions inherited from SA::Log
 Log (std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexcept
 Value Move Constructor.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from SA::Log
+std::wstring file
 File name.
 
+uint32_t line = 0u
 Line number.
 
+std::string function
 Function name.
 
+std::wstring msg = L"Hello, World!"
 User string message.
 
+LogLevel level = LogLevel::Normal
 Output level.
 
+std::wstring chanName = L"Default"
 Output channel name.
 
+std::wstring details
 Additional details string.
 
+uint32_t frameNum = 0u
 Frame number.
 
+std::string backtrace
 backtracing of logging call.
 
+DateTime date
 Date time.
 
+

Detailed Description

+

ReachBadAPI.

+

Constructor & Destructor Documentation

+ +

◆ Exception_ReachBadAPI()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
SA::Exception_ReachBadAPI::Exception_ReachBadAPI (BaseInfo _info,
std::wstring _str )
+
+noexcept
+
+

Value Constructor.

+
Parameters
+ + + +
[in]_infoBase create info.
[in]_strMessage string.
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_exception___reach_bad_a_p_i.png b/class_s_a_1_1_exception___reach_bad_a_p_i.png new file mode 100644 index 0000000000000000000000000000000000000000..346133b950794f4e8a1e3e68fee894049bef6866 GIT binary patch literal 1351 zcmeAS@N?(olHy`uVBq!ia0vp^SAh5c2Q!fLcHg@kNJ$6ygt-3y{~ySF@#br3|Doj; z2ATyD)6cwk@ZbSZ-1KbN5}+JsNswPK1CS2}=1jAJ2C-c7ba4!+V0=6G?WHCQ9yfmf z^f~wbi|TuEYbtE&dN(^yhF^Z^TFWh+^`4qb?~^a+3M}B&lQmJ2$PJ z^rd#6%GZv4GCiK`K~J;XSLr;i_|x_5`?mXw0%z=7_VHh-YUty&L1(>mgZ71G_0_JF zc(?SGmapOYiT~}F)I1HjS-Lr-RO77O>iH^j7g}phzv@4UZ)0oVq;-$>->aKcVyUR= zDaWDd`RRbh)F7|9j31Qq81`OVeC6%6g`xdHi-YUKV!d3yGJkONV60GB!eAp1!~j&z zz~3U$!0yC#fLW3CLE{9b4-P2O4c{@mBksxjczMj)sO;S;Zw>5h-zj+hpO(Euu5fB| z=SPvmen-x4-H+mDjzzsYlR4qd^(~&4++)Ht zPHAm99ag+*P4m~hE4R%&e|2!Lj=$-a#(p-u_sW&0@4e4PZZ5i+vwtt^XU)`8kGkjl zioU)6ncr>$)#ZGv?*C0#eSiLGO;4-y;r|vmc}>z==B?@ZON=(5Ala7qg12o>@w@H` zr!3R?TSCrRRzL7~73Y5H>Z+~Vp3nKr_xN(UEFb&z_}kxR=AGVXW5@Al=at8fmNWd+ z!@eyzZIpS=a{Y$&8{Q@#UeW%2>8Yz>S@Wu@R(^eY*Z=!#U=ZE*FnxS$-EF(;o@WnU zk)Nfu>hE;xVyU8S@t3zvit3H#kGGu@yY_Q+Q0VHr2a5e}_U`R06#k&K{MN?Rkv@Ji zIn(S;u6$ZP>&V>oQY%-U=3H5t@_EO%t7qoUJ6#i^k@Gb3dCuX;{7cJ&tg|<3Z@s(d z_22o$=dAbWrUrd?^|PI7WtCg}N^0dV`_%N+)^(aLyPvLJTUQ-acE{$l)$(WU*Vh7l z``>%r9PQ_G?mr0+y8P>(hgF!?^EtKxL6*c3r{Q_^zrSlyoE!hW3 z(+(b-18X8G+RoqqZ9t*`wSY)hOLWyQbk zb9YBv=|)A5OMKR`ITBwtbjY6B0Zx~nuRQggI=$Tf?t1z1Wx3Y7+Kl$UGCJWF^}J3k zHGOvYdAE@1ck=eDPI&q~tL5}uOWsL;XKhOl^49PTzMahZW95}+>9b8Xv?kqLuePSr zfA+VtKDSrId(H$#!rQMAMOpdV&MwaVx_R@OvQ%Z$QcLx%Q72U2ns+9t=W-uuykhif zLBNeun`ds8tu9(Bck<%Cz}cp^-(GL|=#@45*Yc&e6#9x*t@SN)Hh*29vUSg|tJwzK zRYuEaJ&j}YeO(>!H*06sx6t4ATVJNe-`#W9`+U)z$wvQ!cVAsEw%csE%1ayde}`3G zTF&?Tkn^W}$+EAtqMxtFovPmvbU*rq{}Pp#{z5^Mo-|IFq{815q`CBp5Tm T?HSL2MIM8vtDnm{r-UW|s`ZRV literal 0 HcmV?d00001 diff --git a/class_s_a_1_1_file_log_stream-members.html b/class_s_a_1_1_file_log_stream-members.html new file mode 100644 index 0000000..de7d375 --- /dev/null +++ b/class_s_a_1_1_file_log_stream-members.html @@ -0,0 +1,102 @@ + + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::FileLogStream Member List
+
+
+ +

This is the complete list of members for SA::FileLogStream, including all inherited members.

+ + + + + + + + + + + + +
channelFilterSA::ALogStream
CreateLogFile(const std::string &_fileFullPath)SA::FileLogStreamprotected
FileLogStream(const std::string &_fileFullPath="Logs/log.txt") noexceptSA::FileLogStream
Flush() override finalSA::FileLogStreamvirtual
levelFlagsSA::ALogStream
mHandleSA::FileLogStreamprotected
operator<<(const Log &_log)SA::ALogStream
Output(const Log &_log) override finalSA::FileLogStreamprotectedvirtual
ProcessLog(const Log &_log, bool _bForce=false)SA::ALogStream
~ALogStream()=defaultSA::ALogStreamvirtual
~FileLogStream() noexceptSA::FileLogStream
+ + + + diff --git a/class_s_a_1_1_file_log_stream.html b/class_s_a_1_1_file_log_stream.html new file mode 100644 index 0000000..baaff73 --- /dev/null +++ b/class_s_a_1_1_file_log_stream.html @@ -0,0 +1,319 @@ + + + + + + + +SA_Logger: SA::FileLogStream Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

Log file stream type. + More...

+ +

#include <FileLogStream.hpp>

+
+Inheritance diagram for SA::FileLogStream:
+
+
+ + +SA::ALogStream + +
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 FileLogStream (const std::string &_fileFullPath="Logs/log.txt") noexcept
 
 ~FileLogStream () noexcept
 
void Flush () override final
 Force the stream to flush.
 
- Public Member Functions inherited from SA::ALogStream
+virtual ~ALogStream ()=default
 Default virtual destructor.
 
void ProcessLog (const Log &_log, bool _bForce=false)
 Process a log to output in stream.
 
ALogStreamoperator<< (const Log &_log)
 Output log operator.
 
+ + + + + + + +

+Protected Member Functions

void CreateLogFile (const std::string &_fileFullPath)
 Create log and log backup files.
 
void Output (const Log &_log) override final
 Output a log in stream.
 
+ + + + +

+Protected Attributes

+std::wofstream mHandle
 Handled file stream.
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from SA::ALogStream
+LogChannelFilter channelFilter
 Channel filter used for log in stream.
 
+uint8_t levelFlags = LogLevel::Default
 Level filter used for log in stream.
 
+

Detailed Description

+

Log file stream type.

+

Constructor & Destructor Documentation

+ +

◆ FileLogStream()

+ +
+
+ + + + + +
+ + + + + + + +
SA::FileLogStream::FileLogStream (const std::string & _fileFullPath = "Logs/log.txt")
+
+noexcept
+
+

Value Constructor

+
Parameters
+ + +
[in]_fileFullPathName and path of the file.
+
+
+ +
+
+ +

◆ ~FileLogStream()

+ +
+
+ + + + + +
+ + + + + + + +
SA::FileLogStream::~FileLogStream ()
+
+noexcept
+
+

Destructor. Close the file stream.

+ +
+
+

Member Function Documentation

+ +

◆ CreateLogFile()

+ +
+
+ + + + + +
+ + + + + + + +
void SA::FileLogStream::CreateLogFile (const std::string & _fileFullPath)
+
+protected
+
+ +

Create log and log backup files.

+
Parameters
+ + +
[in]_fileFullPathName and path of the log file.
+
+
+ +
+
+ +

◆ Flush()

+ +
+
+ + + + + +
+ + + + + + + +
void SA::FileLogStream::Flush ()
+
+finaloverridevirtual
+
+ +

Force the stream to flush.

+ +

Reimplemented from SA::ALogStream.

+ +
+
+ +

◆ Output()

+ +
+
+ + + + + +
+ + + + + + + +
void SA::FileLogStream::Output (const Log & _log)
+
+finaloverrideprotectedvirtual
+
+ +

Output a log in stream.

+
Parameters
+ + +
[in]_logLog to output.
+
+
+ +

Implements SA::ALogStream.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_file_log_stream.png b/class_s_a_1_1_file_log_stream.png new file mode 100644 index 0000000000000000000000000000000000000000..784a869d700c30a17bddbe5b3589f1668ca746c4 GIT binary patch literal 607 zcmeAS@N?(olHy`uVBq!ia0vp^B|sd&!3-q-S1vRKQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=E8~JY5_^Dj46+eK@IEfv07< z!R3>`?LV$$5i(f2O?1!9OFO@cco`64otYc_ecFPchF#{>-#_?tcKE&ia=KFV%i8q| zPnShm&gpnD=b68>V4(S55tCyQ?A#1?SC|>xUh}G%V#fK4J}H4zWuz}vcq+ACp|c###QoLU0nG2 zyNE5jPXqqpW6_@6BGn>r`u4|I(P`BVtj%7X*BNyVmSN-hHR?^bf3G zZqBT_pmiiW|Ld%+r=`AUJ-@P7)lt*o?(Ds<=V=;$cCXSu$$DXOyt8=y_o(g0#`0PJ lwip5(?CgXjMEMK@gYIe + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::Log Member List
+
+
+ +

This is the complete list of members for SA::Log, including all inherited members.

+ + + + + + + + + + + + +
backtraceSA::Log
chanNameSA::Log
dateSA::Log
detailsSA::Log
fileSA::Log
frameNumSA::Log
functionSA::Log
levelSA::Log
lineSA::Log
Log(std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexceptSA::Log
msgSA::Log
+ + + + diff --git a/class_s_a_1_1_log.html b/class_s_a_1_1_log.html new file mode 100644 index 0000000..7b9d01a --- /dev/null +++ b/class_s_a_1_1_log.html @@ -0,0 +1,254 @@ + + + + + + + +SA_Logger: SA::Log Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::Log Class Reference
+
+
+ +

Log type implementation. + More...

+ +

#include <Log.hpp>

+
+Inheritance diagram for SA::Log:
+
+
+ + +SA::Exception +SA::Exception_Equals +SA::Exception_IsValid +SA::Exception_NotEquals +SA::Exception_Nullptr +SA::Exception_OutOfRange +SA::Exception_ReachBadAPI +SA::Exception_Equals0 +SA::Exception_Equals1 +SA::Exception_NotEquals0 +SA::Exception_NotEquals1 +SA::Exception_OutOfArrayRange +SA::Exception_QueryBadAPIObject + +
+ + + + + +

+Public Member Functions

 Log (std::wstring _file, uint32_t _line, std::string _function, std::wstring _msg=L"Hello, World!", LogLevel _level=LogLevel::Normal, std::wstring _chanName=L"Default", std::wstring _details=L"", uint32_t _frameNum=0u, std::string _backtrace="") noexcept
 Value Move Constructor.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Attributes

+std::wstring file
 File name.
 
+uint32_t line = 0u
 Line number.
 
+std::string function
 Function name.
 
+std::wstring msg = L"Hello, World!"
 User string message.
 
+LogLevel level = LogLevel::Normal
 Output level.
 
+std::wstring chanName = L"Default"
 Output channel name.
 
+std::wstring details
 Additional details string.
 
+uint32_t frameNum = 0u
 Frame number.
 
+std::string backtrace
 backtracing of logging call.
 
+DateTime date
 Date time.
 
+

Detailed Description

+

Log type implementation.

+

Constructor & Destructor Documentation

+ +

◆ Log()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SA::Log::Log (std::wstring _file,
uint32_t _line,
std::string _function,
std::wstring _msg = L"Hello, World!",
LogLevel _level = LogLevel::Normal,
std::wstring _chanName = L"Default",
std::wstring _details = L"",
uint32_t _frameNum = 0u,
std::string _backtrace = "" )
+
+noexcept
+
+ +

Value Move Constructor.

+
Parameters
+ + + + + + + + + + +
[in]_fileFile of the Log.
[in]_lineLine of the Log.
[in]_functionFunction of the Log.
[in]_msgMessage of the Log.
[in]_levelLevel of the Log.
[in]_chanNameChannel's name of the Log.
[in]_detailsAdditional details to display.
[in]_frameNumFrame number of the Log.
[in]_backtracebacktracing of logging call.
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_log.png b/class_s_a_1_1_log.png new file mode 100644 index 0000000000000000000000000000000000000000..886aab084ef1ef035771f00bd2df290b0f5cd8b6 GIT binary patch literal 4323 zcmdT|dsNc-ws&g0HaXSIJX~yWJ!7LLKE_lidrW9PCQHW*%~Z%2nxaMuoa{_Y zw4F_IYm!vzH(;5@bd)nluZ~u1+Xzzgpt-m3%UV9iEd#F0Q`gpmBu|Cz-?y*x zRAh3mrdVO*xV~H)mM!;E8^!{mthR#3OKg&9sHT5y{YL{o7=twQD;gL9ZD-Uso3|TI zk?fZ_P_*B&ow)wG*+q~-M>!_t%9|)Sahs7~mcr+2b6U?DrBl8} zR(u(=yJf8f`lcl^{~zu8&g$=){r_%vJuR8ykl+)-fBn%Kn*M~S3O3u}-}rAZ^Bc-z z%TNTIZiMA0JpZZ+Vm%Ji<46!jenvpsuaU*BWjw+TiW$1 z)q+Allis7JX^bc#Fzvl|Yn%Xzmi`TVW$`Yl=sWys#*zx)5Yb@&&Nux?iuNU!go35% zG}+7ZkK4jlbl4a`bkB^Ti;M`UGCwD-yXVWEQJAN?$JIRRN2a$rzf$oqC-!-dfVV~J zw$^F|f}GD^!Q&7Tmbqmao(rliA0dY1r%Cim9q*?Wv1WwTmQEm!_$)~$-wXl|9ty}s zcP|ttBL2Ch?7XspM{BUYn7jt`(lrlgs5V2_ChfjiVapf_E&06JkHa%ltUx!gw6uFO z<5Dg&(gbsxw3@ZCcIRCrZ(3+;Ey5Hxvlso=;wk_0-v7P3;lUWD<>5O&=6g1)BiTjq z{LXU9=4W6G5n{jl*<8hjH#~BA|JfkcokqJ@n1uY?#CLny+w78Wya4j6_hq+EMMrG_ z`KcozR+hc3fhL}ivd8(`;ZN3q+%|&0ud}i4BaoX`-&mUSzh2sw=NZCJm^C5#jtndn z_e~{6faQCJXdWNj^R2i9!b|E11g06DNB~p~NIa4*fiOY@#J3XaNk!dt$hO1$9qe+7 zD*`-oC?Le@o!&~9n6ixs;KJXh8yDYo0t|_I&7i%9Pz_O|o_{eJD&C&w=a7wjmddZ) z`m1Lze&>QRPjfeGywTGwwB=B_HoB14&zFD7TzJINbS6-=3%*fllH*S~edkw= z*+MoPk<}hNP@7kzU&SIv(FU*0#Ag_Zo>{+Mw=IKpM-z6N=w=*e8GVFHO>KrbHRA}3 z8ZUtLWTZ&Ep4w;37w_Lftrc@LTXH;tNl2ypif@sdl0}*dt-k?*GarznTDdSj z2Q@cEjSiu1CuH?Ow9mS^Z9$DAQ76ADh^I?0Vp)?nvokD3uu*T!jUw5K|_HX zgk5bQ79m#Eq5ya4!jmBhrdybnJdAR|YD?7iKw|$v zS!D3i;uCcjk4_brB>1S~&xA>3bH0y>d%4ZTygUMVrmJ7)B+~w&6|*45=GA|!SiR0q zWYudRPAox9jLYE29#$`8+&yp03oW+}p?c^tQ2Xza7SuS^P;)03$T(S!sb1$BAT1MO ze1-k9HsC!HS!7n|FS~f`pZhX~tV=l~Apw5p+ZU;jn&AyC@R6^ZqZ`3c5_J1hB{dxe5c`yJy7Fah>J z@qaQNkfrNa{;W9RD>4lB%q%pZV!s^R!7b233=FbkdA1%EtM=AalUWV~kIM*EC3v%C zX^bl@PqmMWnq7e#hO5!(Di59hC$cyf<^Ys!Cl*f!%01QMuF6W4|A-Fihj7gnpgNMC zb#Mj(cAl+9b?omO87Ja@9KTOC+Dg=q(DdvAb$Wi~Y$fChCPPv|laZWWoQ66E27C== zb>rLs+#Stzr4Y_1mT=<*MP>Rw6CGf7uZr%XTVBWWx|k4#NUT(NJ>{<39=n;1BJE@+ z)rGV~{@5je&z`56F15BQdwer#3Vbdce_BwLW0+kP<(}a8B>Tb9K*7`a^vt3iY=*H0WjGgJMKE}B+iYABnC2vCoNdZ7%HS(K#VwErt>#S=>EtM8 z4=^n!?jDMFheUP6cJg(D%f!$uF2m>zGB3lW2D}9*9{{(=nPkuYyLCgU|Qy9$@ zrodPV))Q8U2rFKqm1UPq)LCAYuW0p{^tRt`8zD8v-@=1Tq}9iV1{oK32WUh&Nl(-F zTym%Nf#DWR2v^20HC)`V{?~sxQHgy&{z#>tEkB!wjM^!pC2UAA4Ft1N!=ry`-Ms`% zD*319ALla16qomP&W&>1OG3Aq62!z-X}yH?G*h~0jBHkX<*q}V=nE}PE%;I z-L1z=i3S}6NIj^H5S(jB86;t}0R$1lUw2eivV*<%Z8Gso24NIFibQzOyrH7FvLN8Y zdmu{on=w)0i%_gdd1i2B5|LkkaC%75&di~WiZpqAKCtVY?lse%uxI6ow#6Dk)*I4a zGzV+uCK0OcrZX2?;u&Y9(9P)9Z#dF0Qb4-5^Z|0Z{9$ z<@I;FdYt~)IDb%TSC=fA(#F=EybhmL@%yP%JS_+i>+h3&j^qs`NFQM3f7!$AA)Fi% z^!@Tg=1T519){L?WYXzXT+P{E!d%NBHLlJ|$Fdg*Sv%O|?~szXsd;q#0bqJCu0kuf z;4zKjAx&_;@%pkxrPS+)^mJ>NeB!9KN@q6{&uv4rK5W$AW-1(ig*=ZJ=s3SL$XqGi z#-q^s$HQ>zGu~N_;FpQUu(E*e@Vr)=lVvErVi@J5O7~PvJhAQTSe~?V^Hi^<(Jis7 zhe#y?PqkDNVBfp{`za#5tSr&sC(La=41;~;w=(-2!uTtdf@5M`yuo-~S}02Xloa9v zZp0WaJEXYBgw+$jT78|Qr3Ck)}5wm zT-wuMiuM~u-arcDkjTYeMmN( zF3AaOCuy^+#^X)uehaN{9ww$qx@J(s&1iV^=Td=x28&wyVvqId$tyRN_-5x&J8k0j z(yG-KPxYhIP_@Io)VZ?AG|5mPasWxBbjS05804hZEjm)P z=NJjac-#a&z{oyqd~$5KH>ddzeX!-pD^$k?wR7zNr$($+F92;E0&%vkrLu@Ly~BxR z=cA^`yi+AHf%p%yYNEG$kEuP?j#i3$81x^pCpw9#l48ETiL9)Y_n=_2Pv+0S+q9BK z;u%Rxw%$+3wiL6vbW1!pO$W~~ldd)d7qs2%>z}+y$D{Hc#_f5fkh0|nXhu1v9Tn>| zc=iTfalR#byU*BOZrh8W@n9ZVT@fvXK$TxFB=*W)RmHvTsct-7S09(?EhkxKeNQ(s z2RZbQePd^*?eMeswCbXsp1_?`_#EX^+eRc4=o; zgB`_5_tV;b-vKAk!E|!1l3?)X`e(Mv13{ectI+n#CN2!8O02D15gi)-q!A{(MRx0L zIzi7E1`~q3;RIV2EVRDfqb2IR{VPE1?cmv6Bz-uA`U`zt|&zU!L^yP z#t%YJc2v&>S4Wh-Nff^k6uh&653Aq4V2jPt*bPWR3bad~b05OqJ5IrYk%`TrrJ0!L o82B_UKlM8>i18#0zJ5#7j_2zn@litX?+6RT!O#PBfu{=p3k?+LX8-^I literal 0 HcmV?d00001 diff --git a/class_s_a_1_1_log_channel_filter-members.html b/class_s_a_1_1_log_channel_filter-members.html new file mode 100644 index 0000000..246ec05 --- /dev/null +++ b/class_s_a_1_1_log_channel_filter-members.html @@ -0,0 +1,92 @@ + + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::LogChannelFilter Member List
+
+
+ +

This is the complete list of members for SA::LogChannelFilter, including all inherited members.

+ + +
IsChannelEnabled(const std::wstring &_chanName, size_t _offset=0u) constSA::LogChannelFilter
+ + + + diff --git a/class_s_a_1_1_log_channel_filter.html b/class_s_a_1_1_log_channel_filter.html new file mode 100644 index 0000000..4000f67 --- /dev/null +++ b/class_s_a_1_1_log_channel_filter.html @@ -0,0 +1,137 @@ + + + + + + + +SA_Logger: SA::LogChannelFilter Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::LogChannelFilter Class Reference
+
+
+ +

#include <LogChannelFilter.hpp>

+ + + + +

+Public Member Functions

bool IsChannelEnabled (const std::wstring &_chanName, size_t _offset=0u) const
 
+

Detailed Description

+

Log Channel filter class implementation.

+

Filter channels and sub-channels availability.

+

ex: "SA/TEST/Chan" is enabled only if "SA", "SA/TEST" and "SA/TEST/Chan" channels are enabled.

+

Member Function Documentation

+ +

◆ IsChannelEnabled()

+ +
+
+ + + + + + + + + + + +
bool SA::LogChannelFilter::IsChannelEnabled (const std::wstring & _chanName,
size_t _offset = 0u ) const
+
+

Whether a channel is currently enabled or not.

+

A channel is enabled only if all parent channel are enabled.

+
Parameters
+ + + +
[in]_chanNameChannel name to filter.
[in]_offsetCurrent offset to check (internal use only).
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_log_r_a_i_i-members.html b/class_s_a_1_1_log_r_a_i_i-members.html new file mode 100644 index 0000000..b49a1be --- /dev/null +++ b/class_s_a_1_1_log_r_a_i_i-members.html @@ -0,0 +1,93 @@ + + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::LogRAII Member List
+
+
+ +

This is the complete list of members for SA::LogRAII, including all inherited members.

+ + + +
LogRAII(Log &&_log) (defined in SA::LogRAII)SA::LogRAII
~LogRAII() (defined in SA::LogRAII)SA::LogRAII
+ + + + diff --git a/class_s_a_1_1_log_r_a_i_i.html b/class_s_a_1_1_log_r_a_i_i.html new file mode 100644 index 0000000..8f22e95 --- /dev/null +++ b/class_s_a_1_1_log_r_a_i_i.html @@ -0,0 +1,101 @@ + + + + + + + +SA_Logger: SA::LogRAII Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::LogRAII Class Reference
+
+
+ + + + +

+Public Member Functions

LogRAII (Log &&_log)
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_logger-members.html b/class_s_a_1_1_logger-members.html new file mode 100644 index 0000000..9661bf7 --- /dev/null +++ b/class_s_a_1_1_logger-members.html @@ -0,0 +1,105 @@ + + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::Logger Member List
+
+
+ +

This is the complete list of members for SA::Logger, including all inherited members.

+ + + + + + + + + + + + + + + +
Assert(ExcepT _exc)SA::Logger
ClearStreams(bool _bFlush=true)SA::Logger
CreateSteam(Args &&... _args)SA::Logger
DestroyStream(StreamT &_stream, bool _bFlush=true)SA::Logger
Flush()SA::Loggervirtual
GetFrameNum() const (defined in SA::Logger)SA::Logger
IncrementFrameNum() (defined in SA::Logger)SA::Logger
Log(SA::Log _log)SA::Loggervirtual
mFrameNum (defined in SA::Logger)SA::Loggerprotected
mStreams (defined in SA::Logger)SA::Loggerprotected
ProcessLog(const SA::Log &_log, bool _bForce=false)SA::Loggerprotectedvirtual
RegisterStream(ALogStream *_stream)SA::Loggerprotectedvirtual
UnregisterStream(ALogStream *_stream)SA::Loggerprotectedvirtual
~Logger()SA::Loggervirtual
+ + + + diff --git a/class_s_a_1_1_logger.html b/class_s_a_1_1_logger.html new file mode 100644 index 0000000..0a9a090 --- /dev/null +++ b/class_s_a_1_1_logger.html @@ -0,0 +1,470 @@ + + + + + + + +SA_Logger: SA::Logger Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

Basic Logger class implementation. + More...

+ +

#include <Logger.hpp>

+
+Inheritance diagram for SA::Logger:
+
+
+ + +SA::LoggerThread + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual ~Logger ()
 Destructor Destroy all created log streams.
 
virtual void Log (SA::Log _log)
 Push a new log in logger.
 
template<typename ExcepT >
void Assert (ExcepT _exc)
 Process exception.
 
template<typename StreamT , typename... Args>
StreamT & CreateSteam (Args &&... _args)
 Create a new stream to output in.
 
template<typename StreamT >
bool DestroyStream (StreamT &_stream, bool _bFlush=true)
 Destroy a previously created stream.
 
void ClearStreams (bool _bFlush=true)
 
virtual void Flush ()
 Force logger to flush all streams.
 
+void IncrementFrameNum ()
 
+uint32_t GetFrameNum () const
 
+ + + + + + + + + + +

+Protected Member Functions

virtual void ProcessLog (const SA::Log &_log, bool _bForce=false)
 Process log to output.
 
virtual void RegisterStream (ALogStream *_stream)
 Register a stream to output.
 
virtual bool UnregisterStream (ALogStream *_stream)
 Unregister a stream from output.
 
+ + + + + +

+Protected Attributes

+std::list< ALogStream * > mStreams
 
+uint32_t mFrameNum = 0u
 
+

Detailed Description

+

Basic Logger class implementation.

+

Non-thread-safe logging.

+

Member Function Documentation

+ +

◆ Assert()

+ +
+
+
+template<typename ExcepT >
+ + + + + + + +
void SA::Logger::Assert (ExcepT _exc)
+
+ +

Process exception.

+

Log assertion on success, otherwise throw exception. Use SA_ASSERT as helper call.

+
Template Parameters
+ + +
ExcepTException type.
+
+
+
Parameters
+ + +
[in]_excexception to process.
+
+
+ +
+
+ +

◆ ClearStreams()

+ +
+
+ + + + + + + +
void SA::Logger::ClearStreams (bool _bFlush = true)
+
+

Destroy all streams.

+
Parameters
+ + +
_bFlushShould flush stream before destroy.
+
+
+ +
+
+ +

◆ CreateSteam()

+ +
+
+
+template<typename StreamT , typename... Args>
+ + + + + + + +
StreamT & SA::Logger::CreateSteam (Args &&... _args)
+
+ +

Create a new stream to output in.

+
Template Parameters
+ + + +
StreamTType of stream to create.
Args...Argument variadic types to construct stream.
+
+
+
Parameters
+ + +
[in]_argsArguments to construct stream.
+
+
+
Returns
Newly created stream.
+ +
+
+ +

◆ DestroyStream()

+ +
+
+
+template<typename StreamT >
+ + + + + + + + + + + +
bool SA::Logger::DestroyStream (StreamT & _stream,
bool _bFlush = true )
+
+ +

Destroy a previously created stream.

+
Template Parameters
+ + +
StreamTType of stream to destroy.
+
+
+
Parameters
+ + + +
_streamStream variable to destroy.
_bFlushShould flush stream before destroy.
+
+
+
Returns
true on destroy success.
+ +
+
+ +

◆ Flush()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void SA::Logger::Flush ()
+
+virtual
+
+ +

Force logger to flush all streams.

+ +

Reimplemented in SA::LoggerThread.

+ +
+
+ +

◆ Log()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void SA::Logger::Log (SA::Log _log)
+
+virtual
+
+ +

Push a new log in logger.

+
Parameters
+ + +
[in]_logLog to push.
+
+
+ +

Reimplemented in SA::LoggerThread.

+ +
+
+ +

◆ ProcessLog()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
virtual void SA::Logger::ProcessLog (const SA::Log & _log,
bool _bForce = false )
+
+protectedvirtual
+
+ +

Process log to output.

+
Parameters
+ + + +
[in]_logLog to process.
[in]_bForceShould force log process. Default is false.
+
+
+ +
+
+ +

◆ RegisterStream()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void SA::Logger::RegisterStream (ALogStream * _stream)
+
+protectedvirtual
+
+ +

Register a stream to output.

+
Parameters
+ + +
[in]_streamStream to register.
+
+
+ +
+
+ +

◆ UnregisterStream()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool SA::Logger::UnregisterStream (ALogStream * _stream)
+
+protectedvirtual
+
+ +

Unregister a stream from output.

+
Parameters
+ + +
[in]_streamStream to unregister.
+
+
+
Returns
true on success.
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_logger.png b/class_s_a_1_1_logger.png new file mode 100644 index 0000000000000000000000000000000000000000..891ba073964fe7554856b1f15cd8d10ac0aa85ab GIT binary patch literal 564 zcmeAS@N?(olHy`uVBq!ia0vp^#Xuau!3-p2m+tZbQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=E9>JzX3_Dj46+eYmb!fv1(f zJ;n0<|0CtQnnDGaOIJ8p%YSN8ssFV--6{WH+>mqX|? zi&XRUYx6SqGF_hZVGn<9-nH3No~++{$4}()>!RkvrrDSHR93FoE9JF&9{b*eb+fbn zeSdvT=$Tnu>a3@kX<5c|D|AZ&+-Ro=bto<+{h zpC81VZ@+m)=Kt-pmHST4(RG;QDmwF;wt+6Em{;B%wcv88Q+D@CC*JN%s*24kh&f@N z$v$&t+wzw?UvFwtiv@`Ea+B2K^pN_5GwY6m_?_0yOMcp%(9bb0DM=!6j{L!48 zuEKRO{)XPqBhTi(wVB@ORc7fpb(gMD?cIGHM?b5av=xn$QK@t|KI8Rf#gmJzB%c2< rR6i;F>b}vWoW=4<$0Qza{lzT#JuxrrnOiw9ei=Mn{an^LB{Ts5y1Wpk literal 0 HcmV?d00001 diff --git a/class_s_a_1_1_logger_thread-members.html b/class_s_a_1_1_logger_thread-members.html new file mode 100644 index 0000000..5933f84 --- /dev/null +++ b/class_s_a_1_1_logger_thread-members.html @@ -0,0 +1,104 @@ + + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA::LoggerThread Member List
+
+
+ +

This is the complete list of members for SA::LoggerThread, including all inherited members.

+ + + + + + + + + + + + + + +
Assert(ExcepT _exc)SA::Logger
ClearStreams(bool _bFlush=true)SA::Logger
CreateSteam(Args &&... _args)SA::Logger
DestroyStream(StreamT &_stream, bool _bFlush=true)SA::Logger
Flush() override finalSA::LoggerThreadvirtual
GetFrameNum() const (defined in SA::Logger)SA::Logger
IncrementFrameNum() (defined in SA::Logger)SA::Logger
Log(SA::Log _log) override finalSA::LoggerThreadvirtual
LoggerThread() noexceptSA::LoggerThread
mFrameNum (defined in SA::Logger)SA::Loggerprotected
mStreams (defined in SA::Logger)SA::Loggerprotected
~Logger()SA::Loggervirtual
~LoggerThread()SA::LoggerThread
+ + + + diff --git a/class_s_a_1_1_logger_thread.html b/class_s_a_1_1_logger_thread.html new file mode 100644 index 0000000..6770d82 --- /dev/null +++ b/class_s_a_1_1_logger_thread.html @@ -0,0 +1,246 @@ + + + + + + + +SA_Logger: SA::LoggerThread Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
SA::LoggerThread Class Reference
+
+
+ +

Multithread logger class. + More...

+ +

#include <LoggerThread.hpp>

+
+Inheritance diagram for SA::LoggerThread:
+
+
+ + +SA::Logger + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

LoggerThread () noexcept
 Default Constructor.
 
 ~LoggerThread ()
 
void Log (SA::Log _log) override final
 Push a new log in logger.
 
void Flush () override final
 Force logger to flush all streams.
 
- Public Member Functions inherited from SA::Logger
+virtual ~Logger ()
 Destructor Destroy all created log streams.
 
template<typename ExcepT >
void Assert (ExcepT _exc)
 Process exception.
 
template<typename StreamT , typename... Args>
StreamT & CreateSteam (Args &&... _args)
 Create a new stream to output in.
 
template<typename StreamT >
bool DestroyStream (StreamT &_stream, bool _bFlush=true)
 Destroy a previously created stream.
 
void ClearStreams (bool _bFlush=true)
 
+void IncrementFrameNum ()
 
+uint32_t GetFrameNum () const
 
+ + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from SA::Logger
+std::list< ALogStream * > mStreams
 
+uint32_t mFrameNum = 0u
 
+

Detailed Description

+

Multithread logger class.

+

Create one thread for log output. Push logs in thread-safe queue.

+

Constructor & Destructor Documentation

+ +

◆ ~LoggerThread()

+ +
+
+ + + + + + + +
SA::LoggerThread::~LoggerThread ()
+
+

Thread-safe destructor. Flush all remaining logs in streams before join.

+ +
+
+

Member Function Documentation

+ +

◆ Flush()

+ +
+
+ + + + + +
+ + + + + + + +
void SA::LoggerThread::Flush ()
+
+finaloverridevirtual
+
+ +

Force logger to flush all streams.

+ +

Reimplemented from SA::Logger.

+ +
+
+ +

◆ Log()

+ +
+
+ + + + + +
+ + + + + + + +
void SA::LoggerThread::Log (SA::Log _log)
+
+finaloverridevirtual
+
+ +

Push a new log in logger.

+
Parameters
+ + +
[in]_logLog to push.
+
+
+ +

Reimplemented from SA::Logger.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/class_s_a_1_1_logger_thread.png b/class_s_a_1_1_logger_thread.png new file mode 100644 index 0000000000000000000000000000000000000000..94b22cf2b641303930f542f0b6d561ff51857cb3 GIT binary patch literal 556 zcmV+{0@MA8P)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0005E zNkls zyYvp{&*bfJ0ze~%69C#UoB+^<;RJv-3?~4zVK@Px4Z{flZ5U1fDB_%Roq?02t_-In zwc%dpE1|5GK9{6AmXMY1VgBHp3cDpEk4IsdK$5a#omR^@EeN)iSR{)K)ukzpNr!G? zyI73*N*bq$(ju%NIz#jFcs+ERL(AB7(;Mf$us*B7>qlwlUEW&2!h&i}>-o+Z9#2Ki z8HOYi9NFj6C%ezx&`ZwTc@|?^I?rvOLcbWGLf&SbY2MDp?0HI3jm(Qfl1^~Wxj!38 uI?Ks@uK(tebb;|LlcYBMkkdKm`tk?Z+Fu{bUSJad0000 + + + + + + +SA_Logger: Class Index + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Index
+
+ + + + + diff --git a/clipboard.js b/clipboard.js new file mode 100644 index 0000000..42c1fb0 --- /dev/null +++ b/clipboard.js @@ -0,0 +1,61 @@ +/** + +The code below is based on the Doxygen Awesome project, see +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +let clipboard_title = "Copy to clipboard" +let clipboard_icon = `` +let clipboard_successIcon = `` +let clipboard_successDuration = 1000 + +$(function() { + if(navigator.clipboard) { + const fragments = document.getElementsByClassName("fragment") + for(const fragment of fragments) { + const clipboard_div = document.createElement("div") + clipboard_div.classList.add("clipboard") + clipboard_div.innerHTML = clipboard_icon + clipboard_div.title = clipboard_title + $(clipboard_div).click(function() { + const content = this.parentNode.cloneNode(true) + // filter out line number and folded fragments from file listings + content.querySelectorAll(".lineno, .ttc, .foldclosed").forEach((node) => { node.remove() }) + let text = content.textContent + // remove trailing newlines and trailing spaces from empty lines + text = text.replace(/^\s*\n/gm,'\n').replace(/\n*$/,'') + navigator.clipboard.writeText(text); + this.classList.add("success") + this.innerHTML = clipboard_successIcon + window.setTimeout(() => { // switch back to normal icon after timeout + this.classList.remove("success") + this.innerHTML = clipboard_icon + }, clipboard_successDuration); + }) + fragment.insertBefore(clipboard_div, fragment.firstChild) + } + } +}) diff --git a/closed.png b/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/cookie.js b/cookie.js new file mode 100644 index 0000000..53ad21d --- /dev/null +++ b/cookie.js @@ -0,0 +1,58 @@ +/*! + Cookie helper functions + Copyright (c) 2023 Dimitri van Heesch + Released under MIT license. +*/ +let Cookie = { + cookie_namespace: 'doxygen_', + + readSetting(cookie,defVal) { + if (window.chrome) { + const val = localStorage.getItem(this.cookie_namespace+cookie) || + sessionStorage.getItem(this.cookie_namespace+cookie); + if (val) return val; + } else { + let myCookie = this.cookie_namespace+cookie+"="; + if (document.cookie) { + const index = document.cookie.indexOf(myCookie); + if (index != -1) { + const valStart = index + myCookie.length; + let valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + return document.cookie.substring(valStart, valEnd); + } + } + } + return defVal; + }, + + writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete + if (window.chrome) { + if (days==0) { + sessionStorage.setItem(this.cookie_namespace+cookie,val); + } else { + localStorage.setItem(this.cookie_namespace+cookie,val); + } + } else { + let date = new Date(); + date.setTime(date.getTime()+(days*24*60*60*1000)); + const expiration = days!=0 ? "expires="+date.toGMTString()+";" : ""; + document.cookie = this.cookie_namespace + cookie + "=" + + val + "; SameSite=Lax;" + expiration + "path=/"; + } + }, + + eraseSetting(cookie) { + if (window.chrome) { + if (localStorage.getItem(this.cookie_namespace+cookie)) { + localStorage.removeItem(this.cookie_namespace+cookie); + } else if (sessionStorage.getItem(this.cookie_namespace+cookie)) { + sessionStorage.removeItem(this.cookie_namespace+cookie); + } + } else { + this.writeSetting(cookie,'',-1); + } + }, +} diff --git a/dir_06e8ab06559c1f3880717ed02ded38a5.html b/dir_06e8ab06559c1f3880717ed02ded38a5.html new file mode 100644 index 0000000..062c24a --- /dev/null +++ b/dir_06e8ab06559c1f3880717ed02ded38a5.html @@ -0,0 +1,101 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Streams/Console Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Console Directory Reference
+
+
+ + + + + + + + + + + +

+Files

 ConsoleColor.hpp
 Console Color enum implementation.
 
 ConsoleColorTheme.hpp
 Define color theme by LogLevel.
 
 ConsoleLogStream.hpp
 Log console stream type implementation.
 
+
+ + + + diff --git a/dir_334e8dcef9eb594a64cbd177ebad972f.html b/dir_334e8dcef9eb594a64cbd177ebad972f.html new file mode 100644 index 0000000..83ab433 --- /dev/null +++ b/dir_334e8dcef9eb594a64cbd177ebad972f.html @@ -0,0 +1,100 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Misc Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Misc Directory Reference
+
+
+ + + + + + + + + + +

+Files

 DateTime.hpp
 Date Time definition.
 
 StringFormat.hpp
 
 ToString.hpp
 Definition of Sapphire ToString methods.
 
+
+ + + + diff --git a/dir_44e3ece6b88e5298d391eff2985b9a07.html b/dir_44e3ece6b88e5298d391eff2985b9a07.html new file mode 100644 index 0000000..4b12a88 --- /dev/null +++ b/dir_44e3ece6b88e5298d391eff2985b9a07.html @@ -0,0 +1,114 @@ + + + + + + + +SA_Logger: Include/SA/Logger Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Logger Directory Reference
+
+
+ + + + + + + + + + + + +

+Directories

 Exceptions
 
 Log
 
 Misc
 
 Preprocessors
 
 Streams
 
+ + + + + + + + + + +

+Files

 Config.hpp
 Logger specific config file.
 
 Logger.hpp
 Logger class implementation.
 
 LoggerThread.hpp
 Multithread Logger class implementation.
 
+
+ + + + diff --git a/dir_53d8d22392512752130cf4439e7945ef.html b/dir_53d8d22392512752130cf4439e7945ef.html new file mode 100644 index 0000000..91151e6 --- /dev/null +++ b/dir_53d8d22392512752130cf4439e7945ef.html @@ -0,0 +1,95 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Streams/File Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
File Directory Reference
+
+
+ + + + + +

+Files

 FileLogStream.hpp
 Log file stream type implementation.
 
+
+ + + + diff --git a/dir_5e42f1ed0250ef473f569b10c537902f.html b/dir_5e42f1ed0250ef473f569b10c537902f.html new file mode 100644 index 0000000..6d99686 --- /dev/null +++ b/dir_5e42f1ed0250ef473f569b10c537902f.html @@ -0,0 +1,94 @@ + + + + + + + +SA_Logger: Include/SA Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
SA Directory Reference
+
+
+ + + + +

+Directories

 Logger
 
+
+ + + + diff --git a/dir_74c5e88be65fcb978bfca12bd6788eb0.html b/dir_74c5e88be65fcb978bfca12bd6788eb0.html new file mode 100644 index 0000000..a1c6226 --- /dev/null +++ b/dir_74c5e88be65fcb978bfca12bd6788eb0.html @@ -0,0 +1,104 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Preprocessors Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Preprocessors Directory Reference
+
+
+ + + + + + + + + + + + + + +

+Files

 AssertMacro.hpp
 
 ChannelName.hpp
 
 FileName.hpp
 
 FunctionName.hpp
 
 LogMacro.hpp
 
 Unparenthese.hpp
 
+
+ + + + diff --git a/dir_7cdbe1d274c0bbbb0e754cc9743078b6.html b/dir_7cdbe1d274c0bbbb0e754cc9743078b6.html new file mode 100644 index 0000000..93a7001 --- /dev/null +++ b/dir_7cdbe1d274c0bbbb0e754cc9743078b6.html @@ -0,0 +1,102 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Streams Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Streams Directory Reference
+
+
+ + + + + + +

+Directories

 Console
 
 File
 
+ + + + +

+Files

 ALogStream.hpp
 Log base stream implementation.
 
+
+ + + + diff --git a/dir_81f580c597db740fb18c0845cc03bcf9.html b/dir_81f580c597db740fb18c0845cc03bcf9.html new file mode 100644 index 0000000..1446679 --- /dev/null +++ b/dir_81f580c597db740fb18c0845cc03bcf9.html @@ -0,0 +1,128 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Exceptions Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Exceptions Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

 Exception.hpp
 Default Exception type implementation.
 
 Exception_Equals.hpp
 Equals Exception base type implementation.
 
 Exception_Equals0.hpp
 Equals 0 Exception type implementation.
 
 Exception_Equals1.hpp
 Equals 1 Exception type implementation.
 
 Exception_IsValid.hpp
 IsValid Exception type implementation.
 
 Exception_NotEquals.hpp
 Not Equals Exception base type implementation.
 
 Exception_NotEquals0.hpp
 Not Equals 0 Exception type implementation.
 
 Exception_NotEquals1.hpp
 Not Equals 1 Exception type implementation.
 
 Exception_Nullptr.hpp
 Nullptr Exception type implementation.
 
 Exception_OutOfArrayRange.hpp
 OutOfRange Array Exception type implementation.
 
 Exception_OutOfRange.hpp
 OutOfRange Exception type implementation.
 
 Exception_ReachBadAPI.hpp
 ReachBadAPI Exception type implementation.
 
+
+ + + + diff --git a/dir_856524284ebe840938865dc061f982fb.html b/dir_856524284ebe840938865dc061f982fb.html new file mode 100644 index 0000000..f91ab77 --- /dev/null +++ b/dir_856524284ebe840938865dc061f982fb.html @@ -0,0 +1,88 @@ + + + + + + + +SA_Logger: Include Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Include Directory Reference
+
+
+
+ + + + diff --git a/dir_9cc8eabe79b720a03714bc4a9d3c6f45.html b/dir_9cc8eabe79b720a03714bc4a9d3c6f45.html new file mode 100644 index 0000000..ed91f9f --- /dev/null +++ b/dir_9cc8eabe79b720a03714bc4a9d3c6f45.html @@ -0,0 +1,103 @@ + + + + + + + +SA_Logger: Include/SA/Logger/Log Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Log Directory Reference
+
+
+ + + + + + + + + + + + + +

+Files

 Log.hpp
 Log type implementation.
 
 LogChannelFilter.hpp
 Channel filter implementation.
 
 LogLevel.hpp
 Log level enum implementation.
 
 LogRAII.hpp
 
+
+ + + + diff --git a/doc.svg b/doc.svg new file mode 100644 index 0000000..0b928a5 --- /dev/null +++ b/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docd.svg b/docd.svg new file mode 100644 index 0000000..ac18b27 --- /dev/null +++ b/docd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/doxygen.css b/doxygen.css new file mode 100644 index 0000000..7b7d851 --- /dev/null +++ b/doxygen.css @@ -0,0 +1,2225 @@ +/* The standard CSS for doxygen 1.10.0*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #3D578C; +--page-visited-link-color: #4665A2; + +/* index */ +--index-odd-item-bg-color: #F8F9FC; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F9FAFC; +--header-separator-color: #C4CFE5; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #879ECB; +--group-header-color: #354C7B; +--inherit-header-color: gray; + +--footer-foreground-color: #2A3D61; +--footer-logo-width: 104px; +--citation-label-color: #334975; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #5373B4; +--directory-separator-color: #9CAFD4; +--separator-color: #4A6AAA; + +--blockquote-background-color: #F7F8FB; +--blockquote-border-color: #9CAFD4; + +--scrollbar-thumb-color: #9CAFD4; +--scrollbar-background-color: #F9FAFC; + +--icon-background-color: #728DC1; +--icon-foreground-color: white; +--icon-doc-image: url('doc.svg'); +--icon-folder-open-image: url('folderopen.svg'); +--icon-folder-closed-image: url('folderclosed.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #F9FAFC; +--memdecl-separator-color: #DEE4F0; +--memdecl-foreground-color: #555; +--memdecl-template-color: #4665A2; + +/* detailed member list */ +--memdef-border-color: #A8B8D9; +--memdef-title-background-color: #E2E8F2; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #DFE5F1; +--memdef-proto-text-color: #253555; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #4665A2; + +/* tables */ +--table-cell-border-color: #2D4068; +--table-header-background-color: #374F7F; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #728DC1; +--label-left-top-border-color: #5373B4; +--label-right-bottom-border-color: #C4CFE5; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F9FAFC; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #C2CDE4; +--nav-splitbar-image: url('splitbar.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #283A5D; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #364D7C; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #9CAFD4; +--nav-arrow-selected-color: #9CAFD4; + +/* table of contents */ +--toc-background-color: #F4F6FA; +--toc-border-color: #D8DFEE; +--toc-header-color: #4665A2; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); +--search-active-color: black; +--search-filter-background-color: #F9FAFC; +--search-filter-foreground-color: black; +--search-filter-border-color: #90A5CE; +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #3D578C; +--search-results-foreground-color: #425E97; +--search-results-background-color: #EEF1F7; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-xml-cdata-color: black; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #4665A2; +--code-external-link-color: #4665A2; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--fragment-copy-ok-color: #2EC82E; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 1px 1px 7px gray; +--fold-line-color: #808080; +--fold-minus-image: url('minus.svg'); +--fold-plus-image: url('plus.svg'); +--fold-minus-image-relpath: url('../../minus.svg'); +--fold-plus-image-relpath: url('../../plus.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +/** special sections */ +--warning-color-bg: #f8d1cc; +--warning-color-hl: #b61825; +--warning-color-text: #75070f; +--note-color-bg: #faf3d8; +--note-color-hl: #f3a600; +--note-color-text: #5f4204; +--todo-color-bg: #e4f3ff; +--todo-color-hl: #1879C4; +--todo-color-text: #274a5c; +--test-color-bg: #e8e8ff; +--test-color-hl: #3939C4; +--test-color-text: #1a1a5c; +--deprecated-color-bg: #ecf0f3; +--deprecated-color-hl: #5b6269; +--deprecated-color-text: #43454a; +--bug-color-bg: #e4dafd; +--bug-color-hl: #5b2bdd; +--bug-color-text: #2a0d72; +--invariant-color-bg: #d8f1e3; +--invariant-color-hl: #44b86f; +--invariant-color-text: #265532; +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #283A5D; +--group-header-color: #90A5CE; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #354C79; +--directory-separator-color: #283A5D; +--separator-color: #283A5D; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #283A5D; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-doc-image: url('docd.svg'); +--icon-folder-open-image: url('folderopend.svg'); +--icon-folder-closed-image: url('folderclosedd.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #0B101A; +--memdecl-separator-color: #2C3F65; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #7C95C6; + +/* detailed member list */ +--memdef-border-color: #233250; +--memdef-title-background-color: #1B2840; +--memdef-title-gradient-image: url('nav_fd.png'); +--memdef-proto-background-color: #19243A; +--memdef-proto-text-color: #9DB0D4; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #7C95C6; + +/* tables */ +--table-cell-border-color: #283A5D; +--table-header-background-color: #283A5D; +--table-header-foreground-color: #C4CFE5; + +/* labels */ +--label-background-color: #354C7B; +--label-left-top-border-color: #4665A2; +--label-right-bottom-border-color: #283A5D; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #101826; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); +--nav-breadcrumb-border-color: #2A3D61; +--nav-splitbar-image: url('splitbard.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #B6C4DF; +--nav-text-hover-color: #DCE2EF; +--nav-text-active-color: #DCE2EF; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #B6C4DF; +--nav-menu-background-color: #05070C; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #334975; +--nav-arrow-selected-color: #90A5CE; + +/* table of contents */ +--toc-background-color: #151E30; +--toc-border-color: #202E4A; +--toc-header-color: #A3B4D7; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; +--search-filter-background-color: #101826; +--search-filter-foreground-color: #90A5CE; +--search-filter-border-color: #7C95C6; +--search-filter-highlight-text-color: #BCC9E2; +--search-filter-highlight-bg-color: #283A5D; +--search-results-background-color: #101826; +--search-results-foreground-color: #90A5CE; +--search-results-border-color: #7C95C6; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-xml-cdata-color: #C9D1D9; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #C0C0C0; +--code-vhdl-keyword-color: #CF53C9; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: #090D16; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--fragment-copy-ok-color: #0EA80E; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; +--fold-line-color: #808080; +--fold-minus-image: url('minusd.svg'); +--fold-plus-image: url('plusd.svg'); +--fold-minus-image-relpath: url('../../minusd.svg'); +--fold-plus-image-relpath: url('../../plusd.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +/** special sections */ +--warning-color-bg: #2e1917; +--warning-color-hl: #ad2617; +--warning-color-text: #f5b1aa; +--note-color-bg: #3b2e04; +--note-color-hl: #f1b602; +--note-color-text: #ceb670; +--todo-color-bg: #163750; +--todo-color-hl: #1982D2; +--todo-color-text: #dcf0fa; +--test-color-bg: #121258; +--test-color-hl: #4242cf; +--test-color-text: #c0c0da; +--deprecated-color-bg: #2e323b; +--deprecated-color-hl: #738396; +--deprecated-color-text: #abb0bd; +--bug-color-bg: #2a2536; +--bug-color-hl: #7661b3; +--bug-color-text: #ae9ed6; +--invariant-color-bg: #303a35; +--invariant-color-hl: #76ce96; +--invariant-color-text: #cceed5; +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; +} + +/* @group Heading Levels */ + +.title { + font-family: var(--font-family-normal); + line-height: 28px; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--glow-color); +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); +} + +#main-menu a:focus { + outline: auto; + z-index: 10; + position: relative; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: var(--page-link-color); + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: var(--page-visited-link-color); +} + +a:hover { + text-decoration: none; + background: linear-gradient(to bottom, transparent 0,transparent calc(100% - 1px), currentColor 100%); +} + +a:hover > span.arrow { + text-decoration: none; + background : var(--nav-background-color); +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: var(--code-link-color); +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: var(--code-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; + overflow-y: hidden; + position: relative; + min-height: 12px; + margin: 10px 0px; + padding: 10px 10px; + border: 1px solid var(--fragment-border-color); + border-radius: 4px; + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); +} + +pre.fragment { + word-wrap: break-word; + font-size: 10pt; + line-height: 125%; + font-family: var(--font-family-monospace); +} + +.clipboard { + width: 24px; + height: 24px; + right: 5px; + top: 5px; + opacity: 0; + position: absolute; + display: inline; + overflow: auto; + fill: var(--fragment-foreground-color); + justify-content: center; + align-items: center; + cursor: pointer; +} + +.clipboard.success { + border: 1px solid var(--fragment-foreground-color); + border-radius: 4px; +} + +.fragment:hover .clipboard, .clipboard.success { + opacity: .28; +} + +.clipboard:hover, .clipboard.success { + opacity: 1 !important; +} + +.clipboard:active:not([class~=success]) svg { + transform: scale(.91); +} + +.clipboard.success svg { + fill: var(--fragment-copy-ok-color); +} + +.clipboard.success { + border-color: var(--fragment-copy-ok-color); +} + +div.line { + font-family: var(--font-family-monospace); + font-size: 13px; + min-height: 13px; + line-height: 1.2; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); +} + +span.fold { + margin-left: 5px; + margin-right: 1px; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; + display: inline-block; + width: 12px; + height: 12px; + background-repeat:no-repeat; + background-position:center; +} + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); +} + +span.lineno a:hover { + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: var(--page-foreground-color); + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: var(--code-keyword-color); +} + +span.keywordtype { + color: var(--code-type-keyword-color); +} + +span.keywordflow { + color: var(--code-flow-keyword-color); +} + +span.comment { + color: var(--code-comment-color); +} + +span.preprocessor { + color: var(--code-preprocessor-color); +} + +span.stringliteral { + color: var(--code-string-literal-color); +} + +span.charliteral { + color: var(--code-char-literal-color); +} + +span.xmlcdata { + color: var(--code-xml-cdata-color); +} + +span.vhdldigit { + color: var(--code-vhdl-digit-color); +} + +span.vhdlchar { + color: var(--code-vhdl-char-color); +} + +span.vhdlkeyword { + color: var(--code-vhdl-keyword-color); +} + +span.vhdllogic { + color: var(--code-vhdl-logic-color); +} + +blockquote { + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--table-cell-border-color); +} + +th.dirtab { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid var(--separator-color); +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: var(--memdecl-background-color); + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: var(--memdecl-foreground-color); +} + +.memSeparator { + border-bottom: 1px solid var(--memdecl-separator-color); + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: var(--memdecl-template-color); + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: var(--memdef-title-gradient-image); + background-repeat: repeat-x; + background-color: var(--memdef-title-background-color); + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: var(--memdef-template-color); + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px var(--glow-color); +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; +} + +.overload { + font-family: var(--font-family-monospace); + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: var(--memdef-doc-background-color); + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; + padding: 0px; + padding-bottom: 1px; +} + +.paramname { + white-space: nowrap; + padding: 0px; + padding-bottom: 1px; + margin-left: 2px; +} + +.paramname em { + color: var(--memdef-param-name-color); + font-style: normal; + margin-right: 1px; +} + +.paramname .paramdefval { + font-family: var(--font-family-monospace); +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: var(--font-family-monospace); + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); + text-shadow: none; + color: var(--label-foreground-color); + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + +.directory tr.even { + padding-left: 6px; + background-color: var(--index-even-item-bg-color); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: var(--page-link-color); +} + +.arrow { + color: var(--nav-arrow-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-open-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-closed-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-doc-image); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: var(--footer-foreground-color); +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--memdef-border-color); +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image: var(--memdef-title-gradient-image); + background-repeat:repeat-x; + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: var(--nav-gradient-image); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image: var(--nav-gradient-image); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:var(--nav-breadcrumb-image); + background-repeat:no-repeat; + background-position:right; + color: var(--nav-foreground-color); +} + +.navpath li.navelem a +{ + height:32px; + display:block; + outline: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: var(--footer-foreground-color); + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image: var(--header-gradient-image); + background-repeat:repeat-x; + background-color: var(--header-background-color); + margin: 0px; + border-bottom: 1px solid var(--header-separator-color); +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* + +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +*/ + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, +dl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark { + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; + border-radius: 4px; +} + +dl.section dd { + margin-bottom: 2px; +} + +dl.warning, dl.attention { + background: var(--warning-color-bg); + border-left: 8px solid var(--warning-color-hl); + color: var(--warning-color-text); +} + +dl.warning dt, dl.attention dt { + color: var(--warning-color-hl); +} + +dl.note, dl.remark { + background: var(--note-color-bg); + border-left: 8px solid var(--note-color-hl); + color: var(--note-color-text); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-hl); +} + +dl.todo { + background: var(--todo-color-bg); + border-left: 8px solid var(--todo-color-hl); + color: var(--todo-color-text); +} + +dl.todo dt { + color: var(--todo-color-hl); +} + +dl.test { + background: var(--test-color-bg); + border-left: 8px solid var(--test-color-hl); + color: var(--test-color-text); +} + +dl.test dt { + color: var(--test-color-hl); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.bug { + background: var(--bug-color-bg); + border-left: 8px solid var(--bug-color-hl); + color: var(--bug-color-text); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.deprecated { + background: var(--deprecated-color-bg); + border-left: 8px solid var(--deprecated-color-hl); + color: var(--deprecated-color-text); +} + +dl.deprecated dt a { + color: var(--deprecated-color-hl) !important; +} + +dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd { + margin-inline-start: 0px; +} + +dl.invariant, dl.pre, dl.post { + background: var(--invariant-color-bg); + border-left: 8px solid var(--invariant-color-hl); + color: var(--invariant-color-text); +} + +dl.invariant dt, dl.pre dt, dl.post dt { + color: var(--invariant-color-hl); +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: var(--font-family-title); + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font-size: 90%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: 50% var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 15px; +} + +div.toc li.level4 { + margin-left: 15px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: bold; + color: var(--inherit-header-color); + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + border: 1px solid var(--tooltip-border-color); + border-radius: 4px 4px 4px 4px; + box-shadow: var(--tooltip-shadow); + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: var(--tooltip-doc-color); + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: var(--tooltip-link-color); +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: var(--tooltip-declaration-color); +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd, samp +{ + display: inline-block; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + +body { + scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); +} + +::-webkit-scrollbar { + background-color: var(--scrollbar-background-color); + height: 12px; + width: 12px; +} +::-webkit-scrollbar-thumb { + border-radius: 6px; + box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); + border: solid 2px transparent; +} +::-webkit-scrollbar-corner { + background-color: var(--scrollbar-background-color); +} + diff --git a/doxygen.svg b/doxygen.svg new file mode 100644 index 0000000..79a7635 --- /dev/null +++ b/doxygen.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doxygen_crawl.html b/doxygen_crawl.html new file mode 100644 index 0000000..e5601d2 --- /dev/null +++ b/doxygen_crawl.html @@ -0,0 +1,208 @@ + + + +Validator / crawler helper + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dynsections.js b/dynsections.js new file mode 100644 index 0000000..8f49326 --- /dev/null +++ b/dynsections.js @@ -0,0 +1,194 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +let dynsection = { + + // helper function + updateStripes : function() { + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); + }, + + toggleVisibility : function(linkObj) { + const base = $(linkObj).attr('id'); + const summary = $('#'+base+'-summary'); + const content = $('#'+base+'-content'); + const trigger = $('#'+base+'-trigger'); + const src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; + }, + + toggleLevel : function(level) { + $('table.directory tr').each(function() { + const l = this.id.split('_').length-1; + const i = $('#img'+this.id.substring(3)); + const a = $('#arr'+this.id.substring(3)); + if (l'); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + const id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + const start = $(this).attr('data-start'); + const end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + const line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').css('background-image',codefold.plusImg[relPath]); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); + }, +}; +/* @license-end */ diff --git a/examples.html b/examples.html new file mode 100644 index 0000000..5427afb --- /dev/null +++ b/examples.html @@ -0,0 +1,97 @@ + + + + + + + +SA_Logger: Examples + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Examples
+
+ + + + + diff --git a/files.html b/files.html new file mode 100644 index 0000000..ef7d932 --- /dev/null +++ b/files.html @@ -0,0 +1,131 @@ + + + + + + + +SA_Logger: File List + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 123456]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  Include
  SA
  Logger
  Exceptions
 Exception.hppDefault Exception type implementation
 Exception_Equals.hppEquals Exception base type implementation
 Exception_Equals0.hppEquals 0 Exception type implementation
 Exception_Equals1.hppEquals 1 Exception type implementation
 Exception_IsValid.hppIsValid Exception type implementation
 Exception_NotEquals.hppNot Equals Exception base type implementation
 Exception_NotEquals0.hppNot Equals 0 Exception type implementation
 Exception_NotEquals1.hppNot Equals 1 Exception type implementation
 Exception_Nullptr.hppNullptr Exception type implementation
 Exception_OutOfArrayRange.hppOutOfRange Array Exception type implementation
 Exception_OutOfRange.hppOutOfRange Exception type implementation
 Exception_ReachBadAPI.hppReachBadAPI Exception type implementation
  Log
 Log.hppLog type implementation
 LogChannelFilter.hppChannel filter implementation
 LogLevel.hppLog level enum implementation
 LogRAII.hpp
  Misc
 DateTime.hppDate Time definition
 StringFormat.hpp
 ToString.hppDefinition of Sapphire ToString methods
  Preprocessors
 AssertMacro.hpp
 ChannelName.hpp
 FileName.hpp
 FunctionName.hpp
 LogMacro.hpp
 Unparenthese.hpp
  Streams
  Console
 ConsoleColor.hppConsole Color enum implementation
 ConsoleColorTheme.hppDefine color theme by LogLevel
 ConsoleLogStream.hppLog console stream type implementation
  File
 FileLogStream.hppLog file stream type implementation
 ALogStream.hppLog base stream implementation
 Config.hppLogger specific config file
 Logger.hppLogger class implementation
 LoggerThread.hppMultithread Logger class implementation
+
+
+ + + + diff --git a/folderclosed.svg b/folderclosed.svg new file mode 100644 index 0000000..b04bed2 --- /dev/null +++ b/folderclosed.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/folderclosedd.svg b/folderclosedd.svg new file mode 100644 index 0000000..52f0166 --- /dev/null +++ b/folderclosedd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/folderopen.svg b/folderopen.svg new file mode 100644 index 0000000..f6896dd --- /dev/null +++ b/folderopen.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/folderopend.svg b/folderopend.svg new file mode 100644 index 0000000..2d1f06e --- /dev/null +++ b/folderopend.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/functions.html b/functions.html new file mode 100644 index 0000000..32af0d9 --- /dev/null +++ b/functions.html @@ -0,0 +1,235 @@ + + + + + + + +SA_Logger: Class Members + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- w -

+ + +

- y -

+ + +

- ~ -

+
+ + + + diff --git a/functions_func.html b/functions_func.html new file mode 100644 index 0000000..35933d8 --- /dev/null +++ b/functions_func.html @@ -0,0 +1,181 @@ + + + + + + + +SA_Logger: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented functions with links to the class documentation for each member:
+ +

- a -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- i -

+ + +

- l -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- u -

+ + +

- ~ -

+
+ + + + diff --git a/functions_vars.html b/functions_vars.html new file mode 100644 index 0000000..cd162ad --- /dev/null +++ b/functions_vars.html @@ -0,0 +1,171 @@ + + + + + + + +SA_Logger: Class Members - Variables + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented variables with links to the class documentation for each member:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- s -

+ + +

- t -

+ + +

- w -

+ + +

- y -

+
+ + + + diff --git a/group___logger.html b/group___logger.html new file mode 100644 index 0000000..9f99728 --- /dev/null +++ b/group___logger.html @@ -0,0 +1,120 @@ + + + + + + + +SA_Logger: Logger + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Logger
+
+
+ + + + + + + + +

+Topics

 Misc
 
 Exception
 
 Stream
 
+ + + + + + + + + + + + + + + + + + + +

+Files

file  Config.hpp
 Logger specific config file.
 
file  Log.hpp
 Log type implementation.
 
file  LogChannelFilter.hpp
 Channel filter implementation.
 
file  LogLevel.hpp
 Log level enum implementation.
 
file  Logger.hpp
 Logger class implementation.
 
file  LoggerThread.hpp
 Multithread Logger class implementation.
 
+

Detailed Description

+

Sapphire Suite's Logger Module.

+
+ + + + diff --git a/group___logger___console.html b/group___logger___console.html new file mode 100644 index 0000000..a15f35c --- /dev/null +++ b/group___logger___console.html @@ -0,0 +1,101 @@ + + + + + + + +SA_Logger: Console + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Console
+
+
+ + + + + + + + + + + +

+Files

file  ConsoleColor.hpp
 Console Color enum implementation.
 
file  ConsoleColorTheme.hpp
 Define color theme by LogLevel.
 
file  ConsoleLogStream.hpp
 Log console stream type implementation.
 
+

Detailed Description

+

Sapphire Suite's Logger Console Stream.

+
+ + + + diff --git a/group___logger___exception.html b/group___logger___exception.html new file mode 100644 index 0000000..dee3329 --- /dev/null +++ b/group___logger___exception.html @@ -0,0 +1,128 @@ + + + + + + + +SA_Logger: Exception + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Exception
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  Exception.hpp
 Default Exception type implementation.
 
file  Exception_Equals.hpp
 Equals Exception base type implementation.
 
file  Exception_Equals0.hpp
 Equals 0 Exception type implementation.
 
file  Exception_Equals1.hpp
 Equals 1 Exception type implementation.
 
file  Exception_IsValid.hpp
 IsValid Exception type implementation.
 
file  Exception_NotEquals.hpp
 Not Equals Exception base type implementation.
 
file  Exception_NotEquals0.hpp
 Not Equals 0 Exception type implementation.
 
file  Exception_NotEquals1.hpp
 Not Equals 1 Exception type implementation.
 
file  Exception_Nullptr.hpp
 Nullptr Exception type implementation.
 
file  Exception_OutOfArrayRange.hpp
 OutOfRange Array Exception type implementation.
 
file  Exception_OutOfRange.hpp
 OutOfRange Exception type implementation.
 
file  Exception_ReachBadAPI.hpp
 ReachBadAPI Exception type implementation.
 
+

Detailed Description

+

Sapphire Suite's Logger Exceptions.

+
+ + + + diff --git a/group___logger___file.html b/group___logger___file.html new file mode 100644 index 0000000..3b8a13a --- /dev/null +++ b/group___logger___file.html @@ -0,0 +1,95 @@ + + + + + + + +SA_Logger: File + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
File
+
+
+ + + + + +

+Files

file  FileLogStream.hpp
 Log file stream type implementation.
 
+

Detailed Description

+

Sapphire Suite's Logger File Stream.

+
+ + + + diff --git a/group___logger___misc.html b/group___logger___misc.html new file mode 100644 index 0000000..af83546 --- /dev/null +++ b/group___logger___misc.html @@ -0,0 +1,98 @@ + + + + + + + +SA_Logger: Misc + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Misc
+
+
+ + + + + + + + +

+Files

file  DateTime.hpp
 Date Time definition.
 
file  ToString.hpp
 Definition of Sapphire ToString methods.
 
+

Detailed Description

+

Sapphire Suite's Logger Misc.

+
+ + + + diff --git a/group___logger___stream.html b/group___logger___stream.html new file mode 100644 index 0000000..9f3eaf6 --- /dev/null +++ b/group___logger___stream.html @@ -0,0 +1,103 @@ + + + + + + + +SA_Logger: Stream + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Stream
+
+
+ + + + + + +

+Topics

 Console
 
 File
 
+ + + + +

+Files

file  ALogStream.hpp
 Log base stream implementation.
 
+

Detailed Description

+

Sapphire Suite's Logger Stream.

+
+ + + + diff --git a/hierarchy.html b/hierarchy.html new file mode 100644 index 0000000..d175627 --- /dev/null +++ b/hierarchy.html @@ -0,0 +1,112 @@ + + + + + + + +SA_Logger: Class Hierarchy + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 1234]
+ + + + + + + + + + + + + + + + + + + + + + + + +
 CSA::ALogStreamAbstract log stream class
 CSA::ConsoleLogStreamConsole log stream implementation
 CSA::FileLogStreamLog file stream type
 CSA::Exception::BaseInfoBase exception create info
 CSA::ConsoleColorTheme
 CSA::DateTimeDate time structure type
 CSA::LogLog type implementation
 CSA::ExceptionDefault (base) Exception type
 CSA::Exception_EqualsEquals exception base type
 CSA::Exception_Equals0Equals 0 exception implementation
 CSA::Exception_Equals1Equals 1 exception implementation
 CSA::Exception_IsValidIsValid Exception type
 CSA::Exception_NotEqualsNot Equals exception base type
 CSA::Exception_NotEquals0Not Equals 0 exception implementation
 CSA::Exception_NotEquals1Not Equals 1 exception implementation
 CSA::Exception_NullptrNullptr Exception type
 CSA::Exception_OutOfRangeOutOfRange Exception type
 CSA::Exception_OutOfArrayRangeOutOfArrayRange Exception type
 CSA::Exception_ReachBadAPIReachBadAPI
 CSA::Exception_QueryBadAPIObject
 CSA::LogChannelFilter
 CSA::LoggerBasic Logger class implementation
 CSA::LoggerThreadMultithread logger class
 CSA::LogRAII
+
+
+ + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..5eef9fb --- /dev/null +++ b/index.html @@ -0,0 +1,85 @@ + + + + + + + +SA_Logger: Main Page + + + + + + + + + + + +
+
+ + + + + + +
+
SA_Logger +
+
Sapphire's Suite's C++ Logger.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
SA_Logger Documentation
+
+
+ +
+ + + + diff --git a/jquery.js b/jquery.js new file mode 100644 index 0000000..1dffb65 --- /dev/null +++ b/jquery.js @@ -0,0 +1,34 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/menu.js b/menu.js new file mode 100644 index 0000000..717761d --- /dev/null +++ b/menu.js @@ -0,0 +1,134 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + let result=''; + if ('children' in data) { + result+='
    '; + for (let i in data.children) { + let url; + const link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
  • '+ + data.children[i].text+''+ + makeTree(data.children[i],relPath)+'
  • '; + } + result+='
'; + } + return result; + } + let searchBoxHtml; + if (searchEnabled) { + if (serverSide) { + searchBoxHtml='
'+ + '
'+ + '
 '+ + ''+ + '
'+ + '
'+ + '
'+ + '
'; + } else { + searchBoxHtml='
'+ + ''+ + ' '+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
'; + } + } + + $('#main-nav').before('
'+ + ''+ + ''+ + '
'); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBoxHtml) { + $('#main-menu').append('
  • '); + } + const $mainMenuState = $('#main-menu-state'); + let prevWidth = 0; + if ($mainMenuState.length) { + const initResizableIfExists = function() { + if (typeof initResizable==='function') initResizable(); + } + // animate mobile menu + $mainMenuState.change(function() { + const $menu = $('#main-menu'); + let options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = () => $menu.css('display', 'block'); + $menu.hide().slideDown(options); + } else { + options['complete'] = () => $menu.css('display', 'none'); + $menu.show().slideUp(options); + } + }); + // set default menu visibility + const resetState = function() { + const $menu = $('#main-menu'); + const newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/menudata.js b/menudata.js new file mode 100644 index 0000000..573121b --- /dev/null +++ b/menudata.js @@ -0,0 +1,94 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Topics",url:"topics.html"}, +{text:"Namespaces",url:"namespaces.html",children:[ +{text:"Namespace List",url:"namespaces.html"}, +{text:"Namespace Members",url:"namespacemembers.html",children:[ +{text:"All",url:"namespacemembers.html"}, +{text:"Variables",url:"namespacemembers_vars.html"}]}]}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"hierarchy.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"a",url:"functions.html#index_a"}, +{text:"b",url:"functions.html#index_b"}, +{text:"c",url:"functions.html#index_c"}, +{text:"d",url:"functions.html#index_d"}, +{text:"e",url:"functions.html#index_e"}, +{text:"f",url:"functions.html#index_f"}, +{text:"g",url:"functions.html#index_g"}, +{text:"h",url:"functions.html#index_h"}, +{text:"i",url:"functions.html#index_i"}, +{text:"l",url:"functions.html#index_l"}, +{text:"m",url:"functions.html#index_m"}, +{text:"n",url:"functions.html#index_n"}, +{text:"o",url:"functions.html#index_o"}, +{text:"p",url:"functions.html#index_p"}, +{text:"r",url:"functions.html#index_r"}, +{text:"s",url:"functions.html#index_s"}, +{text:"t",url:"functions.html#index_t"}, +{text:"u",url:"functions.html#index_u"}, +{text:"w",url:"functions.html#index_w"}, +{text:"y",url:"functions.html#index_y"}, +{text:"~",url:"functions.html#index__7E"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"a",url:"functions_func.html#index_a"}, +{text:"c",url:"functions_func.html#index_c"}, +{text:"d",url:"functions_func.html#index_d"}, +{text:"e",url:"functions_func.html#index_e"}, +{text:"f",url:"functions_func.html#index_f"}, +{text:"g",url:"functions_func.html#index_g"}, +{text:"i",url:"functions_func.html#index_i"}, +{text:"l",url:"functions_func.html#index_l"}, +{text:"n",url:"functions_func.html#index_n"}, +{text:"o",url:"functions_func.html#index_o"}, +{text:"p",url:"functions_func.html#index_p"}, +{text:"r",url:"functions_func.html#index_r"}, +{text:"s",url:"functions_func.html#index_s"}, +{text:"u",url:"functions_func.html#index_u"}, +{text:"~",url:"functions_func.html#index__7E"}]}, +{text:"Variables",url:"functions_vars.html",children:[ +{text:"a",url:"functions_vars.html#index_a"}, +{text:"b",url:"functions_vars.html#index_b"}, +{text:"c",url:"functions_vars.html#index_c"}, +{text:"d",url:"functions_vars.html#index_d"}, +{text:"e",url:"functions_vars.html#index_e"}, +{text:"f",url:"functions_vars.html#index_f"}, +{text:"h",url:"functions_vars.html#index_h"}, +{text:"i",url:"functions_vars.html#index_i"}, +{text:"l",url:"functions_vars.html#index_l"}, +{text:"m",url:"functions_vars.html#index_m"}, +{text:"n",url:"functions_vars.html#index_n"}, +{text:"s",url:"functions_vars.html#index_s"}, +{text:"t",url:"functions_vars.html#index_t"}, +{text:"w",url:"functions_vars.html#index_w"}, +{text:"y",url:"functions_vars.html#index_y"}]}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}]}, +{text:"Examples",url:"examples.html"}]} diff --git a/minus.svg b/minus.svg new file mode 100644 index 0000000..f70d0c1 --- /dev/null +++ b/minus.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/minusd.svg b/minusd.svg new file mode 100644 index 0000000..5f8e879 --- /dev/null +++ b/minusd.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/namespace_s_a_1_1_debug.html b/namespace_s_a_1_1_debug.html new file mode 100644 index 0000000..4d06173 --- /dev/null +++ b/namespace_s_a_1_1_debug.html @@ -0,0 +1,117 @@ + + + + + + + +SA_Logger: SA::Debug Namespace Reference + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SA_Logger +
    +
    Sapphire's Suite's C++ Logger.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    SA::Debug Namespace Reference
    +
    +
    + +

    Global Debug namespace. +More...

    + + + + + + +

    +Functions

    +void InitDefaultLogger ()
     
    +void InitDefaultLoggerThread ()
     
    + + + + + + + +

    +Variables

    +Loggerlogger
     Logger instance.
     
    +void(* logCB )(SA::Log)
     Simple logger callback.
     
    +

    Detailed Description

    +

    Global Debug namespace.

    +
    + + + + diff --git a/namespacemembers.html b/namespacemembers.html new file mode 100644 index 0000000..b1cb3a2 --- /dev/null +++ b/namespacemembers.html @@ -0,0 +1,85 @@ + + + + + + + +SA_Logger: Namespace Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SA_Logger +
    +
    Sapphire's Suite's C++ Logger.
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    +
    + + + + diff --git a/namespacemembers_vars.html b/namespacemembers_vars.html new file mode 100644 index 0000000..7071a0a --- /dev/null +++ b/namespacemembers_vars.html @@ -0,0 +1,85 @@ + + + + + + + +SA_Logger: Namespace Members + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SA_Logger +
    +
    Sapphire's Suite's C++ Logger.
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace variables with links to the namespaces they belong to:
    +
    + + + + diff --git a/namespaces.html b/namespaces.html new file mode 100644 index 0000000..8be8700 --- /dev/null +++ b/namespaces.html @@ -0,0 +1,86 @@ + + + + + + + +SA_Logger: Namespace List + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SA_Logger +
    +
    Sapphire's Suite's C++ Logger.
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Namespace List
    +
    +
    +
    Here is a list of all documented namespaces with brief descriptions:
    +
    +
    + + + + diff --git a/nav_f.png b/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/nav_fd.png b/nav_fd.png new file mode 100644 index 0000000000000000000000000000000000000000..032fbdd4c54f54fa9a2e6423b94ef4b2ebdfaceb GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQU#tajv*C{Z|C~*H7f|XvG1G8 zt7aS*L7xwMeS}!z6R#{C5tIw-s~AJ==F^i}x3XyJseHR@yF& zerFf(Zf;Dd{+(0lDIROL@Sj-Ju2JQ8&-n%4%q?>|^bShc&lR?}7HeMo@BDl5N(aHY Uj$gdr1MOz;boFyt=akR{0D!zeaR2}S literal 0 HcmV?d00001 diff --git a/nav_g.png b/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL6W-eg#Jd_@e6*DPn)w;=|1H}Zvm9l6xXXB%>yL=NQU;mg M>FVdQ&MBb@0Bdt1Qvd(} literal 0 HcmV?d00001 diff --git a/open.png b/open.png new file mode 100644 index 0000000000000000000000000000000000000000..30f75c7efe2dd0c9e956e35b69777a02751f048b GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + + + + diff --git a/plusd.svg b/plusd.svg new file mode 100644 index 0000000..0c65bfe --- /dev/null +++ b/plusd.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 0000000..e29c0f9 --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['alogstream_0',['ALogStream',['../class_s_a_1_1_a_log_stream.html',1,'SA']]], + ['alogstream_2ehpp_1',['ALogStream.hpp',['../_a_log_stream_8hpp.html',1,'']]], + ['assert_2',['Assert',['../class_s_a_1_1_logger.html#a3fb56ac9f9bac665895008cb8c0a7e7d',1,'SA::Logger']]], + ['assertfailure_3',['assertFailure',['../struct_s_a_1_1_console_color_theme.html#adfca15a65bc36433aa03284c9a54e7aa',1,'SA::ConsoleColorTheme']]], + ['assertfailure_4',['AssertFailure',['../_log_level_8hpp.html#ada12831f2dfd3b16b30fdf5019ae125bab4d4bc4fadc55c8f9641a7ae2b5185e3',1,'SA']]], + ['assertsuccess_5',['assertSuccess',['../struct_s_a_1_1_console_color_theme.html#a828959f8113337b4b9ce039be9fc80a7',1,'SA::ConsoleColorTheme']]], + ['assertsuccess_6',['AssertSuccess',['../_log_level_8hpp.html#ada12831f2dfd3b16b30fdf5019ae125ba64a7e5c2932fc2a722e5ba180ca9473d',1,'SA']]] +]; diff --git a/search/all_1.js b/search/all_1.js new file mode 100644 index 0000000..8b20e91 --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['backtrace_0',['backtrace',['../class_s_a_1_1_log.html#a63f1ac0204b39acab8ca6bf5a410318b',1,'SA::Log']]], + ['baseinfo_1',['BaseInfo',['../struct_s_a_1_1_exception_1_1_base_info.html',1,'SA::Exception']]], + ['black_5ffg_2',['Black_FG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0af3886e3d5f28161cc0a3f59c8858dcd4',1,'SA']]], + ['blue_5fbg_3',['Blue_BG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a632c43427cd471b384a85dd1cf3dd473',1,'SA']]], + ['blue_5ffg_4',['Blue_FG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0aeb91d34f2d3a8ffa91d92d883c7a80ba',1,'SA']]], + ['bright_5fbg_5',['Bright_BG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a9be6c5533c011552a5701357fa0bd7c6',1,'SA']]], + ['bright_5ffg_6',['Bright_FG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a235601a321f8bafc693a008622971a99',1,'SA']]] +]; diff --git a/search/all_10.js b/search/all_10.js new file mode 100644 index 0000000..67d4fd0 --- /dev/null +++ b/search/all_10.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['theme_0',['theme',['../class_s_a_1_1_console_log_stream.html#a6c6a763cc71468d8f0b0e53101b61c7c',1,'SA::ConsoleLogStream']]], + ['tostring_1',['ToString',['../_log_level_8hpp.html#a76479ac11b837c2757ed8b7718b81749',1,'SA::ToString(LogLevel _lvl) noexcept'],['../_date_time_8hpp.html#a7be2197e2dfdb4daa1baef6a16e6aeec',1,'SA::ToString(const DateTime &_date)'],['../_to_string_8hpp.html#a8f55ef0228f902abac5b9f9090ec4f2a',1,'SA::ToString(const T &_elem)'],['../_to_string_8hpp.html#a754d13e6410f88dd18cef30838ee910e',1,'SA::ToString(T *_ptr)'],['../_to_string_8hpp.html#a570a1a8fb487021f1a70fe05f35f87cc',1,'SA::ToString(const T *_elems, uint64_t _size)'],['../_to_string_8hpp.html#abb347746ff8d3e65605e463b6c061b89',1,'SA::ToString(const std::vector< T > &_vec)']]], + ['tostring_2ehpp_2',['ToString.hpp',['../_to_string_8hpp.html',1,'']]], + ['tostringbinary_3',['ToStringBinary',['../_to_string_8hpp.html#a8dd965c7e084c086e72ccdadb8838962',1,'SA']]], + ['towstring_4',['ToWString',['../_log_8hpp.html#ac45b919743e944b2dc97228455256f7e',1,'SA::ToWString(const Log &_log)'],['../_log_level_8hpp.html#a3fe9982e966ba0cf65b65f857c37042c',1,'SA::ToWString(LogLevel _lvl) noexcept'],['../_to_string_8hpp.html#ad91788f76775509606772abcc82a623b',1,'SA::ToWString(const T &_elem) noexcept'],['../_to_string_8hpp.html#ae37bdaab5ed87691909ac3ecc79aa0af',1,'SA::ToWString(T *_ptr) noexcept'],['../_to_string_8hpp.html#a3bc779161d82174331153d8e552d0afe',1,'SA::ToWString(const T *_elems, uint64_t _size)'],['../_to_string_8hpp.html#aaa60dd980e547fe03f375de235749a35',1,'SA::ToWString(const std::vector< T > &_vec)']]] +]; diff --git a/search/all_11.js b/search/all_11.js new file mode 100644 index 0000000..ea67410 --- /dev/null +++ b/search/all_11.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['unregisterstream_0',['UnregisterStream',['../class_s_a_1_1_logger.html#a33e2fd79361ccd7fb2307f72b9836222',1,'SA::Logger']]] +]; diff --git a/search/all_12.js b/search/all_12.js new file mode 100644 index 0000000..db7b6cf --- /dev/null +++ b/search/all_12.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['warning_0',['warning',['../struct_s_a_1_1_console_color_theme.html#ad936aac778f6db932a896f9a50f568f0',1,'SA::ConsoleColorTheme']]], + ['warning_1',['Warning',['../_log_level_8hpp.html#ada12831f2dfd3b16b30fdf5019ae125ba22d54e60f39c21767f2ca11f0f268e50',1,'SA']]], + ['weekday_2',['weekday',['../struct_s_a_1_1_date_time.html#ae0f1cac0db6e0789c31fbdee23cae3a9',1,'SA::DateTime']]], + ['white_5fbg_3',['White_BG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a2d1d79406758979ee84fb1fc5abb9560',1,'SA']]] +]; diff --git a/search/all_13.js b/search/all_13.js new file mode 100644 index 0000000..93f916b --- /dev/null +++ b/search/all_13.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['year_0',['year',['../struct_s_a_1_1_date_time.html#a9885ce02118aae1d99c706995780d862',1,'SA::DateTime']]], + ['yellow_5fbg_1',['Yellow_BG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a6c36a1a27bb972154c288679de9c8747',1,'SA']]], + ['yellow_5ffg_2',['Yellow_FG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a38194fd92c2fdc4d8fef2c798167236f',1,'SA']]] +]; diff --git a/search/all_14.js b/search/all_14.js new file mode 100644 index 0000000..271350b --- /dev/null +++ b/search/all_14.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['_7ealogstream_0',['~ALogStream',['../class_s_a_1_1_a_log_stream.html#a1667db6eabd89ae92d5f9a51ef8e8407',1,'SA::ALogStream']]], + ['_7efilelogstream_1',['~FileLogStream',['../class_s_a_1_1_file_log_stream.html#a775841ad652e46b39f90fd2aed1577f0',1,'SA::FileLogStream']]], + ['_7elogger_2',['~Logger',['../class_s_a_1_1_logger.html#ada0ea41bd39593c704499eda52c6827c',1,'SA::Logger']]], + ['_7eloggerthread_3',['~LoggerThread',['../class_s_a_1_1_logger_thread.html#a9a6ebd36ad9c722f1bdbba46f229cf28',1,'SA::LoggerThread']]] +]; diff --git a/search/all_2.js b/search/all_2.js new file mode 100644 index 0000000..04a9c69 --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['channame_0',['chanName',['../struct_s_a_1_1_exception_1_1_base_info.html#a63d7eb2e641a72dfdd896043e5db2fd0',1,'SA::Exception::BaseInfo::chanName'],['../class_s_a_1_1_log.html#a3999ae0fb103cf609b521ff90584bf0e',1,'SA::Log::chanName']]], + ['channelfilter_1',['channelFilter',['../class_s_a_1_1_a_log_stream.html#a9e89988151e0e4efb64f4e565896d50d',1,'SA::ALogStream']]], + ['clearstreams_2',['ClearStreams',['../class_s_a_1_1_logger.html#aab8e0c1a2a55e0eb4af7ed26bdb2628a',1,'SA::Logger']]], + ['config_2ehpp_3',['Config.hpp',['../_config_8hpp.html',1,'']]], + ['console_4',['Console',['../group___logger___console.html',1,'']]], + ['consolecolor_5',['ConsoleColor',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0',1,'SA']]], + ['consolecolor_2ehpp_6',['ConsoleColor.hpp',['../_console_color_8hpp.html',1,'']]], + ['consolecolortheme_7',['ConsoleColorTheme',['../struct_s_a_1_1_console_color_theme.html',1,'SA']]], + ['consolecolortheme_2ehpp_8',['ConsoleColorTheme.hpp',['../_console_color_theme_8hpp.html',1,'']]], + ['consolelogstream_9',['ConsoleLogStream',['../class_s_a_1_1_console_log_stream.html',1,'SA']]], + ['consolelogstream_2ehpp_10',['ConsoleLogStream.hpp',['../_console_log_stream_8hpp.html',1,'']]], + ['createlogfile_11',['CreateLogFile',['../class_s_a_1_1_file_log_stream.html#aed011c63b6771dd2693d367c81c20846',1,'SA::FileLogStream']]], + ['createsteam_12',['CreateSteam',['../class_s_a_1_1_logger.html#a13a3bd0cac6324f589ba28393b0a5eba',1,'SA::Logger']]], + ['cslcolor_13',['CslColor',['../_console_color_8hpp.html#a898074aebd805ebf15eac63592bf55cc',1,'SA']]], + ['currindex_14',['currIndex',['../class_s_a_1_1_exception___out_of_range.html#a52c5446a0269d2045f01c2b29e3eb26a',1,'SA::Exception_OutOfRange']]], + ['cyan_5fbg_15',['Cyan_BG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a37355d1a21e07544ee565da7df29ab6f',1,'SA']]], + ['cyan_5ffg_16',['Cyan_FG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a69ad97b8d1a815c1adcbf4de4e4179cf',1,'SA']]] +]; diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 0000000..be81208 --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['data_0',['Data',['../struct_s_a_1_1_console_color_theme.html#a9a94613d43026903c81ed14ffd3e3c34',1,'SA::ConsoleColorTheme']]], + ['date_1',['date',['../class_s_a_1_1_log.html#a0e2db31204375905cb67454436fbb95a',1,'SA::Log']]], + ['datetime_2',['DateTime',['../struct_s_a_1_1_date_time.html',1,'SA::DateTime'],['../struct_s_a_1_1_date_time.html#ae991df86940d441656517801d7c6481a',1,'SA::DateTime::DateTime()=default'],['../struct_s_a_1_1_date_time.html#a95b6aaee69b1f1c832ea329b0977daa6',1,'SA::DateTime::DateTime(uint8_t _second, uint8_t _minute=0u, uint8_t _hour=0u, uint8_t _day=0u, uint8_t _month=0u, uint16_t _year=0u, uint8_t _weekday=0u) noexcept'],['../struct_s_a_1_1_date_time.html#aae35582efa5c543b89d5aa6481450545',1,'SA::DateTime::DateTime(const struct tm &_time) noexcept']]], + ['datetime_2ehpp_3',['DateTime.hpp',['../_date_time_8hpp.html',1,'']]], + ['day_4',['day',['../struct_s_a_1_1_date_time.html#a5ae26b4430039a892af99f63cfeebfa3',1,'SA::DateTime']]], + ['default_5',['Default',['../_log_level_8hpp.html#ada12831f2dfd3b16b30fdf5019ae125ba768d946e566c59285e81271690c8d149',1,'SA']]], + ['destroystream_6',['DestroyStream',['../class_s_a_1_1_logger.html#acc8ba7595374f3ca0d8c938998c34910',1,'SA::Logger']]], + ['details_7',['details',['../struct_s_a_1_1_exception_1_1_base_info.html#acb67d2b5484198ea6e783509a41f8933',1,'SA::Exception::BaseInfo::details'],['../class_s_a_1_1_log.html#ac22a58e9438e12267d7a05961ad46257',1,'SA::Log::details']]] +]; diff --git a/search/all_4.js b/search/all_4.js new file mode 100644 index 0000000..61d5f41 --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,32 @@ +var searchData= +[ + ['equals_0',['Equals',['../struct_s_a_1_1_date_time.html#ac845d2834e3f3d9aa6013acde4590236',1,'SA::DateTime']]], + ['error_1',['error',['../struct_s_a_1_1_console_color_theme.html#a0c34e83d384d18b3d7f087be963d32d9',1,'SA::ConsoleColorTheme']]], + ['error_2',['Error',['../_log_level_8hpp.html#ada12831f2dfd3b16b30fdf5019ae125ba809664045394604453cf88c1f4b32c5e',1,'SA']]], + ['exception_3',['Exception',['../class_s_a_1_1_exception.html',1,'SA::Exception'],['../class_s_a_1_1_exception.html#a6b24b4837cd4e7dacb14b0ebbc27d1ba',1,'SA::Exception::Exception()'],['../group___logger___exception.html',1,'Exception']]], + ['exception_2ehpp_4',['Exception.hpp',['../_exception_8hpp.html',1,'']]], + ['exception_5fdefault_5',['Exception_Default',['../_exception_8hpp.html#aaa4c536cca4ff390b21197b1f3ce645d',1,'SA']]], + ['exception_5fequals_6',['Exception_Equals',['../class_s_a_1_1_exception___equals.html',1,'SA::Exception_Equals'],['../class_s_a_1_1_exception___equals.html#ad8bdd43aafc40529b8977317788e65fa',1,'SA::Exception_Equals::Exception_Equals(BaseInfo _info, const T &_lhs, const T &_rhs, std::wstring _predStr=L"pred") noexcept'],['../class_s_a_1_1_exception___equals.html#a5f7a8212947a39d7726dfd379a9efb42',1,'SA::Exception_Equals::Exception_Equals(BaseInfo _info, float _lhs, float _rhs, std::wstring _predStr=L"pred") noexcept'],['../class_s_a_1_1_exception___equals.html#a2374d5f3a22ed86717b4073f07f64862',1,'SA::Exception_Equals::Exception_Equals(BaseInfo _info, double _lhs, double _rhs, std::wstring _predStr=L"pred") noexcept']]], + ['exception_5fequals_2ehpp_7',['Exception_Equals.hpp',['../_exception___equals_8hpp.html',1,'']]], + ['exception_5fequals0_8',['Exception_Equals0',['../class_s_a_1_1_exception___equals0.html',1,'SA::Exception_Equals0'],['../class_s_a_1_1_exception___equals0.html#af7b2c15e224fea2413dcfcb5534b0827',1,'SA::Exception_Equals0::Exception_Equals0()']]], + ['exception_5fequals0_2ehpp_9',['Exception_Equals0.hpp',['../_exception___equals0_8hpp.html',1,'']]], + ['exception_5fequals1_10',['Exception_Equals1',['../class_s_a_1_1_exception___equals1.html',1,'SA::Exception_Equals1'],['../class_s_a_1_1_exception___equals1.html#a3385afcb8276b3b4fdce975daa03a218',1,'SA::Exception_Equals1::Exception_Equals1()']]], + ['exception_5fequals1_2ehpp_11',['Exception_Equals1.hpp',['../_exception___equals1_8hpp.html',1,'']]], + ['exception_5fisvalid_12',['Exception_IsValid',['../class_s_a_1_1_exception___is_valid.html',1,'SA::Exception_IsValid'],['../class_s_a_1_1_exception___is_valid.html#a816788c83908ed28d178182e7af0f236',1,'SA::Exception_IsValid::Exception_IsValid()']]], + ['exception_5fisvalid_2ehpp_13',['Exception_IsValid.hpp',['../_exception___is_valid_8hpp.html',1,'']]], + ['exception_5fnotequals_14',['Exception_NotEquals',['../class_s_a_1_1_exception___not_equals.html',1,'SA::Exception_NotEquals'],['../class_s_a_1_1_exception___not_equals.html#a6e85e75b544c251384e1e56e437a61ae',1,'SA::Exception_NotEquals::Exception_NotEquals()']]], + ['exception_5fnotequals_2ehpp_15',['Exception_NotEquals.hpp',['../_exception___not_equals_8hpp.html',1,'']]], + ['exception_5fnotequals0_16',['Exception_NotEquals0',['../class_s_a_1_1_exception___not_equals0.html',1,'SA::Exception_NotEquals0'],['../class_s_a_1_1_exception___not_equals0.html#af1706b1aac21196c8c76a3d53ee4056e',1,'SA::Exception_NotEquals0::Exception_NotEquals0()']]], + ['exception_5fnotequals0_2ehpp_17',['Exception_NotEquals0.hpp',['../_exception___not_equals0_8hpp.html',1,'']]], + ['exception_5fnotequals1_18',['Exception_NotEquals1',['../class_s_a_1_1_exception___not_equals1.html',1,'SA::Exception_NotEquals1'],['../class_s_a_1_1_exception___not_equals1.html#a52262915ebb35ccc5a8fef547959c8f7',1,'SA::Exception_NotEquals1::Exception_NotEquals1()']]], + ['exception_5fnotequals1_2ehpp_19',['Exception_NotEquals1.hpp',['../_exception___not_equals1_8hpp.html',1,'']]], + ['exception_5fnullptr_20',['Exception_Nullptr',['../class_s_a_1_1_exception___nullptr.html',1,'SA::Exception_Nullptr'],['../class_s_a_1_1_exception___nullptr.html#afab5a9b442b8c6133507013e2b45007b',1,'SA::Exception_Nullptr::Exception_Nullptr()']]], + ['exception_5fnullptr_2ehpp_21',['Exception_Nullptr.hpp',['../_exception___nullptr_8hpp.html',1,'']]], + ['exception_5foutofarrayrange_22',['Exception_OutOfArrayRange',['../class_s_a_1_1_exception___out_of_array_range.html',1,'SA::Exception_OutOfArrayRange'],['../class_s_a_1_1_exception___out_of_array_range.html#abaf5eb95b7a18f949bd32fe81df3bf81',1,'SA::Exception_OutOfArrayRange::Exception_OutOfArrayRange()']]], + ['exception_5foutofarrayrange_2ehpp_23',['Exception_OutOfArrayRange.hpp',['../_exception___out_of_array_range_8hpp.html',1,'']]], + ['exception_5foutofrange_24',['Exception_OutOfRange',['../class_s_a_1_1_exception___out_of_range.html',1,'SA::Exception_OutOfRange'],['../class_s_a_1_1_exception___out_of_range.html#adc1b7e92e8129b88b7e56bade9e5e683',1,'SA::Exception_OutOfRange::Exception_OutOfRange(BaseInfo _info, uint32_t _currIndex, uint32_t _minBound, uint32_t _maxBound, std::wstring _msg) noexcept'],['../class_s_a_1_1_exception___out_of_range.html#a2b197af8a2bddc875eacd929362f5d68',1,'SA::Exception_OutOfRange::Exception_OutOfRange(BaseInfo _info, uint32_t _currIndex, std::wstring _currIndexStr, uint32_t _minBound, std::wstring _minBoundStr, uint32_t _maxBound, std::wstring _maxBoundStr) noexcept']]], + ['exception_5foutofrange_2ehpp_25',['Exception_OutOfRange.hpp',['../_exception___out_of_range_8hpp.html',1,'']]], + ['exception_5fquerybadapiobject_26',['Exception_QueryBadAPIObject',['../class_s_a_1_1_exception___query_bad_a_p_i_object.html',1,'SA']]], + ['exception_5freachbadapi_27',['Exception_ReachBadAPI',['../class_s_a_1_1_exception___reach_bad_a_p_i.html',1,'SA::Exception_ReachBadAPI'],['../class_s_a_1_1_exception___reach_bad_a_p_i.html#a8ef7298cb34825559d1951ba58a68459',1,'SA::Exception_ReachBadAPI::Exception_ReachBadAPI()'],['../class_s_a_1_1_exception___query_bad_a_p_i_object.html#a8ef7298cb34825559d1951ba58a68459',1,'SA::Exception_QueryBadAPIObject::Exception_ReachBadAPI()']]], + ['exception_5freachbadapi_2ehpp_28',['Exception_ReachBadAPI.hpp',['../_exception___reach_bad_a_p_i_8hpp.html',1,'']]] +]; diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 0000000..5b8e058 --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['file_0',['file',['../struct_s_a_1_1_exception_1_1_base_info.html#a807e3fefad12d7405739a9b8c6a67155',1,'SA::Exception::BaseInfo::file'],['../class_s_a_1_1_log.html#a864756d9684bb4dfc2c0a5613c06c0c2',1,'SA::Log::file']]], + ['file_1',['File',['../group___logger___file.html',1,'']]], + ['filelogstream_2',['FileLogStream',['../class_s_a_1_1_file_log_stream.html',1,'SA::FileLogStream'],['../class_s_a_1_1_file_log_stream.html#a52d06f65886a2202b3afae10e9683ef5',1,'SA::FileLogStream::FileLogStream()']]], + ['filelogstream_2ehpp_3',['FileLogStream.hpp',['../_file_log_stream_8hpp.html',1,'']]], + ['filestats_4',['FileStats',['../struct_s_a_1_1_date_time.html#a26a99b1e4bb57999d44c440f375683f9',1,'SA::DateTime']]], + ['flush_5',['Flush',['../class_s_a_1_1_logger.html#a64988d6eb526457e067238ff449c5f4c',1,'SA::Logger::Flush()'],['../class_s_a_1_1_logger_thread.html#a49607bb26bc993b755817ade093444ad',1,'SA::LoggerThread::Flush()'],['../class_s_a_1_1_a_log_stream.html#a9ed8f736a91aa57628f8b3d38dede07d',1,'SA::ALogStream::Flush()'],['../class_s_a_1_1_console_log_stream.html#a68553d6b1c8fa59967facd5ca5e6fb0c',1,'SA::ConsoleLogStream::Flush()'],['../class_s_a_1_1_file_log_stream.html#a92f15e7fc2f30871d34f7dab43fbf101',1,'SA::FileLogStream::Flush()']]], + ['framenum_6',['frameNum',['../struct_s_a_1_1_exception_1_1_base_info.html#adbd631acc53861bc5103328472ea8498',1,'SA::Exception::BaseInfo::frameNum'],['../class_s_a_1_1_log.html#aaf7e4fe556b5e75f9900ec2b3619f43b',1,'SA::Log::frameNum']]], + ['function_7',['function',['../struct_s_a_1_1_exception_1_1_base_info.html#a160f8003610409ddf3a3d6ce6e90233a',1,'SA::Exception::BaseInfo::function'],['../class_s_a_1_1_log.html#a66ae20406a001cafefddf18c228ec277',1,'SA::Log::function']]] +]; diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 0000000..42de918 --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['gmnow_0',['GMNow',['../struct_s_a_1_1_date_time.html#ab67fe5f1f05f9a78a7de475cdbde42dd',1,'SA::DateTime']]], + ['green_5fbg_1',['Green_BG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0af4f48c6e044588f90ffd7ca8d788b127',1,'SA']]], + ['green_5ffg_2',['Green_FG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a908fbffb3c61cd3c85ee478d9eade8a1',1,'SA']]] +]; diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 0000000..2074a3d --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['hour_0',['hour',['../struct_s_a_1_1_date_time.html#a2c763dd2b0c4ff9d06cffb47b0c23628',1,'SA::DateTime']]] +]; diff --git a/search/all_8.js b/search/all_8.js new file mode 100644 index 0000000..da05d5b --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['info_0',['info',['../struct_s_a_1_1_console_color_theme.html#a17663d2d2944212178298efb634e04f6',1,'SA::ConsoleColorTheme']]], + ['info_1',['Info',['../_log_level_8hpp.html#ada12831f2dfd3b16b30fdf5019ae125ba769389e34f03c05bfa35395766b48b67',1,'SA']]], + ['ischannelenabled_2',['IsChannelEnabled',['../class_s_a_1_1_log_channel_filter.html#a5a598ba7c0b47c443087fd5fb027b53f',1,'SA::LogChannelFilter']]] +]; diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 0000000..8d23510 --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['level_0',['level',['../class_s_a_1_1_log.html#ae98e0b83ae7e389c2bab8ecba36ca2eb',1,'SA::Log']]], + ['levelflags_1',['levelFlags',['../class_s_a_1_1_a_log_stream.html#ad19003a0076ed37dfd612d5e213cea83',1,'SA::ALogStream']]], + ['line_2',['line',['../struct_s_a_1_1_exception_1_1_base_info.html#a29e128812f8b14bb42151c2339e3b024',1,'SA::Exception::BaseInfo::line'],['../class_s_a_1_1_log.html#a1baab1832c8ef218e0bdd38eb1c331f0',1,'SA::Log::line']]], + ['log_3',['Log',['../class_s_a_1_1_log.html',1,'SA::Log'],['../class_s_a_1_1_log.html#a9d2dd25af31849f7ca8f05a981f7e7e8',1,'SA::Log::Log()'],['../class_s_a_1_1_logger.html#a489ef7de1b203c9a0f9fcc874cfa49df',1,'SA::Logger::Log()'],['../class_s_a_1_1_logger_thread.html#aa603d4d826de36c6766c95c988986552',1,'SA::LoggerThread::Log()']]], + ['log_2ehpp_4',['Log.hpp',['../_log_8hpp.html',1,'']]], + ['logcb_5',['logCB',['../namespace_s_a_1_1_debug.html#aa92ebd4664a9c5b9b7e7ecf3cc78b3ca',1,'SA::Debug']]], + ['logchannelfilter_6',['LogChannelFilter',['../class_s_a_1_1_log_channel_filter.html',1,'SA']]], + ['logchannelfilter_2ehpp_7',['LogChannelFilter.hpp',['../_log_channel_filter_8hpp.html',1,'']]], + ['logger_8',['Logger',['../class_s_a_1_1_logger.html',1,'SA']]], + ['logger_9',['logger',['../namespace_s_a_1_1_debug.html#a518ca188ef83f04441dfb8cf4c3612f2',1,'SA::Debug']]], + ['logger_10',['Logger',['../group___logger.html',1,'']]], + ['logger_2ehpp_11',['Logger.hpp',['../_logger_8hpp.html',1,'']]], + ['loggerthread_12',['LoggerThread',['../class_s_a_1_1_logger_thread.html',1,'SA::LoggerThread'],['../class_s_a_1_1_logger_thread.html#a03423be79604d53bad533f93fb16b1dd',1,'SA::LoggerThread::LoggerThread()']]], + ['loggerthread_2ehpp_13',['LoggerThread.hpp',['../_logger_thread_8hpp.html',1,'']]], + ['loglevel_14',['LogLevel',['../_log_level_8hpp.html#ada12831f2dfd3b16b30fdf5019ae125b',1,'SA']]], + ['loglevel_2ehpp_15',['LogLevel.hpp',['../_log_level_8hpp.html',1,'']]], + ['loglvl_16',['LogLvl',['../_log_level_8hpp.html#a03a7213300ed23e1c8f5adccbce5e558',1,'SA']]], + ['lograii_17',['LogRAII',['../class_s_a_1_1_log_r_a_i_i.html',1,'SA']]] +]; diff --git a/search/all_a.js b/search/all_a.js new file mode 100644 index 0000000..44bdfb9 --- /dev/null +++ b/search/all_a.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['magenta_5fbg_0',['Magenta_BG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0aef1d19310fb36ea8789b063974ebb6f7',1,'SA']]], + ['magenta_5ffg_1',['Magenta_FG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0abab3d4445dca54dc6ab90a6f8909249e',1,'SA']]], + ['maxbound_2',['maxBound',['../class_s_a_1_1_exception___out_of_range.html#afbf36a406b612e82460aecd525d8d862',1,'SA::Exception_OutOfRange']]], + ['mhandle_3',['mHandle',['../class_s_a_1_1_file_log_stream.html#a80fd9dc4b64e6a7a8a7568e5ac0b07eb',1,'SA::FileLogStream']]], + ['minbound_4',['minBound',['../class_s_a_1_1_exception___out_of_range.html#a32c9d3726be34c96ef311015ea2517fc',1,'SA::Exception_OutOfRange']]], + ['minute_5',['minute',['../struct_s_a_1_1_date_time.html#a63000eab2746c4e38a8c51366bd33236',1,'SA::DateTime']]], + ['misc_6',['Misc',['../group___logger___misc.html',1,'']]], + ['month_7',['month',['../struct_s_a_1_1_date_time.html#a8a4d0c28d49bab5856ee811abfd9bb0e',1,'SA::DateTime']]], + ['msg_8',['msg',['../class_s_a_1_1_log.html#a690f262ad6f9d372e913078cf8c6e6dc',1,'SA::Log']]] +]; diff --git a/search/all_b.js b/search/all_b.js new file mode 100644 index 0000000..781e3eb --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['none_5fbg_0',['None_BG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a4b6ffefbe8d8d0fc1f2a5a42a8d3081c',1,'SA']]], + ['none_5ffg_1',['None_FG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0acd87b4cfa45214b74cbd78ccb00c36af',1,'SA']]], + ['normal_2',['normal',['../struct_s_a_1_1_console_color_theme.html#acbbdf6f852c9fe9b61d498a1cfd6f3e5',1,'SA::ConsoleColorTheme']]], + ['normal_3',['Normal',['../_log_level_8hpp.html#ada12831f2dfd3b16b30fdf5019ae125ba5c8c958a673ea88a453bee2fa02f0c28',1,'SA']]], + ['now_4',['Now',['../struct_s_a_1_1_date_time.html#ab8709141484d1698617fda80b89f259a',1,'SA::DateTime']]] +]; diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 0000000..d4a6ec4 --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['operator_21_3d_0',['operator!=',['../struct_s_a_1_1_date_time.html#a6931468c40a743688c1f0af9b68896b3',1,'SA::DateTime']]], + ['operator_3c_3c_1',['operator<<',['../class_s_a_1_1_a_log_stream.html#a6d8e85baca0ac22bca5d7c66d9bcccac',1,'SA::ALogStream']]], + ['operator_3d_3d_2',['operator==',['../struct_s_a_1_1_date_time.html#af041657a39cb05b13d7ce6da9f459a2a',1,'SA::DateTime']]], + ['output_3',['Output',['../class_s_a_1_1_a_log_stream.html#a6c8b769f9c2b78e8d96558372010a1b7',1,'SA::ALogStream::Output()'],['../class_s_a_1_1_file_log_stream.html#a56a9efd84a85a6feef6ab70295fd66ac',1,'SA::FileLogStream::Output()']]] +]; diff --git a/search/all_d.js b/search/all_d.js new file mode 100644 index 0000000..7eb6cdd --- /dev/null +++ b/search/all_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['processlog_0',['ProcessLog',['../class_s_a_1_1_logger.html#a4dda648cdc9be06fc8ab1fcb0c4fcac7',1,'SA::Logger::ProcessLog()'],['../class_s_a_1_1_a_log_stream.html#a8c73209a0cf54fa2c51c8850c90546cc',1,'SA::ALogStream::ProcessLog()']]] +]; diff --git a/search/all_e.js b/search/all_e.js new file mode 100644 index 0000000..2a2a18d --- /dev/null +++ b/search/all_e.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['red_5fbg_0',['Red_BG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0aa85d91599c9a38d418a4018d082dca1f',1,'SA']]], + ['red_5ffg_1',['Red_FG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a0fda509c89c82554822fcc994707351a',1,'SA']]], + ['registerstream_2',['RegisterStream',['../class_s_a_1_1_logger.html#a508f1b14b1af1bcd53ceedb820437bbd',1,'SA::Logger']]], + ['reset_3',['Reset',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a96b1fb967ee0040d607aa83e4d16f86c',1,'SA']]] +]; diff --git a/search/all_f.js b/search/all_f.js new file mode 100644 index 0000000..d4b9837 --- /dev/null +++ b/search/all_f.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['sa_3a_3adebug_0',['Debug',['../namespace_s_a_1_1_debug.html',1,'SA']]], + ['second_1',['second',['../struct_s_a_1_1_date_time.html#a36380e658461040f00ff4c72fb3a7e8f',1,'SA::DateTime']]], + ['setconsolecolor_2',['SetConsoleColor',['../_console_color_8hpp.html#a837f13dc7311e5b1e2ff64d5f615628b',1,'SA']]], + ['setconsolecolorfromlevel_3',['SetConsoleColorFromLevel',['../struct_s_a_1_1_console_color_theme.html#a692b24c0be7f65fa5345e797f00cfdcb',1,'SA::ConsoleColorTheme']]], + ['stream_4',['Stream',['../group___logger___stream.html',1,'']]] +]; diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 0000000..a2b1a12 --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['alogstream_0',['ALogStream',['../class_s_a_1_1_a_log_stream.html',1,'SA']]] +]; diff --git a/search/classes_1.js b/search/classes_1.js new file mode 100644 index 0000000..b4dad3b --- /dev/null +++ b/search/classes_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['baseinfo_0',['BaseInfo',['../struct_s_a_1_1_exception_1_1_base_info.html',1,'SA::Exception']]] +]; diff --git a/search/classes_2.js b/search/classes_2.js new file mode 100644 index 0000000..d919268 --- /dev/null +++ b/search/classes_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['consolecolortheme_0',['ConsoleColorTheme',['../struct_s_a_1_1_console_color_theme.html',1,'SA']]], + ['consolelogstream_1',['ConsoleLogStream',['../class_s_a_1_1_console_log_stream.html',1,'SA']]] +]; diff --git a/search/classes_3.js b/search/classes_3.js new file mode 100644 index 0000000..70084c6 --- /dev/null +++ b/search/classes_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['datetime_0',['DateTime',['../struct_s_a_1_1_date_time.html',1,'SA']]] +]; diff --git a/search/classes_4.js b/search/classes_4.js new file mode 100644 index 0000000..6c267d5 --- /dev/null +++ b/search/classes_4.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['exception_0',['Exception',['../class_s_a_1_1_exception.html',1,'SA']]], + ['exception_5fequals_1',['Exception_Equals',['../class_s_a_1_1_exception___equals.html',1,'SA']]], + ['exception_5fequals0_2',['Exception_Equals0',['../class_s_a_1_1_exception___equals0.html',1,'SA']]], + ['exception_5fequals1_3',['Exception_Equals1',['../class_s_a_1_1_exception___equals1.html',1,'SA']]], + ['exception_5fisvalid_4',['Exception_IsValid',['../class_s_a_1_1_exception___is_valid.html',1,'SA']]], + ['exception_5fnotequals_5',['Exception_NotEquals',['../class_s_a_1_1_exception___not_equals.html',1,'SA']]], + ['exception_5fnotequals0_6',['Exception_NotEquals0',['../class_s_a_1_1_exception___not_equals0.html',1,'SA']]], + ['exception_5fnotequals1_7',['Exception_NotEquals1',['../class_s_a_1_1_exception___not_equals1.html',1,'SA']]], + ['exception_5fnullptr_8',['Exception_Nullptr',['../class_s_a_1_1_exception___nullptr.html',1,'SA']]], + ['exception_5foutofarrayrange_9',['Exception_OutOfArrayRange',['../class_s_a_1_1_exception___out_of_array_range.html',1,'SA']]], + ['exception_5foutofrange_10',['Exception_OutOfRange',['../class_s_a_1_1_exception___out_of_range.html',1,'SA']]], + ['exception_5fquerybadapiobject_11',['Exception_QueryBadAPIObject',['../class_s_a_1_1_exception___query_bad_a_p_i_object.html',1,'SA']]], + ['exception_5freachbadapi_12',['Exception_ReachBadAPI',['../class_s_a_1_1_exception___reach_bad_a_p_i.html',1,'SA']]] +]; diff --git a/search/classes_5.js b/search/classes_5.js new file mode 100644 index 0000000..7e2fef1 --- /dev/null +++ b/search/classes_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['filelogstream_0',['FileLogStream',['../class_s_a_1_1_file_log_stream.html',1,'SA']]] +]; diff --git a/search/classes_6.js b/search/classes_6.js new file mode 100644 index 0000000..954080c --- /dev/null +++ b/search/classes_6.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['log_0',['Log',['../class_s_a_1_1_log.html',1,'SA']]], + ['logchannelfilter_1',['LogChannelFilter',['../class_s_a_1_1_log_channel_filter.html',1,'SA']]], + ['logger_2',['Logger',['../class_s_a_1_1_logger.html',1,'SA']]], + ['loggerthread_3',['LoggerThread',['../class_s_a_1_1_logger_thread.html',1,'SA']]], + ['lograii_4',['LogRAII',['../class_s_a_1_1_log_r_a_i_i.html',1,'SA']]] +]; diff --git a/search/close.svg b/search/close.svg new file mode 100644 index 0000000..337d6cc --- /dev/null +++ b/search/close.svg @@ -0,0 +1,18 @@ + + + + + + diff --git a/search/enums_0.js b/search/enums_0.js new file mode 100644 index 0000000..0de785e --- /dev/null +++ b/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['consolecolor_0',['ConsoleColor',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0',1,'SA']]] +]; diff --git a/search/enums_1.js b/search/enums_1.js new file mode 100644 index 0000000..ef6fb11 --- /dev/null +++ b/search/enums_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['loglevel_0',['LogLevel',['../_log_level_8hpp.html#ada12831f2dfd3b16b30fdf5019ae125b',1,'SA']]] +]; diff --git a/search/enumvalues_0.js b/search/enumvalues_0.js new file mode 100644 index 0000000..238105f --- /dev/null +++ b/search/enumvalues_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['assertfailure_0',['AssertFailure',['../_log_level_8hpp.html#ada12831f2dfd3b16b30fdf5019ae125bab4d4bc4fadc55c8f9641a7ae2b5185e3',1,'SA']]], + ['assertsuccess_1',['AssertSuccess',['../_log_level_8hpp.html#ada12831f2dfd3b16b30fdf5019ae125ba64a7e5c2932fc2a722e5ba180ca9473d',1,'SA']]] +]; diff --git a/search/enumvalues_1.js b/search/enumvalues_1.js new file mode 100644 index 0000000..240f226 --- /dev/null +++ b/search/enumvalues_1.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['black_5ffg_0',['Black_FG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0af3886e3d5f28161cc0a3f59c8858dcd4',1,'SA']]], + ['blue_5fbg_1',['Blue_BG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a632c43427cd471b384a85dd1cf3dd473',1,'SA']]], + ['blue_5ffg_2',['Blue_FG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0aeb91d34f2d3a8ffa91d92d883c7a80ba',1,'SA']]], + ['bright_5fbg_3',['Bright_BG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a9be6c5533c011552a5701357fa0bd7c6',1,'SA']]], + ['bright_5ffg_4',['Bright_FG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a235601a321f8bafc693a008622971a99',1,'SA']]] +]; diff --git a/search/enumvalues_2.js b/search/enumvalues_2.js new file mode 100644 index 0000000..3e161bc --- /dev/null +++ b/search/enumvalues_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['cyan_5fbg_0',['Cyan_BG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a37355d1a21e07544ee565da7df29ab6f',1,'SA']]], + ['cyan_5ffg_1',['Cyan_FG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a69ad97b8d1a815c1adcbf4de4e4179cf',1,'SA']]] +]; diff --git a/search/enumvalues_3.js b/search/enumvalues_3.js new file mode 100644 index 0000000..82be560 --- /dev/null +++ b/search/enumvalues_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['default_0',['Default',['../_log_level_8hpp.html#ada12831f2dfd3b16b30fdf5019ae125ba768d946e566c59285e81271690c8d149',1,'SA']]] +]; diff --git a/search/enumvalues_4.js b/search/enumvalues_4.js new file mode 100644 index 0000000..4704213 --- /dev/null +++ b/search/enumvalues_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['error_0',['Error',['../_log_level_8hpp.html#ada12831f2dfd3b16b30fdf5019ae125ba809664045394604453cf88c1f4b32c5e',1,'SA']]] +]; diff --git a/search/enumvalues_5.js b/search/enumvalues_5.js new file mode 100644 index 0000000..54c6cbd --- /dev/null +++ b/search/enumvalues_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['green_5fbg_0',['Green_BG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0af4f48c6e044588f90ffd7ca8d788b127',1,'SA']]], + ['green_5ffg_1',['Green_FG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a908fbffb3c61cd3c85ee478d9eade8a1',1,'SA']]] +]; diff --git a/search/enumvalues_6.js b/search/enumvalues_6.js new file mode 100644 index 0000000..edd2a31 --- /dev/null +++ b/search/enumvalues_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['info_0',['Info',['../_log_level_8hpp.html#ada12831f2dfd3b16b30fdf5019ae125ba769389e34f03c05bfa35395766b48b67',1,'SA']]] +]; diff --git a/search/enumvalues_7.js b/search/enumvalues_7.js new file mode 100644 index 0000000..5b5043d --- /dev/null +++ b/search/enumvalues_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['magenta_5fbg_0',['Magenta_BG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0aef1d19310fb36ea8789b063974ebb6f7',1,'SA']]], + ['magenta_5ffg_1',['Magenta_FG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0abab3d4445dca54dc6ab90a6f8909249e',1,'SA']]] +]; diff --git a/search/enumvalues_8.js b/search/enumvalues_8.js new file mode 100644 index 0000000..e22c448 --- /dev/null +++ b/search/enumvalues_8.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['none_5fbg_0',['None_BG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a4b6ffefbe8d8d0fc1f2a5a42a8d3081c',1,'SA']]], + ['none_5ffg_1',['None_FG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0acd87b4cfa45214b74cbd78ccb00c36af',1,'SA']]], + ['normal_2',['Normal',['../_log_level_8hpp.html#ada12831f2dfd3b16b30fdf5019ae125ba5c8c958a673ea88a453bee2fa02f0c28',1,'SA']]] +]; diff --git a/search/enumvalues_9.js b/search/enumvalues_9.js new file mode 100644 index 0000000..5cfd69a --- /dev/null +++ b/search/enumvalues_9.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['red_5fbg_0',['Red_BG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0aa85d91599c9a38d418a4018d082dca1f',1,'SA']]], + ['red_5ffg_1',['Red_FG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a0fda509c89c82554822fcc994707351a',1,'SA']]], + ['reset_2',['Reset',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a96b1fb967ee0040d607aa83e4d16f86c',1,'SA']]] +]; diff --git a/search/enumvalues_a.js b/search/enumvalues_a.js new file mode 100644 index 0000000..b4d039e --- /dev/null +++ b/search/enumvalues_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['warning_0',['Warning',['../_log_level_8hpp.html#ada12831f2dfd3b16b30fdf5019ae125ba22d54e60f39c21767f2ca11f0f268e50',1,'SA']]], + ['white_5fbg_1',['White_BG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a2d1d79406758979ee84fb1fc5abb9560',1,'SA']]] +]; diff --git a/search/enumvalues_b.js b/search/enumvalues_b.js new file mode 100644 index 0000000..cdc904b --- /dev/null +++ b/search/enumvalues_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['yellow_5fbg_0',['Yellow_BG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a6c36a1a27bb972154c288679de9c8747',1,'SA']]], + ['yellow_5ffg_1',['Yellow_FG',['../_console_color_8hpp.html#ad1c7054caedfd3dc04191a8dd1edfdc0a38194fd92c2fdc4d8fef2c798167236f',1,'SA']]] +]; diff --git a/search/files_0.js b/search/files_0.js new file mode 100644 index 0000000..49e0d89 --- /dev/null +++ b/search/files_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['alogstream_2ehpp_0',['ALogStream.hpp',['../_a_log_stream_8hpp.html',1,'']]] +]; diff --git a/search/files_1.js b/search/files_1.js new file mode 100644 index 0000000..bf9e3c9 --- /dev/null +++ b/search/files_1.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['config_2ehpp_0',['Config.hpp',['../_config_8hpp.html',1,'']]], + ['consolecolor_2ehpp_1',['ConsoleColor.hpp',['../_console_color_8hpp.html',1,'']]], + ['consolecolortheme_2ehpp_2',['ConsoleColorTheme.hpp',['../_console_color_theme_8hpp.html',1,'']]], + ['consolelogstream_2ehpp_3',['ConsoleLogStream.hpp',['../_console_log_stream_8hpp.html',1,'']]] +]; diff --git a/search/files_2.js b/search/files_2.js new file mode 100644 index 0000000..053fc71 --- /dev/null +++ b/search/files_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['datetime_2ehpp_0',['DateTime.hpp',['../_date_time_8hpp.html',1,'']]] +]; diff --git a/search/files_3.js b/search/files_3.js new file mode 100644 index 0000000..6b08bbb --- /dev/null +++ b/search/files_3.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['exception_2ehpp_0',['Exception.hpp',['../_exception_8hpp.html',1,'']]], + ['exception_5fequals_2ehpp_1',['Exception_Equals.hpp',['../_exception___equals_8hpp.html',1,'']]], + ['exception_5fequals0_2ehpp_2',['Exception_Equals0.hpp',['../_exception___equals0_8hpp.html',1,'']]], + ['exception_5fequals1_2ehpp_3',['Exception_Equals1.hpp',['../_exception___equals1_8hpp.html',1,'']]], + ['exception_5fisvalid_2ehpp_4',['Exception_IsValid.hpp',['../_exception___is_valid_8hpp.html',1,'']]], + ['exception_5fnotequals_2ehpp_5',['Exception_NotEquals.hpp',['../_exception___not_equals_8hpp.html',1,'']]], + ['exception_5fnotequals0_2ehpp_6',['Exception_NotEquals0.hpp',['../_exception___not_equals0_8hpp.html',1,'']]], + ['exception_5fnotequals1_2ehpp_7',['Exception_NotEquals1.hpp',['../_exception___not_equals1_8hpp.html',1,'']]], + ['exception_5fnullptr_2ehpp_8',['Exception_Nullptr.hpp',['../_exception___nullptr_8hpp.html',1,'']]], + ['exception_5foutofarrayrange_2ehpp_9',['Exception_OutOfArrayRange.hpp',['../_exception___out_of_array_range_8hpp.html',1,'']]], + ['exception_5foutofrange_2ehpp_10',['Exception_OutOfRange.hpp',['../_exception___out_of_range_8hpp.html',1,'']]], + ['exception_5freachbadapi_2ehpp_11',['Exception_ReachBadAPI.hpp',['../_exception___reach_bad_a_p_i_8hpp.html',1,'']]] +]; diff --git a/search/files_4.js b/search/files_4.js new file mode 100644 index 0000000..98dfc82 --- /dev/null +++ b/search/files_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['filelogstream_2ehpp_0',['FileLogStream.hpp',['../_file_log_stream_8hpp.html',1,'']]] +]; diff --git a/search/files_5.js b/search/files_5.js new file mode 100644 index 0000000..d8588cb --- /dev/null +++ b/search/files_5.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['log_2ehpp_0',['Log.hpp',['../_log_8hpp.html',1,'']]], + ['logchannelfilter_2ehpp_1',['LogChannelFilter.hpp',['../_log_channel_filter_8hpp.html',1,'']]], + ['logger_2ehpp_2',['Logger.hpp',['../_logger_8hpp.html',1,'']]], + ['loggerthread_2ehpp_3',['LoggerThread.hpp',['../_logger_thread_8hpp.html',1,'']]], + ['loglevel_2ehpp_4',['LogLevel.hpp',['../_log_level_8hpp.html',1,'']]] +]; diff --git a/search/files_6.js b/search/files_6.js new file mode 100644 index 0000000..d94a30f --- /dev/null +++ b/search/files_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['tostring_2ehpp_0',['ToString.hpp',['../_to_string_8hpp.html',1,'']]] +]; diff --git a/search/functions_0.js b/search/functions_0.js new file mode 100644 index 0000000..3becee6 --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['assert_0',['Assert',['../class_s_a_1_1_logger.html#a3fb56ac9f9bac665895008cb8c0a7e7d',1,'SA::Logger']]] +]; diff --git a/search/functions_1.js b/search/functions_1.js new file mode 100644 index 0000000..66eaff5 --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['clearstreams_0',['ClearStreams',['../class_s_a_1_1_logger.html#aab8e0c1a2a55e0eb4af7ed26bdb2628a',1,'SA::Logger']]], + ['createlogfile_1',['CreateLogFile',['../class_s_a_1_1_file_log_stream.html#aed011c63b6771dd2693d367c81c20846',1,'SA::FileLogStream']]], + ['createsteam_2',['CreateSteam',['../class_s_a_1_1_logger.html#a13a3bd0cac6324f589ba28393b0a5eba',1,'SA::Logger']]] +]; diff --git a/search/functions_2.js b/search/functions_2.js new file mode 100644 index 0000000..dfd7b1b --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['data_0',['Data',['../struct_s_a_1_1_console_color_theme.html#a9a94613d43026903c81ed14ffd3e3c34',1,'SA::ConsoleColorTheme']]], + ['datetime_1',['DateTime',['../struct_s_a_1_1_date_time.html#ae991df86940d441656517801d7c6481a',1,'SA::DateTime::DateTime()=default'],['../struct_s_a_1_1_date_time.html#a95b6aaee69b1f1c832ea329b0977daa6',1,'SA::DateTime::DateTime(uint8_t _second, uint8_t _minute=0u, uint8_t _hour=0u, uint8_t _day=0u, uint8_t _month=0u, uint16_t _year=0u, uint8_t _weekday=0u) noexcept'],['../struct_s_a_1_1_date_time.html#aae35582efa5c543b89d5aa6481450545',1,'SA::DateTime::DateTime(const struct tm &_time) noexcept']]], + ['destroystream_2',['DestroyStream',['../class_s_a_1_1_logger.html#acc8ba7595374f3ca0d8c938998c34910',1,'SA::Logger']]] +]; diff --git a/search/functions_3.js b/search/functions_3.js new file mode 100644 index 0000000..79cc691 --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['equals_0',['Equals',['../struct_s_a_1_1_date_time.html#ac845d2834e3f3d9aa6013acde4590236',1,'SA::DateTime']]], + ['exception_1',['Exception',['../class_s_a_1_1_exception.html#a6b24b4837cd4e7dacb14b0ebbc27d1ba',1,'SA::Exception']]], + ['exception_5fequals_2',['Exception_Equals',['../class_s_a_1_1_exception___equals.html#ad8bdd43aafc40529b8977317788e65fa',1,'SA::Exception_Equals::Exception_Equals(BaseInfo _info, const T &_lhs, const T &_rhs, std::wstring _predStr=L"pred") noexcept'],['../class_s_a_1_1_exception___equals.html#a5f7a8212947a39d7726dfd379a9efb42',1,'SA::Exception_Equals::Exception_Equals(BaseInfo _info, float _lhs, float _rhs, std::wstring _predStr=L"pred") noexcept'],['../class_s_a_1_1_exception___equals.html#a2374d5f3a22ed86717b4073f07f64862',1,'SA::Exception_Equals::Exception_Equals(BaseInfo _info, double _lhs, double _rhs, std::wstring _predStr=L"pred") noexcept']]], + ['exception_5fequals0_3',['Exception_Equals0',['../class_s_a_1_1_exception___equals0.html#af7b2c15e224fea2413dcfcb5534b0827',1,'SA::Exception_Equals0']]], + ['exception_5fequals1_4',['Exception_Equals1',['../class_s_a_1_1_exception___equals1.html#a3385afcb8276b3b4fdce975daa03a218',1,'SA::Exception_Equals1']]], + ['exception_5fisvalid_5',['Exception_IsValid',['../class_s_a_1_1_exception___is_valid.html#a816788c83908ed28d178182e7af0f236',1,'SA::Exception_IsValid']]], + ['exception_5fnotequals_6',['Exception_NotEquals',['../class_s_a_1_1_exception___not_equals.html#a6e85e75b544c251384e1e56e437a61ae',1,'SA::Exception_NotEquals']]], + ['exception_5fnotequals0_7',['Exception_NotEquals0',['../class_s_a_1_1_exception___not_equals0.html#af1706b1aac21196c8c76a3d53ee4056e',1,'SA::Exception_NotEquals0']]], + ['exception_5fnotequals1_8',['Exception_NotEquals1',['../class_s_a_1_1_exception___not_equals1.html#a52262915ebb35ccc5a8fef547959c8f7',1,'SA::Exception_NotEquals1']]], + ['exception_5fnullptr_9',['Exception_Nullptr',['../class_s_a_1_1_exception___nullptr.html#afab5a9b442b8c6133507013e2b45007b',1,'SA::Exception_Nullptr']]], + ['exception_5foutofarrayrange_10',['Exception_OutOfArrayRange',['../class_s_a_1_1_exception___out_of_array_range.html#abaf5eb95b7a18f949bd32fe81df3bf81',1,'SA::Exception_OutOfArrayRange']]], + ['exception_5foutofrange_11',['Exception_OutOfRange',['../class_s_a_1_1_exception___out_of_range.html#adc1b7e92e8129b88b7e56bade9e5e683',1,'SA::Exception_OutOfRange::Exception_OutOfRange(BaseInfo _info, uint32_t _currIndex, uint32_t _minBound, uint32_t _maxBound, std::wstring _msg) noexcept'],['../class_s_a_1_1_exception___out_of_range.html#a2b197af8a2bddc875eacd929362f5d68',1,'SA::Exception_OutOfRange::Exception_OutOfRange(BaseInfo _info, uint32_t _currIndex, std::wstring _currIndexStr, uint32_t _minBound, std::wstring _minBoundStr, uint32_t _maxBound, std::wstring _maxBoundStr) noexcept']]], + ['exception_5freachbadapi_12',['Exception_ReachBadAPI',['../class_s_a_1_1_exception___reach_bad_a_p_i.html#a8ef7298cb34825559d1951ba58a68459',1,'SA::Exception_ReachBadAPI::Exception_ReachBadAPI()'],['../class_s_a_1_1_exception___query_bad_a_p_i_object.html#a8ef7298cb34825559d1951ba58a68459',1,'SA::Exception_QueryBadAPIObject::Exception_ReachBadAPI()']]] +]; diff --git a/search/functions_4.js b/search/functions_4.js new file mode 100644 index 0000000..7e2de01 --- /dev/null +++ b/search/functions_4.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['filelogstream_0',['FileLogStream',['../class_s_a_1_1_file_log_stream.html#a52d06f65886a2202b3afae10e9683ef5',1,'SA::FileLogStream']]], + ['filestats_1',['FileStats',['../struct_s_a_1_1_date_time.html#a26a99b1e4bb57999d44c440f375683f9',1,'SA::DateTime']]], + ['flush_2',['Flush',['../class_s_a_1_1_logger.html#a64988d6eb526457e067238ff449c5f4c',1,'SA::Logger::Flush()'],['../class_s_a_1_1_logger_thread.html#a49607bb26bc993b755817ade093444ad',1,'SA::LoggerThread::Flush()'],['../class_s_a_1_1_a_log_stream.html#a9ed8f736a91aa57628f8b3d38dede07d',1,'SA::ALogStream::Flush()'],['../class_s_a_1_1_console_log_stream.html#a68553d6b1c8fa59967facd5ca5e6fb0c',1,'SA::ConsoleLogStream::Flush()'],['../class_s_a_1_1_file_log_stream.html#a92f15e7fc2f30871d34f7dab43fbf101',1,'SA::FileLogStream::Flush()']]] +]; diff --git a/search/functions_5.js b/search/functions_5.js new file mode 100644 index 0000000..ae71a0f --- /dev/null +++ b/search/functions_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['gmnow_0',['GMNow',['../struct_s_a_1_1_date_time.html#ab67fe5f1f05f9a78a7de475cdbde42dd',1,'SA::DateTime']]] +]; diff --git a/search/functions_6.js b/search/functions_6.js new file mode 100644 index 0000000..58e8ba2 --- /dev/null +++ b/search/functions_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ischannelenabled_0',['IsChannelEnabled',['../class_s_a_1_1_log_channel_filter.html#a5a598ba7c0b47c443087fd5fb027b53f',1,'SA::LogChannelFilter']]] +]; diff --git a/search/functions_7.js b/search/functions_7.js new file mode 100644 index 0000000..b3761fa --- /dev/null +++ b/search/functions_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['log_0',['Log',['../class_s_a_1_1_log.html#a9d2dd25af31849f7ca8f05a981f7e7e8',1,'SA::Log::Log()'],['../class_s_a_1_1_logger.html#a489ef7de1b203c9a0f9fcc874cfa49df',1,'SA::Logger::Log()'],['../class_s_a_1_1_logger_thread.html#aa603d4d826de36c6766c95c988986552',1,'SA::LoggerThread::Log(SA::Log _log) override final']]], + ['loggerthread_1',['LoggerThread',['../class_s_a_1_1_logger_thread.html#a03423be79604d53bad533f93fb16b1dd',1,'SA::LoggerThread']]] +]; diff --git a/search/functions_8.js b/search/functions_8.js new file mode 100644 index 0000000..874609f --- /dev/null +++ b/search/functions_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['now_0',['Now',['../struct_s_a_1_1_date_time.html#ab8709141484d1698617fda80b89f259a',1,'SA::DateTime']]] +]; diff --git a/search/functions_9.js b/search/functions_9.js new file mode 100644 index 0000000..d4a6ec4 --- /dev/null +++ b/search/functions_9.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['operator_21_3d_0',['operator!=',['../struct_s_a_1_1_date_time.html#a6931468c40a743688c1f0af9b68896b3',1,'SA::DateTime']]], + ['operator_3c_3c_1',['operator<<',['../class_s_a_1_1_a_log_stream.html#a6d8e85baca0ac22bca5d7c66d9bcccac',1,'SA::ALogStream']]], + ['operator_3d_3d_2',['operator==',['../struct_s_a_1_1_date_time.html#af041657a39cb05b13d7ce6da9f459a2a',1,'SA::DateTime']]], + ['output_3',['Output',['../class_s_a_1_1_a_log_stream.html#a6c8b769f9c2b78e8d96558372010a1b7',1,'SA::ALogStream::Output()'],['../class_s_a_1_1_file_log_stream.html#a56a9efd84a85a6feef6ab70295fd66ac',1,'SA::FileLogStream::Output()']]] +]; diff --git a/search/functions_a.js b/search/functions_a.js new file mode 100644 index 0000000..7eb6cdd --- /dev/null +++ b/search/functions_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['processlog_0',['ProcessLog',['../class_s_a_1_1_logger.html#a4dda648cdc9be06fc8ab1fcb0c4fcac7',1,'SA::Logger::ProcessLog()'],['../class_s_a_1_1_a_log_stream.html#a8c73209a0cf54fa2c51c8850c90546cc',1,'SA::ALogStream::ProcessLog()']]] +]; diff --git a/search/functions_b.js b/search/functions_b.js new file mode 100644 index 0000000..e5b648f --- /dev/null +++ b/search/functions_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['registerstream_0',['RegisterStream',['../class_s_a_1_1_logger.html#a508f1b14b1af1bcd53ceedb820437bbd',1,'SA::Logger']]] +]; diff --git a/search/functions_c.js b/search/functions_c.js new file mode 100644 index 0000000..ea08920 --- /dev/null +++ b/search/functions_c.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['setconsolecolor_0',['SetConsoleColor',['../_console_color_8hpp.html#a837f13dc7311e5b1e2ff64d5f615628b',1,'SA']]], + ['setconsolecolorfromlevel_1',['SetConsoleColorFromLevel',['../struct_s_a_1_1_console_color_theme.html#a692b24c0be7f65fa5345e797f00cfdcb',1,'SA::ConsoleColorTheme']]] +]; diff --git a/search/functions_d.js b/search/functions_d.js new file mode 100644 index 0000000..084b258 --- /dev/null +++ b/search/functions_d.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['tostring_0',['ToString',['../_log_level_8hpp.html#a76479ac11b837c2757ed8b7718b81749',1,'SA::ToString(LogLevel _lvl) noexcept'],['../_date_time_8hpp.html#a7be2197e2dfdb4daa1baef6a16e6aeec',1,'SA::ToString(const DateTime &_date)'],['../_to_string_8hpp.html#a8f55ef0228f902abac5b9f9090ec4f2a',1,'SA::ToString(const T &_elem)'],['../_to_string_8hpp.html#a754d13e6410f88dd18cef30838ee910e',1,'SA::ToString(T *_ptr)'],['../_to_string_8hpp.html#a570a1a8fb487021f1a70fe05f35f87cc',1,'SA::ToString(const T *_elems, uint64_t _size)'],['../_to_string_8hpp.html#abb347746ff8d3e65605e463b6c061b89',1,'SA::ToString(const std::vector< T > &_vec)']]], + ['tostringbinary_1',['ToStringBinary',['../_to_string_8hpp.html#a8dd965c7e084c086e72ccdadb8838962',1,'SA']]], + ['towstring_2',['ToWString',['../_log_8hpp.html#ac45b919743e944b2dc97228455256f7e',1,'SA::ToWString(const Log &_log)'],['../_log_level_8hpp.html#a3fe9982e966ba0cf65b65f857c37042c',1,'SA::ToWString(LogLevel _lvl) noexcept'],['../_to_string_8hpp.html#ad91788f76775509606772abcc82a623b',1,'SA::ToWString(const T &_elem) noexcept'],['../_to_string_8hpp.html#ae37bdaab5ed87691909ac3ecc79aa0af',1,'SA::ToWString(T *_ptr) noexcept'],['../_to_string_8hpp.html#a3bc779161d82174331153d8e552d0afe',1,'SA::ToWString(const T *_elems, uint64_t _size)'],['../_to_string_8hpp.html#aaa60dd980e547fe03f375de235749a35',1,'SA::ToWString(const std::vector< T > &_vec)']]] +]; diff --git a/search/functions_e.js b/search/functions_e.js new file mode 100644 index 0000000..ea67410 --- /dev/null +++ b/search/functions_e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['unregisterstream_0',['UnregisterStream',['../class_s_a_1_1_logger.html#a33e2fd79361ccd7fb2307f72b9836222',1,'SA::Logger']]] +]; diff --git a/search/functions_f.js b/search/functions_f.js new file mode 100644 index 0000000..271350b --- /dev/null +++ b/search/functions_f.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['_7ealogstream_0',['~ALogStream',['../class_s_a_1_1_a_log_stream.html#a1667db6eabd89ae92d5f9a51ef8e8407',1,'SA::ALogStream']]], + ['_7efilelogstream_1',['~FileLogStream',['../class_s_a_1_1_file_log_stream.html#a775841ad652e46b39f90fd2aed1577f0',1,'SA::FileLogStream']]], + ['_7elogger_2',['~Logger',['../class_s_a_1_1_logger.html#ada0ea41bd39593c704499eda52c6827c',1,'SA::Logger']]], + ['_7eloggerthread_3',['~LoggerThread',['../class_s_a_1_1_logger_thread.html#a9a6ebd36ad9c722f1bdbba46f229cf28',1,'SA::LoggerThread']]] +]; diff --git a/search/groups_0.js b/search/groups_0.js new file mode 100644 index 0000000..9ab2cf6 --- /dev/null +++ b/search/groups_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['console_0',['Console',['../group___logger___console.html',1,'']]] +]; diff --git a/search/groups_1.js b/search/groups_1.js new file mode 100644 index 0000000..456e9b4 --- /dev/null +++ b/search/groups_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['exception_0',['Exception',['../group___logger___exception.html',1,'']]] +]; diff --git a/search/groups_2.js b/search/groups_2.js new file mode 100644 index 0000000..0de6fa0 --- /dev/null +++ b/search/groups_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['file_0',['File',['../group___logger___file.html',1,'']]] +]; diff --git a/search/groups_3.js b/search/groups_3.js new file mode 100644 index 0000000..17ecb04 --- /dev/null +++ b/search/groups_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['logger_0',['Logger',['../group___logger.html',1,'']]] +]; diff --git a/search/groups_4.js b/search/groups_4.js new file mode 100644 index 0000000..c0f5ccb --- /dev/null +++ b/search/groups_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['misc_0',['Misc',['../group___logger___misc.html',1,'']]] +]; diff --git a/search/groups_5.js b/search/groups_5.js new file mode 100644 index 0000000..81dc3b8 --- /dev/null +++ b/search/groups_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['stream_0',['Stream',['../group___logger___stream.html',1,'']]] +]; diff --git a/search/mag.svg b/search/mag.svg new file mode 100644 index 0000000..ffb6cf0 --- /dev/null +++ b/search/mag.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/search/mag_d.svg b/search/mag_d.svg new file mode 100644 index 0000000..4122773 --- /dev/null +++ b/search/mag_d.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/search/mag_sel.svg b/search/mag_sel.svg new file mode 100644 index 0000000..553dba8 --- /dev/null +++ b/search/mag_sel.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/search/mag_seld.svg b/search/mag_seld.svg new file mode 100644 index 0000000..c906f84 --- /dev/null +++ b/search/mag_seld.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/search/namespaces_0.js b/search/namespaces_0.js new file mode 100644 index 0000000..13e8502 --- /dev/null +++ b/search/namespaces_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['sa_3a_3adebug_0',['Debug',['../namespace_s_a_1_1_debug.html',1,'SA']]] +]; diff --git a/search/search.css b/search/search.css new file mode 100644 index 0000000..19f76f9 --- /dev/null +++ b/search/search.css @@ -0,0 +1,291 @@ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: var(--search-background-color); + border-radius: 0.65em; + box-shadow: var(--search-box-shadow); + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: var(--search-foreground-color); + outline: none; + font-family: var(--font-family-search); + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: var(--search-active-color); +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt var(--font-family-search); + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: var(--font-family-monospace); + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: var(--search-filter-foreground-color); + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: var(--search-filter-foreground-color); + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: var(--search-results-background-color); +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: var(--font-family-search); +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: var(--font-family-search); +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: var(--nav-gradient-active-image-parent); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/search/search.js b/search/search.js new file mode 100644 index 0000000..666af01 --- /dev/null +++ b/search/search.js @@ -0,0 +1,694 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +const SEARCH_COOKIE_NAME = ''+'search_grp'; + +const searchResults = new SearchResults(); + +/* A class handling everything associated with the search panel. + + Parameters: + name - The name of the global variable that will be + storing this instance. Is needed to be able to set timeouts. + resultPath - path to use for external files +*/ +function SearchBox(name, resultsPath, extension) { + if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); } + if (!extension || extension == "") { extension = ".html"; } + + function getXPos(item) { + let x = 0; + if (item.offsetWidth) { + while (item && item!=document.body) { + x += item.offsetLeft; + item = item.offsetParent; + } + } + return x; + } + + function getYPos(item) { + let y = 0; + if (item.offsetWidth) { + while (item && item!=document.body) { + y += item.offsetTop; + item = item.offsetParent; + } + } + return y; + } + + // ---------- Instance variables + this.name = name; + this.resultsPath = resultsPath; + this.keyTimeout = 0; + this.keyTimeoutLength = 500; + this.closeSelectionTimeout = 300; + this.lastSearchValue = ""; + this.lastResultsPage = ""; + this.hideTimeout = 0; + this.searchIndex = 0; + this.searchActive = false; + this.extension = extension; + + // ----------- DOM Elements + + this.DOMSearchField = () => document.getElementById("MSearchField"); + this.DOMSearchSelect = () => document.getElementById("MSearchSelect"); + this.DOMSearchSelectWindow = () => document.getElementById("MSearchSelectWindow"); + this.DOMPopupSearchResults = () => document.getElementById("MSearchResults"); + this.DOMPopupSearchResultsWindow = () => document.getElementById("MSearchResultsWindow"); + this.DOMSearchClose = () => document.getElementById("MSearchClose"); + this.DOMSearchBox = () => document.getElementById("MSearchBox"); + + // ------------ Event Handlers + + // Called when focus is added or removed from the search field. + this.OnSearchFieldFocus = function(isActive) { + this.Activate(isActive); + } + + this.OnSearchSelectShow = function() { + const searchSelectWindow = this.DOMSearchSelectWindow(); + const searchField = this.DOMSearchSelect(); + + const left = getXPos(searchField); + const top = getYPos(searchField) + searchField.offsetHeight; + + // show search selection popup + searchSelectWindow.style.display='block'; + searchSelectWindow.style.left = left + 'px'; + searchSelectWindow.style.top = top + 'px'; + + // stop selection hide timer + if (this.hideTimeout) { + clearTimeout(this.hideTimeout); + this.hideTimeout=0; + } + return false; // to avoid "image drag" default event + } + + this.OnSearchSelectHide = function() { + this.hideTimeout = setTimeout(this.CloseSelectionWindow.bind(this), + this.closeSelectionTimeout); + } + + // Called when the content of the search field is changed. + this.OnSearchFieldChange = function(evt) { + if (this.keyTimeout) { // kill running timer + clearTimeout(this.keyTimeout); + this.keyTimeout = 0; + } + + const e = evt ? evt : window.event; // for IE + if (e.keyCode==40 || e.keyCode==13) { + if (e.shiftKey==1) { + this.OnSearchSelectShow(); + const win=this.DOMSearchSelectWindow(); + for (let i=0;i do a search + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) { // Up + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } else if (e.keyCode==13 || e.keyCode==27) { + e.stopPropagation(); + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() { + this.keyTimeout = 0; + + // strip leading whitespace + const searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + const code = searchValue.toLowerCase().charCodeAt(0); + let idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) { // surrogate pair + idxChar = searchValue.substr(0, 2); + } + + let jsFile; + let idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) { + const hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + const loadJS = function(url, impl, loc) { + const scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + const domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + const domSearchBox = this.DOMSearchBox(); + const domPopupSearchResults = this.DOMPopupSearchResults(); + const domSearchClose = this.DOMSearchClose(); + const resultsPath = this.resultsPath; + + const handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + if (idx!=-1) { + searchResults.Search(searchValue); + } else { // no file with search results => force empty search results + searchResults.Search('===='); + } + + if (domPopupSearchResultsWindow.style.display!='block') { + domSearchClose.style.display = 'inline-block'; + let left = getXPos(domSearchBox) + 150; + let top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + const maxWidth = document.body.clientWidth; + const maxHeight = document.body.clientHeight; + let width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + let height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } else if (!isActive) { // directly remove the panel + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults() { + + function convertToId(search) { + let result = ''; + for (let i=0;i. + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) { + const parentElement = document.getElementById(id); + let element = parentElement.firstChild; + + while (element && element!=parentElement) { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) { + element = element.firstChild; + } else if (element.nextSibling) { + element = element.nextSibling; + } else { + do { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) { + const element = this.FindChildElement(id); + if (element) { + if (element.style.display == 'block') { + element.style.display = 'none'; + } else { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) { + if (!search) { // get search word from URL + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + const resultRows = document.getElementsByTagName("div"); + let matches = 0; + + let i = 0; + while (i < resultRows.length) { + const row = resultRows.item(i); + if (row.className == "SRResult") { + let rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) { + row.style.display = 'block'; + matches++; + } else { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) { // no results + document.getElementById("NoMatches").style.display='block'; + } else { // at least one result + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) { + let focusItem; + for (;;) { + const focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { + break; + } else if (!focusItem) { // last element + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) { + let focusItem; + for (;;) { + const focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { + break; + } else if (!focusItem) { // last element + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) { + if (e.type == "keydown") { + this.repeatOn = false; + this.lastKey = e.keyCode; + } else if (e.type == "keypress") { + if (!this.repeatOn) { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } else if (e.type == "keyup") { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + const newIndex = itemIndex-1; + let focusItem = this.NavPrev(newIndex); + if (focusItem) { + let child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') { // children visible + let n=0; + let tmpElem; + for (;;) { // search for last child + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) { + focusItem = tmpElem; + } else { // found it! + break; + } + n++; + } + } + } + if (focusItem) { + focusItem.focus(); + } else { // return focus to search field + document.getElementById("MSearchField").focus(); + } + } else if (this.lastKey==40) { // Down + const newIndex = itemIndex+1; + let focusItem; + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') { // children visible + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } else if (this.lastKey==39) { // Right + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } else if (this.lastKey==37) { // Left + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } else if (this.lastKey==27) { // Escape + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } else if (this.lastKey==13) { // Enter + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + if (childIndex>0) { + const newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } else { // already at first child, jump to parent + document.getElementById('Item'+itemIndex).focus(); + } + } else if (this.lastKey==40) { // Down + const newIndex = childIndex+1; + let elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) { // last child, jump to parent next parent + elem = this.NavNext(itemIndex+1); + } + if (elem) { + elem.focus(); + } + } else if (this.lastKey==27) { // Escape + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } else if (this.lastKey==13) { // Enter + return true; + } + return false; + } +} + +function createResults(resultsPath) { + + function setKeyActions(elem,action) { + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); + } + + function setClassAttr(elem,attr) { + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); + } + + const results = document.getElementById("SRResults"); + results.innerHTML = ''; + searchData.forEach((elem,index) => { + const id = elem[0]; + const srResult = document.createElement('div'); + srResult.setAttribute('id','SR_'+id); + setClassAttr(srResult,'SRResult'); + const srEntry = document.createElement('div'); + setClassAttr(srEntry,'SREntry'); + const srLink = document.createElement('a'); + srLink.setAttribute('id','Item'+index); + setKeyActions(srLink,'return searchResults.Nav(event,'+index+')'); + setClassAttr(srLink,'SRSymbol'); + srLink.innerHTML = elem[1][0]; + srEntry.appendChild(srLink); + if (elem[1].length==2) { // single result + srLink.setAttribute('href',resultsPath+elem[1][1][0]); + srLink.setAttribute('onclick','searchBox.CloseResultsWindow()'); + if (elem[1][1][1]) { + srLink.setAttribute('target','_parent'); + } else { + srLink.setAttribute('target','_blank'); + } + const srScope = document.createElement('span'); + setClassAttr(srScope,'SRScope'); + srScope.innerHTML = elem[1][1][2]; + srEntry.appendChild(srScope); + } else { // multiple results + srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")'); + const srChildren = document.createElement('div'); + setClassAttr(srChildren,'SRChildren'); + for (let c=0; c-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/splitbard.png b/splitbard.png new file mode 100644 index 0000000000000000000000000000000000000000..8367416d757fd7b6dc4272b6432dc75a75abd068 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf@VhhFKy35^fiT zT~&lUj3=cDh^%3HDY9k5CEku}PHXNoNC(_$U3XPb&Q*ME25pT;2(*BOgAf<+R$lzakPG`kF31()Fx{L5Wrac|GQzjeE= zueY1`Ze{#x<8=S|`~MgGetGce)#vN&|J{Cd^tS%;tBYTo?+^d68<#n_Y_xx`J||4O V@QB{^CqU0Kc)I$ztaD0e0svEzbJzd? literal 0 HcmV?d00001 diff --git a/struct_s_a_1_1_console_color_theme-members.html b/struct_s_a_1_1_console_color_theme-members.html new file mode 100644 index 0000000..ce4e66c --- /dev/null +++ b/struct_s_a_1_1_console_color_theme-members.html @@ -0,0 +1,99 @@ + + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SA_Logger +
    +
    Sapphire's Suite's C++ Logger.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    SA::ConsoleColorTheme Member List
    +
    + + + + + diff --git a/struct_s_a_1_1_console_color_theme.html b/struct_s_a_1_1_console_color_theme.html new file mode 100644 index 0000000..e6b2e84 --- /dev/null +++ b/struct_s_a_1_1_console_color_theme.html @@ -0,0 +1,182 @@ + + + + + + + +SA_Logger: SA::ConsoleColorTheme Struct Reference + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SA_Logger +
    +
    Sapphire's Suite's C++ Logger.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    SA::ConsoleColorTheme Struct Reference
    +
    +
    + +

    #include <ConsoleColorTheme.hpp>

    + + + + + + + + +

    +Public Member Functions

    const uint8_t * Data () const
     convert theme to data type.
     
    void SetConsoleColorFromLevel (LogLevel _lvl) const
     Set console color from log level using theme.
     
    + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +uint8_t normal = CslColor::Bright_FG
     Normal level color.
     
    +uint8_t info = CslColor::Blue_FG | CslColor::Bright_FG
     Info level color.
     
    +uint8_t warning = CslColor::Yellow_FG
     Warning level color.
     
    +uint8_t error = CslColor::Red_FG | CslColor::Bright_FG
     Error level color.
     
    +uint8_t assertSuccess = CslColor::Green_FG | CslColor::Bright_FG
     Assert Success level color.
     
    +uint8_t assertFailure = CslColor::Magenta_FG | CslColor::Bright_FG
     Assert Failure level color.
     
    +

    Detailed Description

    +

    Console color theme by LogLevel.

    +

    Member Function Documentation

    + +

    ◆ Data()

    + +
    +
    + + + + + + + +
    const uint8_t * SA::ConsoleColorTheme::Data () const
    +
    + +

    convert theme to data type.

    +
    Returns
    this as uint8_t data.
    + +
    +
    + +

    ◆ SetConsoleColorFromLevel()

    + +
    +
    + + + + + + + +
    void SA::ConsoleColorTheme::SetConsoleColorFromLevel (LogLevel _lvl) const
    +
    + +

    Set console color from log level using theme.

    +
    Parameters
    + + +
    [in]_lvlLogLevel to use for theme.
    +
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/struct_s_a_1_1_date_time-members.html b/struct_s_a_1_1_date_time-members.html new file mode 100644 index 0000000..84ec375 --- /dev/null +++ b/struct_s_a_1_1_date_time-members.html @@ -0,0 +1,107 @@ + + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SA_Logger +
    +
    Sapphire's Suite's C++ Logger.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    SA::DateTime Member List
    +
    +
    + +

    This is the complete list of members for SA::DateTime, including all inherited members.

    + + + + + + + + + + + + + + + + + +
    DateTime()=defaultSA::DateTime
    DateTime(uint8_t _second, uint8_t _minute=0u, uint8_t _hour=0u, uint8_t _day=0u, uint8_t _month=0u, uint16_t _year=0u, uint8_t _weekday=0u) noexceptSA::DateTime
    DateTime(const struct tm &_time) noexceptSA::DateTime
    daySA::DateTime
    Equals(const DateTime &_other) const noexceptSA::DateTime
    FileStats(const std::string &_path)SA::DateTimestatic
    GMNow() noexceptSA::DateTimestatic
    hourSA::DateTime
    minuteSA::DateTime
    monthSA::DateTime
    Now() noexceptSA::DateTimestatic
    operator!=(const DateTime &_rhs) const noexceptSA::DateTime
    operator==(const DateTime &_rhs) const noexceptSA::DateTime
    secondSA::DateTime
    weekdaySA::DateTime
    yearSA::DateTime
    + + + + diff --git a/struct_s_a_1_1_date_time.html b/struct_s_a_1_1_date_time.html new file mode 100644 index 0000000..21a0a32 --- /dev/null +++ b/struct_s_a_1_1_date_time.html @@ -0,0 +1,460 @@ + + + + + + + +SA_Logger: SA::DateTime Struct Reference + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SA_Logger +
    +
    Sapphire's Suite's C++ Logger.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Date time structure type. + More...

    + +

    #include <DateTime.hpp>

    + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    DateTime ()=default
     Default constructor.
     
     DateTime (uint8_t _second, uint8_t _minute=0u, uint8_t _hour=0u, uint8_t _day=0u, uint8_t _month=0u, uint16_t _year=0u, uint8_t _weekday=0u) noexcept
     
     DateTime (const struct tm &_time) noexcept
     
    bool Equals (const DateTime &_other) const noexcept
     Compare two DateTime equality.
     
    bool operator== (const DateTime &_rhs) const noexcept
     Compare two DateTime equality.
     
    bool operator!= (const DateTime &_rhs) const noexcept
     Compare two DateTime inequality.
     
    + + + + + + + + + + +

    +Static Public Member Functions

    static DateTime Now () noexcept
     Get the current local date time.
     
    static DateTime GMNow () noexcept
     Get the current date time at Greenwich.
     
    static DateTime FileStats (const std::string &_path)
     Query file date time stats at path.
     
    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +uint8_t second = 0
     second number [0, 59].
     
    +uint8_t minute = 0
     minute number [0, 59].
     
    +uint8_t hour = 0
     hour number [0, 23].
     
    +uint8_t day = 0
     day of the month number [1, 31].
     
    +uint8_t month = 0
     month number [1, 12].
     
    +uint16_t year = 0
     Year number.
     
    +uint8_t weekday = 0
     day number of the week [0, 6].
     
    +

    Detailed Description

    +

    Date time structure type.

    +

    Constructor & Destructor Documentation

    + +

    ◆ DateTime() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    SA::DateTime::DateTime (uint8_t _second,
    uint8_t _minute = 0u,
    uint8_t _hour = 0u,
    uint8_t _day = 0u,
    uint8_t _month = 0u,
    uint16_t _year = 0u,
    uint8_t _weekday = 0u )
    +
    +noexcept
    +
    +

    Default Value constructor.

    +
    Parameters
    + + + + + + + + +
    [in]_secondsecond values.
    [in]_minuteminute values.
    [in]_hourhour values.
    [in]_dayday values.
    [in]_monthmonth values.
    [in]_yearyear values.
    [in]_weekdayweekday values.
    +
    +
    + +
    +
    + +

    ◆ DateTime() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    SA::DateTime::DateTime (const struct tm & _time)
    +
    +noexcept
    +
    +

    Value constructor from tm struct.

    +
    Parameters
    + + +
    [in]_timetm values.
    +
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ Equals()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool SA::DateTime::Equals (const DateTime & _other) const
    +
    +noexcept
    +
    + +

    Compare two DateTime equality.

    +
    Parameters
    + + +
    [in]_otherOther date time to compare with.
    +
    +
    +
    Returns
    Whether this and _other are equal.
    + +
    +
    + +

    ◆ FileStats()

    + +
    +
    + + + + + +
    + + + + + + + +
    static DateTime SA::DateTime::FileStats (const std::string & _path)
    +
    +static
    +
    + +

    Query file date time stats at path.

    +
    Parameters
    + + +
    [in]_pathFile path.
    +
    +
    +
    Returns
    DateTime stats of the file at path.
    + +
    +
    + +

    ◆ GMNow()

    + +
    +
    + + + + + +
    + + + + + + + +
    static DateTime SA::DateTime::GMNow ()
    +
    +staticnoexcept
    +
    + +

    Get the current date time at Greenwich.

    +
    Returns
    DateTime.
    + +
    +
    + +

    ◆ Now()

    + +
    +
    + + + + + +
    + + + + + + + +
    static DateTime SA::DateTime::Now ()
    +
    +staticnoexcept
    +
    + +

    Get the current local date time.

    +
    Returns
    DateTime.
    + +
    +
    + +

    ◆ operator!=()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool SA::DateTime::operator!= (const DateTime & _rhs) const
    +
    +noexcept
    +
    + +

    Compare two DateTime inequality.

    +
    Parameters
    + + +
    [in]_rhsOther date time to compare with.
    +
    +
    +
    Returns
    Whether this and _other are not equal.
    + +
    +
    + +

    ◆ operator==()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool SA::DateTime::operator== (const DateTime & _rhs) const
    +
    +noexcept
    +
    + +

    Compare two DateTime equality.

    +
    Parameters
    + + +
    [in]_rhsOther date time to compare with.
    +
    +
    +
    Returns
    Whether this and _other are equal.
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/struct_s_a_1_1_exception_1_1_base_info-members.html b/struct_s_a_1_1_exception_1_1_base_info-members.html new file mode 100644 index 0000000..98ee2ce --- /dev/null +++ b/struct_s_a_1_1_exception_1_1_base_info-members.html @@ -0,0 +1,97 @@ + + + + + + + +SA_Logger: Member List + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SA_Logger +
    +
    Sapphire's Suite's C++ Logger.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    SA::Exception::BaseInfo Member List
    +
    + + + + + diff --git a/struct_s_a_1_1_exception_1_1_base_info.html b/struct_s_a_1_1_exception_1_1_base_info.html new file mode 100644 index 0000000..914a750 --- /dev/null +++ b/struct_s_a_1_1_exception_1_1_base_info.html @@ -0,0 +1,129 @@ + + + + + + + +SA_Logger: SA::Exception::BaseInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SA_Logger +
    +
    Sapphire's Suite's C++ Logger.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    SA::Exception::BaseInfo Struct Reference
    +
    +
    + +

    Base exception create info. + More...

    + +

    #include <Exception.hpp>

    + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +std::wstring file
     File name.
     
    +uint32_t line
     line number.
     
    +std::string function
     Function name.
     
    +std::wstring chanName
     LogChannel name.
     
    +std::wstring details
     Additional details string.
     
    +uint32_t frameNum
     Frame num.
     
    +

    Detailed Description

    +

    Base exception create info.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/sync_off.png b/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/sync_on.png b/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/tab_a.png b/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/tab_ad.png b/tab_ad.png new file mode 100644 index 0000000000000000000000000000000000000000..e34850acfc24be58da6d2fd1ccc6b29cc84fe34d GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QhuH;jv*C{Z|5d*H3V=pKi{In zd2jxLclDRPylmD}^l7{QOtL{vUjO{-WqItb5sQp2h-99b8^^Scr-=2mblCdZuUm?4 jzOJvgvt3{(cjKLW5(A@0qPS@<&}0TrS3j3^P6y&q2{!U5bk+Tso_B!YCpDh>v z{CM*1U8YvQRyBUHt^Ju0W_sq-?;9@_4equ-bavTs=gk796zopr0EBT&m;e9( literal 0 HcmV?d00001 diff --git a/tab_s.png b/tab_s.png new file mode 100644 index 0000000000000000000000000000000000000000..ab478c95b67371d700a20869f7de1ddd73522d50 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QuUrLjv*C{Z|^p8HaRdjTwH7) zC?wLlL}}I{)n%R&r+1}IGmDnq;&J#%V6)9VsYhS`O^BVBQlxOUep0c$RENLq#g8A$ z)z7%K_bI&n@J+X_=x}fJoEKed-$<>=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/tab_sd.png b/tab_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..757a565ced4730f85c833fb2547d8e199ae68f19 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qq7(&jv*C{Z|_!fH5o7*c=%9% zcILh!EA=pAQKdx-Cdiev=v{eg{8Ht<{e8_NAN~b=)%W>-WDCE0PyDHGemi$BoXwcK z{>e9^za6*c1ilttWw&V+U;WCPlV9{LdC~Ey%_H(qj`xgfES(4Yz5jSTZfCt`4E$0YRsR*S^mTCR^;V&sxC8{l_Cp7w8-YPgg&ebxsLQ00$vXK>z>% literal 0 HcmV?d00001 diff --git a/tabs.css b/tabs.css new file mode 100644 index 0000000..fe4854a --- /dev/null +++ b/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} \ No newline at end of file diff --git a/topics.html b/topics.html new file mode 100644 index 0000000..f5af1b0 --- /dev/null +++ b/topics.html @@ -0,0 +1,94 @@ + + + + + + + +SA_Logger: Topics + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SA_Logger +
    +
    Sapphire's Suite's C++ Logger.
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Topics
    +
    +
    +
    Here is a list of all topics with brief descriptions:
    +
    [detail level 123]
    + + + + + + +
     Logger
     Misc
     Exception
     Stream
     Console
     File
    +
    +
    + + + +