From 27b7faab635afa8b9c8bdabfc1d7942c670ae663 Mon Sep 17 00:00:00 2001 From: Jack Andersen Date: Sat, 7 Jan 2017 13:46:40 -1000 Subject: [PATCH] Initial docs --- Common_8hpp.html | 212 +++ Common_8hpp.js | 31 + Common_8hpp__dep__incl.map | 5 + Common_8hpp__dep__incl.md5 | 1 + Common_8hpp__dep__incl.png | Bin 0 -> 18111 bytes Common_8hpp__incl.map | 2 + Common_8hpp__incl.md5 | 1 + Common_8hpp__incl.png | Bin 0 -> 8375 bytes Common_8hpp_source.html | 151 ++ DocMain_8md.html | 122 ++ Endpoint_8hpp.html | 154 ++ Endpoint_8hpp__incl.map | 4 + Endpoint_8hpp__incl.md5 | 1 + Endpoint_8hpp__incl.png | Bin 0 -> 75855 bytes Endpoint_8hpp_source.html | 153 ++ Listener_8hpp.html | 152 ++ Listener_8hpp__incl.map | 4 + Listener_8hpp__incl.md5 | 1 + Listener_8hpp__incl.png | Bin 0 -> 51404 bytes Listener_8hpp_source.html | 131 ++ Socket_8hpp.html | 170 ++ Socket_8hpp.js | 5 + Socket_8hpp__dep__incl.map | 4 + Socket_8hpp__dep__incl.md5 | 1 + Socket_8hpp__dep__incl.png | Bin 0 -> 10438 bytes Socket_8hpp__incl.map | 3 + Socket_8hpp__incl.md5 | 1 + Socket_8hpp__incl.png | Bin 0 -> 36568 bytes Socket_8hpp_source.html | 145 ++ annotated.html | 134 ++ annotated_dup.js | 4 + arrowdown.png | Bin 0 -> 246 bytes arrowright.png | Bin 0 -> 229 bytes bc_s.png | Bin 0 -> 676 bytes bdwn.png | Bin 0 -> 147 bytes classes.html | 136 ++ classjbus_1_1Endpoint-members.html | 141 ++ classjbus_1_1Endpoint.html | 710 ++++++++ classjbus_1_1Endpoint.js | 18 + ...ddcbf5ac7078d59a4d99d291e3f0fa_icgraph.map | 4 + ...ddcbf5ac7078d59a4d99d291e3f0fa_icgraph.md5 | 1 + ...ddcbf5ac7078d59a4d99d291e3f0fa_icgraph.png | Bin 0 -> 8196 bytes ...b5167184768ea65d026adc531f237b9_cgraph.map | 4 + ...b5167184768ea65d026adc531f237b9_cgraph.md5 | 1 + ...b5167184768ea65d026adc531f237b9_cgraph.png | Bin 0 -> 8415 bytes ...5167184768ea65d026adc531f237b9_icgraph.map | 3 + ...5167184768ea65d026adc531f237b9_icgraph.md5 | 1 + ...5167184768ea65d026adc531f237b9_icgraph.png | Bin 0 -> 6448 bytes ...9f268d3bee438e5176cc7f4cf59675_icgraph.map | 4 + ...9f268d3bee438e5176cc7f4cf59675_icgraph.md5 | 1 + ...9f268d3bee438e5176cc7f4cf59675_icgraph.png | Bin 0 -> 8545 bytes classjbus_1_1Listener-members.html | 130 ++ classjbus_1_1Listener.html | 218 +++ classjbus_1_1Listener.js | 7 + classjbus_1_1ThreadLocalEndpoint-members.html | 132 ++ classjbus_1_1ThreadLocalEndpoint.html | 377 +++++ classjbus_1_1ThreadLocalEndpoint.js | 9 + ...899b0293f9eb4b69763d8e1e21e58a9_cgraph.map | 5 + ...899b0293f9eb4b69763d8e1e21e58a9_cgraph.md5 | 1 + ...899b0293f9eb4b69763d8e1e21e58a9_cgraph.png | Bin 0 -> 12669 bytes classjbus_1_1net_1_1IPAddress-members.html | 129 ++ classjbus_1_1net_1_1IPAddress.html | 226 +++ classjbus_1_1net_1_1IPAddress.js | 6 + ...ccdd7a0630a183c16943a21b3c908c_icgraph.map | 3 + ...ccdd7a0630a183c16943a21b3c908c_icgraph.md5 | 1 + ...ccdd7a0630a183c16943a21b3c908c_icgraph.png | Bin 0 -> 6005 bytes classjbus_1_1net_1_1Socket-members.html | 146 ++ classjbus_1_1net_1_1Socket.html | 759 +++++++++ classjbus_1_1net_1_1Socket.js | 27 + ...6baaf24a436a72735d0561f907864eb_cgraph.map | 3 + ...6baaf24a436a72735d0561f907864eb_cgraph.md5 | 1 + ...6baaf24a436a72735d0561f907864eb_cgraph.png | Bin 0 -> 6122 bytes ...ntal_1_1bad__optional__access-members.html | 128 ++ ...experimental_1_1bad__optional__access.html | 154 ++ ..._1experimental_1_1bad__optional__access.js | 5 + ..._1_1bad__optional__access__coll__graph.map | 2 + ..._1_1bad__optional__access__coll__graph.md5 | 1 + ..._1_1bad__optional__access__coll__graph.png | Bin 0 -> 5885 bytes ...1bad__optional__access__inherit__graph.map | 2 + ...1bad__optional__access__inherit__graph.md5 | 1 + ...1bad__optional__access__inherit__graph.png | Bin 0 -> 5885 bytes ...d_1_1experimental_1_1optional-members.html | 151 ++ classstd_1_1experimental_1_1optional.html | 227 +++ classstd_1_1experimental_1_1optional.js | 28 + ...l_1_1optional_3_01T_01_6_01_4-members.html | 145 ++ ...erimental_1_1optional_3_01T_01_6_01_4.html | 188 +++ ...xperimental_1_1optional_3_01T_01_6_01_4.js | 22 + ...imental_1_1optional_3_01T_01_6_6_01_4.html | 127 ++ ...1experimental_1_1optional__coll__graph.map | 2 + ...1experimental_1_1optional__coll__graph.md5 | 1 + ...1experimental_1_1optional__coll__graph.png | Bin 0 -> 5906 bytes ...perimental_1_1optional__inherit__graph.map | 2 + ...perimental_1_1optional__inherit__graph.md5 | 1 + ...perimental_1_1optional__inherit__graph.png | Bin 0 -> 5906 bytes closed.png | Bin 0 -> 132 bytes dir_4525d057f72f34aebe3436e89afccf45.html | 134 ++ dir_4525d057f72f34aebe3436e89afccf45.js | 12 + dir_d44c64559bbebec7f509842c48db8b23.html | 128 ++ dir_d44c64559bbebec7f509842c48db8b23.js | 4 + doc.png | Bin 0 -> 746 bytes doxygen.css | 1475 +++++++++++++++++ doxygen.png | Bin 0 -> 3779 bytes dynsections.js | 97 ++ files.html | 131 ++ files.js | 4 + folderclosed.png | Bin 0 -> 616 bytes folderopen.png | Bin 0 -> 597 bytes functions.html | 286 ++++ functions_enum.html | 132 ++ functions_func.html | 279 ++++ functions_rela.html | 135 ++ globals.html | 132 ++ globals_defs.html | 132 ++ graph_legend.html | 145 ++ graph_legend.md5 | 1 + graph_legend.png | Bin 0 -> 25694 bytes hierarchy.html | 157 ++ hierarchy.js | 33 + index.html | 118 ++ inherit_graph_0.map | 3 + inherit_graph_0.md5 | 1 + inherit_graph_0.png | Bin 0 -> 1841 bytes inherit_graph_1.map | 3 + inherit_graph_1.md5 | 1 + inherit_graph_1.png | Bin 0 -> 1746 bytes inherit_graph_10.map | 3 + inherit_graph_10.md5 | 1 + inherit_graph_10.png | Bin 0 -> 3978 bytes inherit_graph_11.map | 3 + inherit_graph_11.md5 | 1 + inherit_graph_11.png | Bin 0 -> 4699 bytes inherit_graph_12.map | 3 + inherit_graph_12.md5 | 1 + inherit_graph_12.png | Bin 0 -> 7761 bytes inherit_graph_13.map | 3 + inherit_graph_13.md5 | 1 + inherit_graph_13.png | Bin 0 -> 6871 bytes inherit_graph_14.map | 3 + inherit_graph_14.md5 | 1 + inherit_graph_14.png | Bin 0 -> 4797 bytes inherit_graph_15.map | 3 + inherit_graph_15.md5 | 1 + inherit_graph_15.png | Bin 0 -> 2922 bytes inherit_graph_16.map | 3 + inherit_graph_16.md5 | 1 + inherit_graph_16.png | Bin 0 -> 3110 bytes inherit_graph_17.map | 4 + inherit_graph_17.md5 | 1 + inherit_graph_17.png | Bin 0 -> 11294 bytes inherit_graph_18.map | 3 + inherit_graph_18.md5 | 1 + inherit_graph_18.png | Bin 0 -> 3596 bytes inherit_graph_19.map | 3 + inherit_graph_19.md5 | 1 + inherit_graph_19.png | Bin 0 -> 3599 bytes inherit_graph_2.map | 3 + inherit_graph_2.md5 | 1 + inherit_graph_2.png | Bin 0 -> 2376 bytes inherit_graph_20.map | 3 + inherit_graph_20.md5 | 1 + inherit_graph_20.png | Bin 0 -> 3785 bytes inherit_graph_21.map | 3 + inherit_graph_21.md5 | 1 + inherit_graph_21.png | Bin 0 -> 3474 bytes inherit_graph_22.map | 3 + inherit_graph_22.md5 | 1 + inherit_graph_22.png | Bin 0 -> 3024 bytes inherit_graph_23.map | 3 + inherit_graph_23.md5 | 1 + inherit_graph_23.png | Bin 0 -> 4142 bytes inherit_graph_24.map | 3 + inherit_graph_24.md5 | 1 + inherit_graph_24.png | Bin 0 -> 4184 bytes inherit_graph_3.map | 3 + inherit_graph_3.md5 | 1 + inherit_graph_3.png | Bin 0 -> 2161 bytes inherit_graph_4.map | 3 + inherit_graph_4.md5 | 1 + inherit_graph_4.png | Bin 0 -> 2806 bytes inherit_graph_5.map | 3 + inherit_graph_5.md5 | 1 + inherit_graph_5.png | Bin 0 -> 5423 bytes inherit_graph_6.map | 3 + inherit_graph_6.md5 | 1 + inherit_graph_6.png | Bin 0 -> 4454 bytes inherit_graph_7.map | 3 + inherit_graph_7.md5 | 1 + inherit_graph_7.png | Bin 0 -> 4188 bytes inherit_graph_8.map | 3 + inherit_graph_8.md5 | 1 + inherit_graph_8.png | Bin 0 -> 4848 bytes inherit_graph_9.map | 3 + inherit_graph_9.md5 | 1 + inherit_graph_9.png | Bin 0 -> 2977 bytes inherits.html | 253 +++ jquery.js | 68 + md_DocMain.html | 119 ++ namespacejbus.html | 434 +++++ namespacejbus.js | 7 + namespacejbus_1_1net.html | 133 ++ namespacejbus_1_1net.js | 5 + namespacemembers.html | 207 +++ namespacemembers_enum.html | 135 ++ namespacemembers_eval.html | 165 ++ namespacemembers_func.html | 138 ++ namespacemembers_type.html | 156 ++ namespaces.html | 128 ++ namespaces.js | 4 + nav_f.png | Bin 0 -> 153 bytes nav_g.png | Bin 0 -> 95 bytes nav_h.png | Bin 0 -> 98 bytes navtree.css | 143 ++ navtree.js | 523 ++++++ navtreedata.js | 37 + navtreeindex0.js | 115 ++ open.png | Bin 0 -> 123 bytes optional_8hpp_source.html | 138 ++ pages.html | 122 ++ resize.js | 97 ++ search/all_0.html | 26 + search/all_0.js | 4 + search/all_1.html | 26 + search/all_1.js | 4 + search/all_10.html | 26 + search/all_10.js | 6 + search/all_11.html | 26 + search/all_11.js | 6 + search/all_2.html | 26 + search/all_2.js | 5 + search/all_3.html | 26 + search/all_3.js | 4 + search/all_4.html | 26 + search/all_4.js | 10 + search/all_5.html | 26 + search/all_5.js | 4 + search/all_6.html | 26 + search/all_6.js | 28 + search/all_7.html | 26 + search/all_7.js | 7 + search/all_8.html | 26 + search/all_8.js | 6 + search/all_9.html | 26 + search/all_9.js | 5 + search/all_a.html | 26 + search/all_a.js | 7 + search/all_b.html | 26 + search/all_b.js | 4 + search/all_c.html | 26 + search/all_c.js | 14 + search/all_d.html | 26 + search/all_d.js | 6 + search/all_e.html | 26 + search/all_e.js | 7 + search/all_f.html | 26 + search/all_f.js | 4 + search/classes_0.html | 26 + search/classes_0.js | 4 + search/classes_1.html | 26 + search/classes_1.js | 4 + search/classes_2.html | 26 + search/classes_2.js | 4 + search/classes_3.html | 26 + search/classes_3.js | 4 + search/classes_4.html | 26 + search/classes_4.js | 4 + search/classes_5.html | 26 + search/classes_5.js | 4 + search/classes_6.html | 26 + search/classes_6.js | 4 + search/classes_7.html | 26 + search/classes_7.js | 8 + search/classes_8.html | 26 + search/classes_8.js | 5 + search/classes_9.html | 26 + search/classes_9.js | 5 + search/close.png | Bin 0 -> 273 bytes search/defines_0.html | 26 + search/defines_0.js | 5 + search/enums_0.html | 26 + search/enums_0.js | 6 + search/enumvalues_0.html | 26 + search/enumvalues_0.js | 4 + search/enumvalues_1.html | 26 + search/enumvalues_1.js | 4 + search/enumvalues_2.html | 26 + search/enumvalues_2.js | 15 + search/enumvalues_3.html | 26 + search/enumvalues_3.js | 4 + search/files_0.html | 26 + search/files_0.js | 4 + search/files_1.html | 26 + search/files_1.js | 4 + search/files_2.html | 26 + search/files_2.js | 4 + search/files_3.html | 26 + search/files_3.js | 4 + search/files_4.html | 26 + search/files_4.js | 4 + search/functions_0.html | 26 + search/functions_0.js | 4 + search/functions_1.html | 26 + search/functions_1.js | 4 + search/functions_2.html | 26 + search/functions_2.js | 4 + search/functions_3.html | 26 + search/functions_3.js | 16 + search/functions_4.html | 26 + search/functions_4.js | 6 + search/functions_5.html | 26 + search/functions_5.js | 6 + search/functions_6.html | 26 + search/functions_6.js | 4 + search/functions_7.html | 26 + search/functions_7.js | 8 + search/functions_8.html | 26 + search/functions_8.js | 4 + search/functions_9.html | 26 + search/functions_9.js | 4 + search/functions_a.html | 26 + search/functions_a.js | 6 + search/mag_sel.png | Bin 0 -> 563 bytes search/namespaces_0.html | 26 + search/namespaces_0.js | 5 + search/nomatches.html | 12 + search/pages_0.html | 26 + search/pages_0.js | 4 + search/related_0.html | 26 + search/related_0.js | 4 + search/related_1.html | 26 + search/related_1.js | 4 + search/search.css | 271 +++ search/search.js | 791 +++++++++ search/search_l.png | Bin 0 -> 604 bytes search/search_m.png | Bin 0 -> 158 bytes search/search_r.png | Bin 0 -> 612 bytes search/searchdata.js | 42 + search/typedefs_0.html | 26 + search/typedefs_0.js | 4 + search/typedefs_1.html | 26 + search/typedefs_1.js | 7 + search/typedefs_2.html | 26 + search/typedefs_2.js | 7 + splitbar.png | Bin 0 -> 314 bytes ..._1_1constexpr__optional__base-members.html | 134 ++ ...rimental_1_1constexpr__optional__base.html | 158 ++ ...perimental_1_1constexpr__optional__base.js | 11 + ...1_1has__overloaded__addressof-members.html | 129 ++ ...etail___1_1has__overloaded__addressof.html | 149 ++ ...ctstd_1_1experimental_1_1in__place__t.html | 127 ++ ...xperimental_1_1is__assignable-members.html | 129 ++ ...std_1_1experimental_1_1is__assignable.html | 149 ++ ...is__nothrow__move__assignable-members.html | 127 ++ ...ntal_1_1is__nothrow__move__assignable.html | 145 ++ ...mental_1_1is__nothrow__move__assignable.js | 5 + ...1_1has__nothrow__move__assign-members.html | 127 ++ ...ignable_1_1has__nothrow__move__assign.html | 137 ++ ...__assign_3_01X_00_01true_01_4-members.html | 127 ++ ...ow__move__assign_3_01X_00_01true_01_4.html | 137 ++ ..._nothrow__move__constructible-members.html | 127 ++ ...l_1_1is__nothrow__move__constructible.html | 137 ++ ...1_1experimental_1_1nullopt__t-members.html | 127 ++ structstd_1_1experimental_1_1nullopt__t.html | 143 ++ structstd_1_1experimental_1_1nullopt__t.js | 5 + ...1_1experimental_1_1nullopt__t_1_1init.html | 127 ++ ...xperimental_1_1optional__base-members.html | 134 ++ ...std_1_1experimental_1_1optional__base.html | 158 ++ ...ctstd_1_1experimental_1_1optional__base.js | 11 + ...d_1_1experimental_1_1trivial__init__t.html | 127 ++ ...l_1_1optional_3_01T_01_4_01_4-members.html | 129 ++ ...erimental_1_1optional_3_01T_01_4_01_4.html | 147 ++ ...xperimental_1_1optional_3_01T_01_4_01_4.js | 6 + ...optional_3_01T_01_6_01_4_01_4-members.html | 129 ++ ...ntal_1_1optional_3_01T_01_6_01_4_01_4.html | 147 ++ ...mental_1_1optional_3_01T_01_6_01_4_01_4.js | 6 + sync_off.png | Bin 0 -> 853 bytes sync_on.png | Bin 0 -> 845 bytes tab_a.png | Bin 0 -> 142 bytes tab_b.png | Bin 0 -> 169 bytes tab_h.png | Bin 0 -> 177 bytes tab_s.png | Bin 0 -> 184 bytes tabs.css | 60 + ...ntal_1_1constexpr__storage__t-members.html | 131 ++ ...experimental_1_1constexpr__storage__t.html | 151 ++ ..._1experimental_1_1constexpr__storage__t.js | 8 + ...1_1experimental_1_1storage__t-members.html | 131 ++ unionstd_1_1experimental_1_1storage__t.html | 151 ++ unionstd_1_1experimental_1_1storage__t.js | 8 + 387 files changed, 19771 insertions(+) create mode 100644 Common_8hpp.html create mode 100644 Common_8hpp.js create mode 100644 Common_8hpp__dep__incl.map create mode 100644 Common_8hpp__dep__incl.md5 create mode 100644 Common_8hpp__dep__incl.png create mode 100644 Common_8hpp__incl.map create mode 100644 Common_8hpp__incl.md5 create mode 100644 Common_8hpp__incl.png create mode 100644 Common_8hpp_source.html create mode 100644 DocMain_8md.html create mode 100644 Endpoint_8hpp.html create mode 100644 Endpoint_8hpp__incl.map create mode 100644 Endpoint_8hpp__incl.md5 create mode 100644 Endpoint_8hpp__incl.png create mode 100644 Endpoint_8hpp_source.html create mode 100644 Listener_8hpp.html create mode 100644 Listener_8hpp__incl.map create mode 100644 Listener_8hpp__incl.md5 create mode 100644 Listener_8hpp__incl.png create mode 100644 Listener_8hpp_source.html create mode 100644 Socket_8hpp.html create mode 100644 Socket_8hpp.js create mode 100644 Socket_8hpp__dep__incl.map create mode 100644 Socket_8hpp__dep__incl.md5 create mode 100644 Socket_8hpp__dep__incl.png create mode 100644 Socket_8hpp__incl.map create mode 100644 Socket_8hpp__incl.md5 create mode 100644 Socket_8hpp__incl.png create mode 100644 Socket_8hpp_source.html create mode 100644 annotated.html create mode 100644 annotated_dup.js create mode 100644 arrowdown.png create mode 100644 arrowright.png create mode 100644 bc_s.png create mode 100644 bdwn.png create mode 100644 classes.html create mode 100644 classjbus_1_1Endpoint-members.html create mode 100644 classjbus_1_1Endpoint.html create mode 100644 classjbus_1_1Endpoint.js create mode 100644 classjbus_1_1Endpoint_a39ddcbf5ac7078d59a4d99d291e3f0fa_icgraph.map create mode 100644 classjbus_1_1Endpoint_a39ddcbf5ac7078d59a4d99d291e3f0fa_icgraph.md5 create mode 100644 classjbus_1_1Endpoint_a39ddcbf5ac7078d59a4d99d291e3f0fa_icgraph.png create mode 100644 classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_cgraph.map create mode 100644 classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_cgraph.md5 create mode 100644 classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_cgraph.png create mode 100644 classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_icgraph.map create mode 100644 classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_icgraph.md5 create mode 100644 classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_icgraph.png create mode 100644 classjbus_1_1Endpoint_ad39f268d3bee438e5176cc7f4cf59675_icgraph.map create mode 100644 classjbus_1_1Endpoint_ad39f268d3bee438e5176cc7f4cf59675_icgraph.md5 create mode 100644 classjbus_1_1Endpoint_ad39f268d3bee438e5176cc7f4cf59675_icgraph.png create mode 100644 classjbus_1_1Listener-members.html create mode 100644 classjbus_1_1Listener.html create mode 100644 classjbus_1_1Listener.js create mode 100644 classjbus_1_1ThreadLocalEndpoint-members.html create mode 100644 classjbus_1_1ThreadLocalEndpoint.html create mode 100644 classjbus_1_1ThreadLocalEndpoint.js create mode 100644 classjbus_1_1ThreadLocalEndpoint_a0899b0293f9eb4b69763d8e1e21e58a9_cgraph.map create mode 100644 classjbus_1_1ThreadLocalEndpoint_a0899b0293f9eb4b69763d8e1e21e58a9_cgraph.md5 create mode 100644 classjbus_1_1ThreadLocalEndpoint_a0899b0293f9eb4b69763d8e1e21e58a9_cgraph.png create mode 100644 classjbus_1_1net_1_1IPAddress-members.html create mode 100644 classjbus_1_1net_1_1IPAddress.html create mode 100644 classjbus_1_1net_1_1IPAddress.js create mode 100644 classjbus_1_1net_1_1IPAddress_a36ccdd7a0630a183c16943a21b3c908c_icgraph.map create mode 100644 classjbus_1_1net_1_1IPAddress_a36ccdd7a0630a183c16943a21b3c908c_icgraph.md5 create mode 100644 classjbus_1_1net_1_1IPAddress_a36ccdd7a0630a183c16943a21b3c908c_icgraph.png create mode 100644 classjbus_1_1net_1_1Socket-members.html create mode 100644 classjbus_1_1net_1_1Socket.html create mode 100644 classjbus_1_1net_1_1Socket.js create mode 100644 classjbus_1_1net_1_1Socket_aa6baaf24a436a72735d0561f907864eb_cgraph.map create mode 100644 classjbus_1_1net_1_1Socket_aa6baaf24a436a72735d0561f907864eb_cgraph.md5 create mode 100644 classjbus_1_1net_1_1Socket_aa6baaf24a436a72735d0561f907864eb_cgraph.png create mode 100644 classstd_1_1experimental_1_1bad__optional__access-members.html create mode 100644 classstd_1_1experimental_1_1bad__optional__access.html create mode 100644 classstd_1_1experimental_1_1bad__optional__access.js create mode 100644 classstd_1_1experimental_1_1bad__optional__access__coll__graph.map create mode 100644 classstd_1_1experimental_1_1bad__optional__access__coll__graph.md5 create mode 100644 classstd_1_1experimental_1_1bad__optional__access__coll__graph.png create mode 100644 classstd_1_1experimental_1_1bad__optional__access__inherit__graph.map create mode 100644 classstd_1_1experimental_1_1bad__optional__access__inherit__graph.md5 create mode 100644 classstd_1_1experimental_1_1bad__optional__access__inherit__graph.png create mode 100644 classstd_1_1experimental_1_1optional-members.html create mode 100644 classstd_1_1experimental_1_1optional.html create mode 100644 classstd_1_1experimental_1_1optional.js create mode 100644 classstd_1_1experimental_1_1optional_3_01T_01_6_01_4-members.html create mode 100644 classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html create mode 100644 classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.js create mode 100644 classstd_1_1experimental_1_1optional_3_01T_01_6_6_01_4.html create mode 100644 classstd_1_1experimental_1_1optional__coll__graph.map create mode 100644 classstd_1_1experimental_1_1optional__coll__graph.md5 create mode 100644 classstd_1_1experimental_1_1optional__coll__graph.png create mode 100644 classstd_1_1experimental_1_1optional__inherit__graph.map create mode 100644 classstd_1_1experimental_1_1optional__inherit__graph.md5 create mode 100644 classstd_1_1experimental_1_1optional__inherit__graph.png create mode 100644 closed.png create mode 100644 dir_4525d057f72f34aebe3436e89afccf45.html create mode 100644 dir_4525d057f72f34aebe3436e89afccf45.js create mode 100644 dir_d44c64559bbebec7f509842c48db8b23.html create mode 100644 dir_d44c64559bbebec7f509842c48db8b23.js create mode 100644 doc.png create mode 100644 doxygen.css create mode 100644 doxygen.png create mode 100644 dynsections.js create mode 100644 files.html create mode 100644 files.js create mode 100644 folderclosed.png create mode 100644 folderopen.png create mode 100644 functions.html create mode 100644 functions_enum.html create mode 100644 functions_func.html create mode 100644 functions_rela.html create mode 100644 globals.html create mode 100644 globals_defs.html create mode 100644 graph_legend.html create mode 100644 graph_legend.md5 create mode 100644 graph_legend.png create mode 100644 hierarchy.html create mode 100644 hierarchy.js create mode 100644 index.html create mode 100644 inherit_graph_0.map create mode 100644 inherit_graph_0.md5 create mode 100644 inherit_graph_0.png create mode 100644 inherit_graph_1.map create mode 100644 inherit_graph_1.md5 create mode 100644 inherit_graph_1.png create mode 100644 inherit_graph_10.map create mode 100644 inherit_graph_10.md5 create mode 100644 inherit_graph_10.png create mode 100644 inherit_graph_11.map create mode 100644 inherit_graph_11.md5 create mode 100644 inherit_graph_11.png create mode 100644 inherit_graph_12.map create mode 100644 inherit_graph_12.md5 create mode 100644 inherit_graph_12.png create mode 100644 inherit_graph_13.map create mode 100644 inherit_graph_13.md5 create mode 100644 inherit_graph_13.png create mode 100644 inherit_graph_14.map create mode 100644 inherit_graph_14.md5 create mode 100644 inherit_graph_14.png create mode 100644 inherit_graph_15.map create mode 100644 inherit_graph_15.md5 create mode 100644 inherit_graph_15.png create mode 100644 inherit_graph_16.map create mode 100644 inherit_graph_16.md5 create mode 100644 inherit_graph_16.png create mode 100644 inherit_graph_17.map create mode 100644 inherit_graph_17.md5 create mode 100644 inherit_graph_17.png create mode 100644 inherit_graph_18.map create mode 100644 inherit_graph_18.md5 create mode 100644 inherit_graph_18.png create mode 100644 inherit_graph_19.map create mode 100644 inherit_graph_19.md5 create mode 100644 inherit_graph_19.png create mode 100644 inherit_graph_2.map create mode 100644 inherit_graph_2.md5 create mode 100644 inherit_graph_2.png create mode 100644 inherit_graph_20.map create mode 100644 inherit_graph_20.md5 create mode 100644 inherit_graph_20.png create mode 100644 inherit_graph_21.map create mode 100644 inherit_graph_21.md5 create mode 100644 inherit_graph_21.png create mode 100644 inherit_graph_22.map create mode 100644 inherit_graph_22.md5 create mode 100644 inherit_graph_22.png create mode 100644 inherit_graph_23.map create mode 100644 inherit_graph_23.md5 create mode 100644 inherit_graph_23.png create mode 100644 inherit_graph_24.map create mode 100644 inherit_graph_24.md5 create mode 100644 inherit_graph_24.png create mode 100644 inherit_graph_3.map create mode 100644 inherit_graph_3.md5 create mode 100644 inherit_graph_3.png create mode 100644 inherit_graph_4.map create mode 100644 inherit_graph_4.md5 create mode 100644 inherit_graph_4.png create mode 100644 inherit_graph_5.map create mode 100644 inherit_graph_5.md5 create mode 100644 inherit_graph_5.png create mode 100644 inherit_graph_6.map create mode 100644 inherit_graph_6.md5 create mode 100644 inherit_graph_6.png create mode 100644 inherit_graph_7.map create mode 100644 inherit_graph_7.md5 create mode 100644 inherit_graph_7.png create mode 100644 inherit_graph_8.map create mode 100644 inherit_graph_8.md5 create mode 100644 inherit_graph_8.png create mode 100644 inherit_graph_9.map create mode 100644 inherit_graph_9.md5 create mode 100644 inherit_graph_9.png create mode 100644 inherits.html create mode 100644 jquery.js create mode 100644 md_DocMain.html create mode 100644 namespacejbus.html create mode 100644 namespacejbus.js create mode 100644 namespacejbus_1_1net.html create mode 100644 namespacejbus_1_1net.js create mode 100644 namespacemembers.html create mode 100644 namespacemembers_enum.html create mode 100644 namespacemembers_eval.html create mode 100644 namespacemembers_func.html create mode 100644 namespacemembers_type.html create mode 100644 namespaces.html create mode 100644 namespaces.js create mode 100644 nav_f.png create mode 100644 nav_g.png create mode 100644 nav_h.png create mode 100644 navtree.css create mode 100644 navtree.js create mode 100644 navtreedata.js create mode 100644 navtreeindex0.js create mode 100644 open.png create mode 100644 optional_8hpp_source.html create mode 100644 pages.html create mode 100644 resize.js create mode 100644 search/all_0.html create mode 100644 search/all_0.js create mode 100644 search/all_1.html create mode 100644 search/all_1.js create mode 100644 search/all_10.html create mode 100644 search/all_10.js create mode 100644 search/all_11.html create mode 100644 search/all_11.js create mode 100644 search/all_2.html create mode 100644 search/all_2.js create mode 100644 search/all_3.html create mode 100644 search/all_3.js create mode 100644 search/all_4.html create mode 100644 search/all_4.js create mode 100644 search/all_5.html create mode 100644 search/all_5.js create mode 100644 search/all_6.html create mode 100644 search/all_6.js create mode 100644 search/all_7.html create mode 100644 search/all_7.js create mode 100644 search/all_8.html create mode 100644 search/all_8.js create mode 100644 search/all_9.html create mode 100644 search/all_9.js create mode 100644 search/all_a.html create mode 100644 search/all_a.js create mode 100644 search/all_b.html create mode 100644 search/all_b.js create mode 100644 search/all_c.html create mode 100644 search/all_c.js create mode 100644 search/all_d.html create mode 100644 search/all_d.js create mode 100644 search/all_e.html create mode 100644 search/all_e.js create mode 100644 search/all_f.html create mode 100644 search/all_f.js create mode 100644 search/classes_0.html create mode 100644 search/classes_0.js create mode 100644 search/classes_1.html create mode 100644 search/classes_1.js create mode 100644 search/classes_2.html create mode 100644 search/classes_2.js create mode 100644 search/classes_3.html create mode 100644 search/classes_3.js create mode 100644 search/classes_4.html create mode 100644 search/classes_4.js create mode 100644 search/classes_5.html create mode 100644 search/classes_5.js create mode 100644 search/classes_6.html create mode 100644 search/classes_6.js create mode 100644 search/classes_7.html create mode 100644 search/classes_7.js create mode 100644 search/classes_8.html create mode 100644 search/classes_8.js create mode 100644 search/classes_9.html create mode 100644 search/classes_9.js create mode 100644 search/close.png create mode 100644 search/defines_0.html create mode 100644 search/defines_0.js create mode 100644 search/enums_0.html create mode 100644 search/enums_0.js create mode 100644 search/enumvalues_0.html create mode 100644 search/enumvalues_0.js create mode 100644 search/enumvalues_1.html create mode 100644 search/enumvalues_1.js create mode 100644 search/enumvalues_2.html create mode 100644 search/enumvalues_2.js create mode 100644 search/enumvalues_3.html create mode 100644 search/enumvalues_3.js create mode 100644 search/files_0.html create mode 100644 search/files_0.js create mode 100644 search/files_1.html create mode 100644 search/files_1.js create mode 100644 search/files_2.html create mode 100644 search/files_2.js create mode 100644 search/files_3.html create mode 100644 search/files_3.js create mode 100644 search/files_4.html create mode 100644 search/files_4.js create mode 100644 search/functions_0.html create mode 100644 search/functions_0.js create mode 100644 search/functions_1.html create mode 100644 search/functions_1.js create mode 100644 search/functions_2.html create mode 100644 search/functions_2.js create mode 100644 search/functions_3.html create mode 100644 search/functions_3.js create mode 100644 search/functions_4.html create mode 100644 search/functions_4.js create mode 100644 search/functions_5.html create mode 100644 search/functions_5.js create mode 100644 search/functions_6.html create mode 100644 search/functions_6.js create mode 100644 search/functions_7.html create mode 100644 search/functions_7.js create mode 100644 search/functions_8.html create mode 100644 search/functions_8.js create mode 100644 search/functions_9.html create mode 100644 search/functions_9.js create mode 100644 search/functions_a.html create mode 100644 search/functions_a.js create mode 100644 search/mag_sel.png create mode 100644 search/namespaces_0.html create mode 100644 search/namespaces_0.js create mode 100644 search/nomatches.html create mode 100644 search/pages_0.html create mode 100644 search/pages_0.js create mode 100644 search/related_0.html create mode 100644 search/related_0.js create mode 100644 search/related_1.html create mode 100644 search/related_1.js create mode 100644 search/search.css create mode 100644 search/search.js create mode 100644 search/search_l.png create mode 100644 search/search_m.png create mode 100644 search/search_r.png create mode 100644 search/searchdata.js create mode 100644 search/typedefs_0.html create mode 100644 search/typedefs_0.js create mode 100644 search/typedefs_1.html create mode 100644 search/typedefs_1.js create mode 100644 search/typedefs_2.html create mode 100644 search/typedefs_2.js create mode 100644 splitbar.png create mode 100644 structstd_1_1experimental_1_1constexpr__optional__base-members.html create mode 100644 structstd_1_1experimental_1_1constexpr__optional__base.html create mode 100644 structstd_1_1experimental_1_1constexpr__optional__base.js create mode 100644 structstd_1_1experimental_1_1detail___1_1has__overloaded__addressof-members.html create mode 100644 structstd_1_1experimental_1_1detail___1_1has__overloaded__addressof.html create mode 100644 structstd_1_1experimental_1_1in__place__t.html create mode 100644 structstd_1_1experimental_1_1is__assignable-members.html create mode 100644 structstd_1_1experimental_1_1is__assignable.html create mode 100644 structstd_1_1experimental_1_1is__nothrow__move__assignable-members.html create mode 100644 structstd_1_1experimental_1_1is__nothrow__move__assignable.html create mode 100644 structstd_1_1experimental_1_1is__nothrow__move__assignable.js create mode 100644 structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign-members.html create mode 100644 structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign.html create mode 100644 structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign_3_01X_00_01true_01_4-members.html create mode 100644 structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign_3_01X_00_01true_01_4.html create mode 100644 structstd_1_1experimental_1_1is__nothrow__move__constructible-members.html create mode 100644 structstd_1_1experimental_1_1is__nothrow__move__constructible.html create mode 100644 structstd_1_1experimental_1_1nullopt__t-members.html create mode 100644 structstd_1_1experimental_1_1nullopt__t.html create mode 100644 structstd_1_1experimental_1_1nullopt__t.js create mode 100644 structstd_1_1experimental_1_1nullopt__t_1_1init.html create mode 100644 structstd_1_1experimental_1_1optional__base-members.html create mode 100644 structstd_1_1experimental_1_1optional__base.html create mode 100644 structstd_1_1experimental_1_1optional__base.js create mode 100644 structstd_1_1experimental_1_1trivial__init__t.html create mode 100644 structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_4_01_4-members.html create mode 100644 structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_4_01_4.html create mode 100644 structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_4_01_4.js create mode 100644 structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_6_01_4_01_4-members.html create mode 100644 structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_6_01_4_01_4.html create mode 100644 structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_6_01_4_01_4.js create mode 100644 sync_off.png create mode 100644 sync_on.png create mode 100644 tab_a.png create mode 100644 tab_b.png create mode 100644 tab_h.png create mode 100644 tab_s.png create mode 100644 tabs.css create mode 100644 unionstd_1_1experimental_1_1constexpr__storage__t-members.html create mode 100644 unionstd_1_1experimental_1_1constexpr__storage__t.html create mode 100644 unionstd_1_1experimental_1_1constexpr__storage__t.js create mode 100644 unionstd_1_1experimental_1_1storage__t-members.html create mode 100644 unionstd_1_1experimental_1_1storage__t.html create mode 100644 unionstd_1_1experimental_1_1storage__t.js diff --git a/Common_8hpp.html b/Common_8hpp.html new file mode 100644 index 0000000..be5c251 --- /dev/null +++ b/Common_8hpp.html @@ -0,0 +1,212 @@ + + + + + + +JBus: include/jbus/Common.hpp File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Common.hpp File Reference
+
+
+
#include <functional>
+#include <stdint.h>
+#include <stdlib.h>
+
+Include dependency graph for Common.hpp:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Namespaces

 jbus
 
+ + + + + + + + + + + + + + + + + + + + +

+Typedefs

using jbus::s8 = int8_t
 
using jbus::u8 = uint8_t
 
using jbus::s16 = int16_t
 
using jbus::u16 = uint16_t
 
using jbus::s32 = int32_t
 
using jbus::u32 = uint32_t
 
using jbus::s64 = int64_t
 
using jbus::u64 = uint64_t
 
using jbus::FGBACallback = std::function< void(ThreadLocalEndpoint &endpoint, EJoyReturn status)>
 Standard callback for asynchronous jbus::Endpoint APIs. More...
 
+ + + + + +

+Enumerations

enum  jbus::EJStatFlags {
+  jbus::GBA_JSTAT_MASK = 0x3a, +jbus::GBA_JSTAT_FLAGS_SHIFT = 4, +jbus::GBA_JSTAT_FLAGS_MASK = 0x30, +jbus::GBA_JSTAT_PSF1 = 0x20, +
+  jbus::GBA_JSTAT_PSF0 = 0x10, +jbus::GBA_JSTAT_SEND = 0x08, +jbus::GBA_JSTAT_RECV = 0x02 +
+ }
 
enum  jbus::EJoyReturn {
+  jbus::GBA_READY = 0, +jbus::GBA_NOT_READY = 1, +jbus::GBA_BUSY = 2, +jbus::GBA_JOYBOOT_UNKNOWN_STATE = 3, +
+  jbus::GBA_JOYBOOT_ERR_INVALID = 4 +
+ }
 
+ + + + + + + + + + +

+Functions

u64 jbus::GetGCTicks ()
 Get host system's timebase scaled into Dolphin ticks. More...
 
void jbus::WaitGCTicks (u64 ticks)
 Wait an approximate Dolphin tick duration (avoid using, it's rather inaccurate). More...
 
void jbus::Initialize ()
 Initialize platform specifics of JBus library. More...
 
+
+
+ + + + diff --git a/Common_8hpp.js b/Common_8hpp.js new file mode 100644 index 0000000..9e4e7bc --- /dev/null +++ b/Common_8hpp.js @@ -0,0 +1,31 @@ +var Common_8hpp = +[ + [ "FGBACallback", "Common_8hpp.html#ae1577e03ea8c6e27361cb389c992280d", null ], + [ "s16", "Common_8hpp.html#aa767fe4f71e145e2c0b12eccbeb83071", null ], + [ "s32", "Common_8hpp.html#a33e5022738a0799c066372ce74d04c37", null ], + [ "s64", "Common_8hpp.html#a69133321c9f11f1fa0e49c072244d377", null ], + [ "s8", "Common_8hpp.html#a416b65eae1b2ff9ab63c4c71ff857ea4", null ], + [ "u16", "Common_8hpp.html#aff2760609de15f92daafbdff7be79b33", null ], + [ "u32", "Common_8hpp.html#ae4a7d015f3b8913ec0b563caa0a53221", null ], + [ "u64", "Common_8hpp.html#a36fb1f7488218c972a50b1f9dd547b81", null ], + [ "u8", "Common_8hpp.html#a19d112b8b9f912fca094b41ce26c4fef", null ], + [ "EJoyReturn", "Common_8hpp.html#a7118bfa3cb9d51e588418220bca20117", [ + [ "GBA_READY", "Common_8hpp.html#a7118bfa3cb9d51e588418220bca20117a1e5f181b31229228f6741a4e3106c3fd", null ], + [ "GBA_NOT_READY", "Common_8hpp.html#a7118bfa3cb9d51e588418220bca20117aac3cd7dd0e4cb525e5045cb9e9c1f09a", null ], + [ "GBA_BUSY", "Common_8hpp.html#a7118bfa3cb9d51e588418220bca20117a97f6047ad685bdd832831954ab4454a0", null ], + [ "GBA_JOYBOOT_UNKNOWN_STATE", "Common_8hpp.html#a7118bfa3cb9d51e588418220bca20117a5f890238a7828bd688477a32fdef34db", null ], + [ "GBA_JOYBOOT_ERR_INVALID", "Common_8hpp.html#a7118bfa3cb9d51e588418220bca20117abdeee79304d78d822a4b5f5b71f5ddad", null ] + ] ], + [ "EJStatFlags", "Common_8hpp.html#a6a14af068c46e5eaac52e4c6ae081ab9", [ + [ "GBA_JSTAT_MASK", "Common_8hpp.html#a6a14af068c46e5eaac52e4c6ae081ab9a073fa6fd8ff5ae41567160cf897db7c1", null ], + [ "GBA_JSTAT_FLAGS_SHIFT", "Common_8hpp.html#a6a14af068c46e5eaac52e4c6ae081ab9a92d3659e0d24e5242af71dbfa1a25b20", null ], + [ "GBA_JSTAT_FLAGS_MASK", "Common_8hpp.html#a6a14af068c46e5eaac52e4c6ae081ab9a78506d78e40b43d15ff101f4efa00269", null ], + [ "GBA_JSTAT_PSF1", "Common_8hpp.html#a6a14af068c46e5eaac52e4c6ae081ab9a93e801d066708e0c98eec71c42803f94", null ], + [ "GBA_JSTAT_PSF0", "Common_8hpp.html#a6a14af068c46e5eaac52e4c6ae081ab9a9d1af0345a227524011d9845c0c3c4f8", null ], + [ "GBA_JSTAT_SEND", "Common_8hpp.html#a6a14af068c46e5eaac52e4c6ae081ab9afe5cad6728edc3ab4aab7b0a9375350c", null ], + [ "GBA_JSTAT_RECV", "Common_8hpp.html#a6a14af068c46e5eaac52e4c6ae081ab9a814553611e2f05ce7daede703c9b0a20", null ] + ] ], + [ "GetGCTicks", "Common_8hpp.html#a5944719111a14f5920ec765e5dcf71db", null ], + [ "Initialize", "Common_8hpp.html#ae0b3017c3755ceb8c9dd580965b8bc04", null ], + [ "WaitGCTicks", "Common_8hpp.html#a918fbee6d761952c56c4914c900c2876", null ] +]; \ No newline at end of file diff --git a/Common_8hpp__dep__incl.map b/Common_8hpp__dep__incl.map new file mode 100644 index 0000000..ae7f640 --- /dev/null +++ b/Common_8hpp__dep__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/Common_8hpp__dep__incl.md5 b/Common_8hpp__dep__incl.md5 new file mode 100644 index 0000000..88c0722 --- /dev/null +++ b/Common_8hpp__dep__incl.md5 @@ -0,0 +1 @@ +0343019ac32ec09009aa117f2b9b0171 \ No newline at end of file diff --git a/Common_8hpp__dep__incl.png b/Common_8hpp__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..175a96aea8b367ef7f7ad80a6d0401f82ad1d8d8 GIT binary patch literal 18111 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 Q6KNPcUHx3vIVCg!09hBs*Z=?k literal 0 HcmV?d00001 diff --git a/Common_8hpp__incl.map b/Common_8hpp__incl.map new file mode 100644 index 0000000..2b114f5 --- /dev/null +++ b/Common_8hpp__incl.map @@ -0,0 +1,2 @@ + + diff --git a/Common_8hpp__incl.md5 b/Common_8hpp__incl.md5 new file mode 100644 index 0000000..2f0ed04 --- /dev/null +++ b/Common_8hpp__incl.md5 @@ -0,0 +1 @@ +d4502d6f2dfbc57ec5a7369036857844 \ No newline at end of file diff --git a/Common_8hpp__incl.png b/Common_8hpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..20cbca800d5a2e6adc7c15933d8d483c60b2c6a7 GIT binary patch literal 8375 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 I+AQS%03Xe3egFUf literal 0 HcmV?d00001 diff --git a/Common_8hpp_source.html b/Common_8hpp_source.html new file mode 100644 index 0000000..f2a002f --- /dev/null +++ b/Common_8hpp_source.html @@ -0,0 +1,151 @@ + + + + + + +JBus: include/jbus/Common.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Common.hpp
+
+
+Go to the documentation of this file.
1 #ifndef JBUS_COMMON_HPP
2 #define JBUS_COMMON_HPP
3 
4 #include <functional>
5 #include <stdint.h>
6 #include <stdlib.h>
7 
8 namespace jbus
9 {
10 
11 using s8 = int8_t;
12 using u8 = uint8_t;
13 using s16 = int16_t;
14 using u16 = uint16_t;
15 using s32 = int32_t;
16 using u32 = uint32_t;
17 using s64 = int64_t;
18 using u64 = uint64_t;
19 
20 #ifndef DOXYGEN_SHOULD_SKIP_THIS
21 
22 #undef bswap16
23 #undef bswap32
24 #undef bswap64
25 
26 /* Type-sensitive byte swappers */
27 template <typename T>
28 static inline T bswap16(T val)
29 {
30 #if __GNUC__
31  return __builtin_bswap16(val);
32 #elif _WIN32
33  return _byteswap_ushort(val);
34 #else
35  return (val = (val << 8) | ((val >> 8) & 0xFF));
36 #endif
37 }
38 
39 template <typename T>
40 static inline T bswap32(T val)
41 {
42 #if __GNUC__
43  return __builtin_bswap32(val);
44 #elif _WIN32
45  return _byteswap_ulong(val);
46 #else
47  val = (val & 0x0000FFFF) << 16 | (val & 0xFFFF0000) >> 16;
48  val = (val & 0x00FF00FF) << 8 | (val & 0xFF00FF00) >> 8;
49  return val;
50 #endif
51 }
52 
53 template <typename T>
54 static inline T bswap64(T val)
55 {
56 #if __GNUC__
57  return __builtin_bswap64(val);
58 #elif _WIN32
59  return _byteswap_uint64(val);
60 #else
61  return ((val & 0xFF00000000000000ULL) >> 56) |
62  ((val & 0x00FF000000000000ULL) >> 40) |
63  ((val & 0x0000FF0000000000ULL) >> 24) |
64  ((val & 0x000000FF00000000ULL) >> 8) |
65  ((val & 0x00000000FF000000ULL) << 8) |
66  ((val & 0x0000000000FF0000ULL) << 24) |
67  ((val & 0x000000000000FF00ULL) << 40) |
68  ((val & 0x00000000000000FFULL) << 56);
69 #endif
70 }
71 
72 
73 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
74 static inline int16_t SBig(int16_t val) {return bswap16(val);}
75 static inline uint16_t SBig(uint16_t val) {return bswap16(val);}
76 static inline int32_t SBig(int32_t val) {return bswap32(val);}
77 static inline uint32_t SBig(uint32_t val) {return bswap32(val);}
78 static inline int64_t SBig(int64_t val) {return bswap64(val);}
79 static inline uint64_t SBig(uint64_t val) {return bswap64(val);}
80 static inline float SBig(float val)
81 {
82  int32_t ival = bswap32(*((int32_t*)(&val)));
83  return *((float*)(&ival));
84 }
85 static inline double SBig(double val)
86 {
87  int64_t ival = bswap64(*((int64_t*)(&val)));
88  return *((double*)(&ival));
89 }
90 #ifndef SBIG
91 #define SBIG(q) ( ( (q) & 0x000000FF ) << 24 | ( (q) & 0x0000FF00 ) << 8 \
92  | ( (q) & 0x00FF0000 ) >> 8 | ( (q) & 0xFF000000 ) >> 24 )
93 #endif
94 
95 static inline int16_t SLittle(int16_t val) {return val;}
96 static inline uint16_t SLittle(uint16_t val) {return val;}
97 static inline int32_t SLittle(int32_t val) {return val;}
98 static inline uint32_t SLittle(uint32_t val) {return val;}
99 static inline int64_t SLittle(int64_t val) {return val;}
100 static inline uint64_t SLittle(uint64_t val) {return val;}
101 static inline float SLittle(float val) {return val;}
102 static inline double SLittle(double val) {return val;}
103 #ifndef SLITTLE
104 #define SLITTLE(q) (q)
105 #endif
106 #else
107 static inline int16_t SLittle(int16_t val) {return bswap16(val);}
108 static inline uint16_t SLittle(uint16_t val) {return bswap16(val);}
109 static inline int32_t SLittle(int32_t val) {return bswap32(val);}
110 static inline uint32_t SLittle(uint32_t val) {return bswap32(val);}
111 static inline int64_t SLittle(int64_t val) {return bswap64(val);}
112 static inline uint64_t SLittle(uint64_t val) {return bswap64(val);}
113 static inline float SLittle(float val)
114 {
115  int32_t ival = bswap32(*((int32_t*)(&val)));
116  return *((float*)(&ival));
117 }
118 static inline double SLittle(double val)
119 {
120  int64_t ival = bswap64(*((int64_t*)(&val)));
121  return *((double*)(&ival));
122 }
123 #ifndef SLITTLE
124 #define SLITTLE(q) ( ( (q) & 0x000000FF ) << 24 | ( (q) & 0x0000FF00 ) << 8 \
125  | ( (q) & 0x00FF0000 ) >> 8 | ( (q) & 0xFF000000 ) >> 24 )
126 #endif
127 
128 static inline int16_t SBig(int16_t val) {return val;}
129 static inline uint16_t SBig(uint16_t val) {return val;}
130 static inline int32_t SBig(int32_t val) {return val;}
131 static inline uint32_t SBig(uint32_t val) {return val;}
132 static inline int64_t SBig(int64_t val) {return val;}
133 static inline uint64_t SBig(uint64_t val) {return val;}
134 static inline float SBig(float val) {return val;}
135 static inline double SBig(double val) {return val;}
136 #ifndef SBIG
137 #define SBIG(q) (q)
138 #endif
139 #endif
140 
141 class Endpoint;
142 class ThreadLocalEndpoint;
143 
144 #endif
145 
147 {
155 };
156 
158 {
161  GBA_BUSY = 2,
164 };
165 
169 using FGBACallback = std::function<void(ThreadLocalEndpoint& endpoint, EJoyReturn status)>;
170 
173 u64 GetGCTicks();
174 
177 void WaitGCTicks(u64 ticks);
178 
181 static constexpr u64 GetGCTicksPerSec() { return 486000000ull; }
182 
184 void Initialize();
185 
186 }
187 
188 #endif // JBUS_COMMON_HPP
uint16_t u16
Definition: Common.hpp:14
+
int8_t s8
Definition: Common.hpp:11
+
Definition: Common.hpp:149
+
int64_t s64
Definition: Common.hpp:17
+
std::function< void(ThreadLocalEndpoint &endpoint, EJoyReturn status)> FGBACallback
Standard callback for asynchronous jbus::Endpoint APIs.
Definition: Common.hpp:169
+
Definition: Common.hpp:148
+
Definition: Common.hpp:160
+
void WaitGCTicks(u64 ticks)
Wait an approximate Dolphin tick duration (avoid using, it&#39;s rather inaccurate).
+
Definition: Common.hpp:154
+
Definition: Common.hpp:159
+
Definition: Common.hpp:153
+
uint8_t u8
Definition: Common.hpp:12
+
Definition: Common.hpp:8
+
Definition: Common.hpp:152
+
EJStatFlags
Definition: Common.hpp:146
+
uint64_t u64
Definition: Common.hpp:18
+
int16_t s16
Definition: Common.hpp:13
+
int32_t s32
Definition: Common.hpp:15
+
u64 GetGCTicks()
Get host system&#39;s timebase scaled into Dolphin ticks.
+
EJoyReturn
Definition: Common.hpp:157
+
Definition: Common.hpp:163
+
Definition: Endpoint.hpp:15
+
uint32_t u32
Definition: Common.hpp:16
+
Definition: Common.hpp:161
+
void Initialize()
Initialize platform specifics of JBus library.
+
Definition: Common.hpp:151
+
Definition: Common.hpp:162
+
Definition: Common.hpp:150
+
Definition: Endpoint.hpp:258
+
+
+ + + + diff --git a/DocMain_8md.html b/DocMain_8md.html new file mode 100644 index 0000000..45c4fe0 --- /dev/null +++ b/DocMain_8md.html @@ -0,0 +1,122 @@ + + + + + + +JBus: DocMain.md File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
DocMain.md File Reference
+
+
+
+
+ + + + diff --git a/Endpoint_8hpp.html b/Endpoint_8hpp.html new file mode 100644 index 0000000..690e68e --- /dev/null +++ b/Endpoint_8hpp.html @@ -0,0 +1,154 @@ + + + + + + +JBus: include/jbus/Endpoint.hpp File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Endpoint.hpp File Reference
+
+
+
#include "Common.hpp"
+#include "Socket.hpp"
+#include "optional.hpp"
+#include <thread>
+#include <mutex>
+
+Include dependency graph for Endpoint.hpp:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + + +

+Classes

class  jbus::Endpoint
 
class  jbus::ThreadLocalEndpoint
 
+ + + +

+Namespaces

 jbus
 
+
+
+ + + + diff --git a/Endpoint_8hpp__incl.map b/Endpoint_8hpp__incl.map new file mode 100644 index 0000000..102d30e --- /dev/null +++ b/Endpoint_8hpp__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/Endpoint_8hpp__incl.md5 b/Endpoint_8hpp__incl.md5 new file mode 100644 index 0000000..b745cd0 --- /dev/null +++ b/Endpoint_8hpp__incl.md5 @@ -0,0 +1 @@ +3fc33a9d89d29732729f1dbad9074a96 \ No newline at end of file diff --git a/Endpoint_8hpp__incl.png b/Endpoint_8hpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..5b25e298f886ca6006c8ab533aee2da31a0a11d6 GIT binary patch literal 75855 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%0A*+p-Mg{CUd!&!yG@uiDTX7Uw?XIEs8t0Km< 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 Lf5`N)F`51!hs(gk literal 0 HcmV?d00001 diff --git a/Endpoint_8hpp_source.html b/Endpoint_8hpp_source.html new file mode 100644 index 0000000..0f9f81c --- /dev/null +++ b/Endpoint_8hpp_source.html @@ -0,0 +1,153 @@ + + + + + + +JBus: include/jbus/Endpoint.hpp Source File + + + + + + + + + + + + + + + +

+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Endpoint.hpp
+
+
+Go to the documentation of this file.
1 #ifndef JBUS_ENDPOINT_HPP
2 #define JBUS_ENDPOINT_HPP
3 
4 #include "Common.hpp"
5 #include "Socket.hpp"
6 #include "optional.hpp"
7 #include <thread>
8 #include <mutex>
9 
10 namespace jbus
11 {
12 
15 class Endpoint
16 {
23  class KawasedoChallenge
24  {
27  struct DSPSecParms
28  {
29  /* Nonce challenge (first read from GBA, hence already little-endian) */
30  u32 x0_gbaChallenge;
31 
32  /* Palette of pulsing logo on GBA during transmission [0,6] */
33  u32 x4_logoPalette;
34 
35  /* Speed and direction of palette interpolation [-4,4] */
36  u32 x8_logoSpeed;
37 
38  /* Length of JoyBoot program to upload */
39  u32 xc_progLength;
40 
41  /* Unwrapped public key */
42  u32 x20_publicKey;
43 
44  /* Message authentication code */
45  u32 x24_authInitCode;
46 
47  void ProcessGBACrypto()
48  {
49  /* Unwrap key from challenge using 'sedo' magic number (to encrypt JoyBoot program) */
50  x20_publicKey = x0_gbaChallenge ^ 0x6f646573;
51 
52  /* Pack palette parameters */
53  u16 paletteSpeedCoded;
54  s16 logoSpeed = static_cast<s8>(x8_logoSpeed);
55  if (logoSpeed < 0)
56  paletteSpeedCoded = ((-logoSpeed + 2) * 2) | (x4_logoPalette << 4);
57  else if (logoSpeed == 0)
58  paletteSpeedCoded = (x4_logoPalette * 2) | 0x70;
59  else /* logo_speed > 0 */
60  paletteSpeedCoded = ((logoSpeed - 1) * 2) | (x4_logoPalette << 4);
61 
62  /* JoyBoot ROMs start with a padded header; this is the length beyond that header */
63  s32 lengthNoHeader = ROUND_UP_8(xc_progLength) - 0x200;
64 
65  /* The JoyBus protocol transmits in 4-byte packets while flipping a state flag;
66  * so the GBA BIOS counts the program length in 8-byte packet-pairs */
67  u16 packetPairCount = (lengthNoHeader < 0) ? 0 : lengthNoHeader / 8;
68  paletteSpeedCoded |= (packetPairCount & 0x4000) >> 14;
69 
70  /* Pack together encoded transmission parameters */
71  u32 t1 = (((packetPairCount << 16) | 0x3f80) & 0x3f80ffff) * 2;
72  t1 += (static_cast<s16>(static_cast<s8>(t1 >> 8)) & packetPairCount) << 16;
73  u32 t2 = ((paletteSpeedCoded & 0xff) << 16) + (t1 & 0xff0000) + ((t1 >> 8) & 0xffff00);
74  u32 t3 = paletteSpeedCoded << 16 | ((t2 << 8) & 0xff000000) | (t1 >> 16) | 0x80808080;
75 
76  /* Wrap with 'Kawa' or 'sedo' (Kawasedo is the author of the BIOS cipher) */
77  x24_authInitCode = t3 ^ ((t3 & 0x200) != 0 ? 0x6f646573 : 0x6177614b);
78  }
79  } xf8_dspHmac;
80 
81  s32 x0_pColor;
82  s32 x4_pSpeed;
83  const u8* x8_progPtr;
84  u32 xc_progLen;
85  u8* x10_statusPtr;
86  FGBACallback x14_callback;
87  u8 x18_readBuf[4];
88  u8 x1c_writeBuf[4];
89  s32 x20_byteInWindow;
90  u64 x28_ticksAfterXf;
91  u32 x30_justStarted;
92  u32 x34_bytesSent;
93  u32 x38_crc;
94  u32 x3c_checkStore[7];
95  s32 x58_currentKey;
96  s32 x5c_initMessage;
97  s32 x60_gameId;
98  u32 x64_totalBytes;
99  bool m_started = true;
100 
101  void _0Reset(ThreadLocalEndpoint& endpoint, EJoyReturn status);
102  void _1GetStatus(ThreadLocalEndpoint& endpoint, EJoyReturn status);
103  void _2ReadChallenge(ThreadLocalEndpoint& endpoint, EJoyReturn status);
104  void _3DSPCrypto(ThreadLocalEndpoint& endpoint, EJoyReturn status);
105  void _DSPCryptoInit();
106  void _DSPCryptoDone(ThreadLocalEndpoint& endpoint);
107  void _4TransmitProgram(ThreadLocalEndpoint& endpoint, EJoyReturn status);
108  void _5StartBootPoll(ThreadLocalEndpoint& endpoint, EJoyReturn status);
109  void _6BootPoll(ThreadLocalEndpoint& endpoint, EJoyReturn status);
110  void _7BootAcknowledge(ThreadLocalEndpoint& endpoint, EJoyReturn status);
111  void _8BootDone(ThreadLocalEndpoint& endpoint, EJoyReturn status);
112 
113  auto bindThis(void(KawasedoChallenge::*ptmf)(ThreadLocalEndpoint&, EJoyReturn))
114  {
115  return std::bind(ptmf, this, std::placeholders::_1, std::placeholders::_2);
116  }
117 
118  public:
119  KawasedoChallenge(Endpoint& endpoint, s32 paletteColor, s32 paletteSpeed,
120  const u8* programp, s32 length, u8* status, FGBACallback&& callback);
121  bool started() const { return m_started; }
122  u8 percentComplete() const
123  {
124  if (!x64_totalBytes)
125  return 0;
126  return x34_bytesSent * 100 / x64_totalBytes;
127  }
128  bool isDone() const { return !x14_callback; }
129  };
130 
131  friend class ThreadLocalEndpoint;
132 
133  enum EJoybusCmds
134  {
135  CMD_RESET = 0xff,
136  CMD_STATUS = 0x00,
137  CMD_READ = 0x14,
138  CMD_WRITE = 0x15
139  };
140 
141  static const u64 BITS_PER_SECOND = 115200;
142  static const u64 BYTES_PER_SECOND = BITS_PER_SECOND / 8;
143 
144  net::Socket m_dataSocket;
145  net::Socket m_clockSocket;
146  std::thread m_transferThread;
147  std::mutex m_syncLock;
148  std::condition_variable m_syncCv;
149  std::condition_variable m_issueCv;
150  std::experimental::optional<KawasedoChallenge> m_joyBoot;
151  FGBACallback m_callback;
152  u8 m_buffer[5];
153  u8* m_readDstPtr = nullptr;
154  u8* m_statusPtr = nullptr;
155  u64 m_lastGCTick = 0;
156  u8 m_lastCmd = 0;
157  u8 m_chan;
158  bool m_booted = false;
159  bool m_cmdIssued = false;
160  bool m_running = true;
161 
162  void clockSync();
163  void send(const u8* buffer);
164  size_t receive(u8* buffer);
165  size_t runBuffer(u8* buffer, std::unique_lock<std::mutex>& lk);
166  bool idleGetStatus(std::unique_lock<std::mutex>& lk);
167  void transferProc();
168  void transferWakeup(ThreadLocalEndpoint& endpoint, u8 status);
169 
170  auto bindSync()
171  {
172  return std::bind(&Endpoint::transferWakeup, this,
173  std::placeholders::_1, std::placeholders::_2);
174  }
175 
176 public:
180  void stop();
181 
185  EJoyReturn GBAGetProcessStatus(u8& percentOut);
186 
191  EJoyReturn GBAGetStatusAsync(u8* status, FGBACallback&& callback);
192 
196  EJoyReturn GBAGetStatus(u8* status);
197 
202  EJoyReturn GBAResetAsync(u8* status, FGBACallback&& callback);
203 
207  EJoyReturn GBAReset(u8* status);
208 
214  EJoyReturn GBAReadAsync(u8* dst, u8* status, FGBACallback&& callback);
215 
220  EJoyReturn GBARead(u8* dst, u8* status);
221 
227  EJoyReturn GBAWriteAsync(const u8* src, u8* status, FGBACallback&& callback);
228 
233  EJoyReturn GBAWrite(const u8* src, u8* status);
234 
243  EJoyReturn GBAJoyBootAsync(s32 paletteColor, s32 paletteSpeed,
244  const u8* programp, s32 length, u8* status,
245  FGBACallback&& callback);
246 
249  int GetChan() const { return m_chan; }
250 
251  Endpoint(u8 chan, net::Socket&& data, net::Socket&& clock);
252  ~Endpoint();
253 };
254 
259 {
260  friend class Endpoint;
261  Endpoint& m_ep;
262  ThreadLocalEndpoint(Endpoint& ep) : m_ep(ep) {}
263 
264 public:
269  EJoyReturn GBAGetStatusAsync(u8* status, FGBACallback&& callback);
270 
275  EJoyReturn GBAResetAsync(u8* status, FGBACallback&& callback);
276 
282  EJoyReturn GBAReadAsync(u8* dst, u8* status, FGBACallback&& callback);
283 
289  EJoyReturn GBAWriteAsync(const u8* src, u8* status, FGBACallback&& callback);
290 
293  int GetChan() const { return m_ep.GetChan(); }
294 };
295 
296 }
297 
298 #endif // JBUS_ENDPOINT_HPP
EJoyReturn GBARead(u8 *dst, u8 *status)
Send READ command to GBA synchronously.
+
uint16_t u16
Definition: Common.hpp:14
+
EJoyReturn GBAGetStatus(u8 *status)
Get JOYSTAT register from GBA synchronously.
+
int GetChan() const
Get virtual SI channel assigned to this endpoint.
Definition: Endpoint.hpp:293
+
int8_t s8
Definition: Common.hpp:11
+
std::function< void(ThreadLocalEndpoint &endpoint, EJoyReturn status)> FGBACallback
Standard callback for asynchronous jbus::Endpoint APIs.
Definition: Common.hpp:169
+
uint8_t u8
Definition: Common.hpp:12
+
friend class ThreadLocalEndpoint
Definition: Endpoint.hpp:131
+
Definition: Common.hpp:8
+
Definition: Socket.hpp:103
+
EJoyReturn GBAWriteAsync(const u8 *src, u8 *status, FGBACallback &&callback)
Send WRITE command to GBA asynchronously.
+
uint64_t u64
Definition: Common.hpp:18
+
Endpoint(u8 chan, net::Socket &&data, net::Socket &&clock)
+ +
int16_t s16
Definition: Common.hpp:13
+
int32_t s32
Definition: Common.hpp:15
+
EJoyReturn GBAGetStatusAsync(u8 *status, FGBACallback &&callback)
Get JOYSTAT register from GBA asynchronously.
+
EJoyReturn GBAReadAsync(u8 *dst, u8 *status, FGBACallback &&callback)
Send READ command to GBA asynchronously.
+
EJoyReturn GBAJoyBootAsync(s32 paletteColor, s32 paletteSpeed, const u8 *programp, s32 length, u8 *status, FGBACallback &&callback)
Initiate JoyBoot sequence on this endpoint.
+
EJoyReturn GBAWrite(const u8 *src, u8 *status)
Send WRITE command to GBA synchronously.
+
EJoyReturn
Definition: Common.hpp:157
+
Definition: Endpoint.hpp:15
+ +
uint32_t u32
Definition: Common.hpp:16
+
void stop()
Request stop of I/O thread and block until joined. Further use of this Endpoint is undefined behavior...
+
EJoyReturn GBAReset(u8 *status)
Send RESET command to GBA synchronously.
+
int GetChan() const
Get virtual SI channel assigned to this endpoint.
Definition: Endpoint.hpp:249
+ +
EJoyReturn GBAResetAsync(u8 *status, FGBACallback &&callback)
Send RESET command to GBA asynchronously.
+
EJoyReturn GBAGetProcessStatus(u8 &percentOut)
Get status of last asynchronous operation.
+
Definition: Endpoint.hpp:258
+
+
+ + + + diff --git a/Listener_8hpp.html b/Listener_8hpp.html new file mode 100644 index 0000000..8d634d3 --- /dev/null +++ b/Listener_8hpp.html @@ -0,0 +1,152 @@ + + + + + + +JBus: include/jbus/Listener.hpp File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Listener.hpp File Reference
+
+
+
#include "Common.hpp"
+#include "Socket.hpp"
+#include <thread>
+#include <queue>
+#include <mutex>
+
+Include dependency graph for Listener.hpp:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  jbus::Listener
 
+ + + +

+Namespaces

 jbus
 
+
+
+ + + + diff --git a/Listener_8hpp__incl.map b/Listener_8hpp__incl.map new file mode 100644 index 0000000..f8e4495 --- /dev/null +++ b/Listener_8hpp__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/Listener_8hpp__incl.md5 b/Listener_8hpp__incl.md5 new file mode 100644 index 0000000..ed91de0 --- /dev/null +++ b/Listener_8hpp__incl.md5 @@ -0,0 +1 @@ +a4ed56c034495df77a661fd555a6ba6f \ No newline at end of file diff --git a/Listener_8hpp__incl.png b/Listener_8hpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..82d32a086a1c578839f10c0e3655487a7a9e8865 GIT binary patch literal 51404 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�XbYrr{Rj~L4Qa(~Fd ztruP#NF@M(+KO`tX%d6l!3X%3FF5~nOQy^`B}(Qf{#;en>t-uJTC{%Ju63g90x^a0 zc2>(((-0MU#G)p34^d)@6HNtISRltn&{S&F!KP{t-V`1_|v zY2h@U-FNs(k6iL*&=WSI6AYDQeV6$W9l>a{^J*W~4L8o-5NGh(U9A!oNH4vk0iNcP z3|{~a_&i=0tLZDE?2Aler&xW7^Rjn-4bE-(9yHgP?|1*=Tmu4P%#2q~arz|KYQmDqTo^xz(J zZ0N ze7&Wxmy}q8Z53;1y&k{-;ToMvamP6O>h}6T#6^=n{aXOlKUJPq=Oh)WCkf84+eztm zE{&{@Bu1~BwF$>WtH}+CDMFd;+|9bzBR)0UMKD4!nZ_3VGGe9%d;{ag+6sgH1u4l) z2eT34x@gkcZLF|&8vb@Kbf3OkAm4twN(QN9WdBOlyf)XuQ{DT`> zhfp?CyJD+$;#5SW#eBAgx%zJQAxjmfv_VPLi5enH=lmt?|1mChEJDOLi=R~`D;%sm#()Zz?Dz`wI zs8`|Ar%Y`%D^oZn!0GLC8lVwA#3eT_B$8he;Uc*}(o>m8tAGUU+I+ zfFMt8Kod$^gA-~2$jIoFifR!(#CQ=3I9YA9d2Ccio!O{C)?RUF&xdoz7f@+1&^1?r zh2mp&{?!_1B%?rPXCo)GYfDG>nY3zj%Qw&t9b zJpGSipqX9?D4Fh8oadrpyY(@BVErFieq)&Spv{luctz?3VqkZWqCk9KX`(J zoW?1on|m5egnH8Nf|)HgxKBSuc(8gt1TA{zYta0`TeCmQBO^l#Vft5h{D)K>!h=^4 zt4q9P>nFwuncn&#L&g-UfA!~EZ5S&yJ9{f&>;sunoyFE}tTuPM(_{mOv{oi(zqQ?K z^CX3qEFP(kq#;Dwy4XepQ@0Khf%;|}UrlK9%Bcy*I-xXL*z`j0MEN({k?~4YX|^7c5a|jmbw#7Z`n@zTBx;QOD|a_CdGq& zaE<%b<-A`4Nzc)EaFue#SH8koh87S#fF^N7+N3nqF*5*fduuVB`;F`sG~(CyuXxRJ zFE6{pi4u|yBvrIi!=sywxgqHm5D#tJ1R!o|WrE|w@fF>68fjy;|K;|VE=5Uam`Zns z0Cou#Lx;N9qYI_CYt$7#7ZfZOeN*|_Mu_iR_xG{LJ$Q3AN@I=~Lm67MLAuiM6mVas zl?sbBo@Tb?B89&72-*0Vw&v^>o&HS}9oVu3aAB;#10|gKkPBw-0{OnzUTR2BzXceQ^1fy$IEjs{| z`v~`qsr4Fe9~jr&R$St}9tBr%-Um$U{bBu$I;Sz5l3*^8i0?9AUiF7D{;{sSn@Ik) z#t3xkr)DMku=(vf_#`D&LH2PXtGe%6M|^u|gyTMgaR5pF_qj2aUv`iI@}(v$R-h!@_W4=UlaN+sh`d#Ry7ms*vi@6`Ca;_gxf=&lKi`4EQ(9(2UE=*D zh@%Y^Fs@oKJ=SJ%nq$SNxiFv2>J??qE`#W6c8-Nmvvet@fu_yp%DNt$0@dJ{*t& zq;W?t-|SR;7MWllJ%bPkNP>Kkdkg{r-w^ zQ6ZIyyyz6H5##v&1*yew5w6B;eOxk!_JW6prF4Ml7?RUXpI;MhNhT!5H0SchC+O{D zd8UWVr9aJiLnAI48ekdGhkdsXatKe zkXFh=3&0I{Yu>oJF-(-}p{E2kZ*cN~eTuvvY1kw~y$qs$^wB3}`!+iXv&U@_SNThR(k5l0LFS$&U zZzE~9zWDaJ;heJKe_CAArxjRzE;wx;&AM{q{SkbM4JyOu{>-DE({AxK5@!2q-Ev|mEbj+?gzOn*hEY)ey7*goC29sBqmHLa=b{Qd6k zjL=Gm^xNM4?@(2_=I$PVucy9t<;=5|dI3h}$O{o1=MZA@= z^QxzAMs=PFr_9UaN$VPaAYqxcQP@ZiA*dXd_Xk@xdvxH}<8GETcf~?&0IJrzXzpC` zvf}k9AL8YFJ(6K~c%s;IhEJIku(Yk4_S26(I*ODQCevB>A_Jj@>3;(wiH*8ZFdO#X zw~Qxe1-S9!hbsCTKtePuioi3>X1^oYW^}i~EbwS0Q#49QxS-eYW{8e-x6^iV;eLLs0_a>04pQWHl-KrtGeBc$_|Kbq}BCLQhX4in$v=298so3VpCjlk=pF>zDN;)986=Gfrx0r_K7IRk1FvEjVx80`k|cjwW8mJ z7@O}mP)8t>3TeA)EGFcGJ<@V}Ue<^Mi_h58;+6*6ANA)=#YDwR-x@HLf)d`q&-lNF z^OoKn;hp5mo83fKvauEyqQFE$`i$}BQI2HC>+z;6oBGON;CGpWx2v6*_eV#LJceWk%=pH>-IwUCJ+1EJ1Y(>55&sTi(L>WVqPya|Xg|2=^~5WEK~{iHUe4 zWMQ>U$dB1QJp3q1$=1KC-fJAa;r<&*ks{A9-4R9UV++m1Ed6FQd^36iwRE2g1M{eu zJ8eG8H$bNJm74PrqWKMR72%g(ubxOcmOgT~-R&STlpEn?OUG4I1Yi6933n;kVSufG zY;t4g2l?tA8|JkB+*S326WSVRFeKr`QX5EG^sn_r)~)nWQ$6?*iuvdm-s_!o5C>lu ze11s&%{~S-kX(d`3}joda>5TY2iq={A1~>JsDq;S(|YxUWs@Ga)0d?Owm9;A&Q4jJaxP{Tc`->=trs7oAW!F-m6Yn znZfjS{~Z=z9nU}h^UlA*01!vEX!vZy%$nNGff&w-plI2OL(9-*S6oZ zbX$@OpZEQ$A;)@s5eR?*c5R>d1~S(K-P%;#^?V%5XGy#lEqSgEu34SuG`)Ycab6f` zvMGr5Mv3?k)<#iohb5^NDWrui%|!g-d-Rj?)vkH!&i>QGYx|pJzHUj4CF2bJMGc0j zR7{Cr@tkAW*9V92wh^EH@rYgt*M=R-$jPN{bdKG2`C^dQLf4!_UFefWox5iJ9`<0* zr#Gm7Y}c`qy7Fu1*8Xe_Q887X8Ma_VqlObd?6Up<%oGYj?&LF% z1m(7UcScePZEQD>551dmUmK0Gl$wm3+@J2oPv+}?JN_#7QMgX+{&Q6aa}>VkX&?D0 zqudQ+Yv+reSp&{NYv2!J8E}HtwAr7a`K*KAz8fb{p}|fv1STY9n7i@%D+&9aK`S4_ z_jE%^@5IB4vYz`a6~KMVwoQ!+yvS8f*q|%-#ck3uL#5vh`#=RTU9mY|G7VQ0*mLTH z0kZ?jZX)OFS=2P48w>L>-YrE4M&@7PpjZ()+!qG`8eH-tv$Tb(p(} z&meOosBEIyXu0F*K8I+XP|~nZ2uV1T*LGAn)gmO>YB5#HWt5ycJD`D-Uamtysq-&o>$@hK4<4*AyuLw|7H#7 zX*Lzj>)zICZ+~6%yr&bv71zI9^(GD}MgPik&|}-wZpJpaA+*67P1S9o9!GMXh_96s zI?Nl^NPr3Pah(m(4oWSS13vwIqA7!^V0NnIpU(cSR9AA;lE~^T8ETbsN7lI^(G=b< z`ypz;9Y`jU*_l!)vK7f(rPrpn$g&bVmrbmJ+ypALY--nMyZ7aqVJqt!!6T-+FxKL{ zZizTy2CL!{hEYl)G2@E1-)zMdHOJ|vXK)6O1Q6<@2pm;UiUgI+dEOca7h(n#6Q(Lo z`l^98o_$EFF<=8^Roh5P$=m1QpFbY#Cq~t1VV%K$*$L&Dz0~GfVPpmJ%+3Aja5)4I z+eZlk^WugMp`U>5d)g`TE5(xf&43FlbMjJoIk`8j&9D?Ge4xwswtbrmnyf3dlT0z{ zIC#A2^J!a)-mv`ywnfEJ)p4IlHu4~7p$1m9%B+RP5-dsGDa3Ny5;%P}f~4H5f~>`a z{m~Tg4c<0qxKf_r1Y#LSg&Z@`M0cLs33uLt*NdXd$;=OyMvbZFK@gJ2tq5#i|XL|18xV5|EWqm1+4Xpo3&V{TgnU(_s4K=>s_Z{`rB= zE};7e-OL-7u;llkrmEyJL&sWbJVTr)gF@qW2iyYYeh4@rd2OQhInzt z{`Jlk)yb6C!e?E}$I_EDgLHd+OFy`R2z*9?87XOFifmM}3>o!l({RJ?+6SkvlUPn4 zgdbLtIRs|9rDD_?d!mg0AW01m(fNJ5z4-e*oOhJNcrP4c_37^D+;F~b_ePBk-_Ktc zR?>1kH;cHK|e8fTXV;y`5~5-!8pA zM1oCB`L-I5PzPME^+MIHdUub~Uym24s^UTDYBAoS?}KK0Q!G;L`m$JQtdaP&A4Kpm zDIi3JPTR%n%!;;4^epIASPDSP8Gd#hy6XV_{A?*H5fx_;qBP=_Q+letDxn+&4}B+V zk#}Ar4%+@Pn_){*?_iH|TAnT4d)$!I_A|5I#_8Q$o8FK?S~vRGNS=7fKKpJuY!if@ zhx2j6qa$792A6uH>2Ckd$fz_9m5{|p!-2tzJ(!kq1fIcm z9wK&Iuhre#n$o-9f4YGkT&4VL7Zq`Mkn&+DmA?JhOtjTyu?MZlVwr%0Ho)L?$y(p3 z5c^kEvFT`LqeG#8S;ZW+XMKFS*q2g(Z<29GOAr2qFjfeFPHIhxB;3=5{nop1-Qa^h zWe~9hF+TF>0`=us{ak0B$>Wr4tAM|nVPF7tdd&=^3QAGci%^jR@Rp{~DlD9xj%nM+ z)0NEnOWULA9EM{jqF8onlQFl})6j@XYWnE{#7FTA%43(q9JdOeE{O?&=jvlPS?^YB zBw=9Fk`-c;WM1)#9C9#S2sNcVwJ6Jw&kzYcn(2Nx`%)7e2ezo7YtuGlCSr-iZ}*cq`j_NmhW_O zN8_+DIus88(jcOImaxEJ7S^@>eTT3wispt;hiopw6!i7;Uf!4AW|kgV{tN5=2L(R{ zTCh2m`06b-dt-QRYIg!(qD07})}nt-RBvK;rUKIzou11kYK>~aWS9#8!FlQ3$yvwG zryJU`{82p{15LU9sy7kq=*JWXXjG?q2B8zB5~!BigtCj^W}|2zSF3WXD<%>>K=^$H zqz{YDZo|=IN7EgH@4il8ayIIL9Pp5a`uWJGts|@XX~*vL(0!JElg}I|K1DkR2T!h& z>AADD(~Hfp92Xcd3*}JAcuvyBaxY|wq(u8AWHqH_aJnjB>TZZq^E5(2Q7|8C2t=r+nKKv!oeHBN?D%;$!^PGtG&F^ph zdm6uTe!o9%xm{f?)NZO^)+f)U1?}s3Zp$)M2caEL>UrDRHIy%F;uM z3OG=jLfK+Nbz09xf}*v zvTCx_O21|{L-6@iAeDO?ncou4VHOgy=(bE|?=6lr{3wftS10*m2frha7~u%Zr;~7x z_wJ;|GBgW9N)OM282x?(drEWI-SLmD9|3PME}k{PsdI9klVN7M(GkCyoV)1cEcltY zl=EE9o*6t>W7cRR5#s4FW+9VEy^-vrj)&F8*j#-Vabx?F?|Z=ss_dGc*f|7dJ{Zts zN8sX6Q=krgO*Qsm8tscLfvOlK*=XHr`>A^m6W8J}z7k{oV3wz6+sO<~^QXjsD?Y3MI!-)oUAUwSYcwed8`sz;)@)f(Bik?Ha zpIea0E!$>ELXpXmTB5JEZT$4dpyY+qrnON8Z|klAi6g&eI(;q z@G@dOShO;HAwC08-b)Uc>5c3toA0eWQe{wBU4k@%9WB~SR6Mj@W+_cy*n zXean7S$8_@d)pM>B=kPLX*!PKiREhgbE75qDlE=qtmz-86F)_a$;uGs_Nb^iy%F90LO%)+{GEam*F||0 zzj5s(pMv87cxU#9FYbDjgi?~BN}&8U7Ot|INp|XJak8j^SYMUmSzfx_j2B~zSsj;2 zw%zYTtlKB2z|cE})IaX_hyDYNZ>f$(uiHeUoJ<=DW8TjM=Vhq5eCbl$e%-5HkO5%- z#>cpXPR$Ts?#pUXup?;+Ox8nwW%8^oTNcTuf6z~~tNb$RJRakSAReMzf~1lyp6mp? z;?sX-O>8S(4jKYif8` zIk=-V^uZ_;yTV7D?Vm`tMw4+*m#td1Le*p@zyeekGj#^M=Y21H=C^u~AHV4Dx zU1OgX)fqA1S15d*`NYepbVP!wcm|r2+YCt~)~(WPwOa1mcT&sLyg>Cc*g`I$a6jCG zF2sS-)ls1Jee;wgnD^}I);XhV*dLL)E%zxqPD&I0*vBVGaV;fZp=tPiYO2Ox9GKp^ zHjaN_vIR3Q0-jO{O#%=6$hCrqZ?Ut~iNJ3cDE+67u@5tfc`?LNHT-1oyL)0_6&HWo zQM`g+?XJr&#H`#rf4HVnoR>bl5lAj&Jj>1#IxP1sFYHlZR~A}(J;`^z5p1kjMG^Wr zN<>XgWk>|x>_I``Ske6Bp$Nb7A7GB$i?dd2$>yGp8xp0jOTD%{3;uJy4IyT^XhEc_ ziNB)-YUv{Gi12$e6j)x=jda5ZJgUt$N@c;{2igan-CcB~QuB=KX3o|@a#$1ut9)uW z>&~dzVM_QEe#AV^rRlu$3fKc}Dg&T8; z#~y+HnZ`{qW zXNPKH@VVlB7k6N=>Rm#E6Cmw$ZI+gWX=h|aLNc3CvyhaOzs8ZF zAKr5_#wQj<|tdp6wWL%R{u1DV!DT{=$B@{`<)vh56Ldd;cxDj%otyr zLhrv`*U9|?qEs0BqNa|N&e6b(f%hAPJ}ztvMmS`IHP+9>m6f0v>W~W$=~3p zegSOLDzd*osHS_TIPW=wqeDUMO;-p)*$aDM{UGJ>NIcjVA_cl*O)@bzEn`wPd#TGX z77;aHn#I{2BtNG$*}$fH-_{HI0XPB067PA9MW+0@9!~vbmr@a$gl<<>{OYMp8R*IK zWAtNjVI#9Essp_hOU;WnWZ+7wMwLLAf+*<#kq`^R=7wV#bE zwoxontkC0uA#k?kH?x@v%IKr1CL49*!gYAp!<>@8HV-}g&}>?d8{OhNCLV7)Kea4k z4)g2s(dGm5ijC79n7^iSeuB;G`)d}hobKKlCZ^I>8+23c1fmWsbx)4JwEaj46f+1) zSu>8yNVo_BCOs?>3W&(PmS%|IK2NjoosEvmDc0|d<@VS7HFm@eWIa%Bg3CJ|w0*A= zZM26^3AH!rUIDsihCG93TFOz2Tx{pVNvjv4E z2zw*TNT;%n4_wFPm;f>a1*s?))!$MWX3#R5eynv>IREl|+gb7H`#n&}xE`o1qbfue z$UfX(j(4V{a1yt6X8GOE-WT1?j-)m9`Dy?&14`A{+P}<}e|*Lo#Dh#`0QA6x#3bda zdmz2Wy5P5$@iCPqvNpOav!+J^o5G%fwMa87VRH5dem~{|JN-RBFzbpV4R+yk*6n^g z?8o}%Q50J*x+^&G0B6p9e`?N3wJxYT@LSjo2Roi|DQ^6y|%(s{ZL$ZqVJ&Q)b4QG+yJ=rfX-?% zJKhm1(~7O7By3?AwHHmu3xH>}2z4$)a(CO8cs?TqVN zsUv$0qQCR2nLool`(zz&h%TG-wjnq@h9l}vxhAK8#G+tcb5sHq0_dyo)0J#1-guqa zLN&YH05AX6cY`H{lcW)XoYdv~U&D^(%r7kiJZY)xqgMj(#D+Nx;q4> zu~;G}O+zTp;dm2?0!P71)uIQ973-1k=_?SoU1s-(C>Ab9KI0bEY9HPt}gq1 zyv`*#NhH6k4W?ieULnaR;;*-u>_ML*CBA=;Ebm`8>esM@D6~>;EoPrUe-8YDO!CpC zS*rjS?-hOh(S)Har_*1LWhtJzj)SP_H{Jk>mM}y{l|hRSIYb`_$~kW12h!F9o#$sG zKbT>M@BE?W_snZV^WHiE`&Gd*rgk>lurTZwL0Wi1G(&~RI4Z8HSiZt`zI%(MQSPZ# zS{qy<7A=!MW>Dg{9};t2BJali!xq@xt;wZ#%_0UiL-eE9*rif@~%E;Rz!@yCpkQ`d&TRZ4Ye4ovsi3j!x?(1yGntY}SgL zL$2xB`)9o`+nY#F3iK^Q)+HOwzE$lg{B_sUpVt0J+Rm0HQc&f;NPS4KW2ZE}fVG}> z$igh}l<4}ty#xb<>xS4JtWp1-kL=b6yzErMKDkd5Pm?9NxnUoQ)vGEq7B$Z|(%x=l z`RgSdsT6E+y#bXHl*V;^|Kw+atWu?Yy|gEXEsja*(;1}S!q8pl1E}Wm#G}3#KkiW- zm*mupkyZg#&z>Q`HnsMpw%I+2o`~-U<@$d?d?44h*?Q+j1-jgMG7Hs`O&38IcixNk)8}-|`5YUf2VuSFcC9>B6N;PgAA ziar0i-kZ^hO7+--e(%TQzV>JE?k*~>XiX6zPx_Oa)|-^`2o3q6B|ALyx;kYAO}nQt zS6A`MkxKP)InbG%37+uX--l@3d>H$!ENcw6ecO2q-!shic%jXhzKQ7}7= z5+zg`0Z9Q_v>+|r-QC?SBA|4G^rE}Fq*1yN=~{HhnY`cL@7eo%Ie(7V`mxk&J!?Jl z8FS1L_qcBa{exZQJCg_Yw_!=7)omcly};y2$Sdi|iQuLWr7stWCuU^&cZg+iHKUx@2EGfo-vq+FNxifQ6;pP;^yqd37Sxa$b24<^-KX=`lC)T`cR_xuVB{^Ogiz!~^@3;lbV6Z1Oy~2F)Z0v|vSoFf2<}Jt92o?B|BJY;_s@{I=vu+``1gR5kc0&UkMhuZdr>t3Gx)%T8Rk+i!2a+D{M?XdEYFSsl?H+Sq-{aAGDf#Vg)7kpJPj2os$Fe#+@Qbvm1TxY^6g zZ1>tP{+&x1=jp87NQb74Dy;J{{yB6aoaZD?!{a<259PKz=OzpLTf=kAnf{L#j_(fX zpj3v0Gv7HD+()?7c;_$B2ZzMU0V(@u&Of0n1y<#`TGQG+xkG5bm@FT@R5sX@XI>>Np?EBboyFR`wa)vxc7R}*61O2rEj7OA z=0(!QcKHyqCLYh{7d^C4e|eSP(3Bs@R_nPgCeE!u_rikkEqR)Nb*FYO5^E9QlW zbOlMoa^w^tZRxplWu0)3x$#4A8j<)FMV>oE5xuq6&N7#~DUrg(Zfx&ZV~_yOCoYI5&6SjbWBll$dX1r)V+AqV?oxY!N;w)!%O`;<3**W857RmN=8Jd> z;aN-3w1v9Ql~$j+m|Jh?;|yQy1TLO0dQM)%>R$&9*|`%7x#2AsQV_%MNo8KX-#gVIX0OWY zYG`%uhEYN5JN9>+%bM6B$%`;~50SE}&s*gKf`rrGfqGO;>Fr9amL=dC$8C=@rH{2^9x8K|7>dj5qGvudk8AwE8Xokh9iNOX1^@J5hjxRXfPu? z{6xOt1hw0ktWoJUR@1eIp|37RWAISRG5%z1U?V4$WJF?#&~yt>7QF!{{u}O{ibxlL z>E9MZGfOlaNSMOI=j!m+;Fz`cn*wqj{rpJJ^_6CoM~Z%xq__ZS2nnDKG6w_4N4KFt zUfNocU6@8|X6c=Jgg9)W7nFs75!C$IWDK4o8Nf-kFe%3rtZbC*fW|_FrU?Wlyt?57-F7NtHL~sb z=@|_C7JaNc@suW`cuq@_M5VM~OEj>K%6qGMbMEzHrR{`2E=Dy#^40K|wdjkL^|7?+U zO@Nt*GXbEb)}7dp!vF%omVPIEK%7HEee=QQ;Aocl?*33At@*dc5inBmBi!B~R+48Z z(2T)Aq;U$6M9tNUT(*|)+X!fRJK{O`U-*(y#ImzWz+R1ovwwz!LHtjmntD+`-3hLY z0OoEx;JxeFS)Lcmo7fbqFBF?^K0HNv)Z1(}QB-uDX|dSII2N(X^GYkeDm_ZL+4Fi< zIRJ7PB`5XiOQLAd&9Og@l=Unj_Zx-~f_0psAf`rwP|hbHhf8If2plceTG(riD?;<# zQ7bEzaQEu^0@Pz&PH)~Qo}D(|COb0IOI(XXZ(cT`w=I7vb6!smnmyYotezL+ek6MQ z1(R;MMJjIcTcMDiX44zr1=bEh?hqLAMVG!qtaH=zaF`ij%i^EVLY%wo`WtDj}4f-cnyHji`BBp+If@fZz^Lx0|qJ7;g+YeSuL?&TGXu2OW(m(hk( zv#3<)z*l|mR0^Ld3bL~o;k-A_y=Q=`K3o~aXc?%JSnqF>z0gI(#LDko_q1v}9{&n# z>8);M=?l4RiBHPE^Q9XmZbEHMTep`!NdiJ?P)xxUG}8~BH`C)F!!!YXR{2F2fGQI#=^<3KvepbE+X1j za>2lwnpQ8!?pF~KqS6GOuQq?WgbQRCK&3Oh##nI?KM%+mErZY7G#8e1+LSUXbv#xA z^IwOlw?f-!@*Qh)O`)x7nX}dK&|p08%uu7|-*fdpUUP7cKWCk;o~SCpc{i^Wicr(aVi;G*R?Wq_5xLQqQTh?R0(^C#@H zwKUwN;`;i5G!fPibhpm#Dg*LO@jKsKCFvN}*+-?FG)~`sqJalh8JxSoUDZnw~v0sV-&h4}fG zj{Cgakkp>}jkB{)o-<)TD~Uf1uKZE1a%f+pQJFH38)8{ejV^OrOLkJ9SycIHIpbsN z?>-_`Wii8UJLfQAFc+wJoSa#>luT|F@OU}7>D7ofl0FtU)>2B3r@9c(Im73?y*iv* zsYpL+Kl0G>JU39)1kl%3_4#7+EqF%l+kxPr&^%$^zT>GS@FdIGbFW+I5##cob`0L5533%RK+2`wk$uEp?wEAn0#na(auUUe!|}Uh0B1M$ zmxsSRULvHvAvJf2Em)+FGuJ%LqidjxKOtYHnTnf`8n1Z+_2Qd%y7(Xfts^$?_VakX z!0o6@ebOl4)pm-%AhOY@oWe98-j^-;N){WWJZWK`tbkq?>Op%x-_UEF8QB1xdB|526ZQzQ?f@+X(y}v@hS* zK7f_2^Zn>-eH<5G+CRv-3A`fcrj4XTW}?1$>T-5JFt1pz1;z zzh9KJL4dN9trgNZ1Bt4VaglQ&T-_0n;Npj4MnzT<5 zEDT_$e=$T_km?)EiG@lO4)>c#r{}#-W3cwRe7NSB;i4TtT!cpIy!i0+T~#@Yr=D=k*I7F9WjDMCWV(fa`GmrXghDEKp{RuZAH>O=^d|qEB zM6cHb(L0PA_Q1y}ddft;j|RS%M3QzIiS-RmKw6i^)w%v@aQK>6j%$ublI#p6Z9R1S zP+$E}!Li@+%}m()*DQM#6cvod?=B)FiJw+E{qo!fiet*dBIyq=fIN{itCU+5k!1yz zhiDg_hH7nt*3>xsZK$WX*Hn%)DMw72RSw4fbxpXO>5LGJ+~r3$dX|Q;T5u`i)3*ML zE~HudVMAsquI-X`+EA;dKY=@q!9!YCFnt5e&{%VNoX~cN9%hB=aFR%5i0d?<2tPB% z^9;)J>dCxK^X#hTH|Az~a=3upbMaN835(XdlDDlb#y#ulp>9G*z=H*~tDg|N&8yndmxdX>=q z)b7GUbL<*YM$effmmqZK%k_Smf)R(tY8(x3` z5)&D)=&@n%XH!V29MH$q2gIfp4fqrmf)+Ww3P!7tKU+r(iHBiE_z(+F*J%F|Mj~8D ze{scsW(@*EE(e2WyO+^S>oQoLnA)FQ2n4A7L(mZJ{FoDiLcHyusaB2i4XKH4%=?lA z_ucdDZT?;jMDbmC|)k>T{EKx?#wjR?lPBr&)bXy^MdqY0b};|0u)0bg~^S% z%XTk5-uRgugvn_+2Z`daY4|roG_I!i8K@q+W4etrpB?t>Vv!ErN*zmGzRjvaXWp|= zRoHT28W4zjJ|yBIcLQM}@=+lspJ8V;hh-)|w>R89(uyZmE=5mZ^fs48>0#`ZQsaGWG~e z&VSa1;EcrrYiVErQ3zp>M=u<|Hd9BqncvzZ#`xCR8$I_~-J9eOw^$30zLH)XX(Pvo zl#r5NJI91>`7I!~+D~GjsvUeY?cWLzLH-c` zJ5plnCQ?O&K3Sh~N5(`RXi4*bA@?$RIx=HfKd_jA@=&rN5c}!dq(ky4q&!~IS;MCs zKRpUn4JC~E6Iy*d_DDXR$aQ`pC3JN&`}O-JWZmyEV0lv>qy5Q3utey>Z!Egj)r}2D zanlf(0DGXa8tOa7hw}7x6Bh_wg=_fgTx!8xcpoo@@8HeRA*d;+C>v-cVg`nDcvGIcHJl4cR!q(*@iIn2R z?*JI_P{?aY9&`K`(XLOd`=xwHOCttZVM2Ys)Tv4b|w?EdE*bM~~`c1}z*nywa3Gf3=tSk@5NR>9;V3O^<^ z>8-SgsE>8aMXxpK&AZ2jN^d_L8L9-hzUxQDf;h|Z`%}LqmdFmka)074F<$*~Po~$y zkh6g-Y)iSa7u9HZR0mJUm&0nwFGC(a`SbDb*~mvB zMj{6Bb{&73kUQS4avSwi72F0)ijessB;jHYhY9W(>~ze*Y%fJ>TLu%CnCe4osYu2B z$?_$p7Ws%%fYPAD@k1RvgTZ>@)NHLn%8?4c{W6anzloR&&#L2hBUg%9+s53(o-I-S zh}grv`aK5I#uvB}f_`)!lxBkMH&Sg#ByqjNF$bP|rAsp%LI%+VLmy%li(pFZ$KGq5 zQ6m>V5=ZOlyfKo*V(P3R8xzh-%Ig$_>*9r8yiUP31S@OZ3OZJ>;VPqTKCO-*q{#16 zf%baw+FpTl@DiXO!DOlPBBm409hn6tae*;J9&1r&<MUqI zs11}9Q}Fa7m{1XBWN_lK=1Y$|S!?`tHnh!)w08yF85QGC_Q`pG)p1LWhu(BdEI6~r z-*mB|JXJf24`unNy?1StZIT&6MXo^0#b*EH5FVl$gh9HyeY}qo;6?J31#*INW>xmY zI+>FI58>F}onCuH>xcL4BUT0`a(?PIGz3E-Petmn#-4DkQU-;0UQfmZA8jJ5g1H4W zjyNHv#{@ebg%XnIpLO@K6{MhxI*e!)`M#CtF_dbRxh8mF22sUuu7s zWmxB!hs#hPLLvJ+hlh~WIASE`rQ|g7CLTOBoCP8bHuNOwpzD-~T!HxMi4(TngA3VdwhBJ1#a}V1M&G6U z*gmRI{Oukd4!KPk#CA&5;P80G0Uh>0P5Yn1yVq&W%Z=Jq@jg`;6|u-YCrQoRuU0sgRJ^G6lYtP#8P4dhUGZF@wb_jluNR$ z22dGh8z1Pr=ysD5RdD(o?SC z?R_jbnkx+J60=f7XLF{l8lpuk5Yx-rEY%w;)l*oW6GL~zuO+M2bKq5+ErG6KasMGI zEl(`HEKvIU~pt^Pu5kR3m2(|H>|!u%YWX1RR79Gzk1H`Gw-&dPzm&h zC1Q#g6+BX|bV(+pl$2C9nuadl-AYNbk5b05z+NXn0R<*9XMh*wj z7VBfe*;x~rzZdOGO}DzU#~R>q%#2-&CMnn!e309Q6tKtU?hN=VWt((b#{8C2*yIna z79|`oeM11g5`~nhwN+w9=7RU2`;1&gn}RyuB6izeGmKzn(-R_RtwWIqil%z;XE&i^ znaaO8-wx*YHb!cQ^D0Z^U+yPuT!ibp^c*=mc)XMeRIEwd&@*_>2)?|AzwS-3MiPy# z2ARBT4Dk05+mhlHuKe_+u6>9mr3aD?C~#~XEW+f*EXcdww;GjA$Ey_X5;Tm%sGjzn z+2vJ@v5mj38oSp1R&;}~Wknm9H>h$5sWyEFqi$sw##4LEGUjmeOpl=}2&GA+YhvJY zruZjZ{|C^V{_O0>1);u%5)Md)#OHMO+W3s?XB;=4{6-f0YhwEx<<;|1gS@;DD3c`L zF^OFLSqnXSg5w6J!1YsbNIya?d2lMV$>zE08G%-)<#=5dX`($Qi#%$_r5a(6Y8p0!QucWozvSi<^5U4Q!uzbts!@clsq_tK+AaCWVvPHM`5m zKXsw<=6e_+zDcxz2!Y43O1U)>i4av4htV+CcKLT82Ov?2n~ z?(tb7^TuGEjY1=4r(ew|g-UlJakXJWhW+?GL?QxD+C?A4GEvKwoT07eBNra5xQZso z>lC~p|ABME{|(VSe^I?o9q#wsjVt64md_hruM&Q-`S zYHX@Kzl3obo*y)qiTU9@Qq*v8JDjo7nly_wbg)Q&q13&}113Q;eoK?PBQ%{Yecm&G zBHLDg$}avD4dimW+;>5cBi9qIz_&M5z!P~{ZzWY;n%Q!;Mn1=Z0Rv&XY;hG-5PJp1 zev5t|rt^?Ydi!%vDa^;lGrc`0)l+p{jrtl6tEJX)a_0N$Kq5i#e29K`C{g*6$d6M~ zVRK{`60>)1Z_ig(3VQZ_2bFJ&;V;bK9X^eZl(sap-H^D0UjU_G7P~>toq>xjqf_!) z?N(X4!vU@7F~-d}9BFg2arJV3$tCMkOQ2@GFR1(>eTv6sVxr$$O(6h z7AAUezLQ*?t+kU|P&cxp?iAs*WANMpSGvB6i0>ot70SGLY4xUY{7-i@gM%wVNo`m7;$wzQUZ)xynV7Tpe&Y>&(1@-8;B z@fRcYr|^c;73Tm|bP?xu>y}Y4GK_eyy`{fmBEOa6NMDvuh);Ou5(Zidi37PG7vjhT zFYbn6%m(40?wHDEh3{8u*Q8juVGW-)#=b!a@pHyBG3(O* z>a~M?^dB!=BA+X6bDA==n3+F7w20ZR6R&+BjUN{GCv2wku}__v(HfrlyU%bvQ${d7 z_9^|>cB}E>@vx>ugWcMkY88vhgi|>MTU#{0GW{J5r@1E)MAu6h>TJy)R+;Dh9eWu{^C01N*- z&_jj6p6YSpR|{ant3O^kiQ*Q%3UdkC1oiM=obsuxCNYOO3iXbK-<&;pGXHDs|MeXB z#*jrt71%u49FIjvCErjbvrZ=TjIp!_rCL@^ei#12BMz~m586D>%&YhpT;P8|1OI{! z*dza#Ew=BaJ;`*MI}YSL8m{kWpE1{dANG!$6^=HQpHu$yRR!LEyRy6Hyw3qSXzZgz zAAcA2iUad0@ekoO*$Ff!2hg6{CxHk1h$70bpH$(=7>iL>+&zy3^AT9fXi=IlVvf1O z`EJL_lH0i3%jQ9fgXLP@>}SxmK`Et>|FE=w-)$c7!%ze<^B)lyfP}3&A?Ec2YjLAv z7-*#_puBVNB>BlL51X)JT$8!}C7#MsV4VBE9QFVF6_WwZHc7K%rB=Tub#>M*l^OJ` zYC$W!5lyPoY>akjYfK&*E06q;8#vo%kpy(3aim^Jv4XU9fH3ku9?icIF_d@9C3s{sq^bXe=ZJyDc({Hw zJJGe4S7H*^_9a=+X06SL!aZgwLk~O!)aTpTUVD!rK&2(9lzZAt%LP5J@<4wld}c`# zwE3G(ZbkGTUz+BAw+#mjJT7;N6H|C#%(oX4?;qXDS_0Is|94H7D9O4v#^fQW1UHt+8N8-ng1D5_u75WI9dwuhiOaH3dDqi?+;vMacD#q2^3uX0Yxh08x5z)J z6dv~KEOn#~pisTj$EQD=dv`K<8?WIwRq?>-FT@vO`ouqSK ztY7vQH{X05d*#r0&&mYzk$}e>jTHQ<)P7^(FUOIS%s%?eu3rkkNN)-I`*B0Uy`Mn| zwBpx4-E(VT>%SZI0o)c-(aV->?LpyhFd)ti-~q!+By$NQB2^%Y3p^P^4OB$A3t0cx zi%$yS)rTIGnUK%#L(h7*8&ALNKFB|H*eL4^iJYc0g|p4o9PP{q!ui{p{{4oUs0_Fhil@PqM3}C%5eF8?(YLmE?#MRrd`BZ zkXFf}(+B|QevtEkHGWu)k_(IjxQc{J7>F=t%y%+v#IJ?G$q)}3zL3FY{IM)Wdb7S5 zVTrAAvxL+6dNRj?C?_D8XBfug7=a^$PBP1p=Qz7n?4@@ynV~^rq%g#A&#B!hr0v^( z4cGYw0QAadEGOb&&8ft1>vT_J)HK-|UFY;1r%m)gxHpxKFY|TF4`Y51C6~!UeV+hj zn~}p|Yn(ZVWZDKX6MLbrBmKe;qsc4`a^cBh*guLrR7j%r4{ySU5E2CTpikM`>!a@e z?WxZNlmqaqppPDs%wNCx<0XuxdiEgUSkNJ@_HtLRzn88Umz#7v*>bLmdE;ms(0bKw z{M1X7As1bdx!$R6W&_i)1$jWiZ)4#WrB5UzIGxtr;Qc?oHLVMIw6;I+X}ufP+}T$V z2rIyC6uEsD{u~oW#DYH^eNn{<#@aJDw@d2LZ{h-<@ci7ahs6jVjRtr`1)?k2u6lyQ zMU*~C~~>EDg505HQq z|4ucj$+Zl{sRAC<6zc~-EVvt9922Xy`qc4ifXM*69*Q~1g{Jxo!SvZDq&ETJxEC3q z%^&3eDoq_%*QaI55St>1>rp4obzJ8QGm(F+4{$AHL=Vq1efw36cr^L<7EO3A)WdS+K7hVPS=KaRX)A>XtZ27SwjlS&? zK{KOWd`Ch8b*BE%=iCG1U-6#GLxzwGF%4}s|Hg;@r%NPrf-`uX+4cdFH7cq&=Ok(#vLco7~j4!t*o(+{^3cJTEO2 zek)IUmV8^Fh<#^P9xW7dE**$v=y`oCJzjdVUP3P8d5;54n?{Z*jM%JQ>xu(&LtN>M zP%;l#_y(8&r&TL&c0JyVgMTu~Wq6=eZD|4asf8rqdhpE^sBS(UCr)?>|D-biv~ca< zQII}4_M25Oz>^q&>LraY+0TAdB`z4IjGiReoAFz4prMMsH-K8)9 zqT=b`@M<0b+sCk2b0%@C7`DMUa$lq`FRt;-k9aCx!_CV6irvS06GlZkuJ!?&4Dt9QCE2LG^?@9PlOUQrnl*oVJBFM zjR(E4hG3}SB(4;azs*aWD_-1Sn{Be-d2QR0{_Z}<+k`BUn^+trM)4d0m9dd^90do! zQ7i(``U?4Uc#;v0TK9Ue+thG zs}%`^R01TFW6#{S9mh!(#OXv$<4%2(xSfhjW@~I({pG!G&U5JQ;Dem}YV#}+l&$O* z2>{KR5N}a!@s-l>x71KPOE)XP9BKIyyY z0Wf3vauAWQ7m5`t|6Y`TV=(XGKl=E-=nMzpn0gZ;(wDXs~xC z*>n*Bz&{0IqjV`H;A0oE1ErC=?mhw-=+sOXxt@M3HLRUZ&G)*!33Q@To=_(L=Grah z7D*+|4$w`O?}q|L4kM+wdcfJSK-8)9>Yh8HX21Ix$<}QstC7->H;I;YCankEAtnF} zoh=ShIWP7|K<_x&DC)ew)VVsYX64Z4>pPzth)v4lT44f+4S&@SC2@|R0paQ7p+KjS zq$M0ucJny?GX(~6JXFFfnAa@}a;&cd`tMPrR1d=#MlH)li1XfJs5M~b`+;H^`&upL zqr32Z>6`A$2m#*|q3&Y#`LIjc{DP$_WdY236{(*|5*1cWo34HnXRxvP(?=7-r`>I4y-#nw=0p?3G4I@N zUOvG7sE|fk_7-KIJ~!w3;@Hl8LfuZ%u9qfji>(dk}_G1Yko~j>T6c!=aR50`9)D77Q*95NNsohBTzQ z?Q#k}t8l{9#3BJ`s6!B$5khu<8m>(S>^^vatouQTU%vMC<`O-D7vMi_*5u|eB3r3a zoZH+1c7AXh2(?}p_xX7##`2-u3W_@Qy{?V}piLt8=j5-*!_~}716+>Bl#*Kz!jKQB zx&6tkfxWH`m=!nT_qjxH2;d+nU&5N3abn0S+9q(HD(|o0ij$RqSRHw-KD2BapkN2Q zAHu^KiCYn*Aangh%OJUfygu^LdWVXT1Ddc(d56~0nLGaDYBG9{EvkXQcrB}oRaYpH z9>8*5WTsIcg3a6oqOb9}?q;ekg=Q~V>~3T>*P68evk0d-A;EOy?*Xb4tZ5ax;DJJ)b4eCJmDn3(2s$o zP9BUR$Tu0tgwXn2fHuiG;~a++llDc0z+~Ca_r%}?nHxvBSo(9mFk{u+xG`5>4Pu6> z5#%N3?56DDnwK7|3&Wwryq*oxRj;bSUa~pHO~+j=LdB=I2Awq)YkI54scc!Rn6LppL#}fEu39#RR6=4_?%I2)kRmX zMG>)dDOcf}oPyhFjf_Kq;dG_i8p_APXFpaC`lQWdUh_L}aHE1ZX5BNX9fp^Wt@|{< z8l+K>y;y(U&w<2)wW;n0AE;`8zI~$$5SgJ{LC-lwF86)rcezi1;4+@CG=!3m9c_2z zaP|Id9o~QxHqx6)7yVk`S2P&>LXpFYN&(RMFp;anjClNlK6>U7aQJtNuz%c)H!?1bPXlTmCM%-Hj&pgv_RY_hPZ(!80*6$D zw_y5-Bjf#-kZ{%C9B`DZrM?g4s46ntMeTV9OI=A5D9`%ZUOo8|&4j49F399d^c2!K z+;%rNlw_jGl$u{u2OS|nEs6_PQ7PjiT6+q$wJ18JA9aX(D?5?ux=B-w`~Z&s##hz- zX8vsVu_+t5I(owKx%2*vbI`W2xkX9qqy3+{&5>ir$_P9EyKDfCOTMqzx%980OMaGM zR$!16V^u5e>zw0^1yNS;p96rj!= zp2O7xWb<=9f5)@UUJ8Uh6dXbK5FI#zF7FofwPjL|qpu^`)1W4pOhf9Kh0Kp11^?6n z8M-*Q^f2CEyHV&YL>fqbyVi=^aNSPog&TYeUAphae&YP7k1$>EIAx1_RywT$#%|FK zCF6~q7H7azb^7WZj62~)9NY2s)ChnmK6&yYzlXfyg%s1`3=*k)9Lf?V80f;_@I%6I zq#Hu~Lov+@rlDr9F(cBG+Zve)xd3n;TbQv{FRBxy*xS8+(HOsbHm%~Oe)E2Mr}sVZ zJ!Tk8%lS8=U*4;>Hjk4js+_AweJH$oIVrAC{tUX%hjv_7&ZV?3+N2OF)T|mSeYnYg zEPemXU|W!vVI72W)BFpu7hcOE3MU^~Rzzhd+*{7RIYGP5-d^*b+%qJZ?{z*KE(+w; zjis_evEABWYr6{UWm=05%Tw+tgbEquyzuZt0Ekws!R=l(R_r9D!dCrgyiKOvy6>9p za|tSw)lw~db;h;Usc8#Y5+irvUvdQ9x)aTa8Ox_`Q|ma2GFnYaU*2Dt&OM}0<&d+N z26mKrp2&&A-J}m6@jLsvs1|`?zLkXR<|iVj$dEj>0OT_YGmuXpE~sqm9v%+y68E2C z7QDbk3nWABg+muyLKyhyw;#EaF&Aj4$Z*W8lCaq}3KT5)2FVvI_ApY6nT$GTf@TAg zdNlMNUvPItKKwhfPq>)x_he3gMX9)fAj%E+4VAw)zXXAC85!uJ;FsVk-1ETi;^s6a zgl|Q=-LglIr?8Z(%vBr-mI>Xi&h`VNmwMmOYc(}2PNjgE2Ne*twZi1gIh5<{O-gyb zrTnvakrsNFocz_!w3=@S#aw302cbZ=$z+Mn4R)xwNmjHX?PZzCctJeSGUk64e|2p> zU6Gf^prdz_!o^FozuT^KUqQjtm#;7woy|sXPVWD43w#JS + + + + + +JBus: include/jbus/Listener.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Listener.hpp
+
+
+Go to the documentation of this file.
1 #ifndef JBUS_LISTENER_HPP
2 #define JBUS_LISTENER_HPP
3 
4 #include "Common.hpp"
5 #include "Socket.hpp"
6 #include <thread>
7 #include <queue>
8 #include <mutex>
9 
10 namespace jbus
11 {
12 
14 class Listener
15 {
16  net::Socket m_dataServer = {false};
17  net::Socket m_clockServer = {false};
18  std::thread m_listenerThread;
19  std::mutex m_queueLock;
20  std::queue<std::unique_ptr<Endpoint>> m_endpointQueue;
21  bool m_running = false;
22 
23  static const uint32_t DataPort = 0xd6ba;
24  static const uint32_t ClockPort = 0xc10c;
25 
26  void listenerProc();
27 
28 public:
30  void start();
31 
33  void stop();
34 
37  std::unique_ptr<Endpoint> accept();
38 
39  ~Listener();
40 };
41 
42 }
43 
44 #endif // JBUS_LISTENER_HPP
Definition: Listener.hpp:14
+
void start()
Start listener thread.
+
Definition: Common.hpp:8
+
Definition: Socket.hpp:103
+ + +
std::unique_ptr< Endpoint > accept()
Pop jbus::Endpoint off Listener&#39;s queue.
+
void stop()
Request stop of listener thread and block until joined.
+ +
+
+ + + + diff --git a/Socket_8hpp.html b/Socket_8hpp.html new file mode 100644 index 0000000..0f21e78 --- /dev/null +++ b/Socket_8hpp.html @@ -0,0 +1,170 @@ + + + + + + +JBus: include/jbus/Socket.hpp File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Socket.hpp File Reference
+
+
+
#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netinet/tcp.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+#include <unistd.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <fcntl.h>
+#include <string>
+#include "Common.hpp"
+
+Include dependency graph for Socket.hpp:
+
+
+ + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + + +

+Classes

class  jbus::net::IPAddress
 
class  jbus::net::Socket
 
+ + + + + +

+Namespaces

 jbus
 
 jbus::net
 
+
+
+ + + + diff --git a/Socket_8hpp.js b/Socket_8hpp.js new file mode 100644 index 0000000..cf0c2e9 --- /dev/null +++ b/Socket_8hpp.js @@ -0,0 +1,5 @@ +var Socket_8hpp = +[ + [ "IPAddress", "classjbus_1_1net_1_1IPAddress.html", "classjbus_1_1net_1_1IPAddress" ], + [ "Socket", "classjbus_1_1net_1_1Socket.html", "classjbus_1_1net_1_1Socket" ] +]; \ No newline at end of file diff --git a/Socket_8hpp__dep__incl.map b/Socket_8hpp__dep__incl.map new file mode 100644 index 0000000..f908038 --- /dev/null +++ b/Socket_8hpp__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/Socket_8hpp__dep__incl.md5 b/Socket_8hpp__dep__incl.md5 new file mode 100644 index 0000000..0fec34a --- /dev/null +++ b/Socket_8hpp__dep__incl.md5 @@ -0,0 +1 @@ +3ade9fa685eb5dfb338beead7f74a6cb \ No newline at end of file diff --git a/Socket_8hpp__dep__incl.png b/Socket_8hpp__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..b45bfa6db066b34291e95e2d16b80ba308cda385 GIT binary patch literal 10438 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 + + diff --git a/Socket_8hpp__incl.md5 b/Socket_8hpp__incl.md5 new file mode 100644 index 0000000..03eb442 --- /dev/null +++ b/Socket_8hpp__incl.md5 @@ -0,0 +1 @@ +6e52ae1bcc85ab55b0fa4919d6ff426a \ No newline at end of file diff --git a/Socket_8hpp__incl.png b/Socket_8hpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..65f1a60ee17c019121529d49c2ceaa163a70ce99 GIT binary patch literal 36568 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 + + + + + +JBus: include/jbus/Socket.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Socket.hpp
+
+
+Go to the documentation of this file.
1 #ifndef JBUS_SOCKET_HPP
2 #define JBUS_SOCKET_HPP
3 
4 #ifndef _WIN32
5 #include <sys/socket.h>
6 #include <netinet/in.h>
7 #include <netinet/tcp.h>
8 #include <arpa/inet.h>
9 #include <netdb.h>
10 #include <unistd.h>
11 #include <errno.h>
12 #else
13 #include <winsock2.h>
14 #include <Ws2tcpip.h>
15 #endif
16 
17 #include <sys/types.h>
18 #include <fcntl.h>
19 #include <string>
20 
21 #include "Common.hpp"
22 
23 namespace jbus
24 {
25 namespace net
26 {
27 
28 /* Define the low-level send/receive flags, which depend on the OS */
29 #ifdef __linux__
30 static const int _flags = MSG_NOSIGNAL;
31 #else
32 static const int _flags = 0;
33 #endif
34 
36 class IPAddress
37 {
38  uint32_t m_address = 0;
39  bool m_valid = false;
40 
41  void resolve(const std::string& address)
42  {
43  m_address = 0;
44  m_valid = false;
45 
46  if (address == "255.255.255.255")
47  {
48  /* The broadcast address needs to be handled explicitly,
49  * because it is also the value returned by inet_addr on error */
50  m_address = INADDR_BROADCAST;
51  m_valid = true;
52  }
53  else if (address == "0.0.0.0")
54  {
55  m_address = INADDR_ANY;
56  m_valid = true;
57  }
58  else
59  {
60  /* Try to convert the address as a byte representation ("xxx.xxx.xxx.xxx") */
61  struct in_addr addr;
62  if (inet_pton(AF_INET, address.c_str(), &addr) == 1)
63  {
64  m_address = addr.s_addr;
65  m_valid = true;
66  }
67  else
68  {
69  /* Not a valid address, try to convert it as a host name */
70  addrinfo hints;
71  memset(&hints, 0, sizeof(hints));
72  hints.ai_family = AF_INET;
73  addrinfo* result = NULL;
74  if (getaddrinfo(address.c_str(), NULL, &hints, &result) == 0)
75  {
76  if (result)
77  {
78  addr = reinterpret_cast<sockaddr_in*>(result->ai_addr)->sin_addr;
79  freeaddrinfo(result);
80  m_address = addr.s_addr;
81  m_valid = true;
82  }
83  }
84  }
85  }
86  }
87 
88 public:
89  IPAddress(const std::string& address)
90  {
91  resolve(address);
92  }
93 
94  uint32_t toInteger() const
95  {
96  return ntohl(m_address);
97  }
98 
99  operator bool() const { return m_valid; }
100 };
101 
103 class Socket
104 {
105 #ifndef _WIN32
106  using SocketTp = int;
107 #else
108  using SocketTp = SOCKET;
109 #endif
110  SocketTp m_socket = -1;
111  bool m_isBlocking;
112 
113  static sockaddr_in createAddress(uint32_t address, unsigned short port)
114  {
115  sockaddr_in addr;
116  memset(&addr, 0, sizeof(addr));
117  addr.sin_addr.s_addr = htonl(address);
118  addr.sin_family = AF_INET;
119  addr.sin_port = htons(port);
120 
121 #ifdef __APPLE__
122  addr.sin_len = sizeof(addr);
123 #endif
124 
125  return addr;
126  }
127 
128  bool openSocket()
129  {
130  if (isOpen())
131  return false;
132 
133  m_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
134  if (m_socket == -1)
135  {
136  fprintf(stderr, "Can't allocate socket\n");
137  return false;
138  }
139 
140  int one = 1;
141  setsockopt(m_socket, IPPROTO_TCP, TCP_NODELAY, reinterpret_cast<char*>(&one), sizeof(one));
142 #ifdef __APPLE__
143  setsockopt(m_socket, SOL_SOCKET, SO_NOSIGPIPE, reinterpret_cast<char*>(&one), sizeof(one));
144 #endif
145 
146  setBlocking(m_isBlocking);
147 
148  return true;
149  }
150 
151  void setRemoteSocket(int remSocket)
152  {
153  close();
154  m_socket = remSocket;
155  setBlocking(m_isBlocking);
156  }
157 
158 public:
159  enum class EResult
160  {
161  OK,
162  Error,
163  Busy
164  };
165 
166 #ifdef _WIN32
167  static EResult LastWSAError()
168  {
169  switch (WSAGetLastError())
170  {
171  case WSAEWOULDBLOCK:
172  case WSAEALREADY:
173  return EResult::Busy;
174  default:
175  return EResult::Error;
176  }
177  }
178 #endif
179 
180  Socket(bool blocking)
181  : m_isBlocking(blocking) {}
182  ~Socket() { close(); }
183 
184  Socket(const Socket& other) = delete;
185  Socket& operator=(const Socket& other) = delete;
186  Socket(Socket&& other)
187  : m_socket(other.m_socket), m_isBlocking(other.m_isBlocking)
188  {
189  other.m_socket = -1;
190  }
192  {
193  close();
194  m_socket = other.m_socket;
195  other.m_socket = -1;
196  m_isBlocking = other.m_isBlocking;
197  return *this;
198  }
199 
200  void setBlocking(bool blocking)
201  {
202  m_isBlocking = blocking;
203 #ifndef _WIN32
204  int status = fcntl(m_socket, F_GETFL);
205  if (m_isBlocking)
206  fcntl(m_socket, F_SETFL, status & ~O_NONBLOCK);
207  else
208  fcntl(m_socket, F_SETFL, status | O_NONBLOCK);
209 #else
210  u_long b = blocking ? 0 : 1;
211  ioctlsocket(m_socket, FIONBIO, &b);
212 #endif
213  }
214 
215  bool isOpen() const { return m_socket != -1; }
216  bool openAndListen(const IPAddress& address, uint32_t port)
217  {
218  if (!openSocket())
219  return false;
220 
221  sockaddr_in addr = createAddress(address.toInteger(), port);
222  if (bind(m_socket, reinterpret_cast<sockaddr*>(&addr), sizeof(addr)) == -1)
223  {
224  /* Not likely to happen, but... */
225  fprintf(stderr, "Failed to bind listener socket to port %d\n", port);
226  return false;
227  }
228 
229  if (::listen(m_socket, 0) == -1)
230  {
231  /* Oops, socket is deaf */
232  fprintf(stderr, "Failed to listen to port %d\n", port);
233  return false;
234  }
235 
236  return true;
237  }
238 
239  EResult accept(Socket& remoteSocketOut, sockaddr_in& fromAddress)
240  {
241  if (!isOpen())
242  return EResult::Error;
243 
244  /* Accept a new connection */
245  socklen_t length = sizeof(sockaddr_in);
246  int remoteSocket = ::accept(m_socket, reinterpret_cast<sockaddr*>(&fromAddress), &length);
247 
248  /* Check for errors */
249  if (remoteSocket == -1)
250  {
251 #ifndef _WIN32
252  EResult res = (errno == EAGAIN) ? EResult::Busy : EResult::Error;
253  if (res == EResult::Error)
254  fprintf(stderr, "Failed to accept incoming connection: %s\n", strerror(errno));
255 #else
256  EResult res = LastWSAError();
257  if (res == EResult::Error)
258  fprintf(stderr, "Failed to accept incoming connection\n");
259 #endif
260  return res;
261  }
262 
263  /* Initialize the new connected socket */
264  remoteSocketOut.setRemoteSocket(remoteSocket);
265 
266  return EResult::OK;
267  }
268 
269  EResult accept(Socket& remoteSocketOut)
270  {
271  sockaddr_in fromAddress;
272  return accept(remoteSocketOut, fromAddress);
273  }
274 
275  EResult accept(Socket& remoteSocketOut, std::string& fromHostname)
276  {
277  sockaddr_in fromAddress;
278  socklen_t len = sizeof(fromAddress);
279  char name[NI_MAXHOST];
280  EResult res = accept(remoteSocketOut, fromAddress);
281  if (res == EResult::OK)
282  if (getnameinfo((sockaddr*)&fromAddress, len, name, NI_MAXHOST, nullptr, 0, 0) == 0)
283  fromHostname.assign(name);
284  return res;
285  }
286 
287  void close()
288  {
289  if (!isOpen())
290  return;
291 #ifndef _WIN32
292  ::close(m_socket);
293 #else
294  closesocket(m_socket);
295 #endif
296  m_socket = -1;
297  }
298 
299  EResult send(const void* buf, size_t len, size_t& transferred)
300  {
301  transferred = 0;
302  if (!isOpen())
303  return EResult::Error;
304 
305  if (!buf || !len)
306  return EResult::Error;
307 
308  /* Loop until every byte has been sent */
309  int result = 0;
310  for (size_t sent = 0; sent < len; sent += result)
311  {
312  /* Send a chunk of data */
313  result = ::send(m_socket, static_cast<const char*>(buf) + sent, len - sent, _flags);
314 
315  /* Check for errors */
316  if (result < 0)
317 #ifndef _WIN32
318  return (errno == EAGAIN) ? EResult::Busy : EResult::Error;
319 #else
320  return LastWSAError();
321 #endif
322  }
323 
324  transferred = len;
325  return EResult::OK;
326  }
327 
328  EResult send(const void* buf, size_t len)
329  {
330  size_t transferred;
331  return send(buf, len, transferred);
332  }
333 
334  EResult recv(void* buf, size_t len, size_t& transferred)
335  {
336  transferred = 0;
337  if (!isOpen())
338  return EResult::Error;
339 
340  if (!buf)
341  return EResult::Error;
342 
343  if (!len)
344  return EResult::OK;
345 
346  /* Receive a chunk of bytes */
347  int result = ::recv(m_socket, static_cast<char*>(buf), static_cast<int>(len), _flags);
348 
349  if (result < 0)
350 #ifndef _WIN32
351  return (errno == EAGAIN) ? EResult::Busy : EResult::Error;
352 #else
353  return LastWSAError();
354 #endif
355  else if (result == 0)
356  return EResult::Error;
357 
358  transferred = result;
359  return EResult::OK;
360  }
361 
362  EResult recv(void* buf, size_t len)
363  {
364  size_t transferred;
365  return recv(buf, len, transferred);
366  }
367 
368  operator bool() const { return isOpen(); }
369 
370  SocketTp GetInternalSocket() const { return m_socket; }
371 };
372 
373 }
374 }
375 
376 #endif // JBUS_SOCKET_HPP
SocketTp GetInternalSocket() const
Definition: Socket.hpp:370
+
EResult send(const void *buf, size_t len, size_t &transferred)
Definition: Socket.hpp:299
+
bool openAndListen(const IPAddress &address, uint32_t port)
Definition: Socket.hpp:216
+
EResult recv(void *buf, size_t len)
Definition: Socket.hpp:362
+
Definition: Common.hpp:8
+
Definition: Socket.hpp:103
+
bool isOpen() const
Definition: Socket.hpp:215
+
EResult recv(void *buf, size_t len, size_t &transferred)
Definition: Socket.hpp:334
+
void close()
Definition: Socket.hpp:287
+
~Socket()
Definition: Socket.hpp:182
+
Definition: Socket.hpp:36
+
Socket & operator=(Socket &&other)
Definition: Socket.hpp:191
+
EResult accept(Socket &remoteSocketOut)
Definition: Socket.hpp:269
+
uint32_t toInteger() const
Definition: Socket.hpp:94
+
Socket(Socket &&other)
Definition: Socket.hpp:186
+
EResult send(const void *buf, size_t len)
Definition: Socket.hpp:328
+
EResult accept(Socket &remoteSocketOut, sockaddr_in &fromAddress)
Definition: Socket.hpp:239
+ +
EResult
Definition: Socket.hpp:159
+
Socket(bool blocking)
Definition: Socket.hpp:180
+
void setBlocking(bool blocking)
Definition: Socket.hpp:200
+
EResult accept(Socket &remoteSocketOut, std::string &fromHostname)
Definition: Socket.hpp:275
+
IPAddress(const std::string &address)
Definition: Socket.hpp:89
+
+
+ + + + diff --git a/annotated.html b/annotated.html new file mode 100644 index 0000000..f30c994 --- /dev/null +++ b/annotated.html @@ -0,0 +1,134 @@ + + + + + + +JBus: Class List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 123]
+ + + + + + + +
 Njbus
 Nnet
 CIPAddress
 CSocket
 CEndpoint
 CListener
 CThreadLocalEndpoint
+
+
+
+ + + + diff --git a/annotated_dup.js b/annotated_dup.js new file mode 100644 index 0000000..1c6b274 --- /dev/null +++ b/annotated_dup.js @@ -0,0 +1,4 @@ +var annotated_dup = +[ + [ "jbus", "namespacejbus.html", "namespacejbus" ] +]; \ No newline at end of file diff --git a/arrowdown.png b/arrowdown.png new file mode 100644 index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22 GIT binary patch literal 246 zcmVkw!R34#Lv2LOS^S2tZA31X++9RY}n zChwn@Z)Wz*WWHH{)HDtJnq&A2hk$b-y(>?@z0iHr41EKCGp#T5?07*qoM6N<$f(V3Pvj6}9 literal 0 HcmV?d00001 diff --git a/arrowright.png b/arrowright.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ee22f937a07d1dbfc27c669d11f8ed13e2f152 GIT binary patch literal 229 zcmV^P)R?RzRoKvklcaQ%HF6%rK2&ZgO(-ihJ_C zzrKgp4jgO( fd_(yg|3PpEQb#9`a?Pz_00000NkvXXu0mjftR`5K literal 0 HcmV?d00001 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/bdwn.png b/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T + + + + + +JBus: Class Index + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+
+
E | I | L | S | T
+ + + + + +
  E  
+
  I  
+
  L  
+
  S  
+
  T  
+
Endpoint (jbus)   IPAddress (jbus::net)   Listener (jbus)   Socket (jbus::net)   ThreadLocalEndpoint (jbus)   
+
E | I | L | S | T
+
+
+ + + + diff --git a/classjbus_1_1Endpoint-members.html b/classjbus_1_1Endpoint-members.html new file mode 100644 index 0000000..8756ec9 --- /dev/null +++ b/classjbus_1_1Endpoint-members.html @@ -0,0 +1,141 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
jbus::Endpoint Member List
+
+
+ +

This is the complete list of members for jbus::Endpoint, including all inherited members.

+ + + + + + + + + + + + + + + + +
Endpoint(u8 chan, net::Socket &&data, net::Socket &&clock)jbus::Endpoint
GBAGetProcessStatus(u8 &percentOut)jbus::Endpoint
GBAGetStatus(u8 *status)jbus::Endpoint
GBAGetStatusAsync(u8 *status, FGBACallback &&callback)jbus::Endpoint
GBAJoyBootAsync(s32 paletteColor, s32 paletteSpeed, const u8 *programp, s32 length, u8 *status, FGBACallback &&callback)jbus::Endpoint
GBARead(u8 *dst, u8 *status)jbus::Endpoint
GBAReadAsync(u8 *dst, u8 *status, FGBACallback &&callback)jbus::Endpoint
GBAReset(u8 *status)jbus::Endpoint
GBAResetAsync(u8 *status, FGBACallback &&callback)jbus::Endpoint
GBAWrite(const u8 *src, u8 *status)jbus::Endpoint
GBAWriteAsync(const u8 *src, u8 *status, FGBACallback &&callback)jbus::Endpoint
GetChan() const jbus::Endpointinline
stop()jbus::Endpoint
ThreadLocalEndpoint classjbus::Endpointfriend
~Endpoint()jbus::Endpoint
+
+ + + + diff --git a/classjbus_1_1Endpoint.html b/classjbus_1_1Endpoint.html new file mode 100644 index 0000000..36b217e --- /dev/null +++ b/classjbus_1_1Endpoint.html @@ -0,0 +1,710 @@ + + + + + + +JBus: jbus::Endpoint Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
jbus::Endpoint Class Reference
+
+
+ +

#include <Endpoint.hpp>

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

+Public Member Functions

void stop ()
 Request stop of I/O thread and block until joined. Further use of this Endpoint is undefined behavior. The destructor calls this implicitly. More...
 
EJoyReturn GBAGetProcessStatus (u8 &percentOut)
 Get status of last asynchronous operation. More...
 
EJoyReturn GBAGetStatusAsync (u8 *status, FGBACallback &&callback)
 Get JOYSTAT register from GBA asynchronously. More...
 
EJoyReturn GBAGetStatus (u8 *status)
 Get JOYSTAT register from GBA synchronously. More...
 
EJoyReturn GBAResetAsync (u8 *status, FGBACallback &&callback)
 Send RESET command to GBA asynchronously. More...
 
EJoyReturn GBAReset (u8 *status)
 Send RESET command to GBA synchronously. More...
 
EJoyReturn GBAReadAsync (u8 *dst, u8 *status, FGBACallback &&callback)
 Send READ command to GBA asynchronously. More...
 
EJoyReturn GBARead (u8 *dst, u8 *status)
 Send READ command to GBA synchronously. More...
 
EJoyReturn GBAWriteAsync (const u8 *src, u8 *status, FGBACallback &&callback)
 Send WRITE command to GBA asynchronously. More...
 
EJoyReturn GBAWrite (const u8 *src, u8 *status)
 Send WRITE command to GBA synchronously. More...
 
EJoyReturn GBAJoyBootAsync (s32 paletteColor, s32 paletteSpeed, const u8 *programp, s32 length, u8 *status, FGBACallback &&callback)
 Initiate JoyBoot sequence on this endpoint. More...
 
int GetChan () const
 Get virtual SI channel assigned to this endpoint. More...
 
 Endpoint (u8 chan, net::Socket &&data, net::Socket &&clock)
 
 ~Endpoint ()
 
+ + + +

+Friends

class ThreadLocalEndpoint
 
+

Detailed Description

+

Main class for performing JoyBoot and subsequent JoyBus I/O operations. Instances should be obtained though the jbus::Listener::accept method.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
jbus::Endpoint::Endpoint (u8 chan,
net::Socket && data,
net::Socket && clock 
)
+
+ +

+Here is the caller graph for this function:
+
+
+ + + + +
+

+ +
+
+ +
+
+ + + + + + + +
jbus::Endpoint::~Endpoint ()
+
+ +

+Here is the caller graph for this function:
+
+
+ + + + +
+

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + +
EJoyReturn jbus::Endpoint::GBAGetProcessStatus (u8percentOut)
+
+ +

Get status of last asynchronous operation.

+
Parameters
+ + +
percentOutReference to output transfer percent of GBAJoyBootAsync.
+
+
+
Returns
GBA_READY when idle, or GBA_BUSY when operation in progress.
+ +
+
+ +
+
+ + + + + + + + +
EJoyReturn jbus::Endpoint::GBAGetStatus (u8status)
+
+ +

Get JOYSTAT register from GBA synchronously.

+
Parameters
+ + +
statusDestination pointer for EJStatFlags.
+
+
+
Returns
GBA_READY if submitted, or GBA_NOT_READY if another operation in progress.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
EJoyReturn jbus::Endpoint::GBAGetStatusAsync (u8status,
FGBACallback && callback 
)
+
+ +

Get JOYSTAT register from GBA asynchronously.

+
Parameters
+ + + +
statusDestination pointer for EJStatFlags.
callbackFunctor to execute when operation completes.
+
+
+
Returns
GBA_READY if submitted, or GBA_NOT_READY if another operation in progress.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EJoyReturn jbus::Endpoint::GBAJoyBootAsync (s32 paletteColor,
s32 paletteSpeed,
const u8programp,
s32 length,
u8status,
FGBACallback && callback 
)
+
+ +

Initiate JoyBoot sequence on this endpoint.

+
Parameters
+ + + + + + + +
paletteColorPalette for displaying logo in ROM header [0,6].
paletteSpeedPalette interpolation speed for displaying logo in ROM header [-4,4].
programpPointer to program ROM data.
lengthLength of program ROM data.
statusDestination pointer for EJStatFlags.
callbackFunctor to execute when operation completes.
+
+
+
Returns
GBA_READY if submitted, or GBA_NOT_READY if another operation in progress.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
EJoyReturn jbus::Endpoint::GBARead (u8dst,
u8status 
)
+
+ +

Send READ command to GBA synchronously.

+
Parameters
+ + + +
dstDestination pointer for 4-byte packet of data.
statusDestination pointer for EJStatFlags.
+
+
+
Returns
GBA_READY if submitted, or GBA_NOT_READY if another operation in progress.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
EJoyReturn jbus::Endpoint::GBAReadAsync (u8dst,
u8status,
FGBACallback && callback 
)
+
+ +

Send READ command to GBA asynchronously.

+
Parameters
+ + + + +
dstDestination pointer for 4-byte packet of data.
statusDestination pointer for EJStatFlags.
callbackFunctor to execute when operation completes.
+
+
+
Returns
GBA_READY if submitted, or GBA_NOT_READY if another operation in progress.
+ +
+
+ +
+
+ + + + + + + + +
EJoyReturn jbus::Endpoint::GBAReset (u8status)
+
+ +

Send RESET command to GBA synchronously.

+
Parameters
+ + +
statusDestination pointer for EJStatFlags.
+
+
+
Returns
GBA_READY if submitted, or GBA_NOT_READY if another operation in progress.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
EJoyReturn jbus::Endpoint::GBAResetAsync (u8status,
FGBACallback && callback 
)
+
+ +

Send RESET command to GBA asynchronously.

+
Parameters
+ + + +
statusDestination pointer for EJStatFlags.
callbackFunctor to execute when operation completes.
+
+
+
Returns
GBA_READY if submitted, or GBA_NOT_READY if another operation in progress.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
EJoyReturn jbus::Endpoint::GBAWrite (const u8src,
u8status 
)
+
+ +

Send WRITE command to GBA synchronously.

+
Parameters
+ + + +
srcSource pointer for 4-byte packet of data. It is not required to keep resident.
statusDestination pointer for EJStatFlags.
+
+
+
Returns
GBA_READY if submitted, or GBA_NOT_READY if another operation in progress.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
EJoyReturn jbus::Endpoint::GBAWriteAsync (const u8src,
u8status,
FGBACallback && callback 
)
+
+ +

Send WRITE command to GBA asynchronously.

+
Parameters
+ + + + +
srcSource pointer for 4-byte packet of data. It is not required to keep resident.
statusDestination pointer for EJStatFlags.
callbackFunctor to execute when operation completes.
+
+
+
Returns
GBA_READY if submitted, or GBA_NOT_READY if another operation in progress.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int jbus::Endpoint::GetChan () const
+
+inline
+
+ +

Get virtual SI channel assigned to this endpoint.

+
Returns
SI channel
+ +

+Here is the call graph for this function:
+
+
+ + + + +
+

+ +

+Here is the caller graph for this function:
+
+
+ + + +
+

+ +
+
+ +
+
+ + + + + + + +
void jbus::Endpoint::stop ()
+
+ +

Request stop of I/O thread and block until joined. Further use of this Endpoint is undefined behavior. The destructor calls this implicitly.

+ +
+
+

Friends And Related Function Documentation

+ +
+
+ + + + + +
+ + + + +
friend class ThreadLocalEndpoint
+
+friend
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classjbus_1_1Endpoint.js b/classjbus_1_1Endpoint.js new file mode 100644 index 0000000..56e5075 --- /dev/null +++ b/classjbus_1_1Endpoint.js @@ -0,0 +1,18 @@ +var classjbus_1_1Endpoint = +[ + [ "Endpoint", "classjbus_1_1Endpoint.html#a39ddcbf5ac7078d59a4d99d291e3f0fa", null ], + [ "~Endpoint", "classjbus_1_1Endpoint.html#ad39f268d3bee438e5176cc7f4cf59675", null ], + [ "GBAGetProcessStatus", "classjbus_1_1Endpoint.html#a50401a9a9d658f1f68e3dde61d5dfbce", null ], + [ "GBAGetStatus", "classjbus_1_1Endpoint.html#a779ba524cf30f41e29fd53a626ba2acf", null ], + [ "GBAGetStatusAsync", "classjbus_1_1Endpoint.html#a4ba9120b99057be42940b797708b790e", null ], + [ "GBAJoyBootAsync", "classjbus_1_1Endpoint.html#aad76a9374e4e151540f678798548a843", null ], + [ "GBARead", "classjbus_1_1Endpoint.html#a775c816f52ca45117759b5b23eb45683", null ], + [ "GBAReadAsync", "classjbus_1_1Endpoint.html#a047d724cc9ccb8253cb8464c24b9ccd4", null ], + [ "GBAReset", "classjbus_1_1Endpoint.html#a9065f6189182596a3f5c498e8ef98b40", null ], + [ "GBAResetAsync", "classjbus_1_1Endpoint.html#a81d86608ffb93b3211a915fa1712beb4", null ], + [ "GBAWrite", "classjbus_1_1Endpoint.html#a6e59373aa28a23097129470deaeb46dd", null ], + [ "GBAWriteAsync", "classjbus_1_1Endpoint.html#a06506d0cfa26d461f239ed761264d7b0", null ], + [ "GetChan", "classjbus_1_1Endpoint.html#acb5167184768ea65d026adc531f237b9", null ], + [ "stop", "classjbus_1_1Endpoint.html#a1cae93f2e1e097b10b34810a0d04333f", null ], + [ "ThreadLocalEndpoint", "classjbus_1_1Endpoint.html#ab5de6af29530791b0b2958002f1d3603", null ] +]; \ No newline at end of file diff --git a/classjbus_1_1Endpoint_a39ddcbf5ac7078d59a4d99d291e3f0fa_icgraph.map b/classjbus_1_1Endpoint_a39ddcbf5ac7078d59a4d99d291e3f0fa_icgraph.map new file mode 100644 index 0000000..dcf7667 --- /dev/null +++ b/classjbus_1_1Endpoint_a39ddcbf5ac7078d59a4d99d291e3f0fa_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classjbus_1_1Endpoint_a39ddcbf5ac7078d59a4d99d291e3f0fa_icgraph.md5 b/classjbus_1_1Endpoint_a39ddcbf5ac7078d59a4d99d291e3f0fa_icgraph.md5 new file mode 100644 index 0000000..0e675b1 --- /dev/null +++ b/classjbus_1_1Endpoint_a39ddcbf5ac7078d59a4d99d291e3f0fa_icgraph.md5 @@ -0,0 +1 @@ +824e73d67151deeaf7fbc4f9bdacb8fa \ No newline at end of file diff --git a/classjbus_1_1Endpoint_a39ddcbf5ac7078d59a4d99d291e3f0fa_icgraph.png b/classjbus_1_1Endpoint_a39ddcbf5ac7078d59a4d99d291e3f0fa_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..0f2b48df5543d06725d7f3e4c0905a7ed9891749 GIT binary patch literal 8196 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 + + + diff --git a/classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_cgraph.md5 b/classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_cgraph.md5 new file mode 100644 index 0000000..f48841c --- /dev/null +++ b/classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_cgraph.md5 @@ -0,0 +1 @@ +5461c29e4421ddb263add54dcfaeb124 \ No newline at end of file diff --git a/classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_cgraph.png b/classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..9f5a28184f1d125cde126af143075b1971b01aff GIT binary patch literal 8415 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 literal 0 HcmV?d00001 diff --git a/classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_icgraph.map b/classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_icgraph.map new file mode 100644 index 0000000..5788b5c --- /dev/null +++ b/classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_icgraph.map @@ -0,0 +1,3 @@ + + + diff --git a/classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_icgraph.md5 b/classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_icgraph.md5 new file mode 100644 index 0000000..5259306 --- /dev/null +++ b/classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_icgraph.md5 @@ -0,0 +1 @@ +88ff3e70d76e39b6d00853d83ccd8818 \ No newline at end of file diff --git a/classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_icgraph.png b/classjbus_1_1Endpoint_acb5167184768ea65d026adc531f237b9_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..03f1d094516e67abe0a1702502ae4906a0f4d0ec GIT binary patch literal 6448 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 + + + diff --git a/classjbus_1_1Endpoint_ad39f268d3bee438e5176cc7f4cf59675_icgraph.md5 b/classjbus_1_1Endpoint_ad39f268d3bee438e5176cc7f4cf59675_icgraph.md5 new file mode 100644 index 0000000..02eb3f2 --- /dev/null +++ b/classjbus_1_1Endpoint_ad39f268d3bee438e5176cc7f4cf59675_icgraph.md5 @@ -0,0 +1 @@ +d4c50d26adf2dd5f92ab2ad62f8b9dc0 \ No newline at end of file diff --git a/classjbus_1_1Endpoint_ad39f268d3bee438e5176cc7f4cf59675_icgraph.png b/classjbus_1_1Endpoint_ad39f268d3bee438e5176cc7f4cf59675_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..99e1c80bd7d854705f00e16632d2c55bb59e5fd9 GIT binary patch literal 8545 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 L1*%oB{P6z(roTX; literal 0 HcmV?d00001 diff --git a/classjbus_1_1Listener-members.html b/classjbus_1_1Listener-members.html new file mode 100644 index 0000000..c137193 --- /dev/null +++ b/classjbus_1_1Listener-members.html @@ -0,0 +1,130 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
jbus::Listener Member List
+
+
+ +

This is the complete list of members for jbus::Listener, including all inherited members.

+ + + + + +
accept()jbus::Listener
start()jbus::Listener
stop()jbus::Listener
~Listener()jbus::Listener
+
+ + + + diff --git a/classjbus_1_1Listener.html b/classjbus_1_1Listener.html new file mode 100644 index 0000000..cd592eb --- /dev/null +++ b/classjbus_1_1Listener.html @@ -0,0 +1,218 @@ + + + + + + +JBus: jbus::Listener Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
jbus::Listener Class Reference
+
+
+ +

#include <Listener.hpp>

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

+Public Member Functions

void start ()
 Start listener thread. More...
 
void stop ()
 Request stop of listener thread and block until joined. More...
 
std::unique_ptr< Endpointaccept ()
 Pop jbus::Endpoint off Listener's queue. More...
 
 ~Listener ()
 
+

Detailed Description

+

Server interface for accepting incoming connections from GBA emulator instances.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + +
jbus::Listener::~Listener ()
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + +
std::unique_ptr<Endpoint> jbus::Listener::accept ()
+
+ +

Pop jbus::Endpoint off Listener's queue.

+
Returns
Endpoint instance, ready to issue commands.
+ +
+
+ +
+
+ + + + + + + +
void jbus::Listener::start ()
+
+ +

Start listener thread.

+ +
+
+ +
+
+ + + + + + + +
void jbus::Listener::stop ()
+
+ +

Request stop of listener thread and block until joined.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classjbus_1_1Listener.js b/classjbus_1_1Listener.js new file mode 100644 index 0000000..4454a96 --- /dev/null +++ b/classjbus_1_1Listener.js @@ -0,0 +1,7 @@ +var classjbus_1_1Listener = +[ + [ "~Listener", "classjbus_1_1Listener.html#a979078fd2cb5e4faeaa668dfda8f8e9d", null ], + [ "accept", "classjbus_1_1Listener.html#aca4aeff837a26d69ec7f4dec6572e986", null ], + [ "start", "classjbus_1_1Listener.html#a2fd5a552555c94be0b03bf2c66ea5e2b", null ], + [ "stop", "classjbus_1_1Listener.html#a40c805d7681e609d72acad900579fe76", null ] +]; \ No newline at end of file diff --git a/classjbus_1_1ThreadLocalEndpoint-members.html b/classjbus_1_1ThreadLocalEndpoint-members.html new file mode 100644 index 0000000..c512955 --- /dev/null +++ b/classjbus_1_1ThreadLocalEndpoint-members.html @@ -0,0 +1,132 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
jbus::ThreadLocalEndpoint Member List
+
+
+ +

This is the complete list of members for jbus::ThreadLocalEndpoint, including all inherited members.

+ + + + + + + +
Endpoint classjbus::ThreadLocalEndpointfriend
GBAGetStatusAsync(u8 *status, FGBACallback &&callback)jbus::ThreadLocalEndpoint
GBAReadAsync(u8 *dst, u8 *status, FGBACallback &&callback)jbus::ThreadLocalEndpoint
GBAResetAsync(u8 *status, FGBACallback &&callback)jbus::ThreadLocalEndpoint
GBAWriteAsync(const u8 *src, u8 *status, FGBACallback &&callback)jbus::ThreadLocalEndpoint
GetChan() const jbus::ThreadLocalEndpointinline
+
+ + + + diff --git a/classjbus_1_1ThreadLocalEndpoint.html b/classjbus_1_1ThreadLocalEndpoint.html new file mode 100644 index 0000000..9b09595 --- /dev/null +++ b/classjbus_1_1ThreadLocalEndpoint.html @@ -0,0 +1,377 @@ + + + + + + +JBus: jbus::ThreadLocalEndpoint Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
jbus::ThreadLocalEndpoint Class Reference
+
+
+ +

#include <Endpoint.hpp>

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

+Public Member Functions

EJoyReturn GBAGetStatusAsync (u8 *status, FGBACallback &&callback)
 Get JOYSTAT register from GBA asynchronously. More...
 
EJoyReturn GBAResetAsync (u8 *status, FGBACallback &&callback)
 Send RESET command to GBA asynchronously. More...
 
EJoyReturn GBAReadAsync (u8 *dst, u8 *status, FGBACallback &&callback)
 Send READ command to GBA asynchronously. More...
 
EJoyReturn GBAWriteAsync (const u8 *src, u8 *status, FGBACallback &&callback)
 Send WRITE command to GBA asynchronously. More...
 
int GetChan () const
 Get virtual SI channel assigned to this endpoint. More...
 
+ + + +

+Friends

class Endpoint
 
+

Detailed Description

+

Lockless wrapper interface for jbus::Endpoint. This class is constructed internally and supplied as a callback argument. It should not be constructed directly.

+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
EJoyReturn jbus::ThreadLocalEndpoint::GBAGetStatusAsync (u8status,
FGBACallback && callback 
)
+
+ +

Get JOYSTAT register from GBA asynchronously.

+
Parameters
+ + + +
statusDestination pointer for EJStatFlags.
callbackFunctor to execute when operation completes.
+
+
+
Returns
GBA_READY if submitted, or GBA_NOT_READY if another operation in progress.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
EJoyReturn jbus::ThreadLocalEndpoint::GBAReadAsync (u8dst,
u8status,
FGBACallback && callback 
)
+
+ +

Send READ command to GBA asynchronously.

+
Parameters
+ + + + +
dstDestination pointer for 4-byte packet of data.
statusDestination pointer for EJStatFlags.
callbackFunctor to execute when operation completes.
+
+
+
Returns
GBA_READY if submitted, or GBA_NOT_READY if another operation in progress.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
EJoyReturn jbus::ThreadLocalEndpoint::GBAResetAsync (u8status,
FGBACallback && callback 
)
+
+ +

Send RESET command to GBA asynchronously.

+
Parameters
+ + + +
statusDestination pointer for EJStatFlags.
callbackFunctor to execute when operation completes.
+
+
+
Returns
GBA_READY if submitted, or GBA_NOT_READY if another operation in progress.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
EJoyReturn jbus::ThreadLocalEndpoint::GBAWriteAsync (const u8src,
u8status,
FGBACallback && callback 
)
+
+ +

Send WRITE command to GBA asynchronously.

+
Parameters
+ + + + +
srcSource pointer for 4-byte packet of data. It is not required to keep resident.
statusDestination pointer for EJStatFlags.
callbackFunctor to execute when operation completes.
+
+
+
Returns
GBA_READY if submitted, or GBA_NOT_READY if another operation in progress.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int jbus::ThreadLocalEndpoint::GetChan () const
+
+inline
+
+ +

Get virtual SI channel assigned to this endpoint.

+
Returns
SI channel
+ +

+Here is the call graph for this function:
+
+
+ + + + + +
+

+ +
+
+

Friends And Related Function Documentation

+ +
+
+ + + + + +
+ + + + +
friend class Endpoint
+
+friend
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classjbus_1_1ThreadLocalEndpoint.js b/classjbus_1_1ThreadLocalEndpoint.js new file mode 100644 index 0000000..52381aa --- /dev/null +++ b/classjbus_1_1ThreadLocalEndpoint.js @@ -0,0 +1,9 @@ +var classjbus_1_1ThreadLocalEndpoint = +[ + [ "GBAGetStatusAsync", "classjbus_1_1ThreadLocalEndpoint.html#ad81335c0018a42ef9085d6941c4cddd5", null ], + [ "GBAReadAsync", "classjbus_1_1ThreadLocalEndpoint.html#aa1b9704d834d55b5118d4612dc335f4c", null ], + [ "GBAResetAsync", "classjbus_1_1ThreadLocalEndpoint.html#aab260d6d6686c2c3fc2ff31f57cf436d", null ], + [ "GBAWriteAsync", "classjbus_1_1ThreadLocalEndpoint.html#aa1625ccaf1f817831d56cf32554bc40c", null ], + [ "GetChan", "classjbus_1_1ThreadLocalEndpoint.html#a0899b0293f9eb4b69763d8e1e21e58a9", null ], + [ "Endpoint", "classjbus_1_1ThreadLocalEndpoint.html#a500d74fc41e3ab6b4889a579193566ed", null ] +]; \ No newline at end of file diff --git a/classjbus_1_1ThreadLocalEndpoint_a0899b0293f9eb4b69763d8e1e21e58a9_cgraph.map b/classjbus_1_1ThreadLocalEndpoint_a0899b0293f9eb4b69763d8e1e21e58a9_cgraph.map new file mode 100644 index 0000000..c41398e --- /dev/null +++ b/classjbus_1_1ThreadLocalEndpoint_a0899b0293f9eb4b69763d8e1e21e58a9_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/classjbus_1_1ThreadLocalEndpoint_a0899b0293f9eb4b69763d8e1e21e58a9_cgraph.md5 b/classjbus_1_1ThreadLocalEndpoint_a0899b0293f9eb4b69763d8e1e21e58a9_cgraph.md5 new file mode 100644 index 0000000..752ac82 --- /dev/null +++ b/classjbus_1_1ThreadLocalEndpoint_a0899b0293f9eb4b69763d8e1e21e58a9_cgraph.md5 @@ -0,0 +1 @@ +306e203de198f43e8fd11cb061057034 \ No newline at end of file diff --git a/classjbus_1_1ThreadLocalEndpoint_a0899b0293f9eb4b69763d8e1e21e58a9_cgraph.png b/classjbus_1_1ThreadLocalEndpoint_a0899b0293f9eb4b69763d8e1e21e58a9_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..853531000fd07a0de84f97850869ab6a22b0bcea GIT binary patch literal 12669 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 literal 0 HcmV?d00001 diff --git a/classjbus_1_1net_1_1IPAddress-members.html b/classjbus_1_1net_1_1IPAddress-members.html new file mode 100644 index 0000000..d6d3c17 --- /dev/null +++ b/classjbus_1_1net_1_1IPAddress-members.html @@ -0,0 +1,129 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
jbus::net::IPAddress Member List
+
+
+ +

This is the complete list of members for jbus::net::IPAddress, including all inherited members.

+ + + + +
IPAddress(const std::string &address)jbus::net::IPAddressinline
operator bool() const jbus::net::IPAddressinline
toInteger() const jbus::net::IPAddressinline
+
+ + + + diff --git a/classjbus_1_1net_1_1IPAddress.html b/classjbus_1_1net_1_1IPAddress.html new file mode 100644 index 0000000..d532127 --- /dev/null +++ b/classjbus_1_1net_1_1IPAddress.html @@ -0,0 +1,226 @@ + + + + + + +JBus: jbus::net::IPAddress Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
jbus::net::IPAddress Class Reference
+
+
+ +

#include <Socket.hpp>

+ + + + + + + + +

+Public Member Functions

 IPAddress (const std::string &address)
 
uint32_t toInteger () const
 
 operator bool () const
 
+

Detailed Description

+

IP address class derived from SFML

+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
jbus::net::IPAddress::IPAddress (const std::string & address)
+
+inline
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
jbus::net::IPAddress::operator bool () const
+
+inline
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
uint32_t jbus::net::IPAddress::toInteger () const
+
+inline
+
+ +

+Here is the caller graph for this function:
+
+
+ + + +
+

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classjbus_1_1net_1_1IPAddress.js b/classjbus_1_1net_1_1IPAddress.js new file mode 100644 index 0000000..f266f0d --- /dev/null +++ b/classjbus_1_1net_1_1IPAddress.js @@ -0,0 +1,6 @@ +var classjbus_1_1net_1_1IPAddress = +[ + [ "IPAddress", "classjbus_1_1net_1_1IPAddress.html#a7a9262cd458bcf8e63d5b9204edfdde9", null ], + [ "operator bool", "classjbus_1_1net_1_1IPAddress.html#a71d4f132a65595be0d74dd0a9a498696", null ], + [ "toInteger", "classjbus_1_1net_1_1IPAddress.html#a36ccdd7a0630a183c16943a21b3c908c", null ] +]; \ No newline at end of file diff --git a/classjbus_1_1net_1_1IPAddress_a36ccdd7a0630a183c16943a21b3c908c_icgraph.map b/classjbus_1_1net_1_1IPAddress_a36ccdd7a0630a183c16943a21b3c908c_icgraph.map new file mode 100644 index 0000000..de21311 --- /dev/null +++ b/classjbus_1_1net_1_1IPAddress_a36ccdd7a0630a183c16943a21b3c908c_icgraph.map @@ -0,0 +1,3 @@ + + + diff --git a/classjbus_1_1net_1_1IPAddress_a36ccdd7a0630a183c16943a21b3c908c_icgraph.md5 b/classjbus_1_1net_1_1IPAddress_a36ccdd7a0630a183c16943a21b3c908c_icgraph.md5 new file mode 100644 index 0000000..9bd82aa --- /dev/null +++ b/classjbus_1_1net_1_1IPAddress_a36ccdd7a0630a183c16943a21b3c908c_icgraph.md5 @@ -0,0 +1 @@ +a1427abc23eb2d5797122b92f2fc00d2 \ No newline at end of file diff --git a/classjbus_1_1net_1_1IPAddress_a36ccdd7a0630a183c16943a21b3c908c_icgraph.png b/classjbus_1_1net_1_1IPAddress_a36ccdd7a0630a183c16943a21b3c908c_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..3b3c3f81461617f77efad041e7b07283c942e5fc GIT binary patch literal 6005 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 + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
jbus::net::Socket Member List
+
+
+ +

This is the complete list of members for jbus::net::Socket, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + +
accept(Socket &remoteSocketOut, sockaddr_in &fromAddress)jbus::net::Socketinline
accept(Socket &remoteSocketOut)jbus::net::Socketinline
accept(Socket &remoteSocketOut, std::string &fromHostname)jbus::net::Socketinline
close()jbus::net::Socketinline
EResult enum namejbus::net::Socket
GetInternalSocket() const jbus::net::Socketinline
isOpen() const jbus::net::Socketinline
openAndListen(const IPAddress &address, uint32_t port)jbus::net::Socketinline
operator bool() const jbus::net::Socketinline
operator=(const Socket &other)=deletejbus::net::Socket
operator=(Socket &&other)jbus::net::Socketinline
recv(void *buf, size_t len, size_t &transferred)jbus::net::Socketinline
recv(void *buf, size_t len)jbus::net::Socketinline
send(const void *buf, size_t len, size_t &transferred)jbus::net::Socketinline
send(const void *buf, size_t len)jbus::net::Socketinline
setBlocking(bool blocking)jbus::net::Socketinline
Socket(bool blocking)jbus::net::Socketinline
Socket(const Socket &other)=deletejbus::net::Socket
Socket(Socket &&other)jbus::net::Socketinline
~Socket()jbus::net::Socketinline
+
+ + + + diff --git a/classjbus_1_1net_1_1Socket.html b/classjbus_1_1net_1_1Socket.html new file mode 100644 index 0000000..6b430db --- /dev/null +++ b/classjbus_1_1net_1_1Socket.html @@ -0,0 +1,759 @@ + + + + + + +JBus: jbus::net::Socket Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
jbus::net::Socket Class Reference
+
+
+ +

#include <Socket.hpp>

+ + + + +

+Public Types

enum  EResult { EResult::OK, +EResult::Error, +EResult::Busy + }
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Socket (bool blocking)
 
 ~Socket ()
 
 Socket (const Socket &other)=delete
 
Socketoperator= (const Socket &other)=delete
 
 Socket (Socket &&other)
 
Socketoperator= (Socket &&other)
 
void setBlocking (bool blocking)
 
bool isOpen () const
 
bool openAndListen (const IPAddress &address, uint32_t port)
 
EResult accept (Socket &remoteSocketOut, sockaddr_in &fromAddress)
 
EResult accept (Socket &remoteSocketOut)
 
EResult accept (Socket &remoteSocketOut, std::string &fromHostname)
 
void close ()
 
EResult send (const void *buf, size_t len, size_t &transferred)
 
EResult send (const void *buf, size_t len)
 
EResult recv (void *buf, size_t len, size_t &transferred)
 
EResult recv (void *buf, size_t len)
 
 operator bool () const
 
SocketTp GetInternalSocket () const
 
+

Detailed Description

+

Server-oriented TCP socket class derived from SFML

+

Member Enumeration Documentation

+ +
+
+ + + + + +
+ + + + +
enum jbus::net::Socket::EResult
+
+strong
+
+ + + + +
Enumerator
OK  +
Error  +
Busy  +
+ +
+
+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
jbus::net::Socket::Socket (bool blocking)
+
+inline
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
jbus::net::Socket::~Socket ()
+
+inline
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
jbus::net::Socket::Socket (const Socketother)
+
+delete
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
jbus::net::Socket::Socket (Socket && other)
+
+inline
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
EResult jbus::net::Socket::accept (SocketremoteSocketOut,
sockaddr_in & fromAddress 
)
+
+inline
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
EResult jbus::net::Socket::accept (SocketremoteSocketOut)
+
+inline
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
EResult jbus::net::Socket::accept (SocketremoteSocketOut,
std::string & fromHostname 
)
+
+inline
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
void jbus::net::Socket::close ()
+
+inline
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
SocketTp jbus::net::Socket::GetInternalSocket () const
+
+inline
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool jbus::net::Socket::isOpen () const
+
+inline
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool jbus::net::Socket::openAndListen (const IPAddressaddress,
uint32_t port 
)
+
+inline
+
+ +

+Here is the call graph for this function:
+
+
+ + + +
+

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
jbus::net::Socket::operator bool () const
+
+inline
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
Socket& jbus::net::Socket::operator= (const Socketother)
+
+delete
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
Socket& jbus::net::Socket::operator= (Socket && other)
+
+inline
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
EResult jbus::net::Socket::recv (void * buf,
size_t len,
size_t & transferred 
)
+
+inline
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
EResult jbus::net::Socket::recv (void * buf,
size_t len 
)
+
+inline
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
EResult jbus::net::Socket::send (const void * buf,
size_t len,
size_t & transferred 
)
+
+inline
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
EResult jbus::net::Socket::send (const void * buf,
size_t len 
)
+
+inline
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void jbus::net::Socket::setBlocking (bool blocking)
+
+inline
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classjbus_1_1net_1_1Socket.js b/classjbus_1_1net_1_1Socket.js new file mode 100644 index 0000000..03b89cd --- /dev/null +++ b/classjbus_1_1net_1_1Socket.js @@ -0,0 +1,27 @@ +var classjbus_1_1net_1_1Socket = +[ + [ "EResult", "classjbus_1_1net_1_1Socket.html#a3bfd450bea54d958e35330aa7faa113f", [ + [ "OK", "classjbus_1_1net_1_1Socket.html#a3bfd450bea54d958e35330aa7faa113fae0aa021e21dddbd6d8cecec71e9cf564", null ], + [ "Error", "classjbus_1_1net_1_1Socket.html#a3bfd450bea54d958e35330aa7faa113fa902b0d55fddef6f8d651fe1035b7d4bd", null ], + [ "Busy", "classjbus_1_1net_1_1Socket.html#a3bfd450bea54d958e35330aa7faa113fad8a942ef2b04672adfafef0ad817a407", null ] + ] ], + [ "Socket", "classjbus_1_1net_1_1Socket.html#a87bf8bdb4a07533dc7eccfd5bb84857d", null ], + [ "~Socket", "classjbus_1_1net_1_1Socket.html#a3d2700e84af823fb63c8119f033a799d", null ], + [ "Socket", "classjbus_1_1net_1_1Socket.html#af2bbe556cdffa7e7e542318164c3496c", null ], + [ "Socket", "classjbus_1_1net_1_1Socket.html#ae55b301ad32ba4a0fe54e7282c2e3e50", null ], + [ "accept", "classjbus_1_1net_1_1Socket.html#afb79caaa1f0d96afb0088f9910c9c633", null ], + [ "accept", "classjbus_1_1net_1_1Socket.html#a4eac487033d8a6b855f5023955c6d1fc", null ], + [ "accept", "classjbus_1_1net_1_1Socket.html#a7775d73e68c92ca6685cc2c9bbad4f99", null ], + [ "close", "classjbus_1_1net_1_1Socket.html#ad981ced8a7a6f1bf5a3e6067df1ada9d", null ], + [ "GetInternalSocket", "classjbus_1_1net_1_1Socket.html#a66864f8061a4d96fb9ceabc808532046", null ], + [ "isOpen", "classjbus_1_1net_1_1Socket.html#a31a6b806331c0856658e08fe9a77b32d", null ], + [ "openAndListen", "classjbus_1_1net_1_1Socket.html#aa6baaf24a436a72735d0561f907864eb", null ], + [ "operator bool", "classjbus_1_1net_1_1Socket.html#a5417fa626737b38ed048595ff0cda452", null ], + [ "operator=", "classjbus_1_1net_1_1Socket.html#a0f73de864690d7637be5ccdd2ab2cd02", null ], + [ "operator=", "classjbus_1_1net_1_1Socket.html#af761a3e1046b017ee919595af021bede", null ], + [ "recv", "classjbus_1_1net_1_1Socket.html#a145c616a39461c9ab57e021a51f746e4", null ], + [ "recv", "classjbus_1_1net_1_1Socket.html#a5563c140f709a91585cafbb27151720a", null ], + [ "send", "classjbus_1_1net_1_1Socket.html#ae3e4995fb077912fa51764053e931bae", null ], + [ "send", "classjbus_1_1net_1_1Socket.html#aeff335671da65f7397f86af7b712384f", null ], + [ "setBlocking", "classjbus_1_1net_1_1Socket.html#a9ee7eee273fdb17fed00972dff0136ee", null ] +]; \ No newline at end of file diff --git a/classjbus_1_1net_1_1Socket_aa6baaf24a436a72735d0561f907864eb_cgraph.map b/classjbus_1_1net_1_1Socket_aa6baaf24a436a72735d0561f907864eb_cgraph.map new file mode 100644 index 0000000..9819e25 --- /dev/null +++ b/classjbus_1_1net_1_1Socket_aa6baaf24a436a72735d0561f907864eb_cgraph.map @@ -0,0 +1,3 @@ + + + diff --git a/classjbus_1_1net_1_1Socket_aa6baaf24a436a72735d0561f907864eb_cgraph.md5 b/classjbus_1_1net_1_1Socket_aa6baaf24a436a72735d0561f907864eb_cgraph.md5 new file mode 100644 index 0000000..430b112 --- /dev/null +++ b/classjbus_1_1net_1_1Socket_aa6baaf24a436a72735d0561f907864eb_cgraph.md5 @@ -0,0 +1 @@ +fc14e685d193c229b1cd079dced43d29 \ No newline at end of file diff --git a/classjbus_1_1net_1_1Socket_aa6baaf24a436a72735d0561f907864eb_cgraph.png b/classjbus_1_1net_1_1Socket_aa6baaf24a436a72735d0561f907864eb_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..2c43e86ef7abfe8abd481bf539b1c75936925c4a GIT binary patch literal 6122 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 literal 0 HcmV?d00001 diff --git a/classstd_1_1experimental_1_1bad__optional__access-members.html b/classstd_1_1experimental_1_1bad__optional__access-members.html new file mode 100644 index 0000000..7577788 --- /dev/null +++ b/classstd_1_1experimental_1_1bad__optional__access-members.html @@ -0,0 +1,128 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::experimental::bad_optional_access Member List
+
+
+ +

This is the complete list of members for std::experimental::bad_optional_access, including all inherited members.

+ + + +
bad_optional_access(const string &what_arg) (defined in std::experimental::bad_optional_access)std::experimental::bad_optional_accessinlineexplicit
bad_optional_access(const char *what_arg) (defined in std::experimental::bad_optional_access)std::experimental::bad_optional_accessinlineexplicit
+
+ + + + diff --git a/classstd_1_1experimental_1_1bad__optional__access.html b/classstd_1_1experimental_1_1bad__optional__access.html new file mode 100644 index 0000000..f24f9bc --- /dev/null +++ b/classstd_1_1experimental_1_1bad__optional__access.html @@ -0,0 +1,154 @@ + + + + + + +JBus: std::experimental::bad_optional_access Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
std::experimental::bad_optional_access Class Reference
+
+
+
+Inheritance diagram for std::experimental::bad_optional_access:
+
+
Inheritance graph
+ + +
[legend]
+
+Collaboration diagram for std::experimental::bad_optional_access:
+
+
Collaboration graph
+ + +
[legend]
+ + + + + + +

+Public Member Functions

bad_optional_access (const string &what_arg)
 
bad_optional_access (const char *what_arg)
 
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classstd_1_1experimental_1_1bad__optional__access.js b/classstd_1_1experimental_1_1bad__optional__access.js new file mode 100644 index 0000000..a1f25d9 --- /dev/null +++ b/classstd_1_1experimental_1_1bad__optional__access.js @@ -0,0 +1,5 @@ +var classstd_1_1experimental_1_1bad__optional__access = +[ + [ "bad_optional_access", "classstd_1_1experimental_1_1bad__optional__access.html#a5788e13d3c7419ab5e781274e102d0f2", null ], + [ "bad_optional_access", "classstd_1_1experimental_1_1bad__optional__access.html#a75d7625c06d41839667c6cc9ce144bd1", null ] +]; \ No newline at end of file diff --git a/classstd_1_1experimental_1_1bad__optional__access__coll__graph.map b/classstd_1_1experimental_1_1bad__optional__access__coll__graph.map new file mode 100644 index 0000000..b7b697a --- /dev/null +++ b/classstd_1_1experimental_1_1bad__optional__access__coll__graph.map @@ -0,0 +1,2 @@ + + diff --git a/classstd_1_1experimental_1_1bad__optional__access__coll__graph.md5 b/classstd_1_1experimental_1_1bad__optional__access__coll__graph.md5 new file mode 100644 index 0000000..e6f0b79 --- /dev/null +++ b/classstd_1_1experimental_1_1bad__optional__access__coll__graph.md5 @@ -0,0 +1 @@ +cf53addf05310fe338d5cf347881b488 \ No newline at end of file diff --git a/classstd_1_1experimental_1_1bad__optional__access__coll__graph.png b/classstd_1_1experimental_1_1bad__optional__access__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..7db4804dd191d66289fed91dd80f10c9a98383d5 GIT binary patch literal 5885 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 + diff --git a/classstd_1_1experimental_1_1bad__optional__access__inherit__graph.md5 b/classstd_1_1experimental_1_1bad__optional__access__inherit__graph.md5 new file mode 100644 index 0000000..e6f0b79 --- /dev/null +++ b/classstd_1_1experimental_1_1bad__optional__access__inherit__graph.md5 @@ -0,0 +1 @@ +cf53addf05310fe338d5cf347881b488 \ No newline at end of file diff --git a/classstd_1_1experimental_1_1bad__optional__access__inherit__graph.png b/classstd_1_1experimental_1_1bad__optional__access__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..7db4804dd191d66289fed91dd80f10c9a98383d5 GIT binary patch literal 5885 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 + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::experimental::optional< T > Member List
+
+
+ +

This is the complete list of members for std::experimental::optional< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
emplace(Args &&...args) (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
emplace(initializer_list< U > il, Args &&...args) (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
operator bool() const noexcept (defined in std::experimental::optional< T >)std::experimental::optional< T >inlineexplicit
operator*() const (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
operator*() (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
operator->() const (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
operator->() (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
operator=(nullopt_t) noexcept (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
operator=(const optional &rhs) (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
operator=(optional &&rhs) noexcept(is_nothrow_move_assignable< T >::value &&is_nothrow_move_constructible< T >::value) (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
operator=(U &&v) -> typename enable_if< is_same< typename decay< U >::type, T >::value, optional & >::type (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
optional() noexcept (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
optional(nullopt_t) noexcept (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
optional(const optional &rhs) (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
optional(optional &&rhs) noexcept(is_nothrow_move_constructible< T >::value) (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
optional(const T &v) (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
optional(T &&v) (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
optional(in_place_t, Args &&...args) (defined in std::experimental::optional< T >)std::experimental::optional< T >inlineexplicit
optional(in_place_t, std::initializer_list< U > il, Args &&...args) (defined in std::experimental::optional< T >)std::experimental::optional< T >inlineexplicit
swap(optional< T > &rhs) noexcept(is_nothrow_move_constructible< T >::value &&noexcept(swap(declval< T & >(), declval< T & >()))) (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
value() const (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
value() (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
value_or(V &&v) const (defined in std::experimental::optional< T >)std::experimental::optional< T >inline
value_type typedef (defined in std::experimental::optional< T >)std::experimental::optional< T >
~optional()=default (defined in std::experimental::optional< T >)std::experimental::optional< T >
+
+ + + + diff --git a/classstd_1_1experimental_1_1optional.html b/classstd_1_1experimental_1_1optional.html new file mode 100644 index 0000000..b72a2d9 --- /dev/null +++ b/classstd_1_1experimental_1_1optional.html @@ -0,0 +1,227 @@ + + + + + + +JBus: std::experimental::optional< T > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
std::experimental::optional< T > Class Template Reference
+
+
+
+Inheritance diagram for std::experimental::optional< T >:
+
+
Inheritance graph
+ + +
[legend]
+
+Collaboration diagram for std::experimental::optional< T >:
+
+
Collaboration graph
+ + +
[legend]
+ + + + +

+Public Types

+typedef T value_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+constexpr optional (nullopt_t) noexcept
 
optional (const optional &rhs)
 
optional (optional &&rhs) noexcept(is_nothrow_move_constructible< T >::value)
 
+constexpr optional (const T &v)
 
+constexpr optional (T &&v)
 
+template<class... Args>
constexpr optional (in_place_t, Args &&...args)
 
+template<class U , class... Args, TR2_OPTIONAL_REQUIRES(is_constructible< T, std::initializer_list< U >>) >
OPTIONAL_CONSTEXPR_INIT_LIST optional (in_place_t, std::initializer_list< U > il, Args &&...args)
 
+optionaloperator= (nullopt_t) noexcept
 
+optionaloperator= (const optional &rhs)
 
+optionaloperator= (optional &&rhs) noexcept(is_nothrow_move_assignable< T >::value &&is_nothrow_move_constructible< T >::value)
 
+template<class U >
auto operator= (U &&v) -> typename enable_if< is_same< typename decay< U >::type, T >::value, optional & >::type
 
+template<class... Args>
void emplace (Args &&...args)
 
+template<class U , class... Args>
void emplace (initializer_list< U > il, Args &&...args)
 
+void swap (optional< T > &rhs) noexcept(is_nothrow_move_constructible< T >::value &&noexcept(swap(declval< T & >(), declval< T & >())))
 
+constexpr operator bool () const noexcept
 
+constexpr T const * operator-> () const
 
+T * operator-> ()
 
+constexpr T const & operator* () const
 
+T & operator* ()
 
+constexpr T const & value () const
 
+T & value ()
 
+template<class V >
constexpr T value_or (V &&v) const
 
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classstd_1_1experimental_1_1optional.js b/classstd_1_1experimental_1_1optional.js new file mode 100644 index 0000000..b1547a5 --- /dev/null +++ b/classstd_1_1experimental_1_1optional.js @@ -0,0 +1,28 @@ +var classstd_1_1experimental_1_1optional = +[ + [ "value_type", "classstd_1_1experimental_1_1optional.html#a3b480b4a74492ffdbcc9d8529ed512fc", null ], + [ "optional", "classstd_1_1experimental_1_1optional.html#a1584b48b65b92c4666c9899cd8b034e0", null ], + [ "optional", "classstd_1_1experimental_1_1optional.html#a4254acbb52e75c196ab02784ce4b1ce2", null ], + [ "optional", "classstd_1_1experimental_1_1optional.html#a08324fd562beb2f0a43b242596b47b2b", null ], + [ "optional", "classstd_1_1experimental_1_1optional.html#aef3982e3d2d30c05d3d80ede551fda76", null ], + [ "optional", "classstd_1_1experimental_1_1optional.html#acd004943841f3f762c73924471addd1b", null ], + [ "optional", "classstd_1_1experimental_1_1optional.html#a0eabb5769fc6c11a61bc004b314db7d1", null ], + [ "optional", "classstd_1_1experimental_1_1optional.html#a2ced55e1ac58a2e17e74f4fb16820a7d", null ], + [ "optional", "classstd_1_1experimental_1_1optional.html#a88ae319318277006322429fcf6d03c31", null ], + [ "~optional", "classstd_1_1experimental_1_1optional.html#a6a0db9c777d56ec7b35fa86811d0d971", null ], + [ "emplace", "classstd_1_1experimental_1_1optional.html#ad5c534fa356b56697d7d01f731a32467", null ], + [ "emplace", "classstd_1_1experimental_1_1optional.html#a9927a1c12f12cbc2caea910be6ea3cd5", null ], + [ "operator bool", "classstd_1_1experimental_1_1optional.html#a8bcb1dbd9288b316662c0c3b1fd9170f", null ], + [ "operator*", "classstd_1_1experimental_1_1optional.html#a6ff38dd90bcfdf0acac0717ea9f5796d", null ], + [ "operator*", "classstd_1_1experimental_1_1optional.html#aba547a62e0c8e3cc7d3fcf152e31d56e", null ], + [ "operator->", "classstd_1_1experimental_1_1optional.html#a459ac3a0c47d72c69218a70ed8fc2264", null ], + [ "operator->", "classstd_1_1experimental_1_1optional.html#ae600987ec09d6e04e894ddbe5f0a0b3f", null ], + [ "operator=", "classstd_1_1experimental_1_1optional.html#a18ebe94413663ea3b18d9e8d98fbc9af", null ], + [ "operator=", "classstd_1_1experimental_1_1optional.html#a79fc2baa94eb20e81898e351edbe984f", null ], + [ "operator=", "classstd_1_1experimental_1_1optional.html#a458e0eb811fd30159370230cb977ab7a", null ], + [ "operator=", "classstd_1_1experimental_1_1optional.html#a8d17cbbd6737f5a64415f7e61534076b", null ], + [ "swap", "classstd_1_1experimental_1_1optional.html#a42242463d92f5b331723593bf9fe495d", null ], + [ "value", "classstd_1_1experimental_1_1optional.html#a94cc196c43607d963e5b087324a810cb", null ], + [ "value", "classstd_1_1experimental_1_1optional.html#a2278733d39a8c6b6c032f080b5ca0644", null ], + [ "value_or", "classstd_1_1experimental_1_1optional.html#ad1746983c31e82f8d94623b50997cf59", null ] +]; \ No newline at end of file diff --git a/classstd_1_1experimental_1_1optional_3_01T_01_6_01_4-members.html b/classstd_1_1experimental_1_1optional_3_01T_01_6_01_4-members.html new file mode 100644 index 0000000..fcd831c --- /dev/null +++ b/classstd_1_1experimental_1_1optional_3_01T_01_6_01_4-members.html @@ -0,0 +1,145 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::experimental::optional< T & > Member List
+
+
+ +

This is the complete list of members for std::experimental::optional< T & >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
emplace(T &v) noexcept (defined in std::experimental::optional< T & >)std::experimental::optional< T & >inline
emplace(T &&)=delete (defined in std::experimental::optional< T & >)std::experimental::optional< T & >
operator bool() const noexcept (defined in std::experimental::optional< T & >)std::experimental::optional< T & >inlineexplicit
operator*() const (defined in std::experimental::optional< T & >)std::experimental::optional< T & >inline
operator->() const (defined in std::experimental::optional< T & >)std::experimental::optional< T & >inline
operator=(nullopt_t) noexcept (defined in std::experimental::optional< T & >)std::experimental::optional< T & >inline
operator=(U &&rhs) noexcept-> typename enable_if< is_same< typename decay< U >::type, optional< T & >>::value, optional & >::type (defined in std::experimental::optional< T & >)std::experimental::optional< T & >inline
operator=(U &&rhs) noexcept-> typename enable_if< !is_same< typename decay< U >::type, optional< T & >>::value, optional & >::type=delete (defined in std::experimental::optional< T & >)std::experimental::optional< T & >
optional() noexcept (defined in std::experimental::optional< T & >)std::experimental::optional< T & >inline
optional(nullopt_t) noexcept (defined in std::experimental::optional< T & >)std::experimental::optional< T & >inline
optional(T &v) noexcept (defined in std::experimental::optional< T & >)std::experimental::optional< T & >inline
optional(T &&)=delete (defined in std::experimental::optional< T & >)std::experimental::optional< T & >
optional(const optional &rhs) noexcept (defined in std::experimental::optional< T & >)std::experimental::optional< T & >inline
optional(in_place_t, T &v) noexcept (defined in std::experimental::optional< T & >)std::experimental::optional< T & >inlineexplicit
optional(in_place_t, T &&)=delete (defined in std::experimental::optional< T & >)std::experimental::optional< T & >explicit
swap(optional< T & > &rhs) noexcept (defined in std::experimental::optional< T & >)std::experimental::optional< T & >inline
value() const (defined in std::experimental::optional< T & >)std::experimental::optional< T & >inline
value_or(V &&v) const (defined in std::experimental::optional< T & >)std::experimental::optional< T & >inline
~optional()=default (defined in std::experimental::optional< T & >)std::experimental::optional< T & >
+
+ + + + diff --git a/classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html b/classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html new file mode 100644 index 0000000..29688b1 --- /dev/null +++ b/classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html @@ -0,0 +1,188 @@ + + + + + + +JBus: std::experimental::optional< T & > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
std::experimental::optional< T & > Class Template Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+constexpr optional (nullopt_t) noexcept
 
+constexpr optional (T &v) noexcept
 
optional (T &&)=delete
 
+constexpr optional (const optional &rhs) noexcept
 
+constexpr optional (in_place_t, T &v) noexcept
 
optional (in_place_t, T &&)=delete
 
+optionaloperator= (nullopt_t) noexcept
 
+template<typename U >
auto operator= (U &&rhs) noexcept-> typename enable_if< is_same< typename decay< U >::type, optional< T & >>::value, optional & >::type
 
+template<typename U >
auto operator= (U &&rhs) noexcept-> typename enable_if< !is_same< typename decay< U >::type, optional< T & >>::value, optional & >::type=delete
 
+void emplace (T &v) noexcept
 
+void emplace (T &&)=delete
 
+void swap (optional< T & > &rhs) noexcept
 
+constexpr T * operator-> () const
 
+constexpr T & operator* () const
 
+constexpr T & value () const
 
+constexpr operator bool () const noexcept
 
+template<class V >
constexpr decay< T >::type value_or (V &&v) const
 
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.js b/classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.js new file mode 100644 index 0000000..b337c0d --- /dev/null +++ b/classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.js @@ -0,0 +1,22 @@ +var classstd_1_1experimental_1_1optional_3_01T_01_6_01_4 = +[ + [ "optional", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#af1ca4fe03c90cf9cb58e65fde8fd103f", null ], + [ "optional", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#a745fea438842ecd75aaf55b508a072ac", null ], + [ "optional", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#a10614cd2647a523b5b8d6ec4fff1bbd5", null ], + [ "optional", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#ad7d66f5c33a6fb9ca9c0fdb25f61036e", null ], + [ "optional", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#ad9dc3e3c32f40151798d6ce2f0435b0d", null ], + [ "optional", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#a5c5cac399d59bc9d499a369367110289", null ], + [ "optional", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#accb8a2372c834051b76329222d6e737f", null ], + [ "~optional", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#a6da1c8d60a81dde58445da2b33430a05", null ], + [ "emplace", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#a1ab7756f102adebf70ee017f51d74ea2", null ], + [ "emplace", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#a57289ac8dbe40e7ad6bfacd42b5d9e64", null ], + [ "operator bool", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#a3989f654f39525e176f18de2d5ad74b7", null ], + [ "operator*", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#a7374eb90ec9e273446070069becfe2d7", null ], + [ "operator->", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#ab76048923b39c4ac8cb57f83a98687d3", null ], + [ "operator=", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#af8f513f05e0710ae389c77721e02c4b8", null ], + [ "operator=", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#a98d42a27275500e8e23ca0b8a3677565", null ], + [ "operator=", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#ae05f2c0f382de57614e5d7043fce74a5", null ], + [ "swap", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#a6c8510965f9b9c004b4bf5b37241011b", null ], + [ "value", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#ae94ea175263807c5f52d80a3882deecc", null ], + [ "value_or", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html#ad12de00e8fc07d371664dd31c7dc21fc", null ] +]; \ No newline at end of file diff --git a/classstd_1_1experimental_1_1optional_3_01T_01_6_6_01_4.html b/classstd_1_1experimental_1_1optional_3_01T_01_6_6_01_4.html new file mode 100644 index 0000000..3006888 --- /dev/null +++ b/classstd_1_1experimental_1_1optional_3_01T_01_6_6_01_4.html @@ -0,0 +1,127 @@ + + + + + + +JBus: std::experimental::optional< T && > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::experimental::optional< T && > Class Template Reference
+
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classstd_1_1experimental_1_1optional__coll__graph.map b/classstd_1_1experimental_1_1optional__coll__graph.map new file mode 100644 index 0000000..48a3e54 --- /dev/null +++ b/classstd_1_1experimental_1_1optional__coll__graph.map @@ -0,0 +1,2 @@ + + diff --git a/classstd_1_1experimental_1_1optional__coll__graph.md5 b/classstd_1_1experimental_1_1optional__coll__graph.md5 new file mode 100644 index 0000000..c0a1b89 --- /dev/null +++ b/classstd_1_1experimental_1_1optional__coll__graph.md5 @@ -0,0 +1 @@ +3832b0031e9c2b72bdf1ee05771350ae \ No newline at end of file diff --git a/classstd_1_1experimental_1_1optional__coll__graph.png b/classstd_1_1experimental_1_1optional__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..e610736eb0ffbc5dc9fd2f163f4f3eba52b6d372 GIT binary patch literal 5906 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 literal 0 HcmV?d00001 diff --git a/classstd_1_1experimental_1_1optional__inherit__graph.map b/classstd_1_1experimental_1_1optional__inherit__graph.map new file mode 100644 index 0000000..48a3e54 --- /dev/null +++ b/classstd_1_1experimental_1_1optional__inherit__graph.map @@ -0,0 +1,2 @@ + + diff --git a/classstd_1_1experimental_1_1optional__inherit__graph.md5 b/classstd_1_1experimental_1_1optional__inherit__graph.md5 new file mode 100644 index 0000000..c0a1b89 --- /dev/null +++ b/classstd_1_1experimental_1_1optional__inherit__graph.md5 @@ -0,0 +1 @@ +3832b0031e9c2b72bdf1ee05771350ae \ No newline at end of file diff --git a/classstd_1_1experimental_1_1optional__inherit__graph.png b/classstd_1_1experimental_1_1optional__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..e610736eb0ffbc5dc9fd2f163f4f3eba52b6d372 GIT binary patch literal 5906 zcmdVe^u7QM<)DRfRXps0$T1HB@FhW$ML1Z8;r6@5v2W*HVL>H-LG@beP8Fg-=Fi=;1L`|#ZCnP06PCcXJmGjvK}I<1*^Oos zEJ`!GYkM*ZXz*vwrjbgZ;l-zU?)v?^O28 z-|WrbfG(Sp+PtzY9eTZa&N(cSRKj|+g5|B-y_FSvpJ&*~-x4E-B9~UPMIg*DW)d$S z9%E#$)U$!_6^=daNxMO<@(HpYa}>1dq2vp$Gqn=D7(I&n;X*zKn^2g+i__vVU z1Z$5b8JWzul7Y%+gMITMf6J6~QlW{2A^$Dr9!ouM-p&YdZ*(RFml-s4xlo%XOXE~Fo0y!Ui_;<@8D-uOSV>}N%FA9s6^JW(XfguD=iN`LkE4F7P6_Y zS{Xzm0#5gG4xqSLrN39kI^aGPcs$qb?4n3&meg=k>MccZJ`X9Y^Hde?vCmH#6hxoP zFmG&HcJN?o-gnZ*`+PNRTT$A5#$s$~F%e=oS?jfowXSi`9dy*XT8!qF)@M~>5S9__ zTCiUNf)wIdOv|iHoB!UtzSb<$&X93QEw%clEyb)n<1_fcs5#I-L)If#uoqMFU-LLs ziqg%QT3W;D+-p2GPp9pdQK9yxH|%P=yk#ZFZ*G_o&ekf8Jg_rFsif^rmZNFdr8Q}} zV1h1_pU0JLE1!M{X1s(2A%A1@P)m+c8RJt0sQ7!OY$dLm1c&T06b8RuhVZn2=e-5 z=MbvHOKe-~nSZ=7tkz>@K!YQ`j-ZSvHZ2h#6wt(=J#&@Y^!?er9>D=gbOp&c$hVEV#^0T40JwUfzl@h{7HT^yx#jlg8(?nz+;P9?u zM7HXiG2xq!@OJedy1Bl@%O*K&EX9gVFuolt*rQXrGVlOCzRM|AzrmX%vvjBMZx;(f zR})UzHANh%E5~?9SoY0UuisytWWMWGWvm}8hLLj(E#nX^%{;h-&`=tKQF1kNTmQn; zf}dHklhh;$_nL&ac%@fSmp=>4>Jx9?vq@qP?$3m#n|NNJ((Tl2WGQ#V6dH_@BW1+ExH0C!T7qN(PC%50Cw%aXlxUTUifY zR|8b5iLk1rBty@+-$qIkv2F;z2lhq_w^cPc_RxxGg~NuD8j4Nj?2B#G`^j zr77C@j+?ee6zuzMjy&9U_gVWf?BuxX2t7~8#=zqzuAO4Zm1}v7w1vp%esp1XM~mWH zc?O78Vtkn_nGj~lU^CW&JJ%5@y{T{ZLd8fEc-m$nh~5eI^r)~sC$#!0P=eI6M}8AA zE`hvbKT`qrsl=+G3lGQsj_NCI(oG9lgQlscxvo{e4k7p`tVKRbE<{Jsau)lFycDmF zzGqsz@#@#e@a{oa{t@_XI;>hSlpK&^TGXc3+#Gbd^{~y)VYTkm>I%sG8E;y5-x1x*;1j2oIoVyfxj5`vvr5tB~|m=iC!<=r@k zVq=^UKYVw;K1dfq%3xz=35lEfm@PXWXsl#RRgLLv6vb3Si&P`2;!u1S8BLCd4lYz0hr0Es7WX+Fr{~k0g4z)T$h}ZWf5BM@ z+rAN6&&MPO!pok*fxiqDK47rfTxnl_97~Z(!gFFroKjXsoNIZR(tVrOELB%OQy2c{ zJU3oqKA6HDkdcgQ_T4svYrTX6y9}v$t2`z57^KE6Il)YHNL|twM4#39eINVrQgwn)d+XZFJ9=(Sqrk^FLZ_RXi3+S7?`pr}2Zr_|g(Nz7<`g>m z3oX_u%f%~R9|L5U8T(z(g(0+^bh~ohQIYnW?TgBp+PT!xZm;+}Tf-sr9ND^jH_4h6 zt+03XZgn~SVT(~Nc_BA94T1R_@A0<5zf;&7b(XD<*!@ioNUm$Fqg&2YUy0d5=W%w< z0=IEBOubK&#cGSt}+LZEE-jv~`Rr)FfCX;*dn>O_kRuy|3uzK^>-Q?>G-(eGmb*!x$wb z-goc&6#g}9@LIhmhwIpdnu~=f?h|8hG;BZ?Z5ll}^adK~O?Zy3c#*C2dq&-{Ly;#! z{rw{?9A6gB(^#w|H2RQ+8os)(VrT1BEgai?;y5qIGgck94g#bVN(Rh5Oq47QdyWd6 zC?D684%P|jyY@?dYCUQ+?`nizcMxQCmKUs7L5V8}7WFYqg&Hb7nRVri`l4d|Nv#7* zwsV<$L3xBfon?{Sy1NBYm@h$pHd*Zn*mAAT|FKmxlzOum8g#18#J6M6@-hfY+%Y`-{P}li@x3 z?qsE+)VZO0wdjs-3x`Qrz>@xOh#lkJx~B;8|7z&A=j{H_{YkNwEARIHO;g9P#(_); zj4_|jQ;1p=O&CYZ>p6miUGo-iavAX<41cJ$ZJPqlsZ6YYhr|-MT>XjFO&15hD8huV zqjW?oJg#Ea|(xH<=$Os$b zI$f<7MZ?CcR8q5NQ#$v3@~e~1KRpq&3Fk5sWA(o}>?ySGi1I#IQ1M>~BVS2`b0z*` z;wzW&Vt#bcNd|{f@Z+tCvXbqe1#_On>B(@L(`{aSILf8G$?O8Z4IyY@PAKYlsE9dvB?517&~#x(2w_C^0i55nY3JUqrz1Mq;a)5B-4BR6g|T z^i5zQO#F7yQp0|8iBc(bYsG7{@vJGbGj1t zk81zaJXVfCe0?_fxv*Vo5O&vhYi#&O;L%T6r?zm?09Asd?h$xb^Uosb(&@$o#X1k= zh2>JTcE1R=Zh|o7M7~|R!!GNd%^~lto{o)IywLPs9}p31JO~etdP%%vS^0F_Hz|fm zIb0}cvhLz`^?DM!318W7DQ~pQNSRboIDhgKkqj zg{Qdx5JBEJepVEa@@yqZf9vHD`O~{)e^z=imt@a@V@2rT;nX^GjNk^pM1C2m8jI&Y_@ zNG3r89xP)1Q`&5Yfh>5-F`vNqP1BI_fDegTKd|jD0mnO)gW5fDocLGI|A6aa#@YI^ zWXt!~32K$Oh45d!EpqeI2k^AjxYR--fA4uG37f;T@Z;Jqb>qI0zbmSUH9<~B`@YXq zh}Jv{#1NlqK)iLm#GcNlfeB&@_SVXcyzaxtgyJ)80_Bz0QXXGgXN%Gi4$ zH&+*mI3-;>BPN~yD#q0QbJb^rJQ|ZIB9y__$Km(^@`nhc-i@DxsNh6UqE(AB15fn_ zu8w<>%me>YwV;p>`^+A0Du0)6Z5?Lz8Iuk+&6K>d$AJgkR-7G?< zK8$7FTuQGjRj&R)0ORwnDT^m7Xaa@@ddyn;9!6B+!IZGOW`knhL6L8OrZ5Q}eG3a9B zy2WpQ&WfmjM@{eu5pw-abh6A^woG^Q8O3HTLFKc4BcDn_{@z?zds`TeBq=MS{on$8W_H=u(K@6aJAzkN+KXTluil=~AtURNPx$_flGCHwS1}rG0%X-7$6&z-+7Ua9T@uri@&sgxmRdmt68sm{~p0 zVOg-pFD`VIo|ngEJiZ9oGwO~;^G<&Rq^hE zcXgiZPP!}$VZ){Bt#(Tmx_r4Np{um6yp-uoL|Mphb?`q6%iynW94J>1F*)rRH&I;r z*JNQrQmJyEwQ9I=X7L24#7vAf1LG+b8PwVb341hzvuTYll*L|waco7c^sSwzHkK+# zfTXRQMUFJ|(UXg{@tbo^!W)9+ED7Bd#E~AF+;;qg^bSj4+Lu;=0SN(V_C{3#n-T6S-b7zM9##=$Uy^b8W( zH2#MbWZV^dF)8$$&!`LMHK@GYh$^+dt>d!+k|U8w@C6HmZs=$R0%+_jbh4^XfMpY@ z-xCLJ@CY_^VumaM$&{`R5A)yHMP{@LsHkCB9i7>DP1;o?U*1wzT1}wRjKxw2( z=ecEv37l>C29j)p@{aQNHv};nA4bpz;;Ke&S?jL)B+3#T?KOy`^}vuzW>&l-&xR03 zd$@DA8i$UZ6zuuN9yK1QJg{F&7g2Yl-tbZBkc>MqRWo;mELacm>+_O`%a-P*UnZ%B z@swd7vevC`j4c6|{py5kl7>OK6`t{4zPD)}g zd;Zxb7Ys-L3)TW{@wC!EU8wW42wMEm8NS}0H7b24kyJmk;-cL}uoz9=LUF^W)3zE) zDG6T=g&-+z2>UYBiY<$aht{)R!m74wREw2o?pJ>IV32e)F-KxWwC mk>~-x2$F~{?2PRoq<#URnCeVJO!&zS(0cet{j;iF`2PTPBaT)8 literal 0 HcmV?d00001 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/dir_4525d057f72f34aebe3436e89afccf45.html b/dir_4525d057f72f34aebe3436e89afccf45.html new file mode 100644 index 0000000..368f3d2 --- /dev/null +++ b/dir_4525d057f72f34aebe3436e89afccf45.html @@ -0,0 +1,134 @@ + + + + + + +JBus: include/jbus Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
jbus Directory Reference
+
+
+ + + + + + + + + + +

+Files

file  Common.hpp [code]
 
file  Endpoint.hpp [code]
 
file  Listener.hpp [code]
 
file  Socket.hpp [code]
 
+
+
+ + + + diff --git a/dir_4525d057f72f34aebe3436e89afccf45.js b/dir_4525d057f72f34aebe3436e89afccf45.js new file mode 100644 index 0000000..9c1a357 --- /dev/null +++ b/dir_4525d057f72f34aebe3436e89afccf45.js @@ -0,0 +1,12 @@ +var dir_4525d057f72f34aebe3436e89afccf45 = +[ + [ "Common.hpp", "Common_8hpp.html", "Common_8hpp" ], + [ "Endpoint.hpp", "Endpoint_8hpp.html", [ + [ "Endpoint", "classjbus_1_1Endpoint.html", "classjbus_1_1Endpoint" ], + [ "ThreadLocalEndpoint", "classjbus_1_1ThreadLocalEndpoint.html", "classjbus_1_1ThreadLocalEndpoint" ] + ] ], + [ "Listener.hpp", "Listener_8hpp.html", [ + [ "Listener", "classjbus_1_1Listener.html", "classjbus_1_1Listener" ] + ] ], + [ "Socket.hpp", "Socket_8hpp.html", "Socket_8hpp" ] +]; \ No newline at end of file diff --git a/dir_d44c64559bbebec7f509842c48db8b23.html b/dir_d44c64559bbebec7f509842c48db8b23.html new file mode 100644 index 0000000..45e3c43 --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23.html @@ -0,0 +1,128 @@ + + + + + + +JBus: include Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
include Directory Reference
+
+
+ + + + +

+Directories

directory  jbus
 
+
+
+ + + + diff --git a/dir_d44c64559bbebec7f509842c48db8b23.js b/dir_d44c64559bbebec7f509842c48db8b23.js new file mode 100644 index 0000000..b3c8412 --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23.js @@ -0,0 +1,4 @@ +var dir_d44c64559bbebec7f509842c48db8b23 = +[ + [ "jbus", "dir_4525d057f72f34aebe3436e89afccf45.html", "dir_4525d057f72f34aebe3436e89afccf45" ] +]; \ No newline at end of file diff --git a/doc.png b/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t literal 0 HcmV?d00001 diff --git a/doxygen.css b/doxygen.css new file mode 100644 index 0000000..1425ec5 --- /dev/null +++ b/doxygen.css @@ -0,0 +1,1475 @@ +/* The standard CSS for doxygen 1.8.11 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + 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 cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px 6px; + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + 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: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +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 { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + 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; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +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: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.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 cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* 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; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,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: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + 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 #9CAFD4; + border-bottom: 1px solid #9CAFD4; + 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.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.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: #3D578C; +} + +.arrow { + color: #9CAFD4; + -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: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + 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:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @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: #2A3D61; +} + +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 #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + 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 #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.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:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.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:#364D7C; + 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:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +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.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + 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: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + 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; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#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: #ffffff; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + 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: #ffffff; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + 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: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + 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; + } +} + diff --git a/doxygen.png b/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff17d807fd8aa003bed8bb2a69e8f0909592fd1 GIT binary patch literal 3779 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 literal 0 HcmV?d00001 diff --git a/dynsections.js b/dynsections.js new file mode 100644 index 0000000..85e1836 --- /dev/null +++ b/dynsections.js @@ -0,0 +1,97 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var 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; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + +JBus: File List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all files with brief descriptions:
+
[detail level 123]
+ + + + + + +
  include
  jbus
 Common.hpp
 Endpoint.hpp
 Listener.hpp
 Socket.hpp
+
+
+
+ + + + diff --git a/files.js b/files.js new file mode 100644 index 0000000..93d774e --- /dev/null +++ b/files.js @@ -0,0 +1,4 @@ +var files = +[ + [ "include", "dir_d44c64559bbebec7f509842c48db8b23.html", "dir_d44c64559bbebec7f509842c48db8b23" ] +]; \ No newline at end of file diff --git a/folderclosed.png b/folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 GIT binary patch literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA literal 0 HcmV?d00001 diff --git a/functions.html b/functions.html new file mode 100644 index 0000000..7dabb5c --- /dev/null +++ b/functions.html @@ -0,0 +1,286 @@ + + + + + + +JBus: Class Members + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all class members with links to the classes they belong to:
+ +

- a -

+ + +

- c -

+ + +

- e -

+ + +

- g -

+ + +

- i -

+ + +

- o -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- ~ -

+
+
+ + + + diff --git a/functions_enum.html b/functions_enum.html new file mode 100644 index 0000000..62f0cd2 --- /dev/null +++ b/functions_enum.html @@ -0,0 +1,132 @@ + + + + + + +JBus: Class Members - Enumerations + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/functions_func.html b/functions_func.html new file mode 100644 index 0000000..2525b02 --- /dev/null +++ b/functions_func.html @@ -0,0 +1,279 @@ + + + + + + +JBus: Class Members - Functions + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

+ + +

- c -

+ + +

- e -

+ + +

- g -

+ + +

- i -

+ + +

- o -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- ~ -

+
+
+ + + + diff --git a/functions_rela.html b/functions_rela.html new file mode 100644 index 0000000..5022d40 --- /dev/null +++ b/functions_rela.html @@ -0,0 +1,135 @@ + + + + + + +JBus: Class Members - Related Functions + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/globals.html b/globals.html new file mode 100644 index 0000000..8acd47e --- /dev/null +++ b/globals.html @@ -0,0 +1,132 @@ + + + + + + +JBus: File Members + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all file members with links to the files they belong to:
+
+
+ + + + diff --git a/globals_defs.html b/globals_defs.html new file mode 100644 index 0000000..296e459 --- /dev/null +++ b/globals_defs.html @@ -0,0 +1,132 @@ + + + + + + +JBus: File Members + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/graph_legend.html b/graph_legend.html new file mode 100644 index 0000000..cce082c --- /dev/null +++ b/graph_legend.html @@ -0,0 +1,145 @@ + + + + + + +JBus: Graph Legend + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Graph Legend
+
+
+

This page explains how to interpret the graphs that are generated by doxygen.

+

Consider the following example:

1 /*! Invisible class because of truncation */
2 class Invisible { };
3 
4 /*! Truncated class, inheritance relation is hidden */
5 class Truncated : public Invisible { };
6 
7 /* Class not documented with doxygen comments */
8 class Undocumented { };
9 
10 /*! Class that is inherited using public inheritance */
11 class PublicBase : public Truncated { };
12 
13 /*! A template class */
14 template<class T> class Templ { };
15 
16 /*! Class that is inherited using protected inheritance */
17 class ProtectedBase { };
18 
19 /*! Class that is inherited using private inheritance */
20 class PrivateBase { };
21 
22 /*! Class that is used by the Inherited class */
23 class Used { };
24 
25 /*! Super class that inherits a number of other classes */
26 class Inherited : public PublicBase,
27  protected ProtectedBase,
28  private PrivateBase,
29  public Undocumented,
30  public Templ<int>
31 {
32  private:
33  Used *m_usedClass;
34 };

This will result in the following graph:

+
+ +
+

The boxes in the above graph have the following meaning:

+
    +
  • +A filled gray box represents the struct or class for which the graph is generated.
  • +
  • +A box with a black border denotes a documented struct or class.
  • +
  • +A box with a gray border denotes an undocumented struct or class.
  • +
  • +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
  • +
+

The arrows have the following meaning:

+
    +
  • +A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • +
  • +A dark green arrow is used for protected inheritance.
  • +
  • +A dark red arrow is used for private inheritance.
  • +
  • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • +
  • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
  • +
+
+
+ + + + diff --git a/graph_legend.md5 b/graph_legend.md5 new file mode 100644 index 0000000..a06ed05 --- /dev/null +++ b/graph_legend.md5 @@ -0,0 +1 @@ +387ff8eb65306fa251338d3c9bd7bfff \ No newline at end of file diff --git a/graph_legend.png b/graph_legend.png new file mode 100644 index 0000000000000000000000000000000000000000..881e40f9c0a2ade46e1af7426db5583529540416 GIT binary patch literal 25694 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 ALjV8( literal 0 HcmV?d00001 diff --git a/hierarchy.html b/hierarchy.html new file mode 100644 index 0000000..c81fdaf --- /dev/null +++ b/hierarchy.html @@ -0,0 +1,157 @@ + + + + + + +JBus: Class Hierarchy + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ + + + + + diff --git a/hierarchy.js b/hierarchy.js new file mode 100644 index 0000000..d1bd2d0 --- /dev/null +++ b/hierarchy.js @@ -0,0 +1,33 @@ +var hierarchy = +[ + [ "std::experimental::constexpr_optional_base< T >", "structstd_1_1experimental_1_1constexpr__optional__base.html", null ], + [ "std::experimental::constexpr_storage_t< T >", "unionstd_1_1experimental_1_1constexpr__storage__t.html", null ], + [ "jbus::Endpoint", "classjbus_1_1Endpoint.html", null ], + [ "std::experimental::is_nothrow_move_assignable< T >::has_nothrow_move_assign< X, has_any_move_assign >", "structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign.html", null ], + [ "std::experimental::is_nothrow_move_assignable< T >::has_nothrow_move_assign< X, true >", "structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign_3_01X_00_01true_01_4.html", null ], + [ "std::experimental::detail_::has_overloaded_addressof< T >", "structstd_1_1experimental_1_1detail___1_1has__overloaded__addressof.html", null ], + [ "std::hash< std::experimental::optional< T & > >", "structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_6_01_4_01_4.html", null ], + [ "std::hash< std::experimental::optional< T > >", "structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_4_01_4.html", null ], + [ "std::experimental::in_place_t", "structstd_1_1experimental_1_1in__place__t.html", null ], + [ "std::experimental::nullopt_t::init", "structstd_1_1experimental_1_1nullopt__t_1_1init.html", null ], + [ "jbus::net::IPAddress", "classjbus_1_1net_1_1IPAddress.html", null ], + [ "std::experimental::is_assignable< T, U >", "structstd_1_1experimental_1_1is__assignable.html", null ], + [ "std::experimental::is_nothrow_move_assignable< T >", "structstd_1_1experimental_1_1is__nothrow__move__assignable.html", null ], + [ "std::experimental::is_nothrow_move_constructible< T >", "structstd_1_1experimental_1_1is__nothrow__move__constructible.html", null ], + [ "jbus::Listener", "classjbus_1_1Listener.html", null ], + [ "logic_error", null, [ + [ "std::experimental::bad_optional_access", "classstd_1_1experimental_1_1bad__optional__access.html", null ] + ] ], + [ "std::experimental::nullopt_t", "structstd_1_1experimental_1_1nullopt__t.html", null ], + [ "std::experimental::optional< T & >", "classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html", null ], + [ "std::experimental::optional< T && >", "classstd_1_1experimental_1_1optional_3_01T_01_6_6_01_4.html", null ], + [ "std::experimental::optional_base< T >", "structstd_1_1experimental_1_1optional__base.html", null ], + [ "OptionalBase", null, [ + [ "std::experimental::optional< KawasedoChallenge >", "classstd_1_1experimental_1_1optional.html", null ], + [ "std::experimental::optional< T >", "classstd_1_1experimental_1_1optional.html", null ] + ] ], + [ "jbus::net::Socket", "classjbus_1_1net_1_1Socket.html", null ], + [ "std::experimental::storage_t< T >", "unionstd_1_1experimental_1_1storage__t.html", null ], + [ "jbus::ThreadLocalEndpoint", "classjbus_1_1ThreadLocalEndpoint.html", null ], + [ "std::experimental::trivial_init_t", "structstd_1_1experimental_1_1trivial__init__t.html", null ] +]; \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..3882166 --- /dev/null +++ b/index.html @@ -0,0 +1,118 @@ + + + + + + +JBus: JBus Documentation + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
JBus Documentation
+
+
+

JBus functions as a server for acceping connections from GBA emulator clients. The jbus::Listener class may be constructed and started to enque incoming jbus::Endpoint instances.

+

Once an Endpoint has been accepted, it's ready to use. Refer to the jbus::Endpoint class for the main interface.

+
+
+ + + + diff --git a/inherit_graph_0.map b/inherit_graph_0.map new file mode 100644 index 0000000..28a78dd --- /dev/null +++ b/inherit_graph_0.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_0.md5 b/inherit_graph_0.md5 new file mode 100644 index 0000000..d801243 --- /dev/null +++ b/inherit_graph_0.md5 @@ -0,0 +1 @@ +c67f3e07d79d9fb6c1ed15000cf3b1f4 \ No newline at end of file diff --git a/inherit_graph_0.png b/inherit_graph_0.png new file mode 100644 index 0000000000000000000000000000000000000000..7a7ad03a009ded7f370157bb2e790cfda193a571 GIT binary patch literal 1841 zcmV-12hRA3P)Px*>q$gGRCodHnpbEQTNH*@!c}9By%!>4K@>Y;MNz@>V2BmeH^GL2FM=o}7HlXY z;)AFNVy}n<6~qS>8}^1`@4fdjcfNJm!_1t?If-+)H|N}0aGbr@Uc0XHuf1c2Ws^jd zPA5>1nNGWj_VUjOL`qFVONf*jDK!mGAPu+lmw!(uPMnZs%a-}sQN0wNK!XMiWcl*t zF)ND+zYiWfknP*I#|TD@(scq?uU?e{2Mz=-D#lZd)V6KgOfmYF!V@ScD3C2%wgj#$ z#!~~OB4$dRK%~@^QdjX78!5GT=af=Xky2AiUBz2$k%?0Ax{JJg`BLW1n67R8<;#~u z-2>Z?9z81D*Td4aYuD816OF@MIXO9r#ERV>+EW`gY$&Hror;<8>C>lDqecxWQ>IKz zTRg_ck00gNuU}HNYSnmRF>NTeTD591d_RNnSreY8!7P`}VSF(&&Nzt*$PXVrT=Mer^x!L3t}Jur%yGKy-Md%n z)vKq5)U8`L;Q_`_%a$!=_Uze0C}$1SFI~E1nq~j~{Zgk+9SyM<;j2A()^;zZfEZ=dD{ zbpG(+gYXb@^5jW1vK~Ep$k?%Cwf)hfM`|qV)~ypF)7`swwePA`t8`xGGW)|D@!UOo z_Q;bbPXyyxym+y+Y12jy9z3WH0DRyGVJWmy{R`;Wv7?L_F+#GkvSjk)$!g(6J!iT5 zW@ct8CKnbKs>RZW{t#ZYXwf3|29p9@JG~e|2R}bUAlCU@#Dt}^GupF zN!fV*;lqbD(#)JWQ;lZaxN(BfxCz6=8wuHX_=O7>G~Du{1AoYnAu3+Ketk8N-Me?Y zyE|p})2dY~sb0Ohj2SaVu3x|Iv?a3;8dLp?!IIs?0g)jGk+EXhrcRwI&z?P#2@@u$ zeBZu(W%cUS8uEhr`gw%;c$f;_83I#LF7qEcbV#~)?{1p(>(5r3HEZUyV_@`UPk5$Z zmN30@=T1l7U2v}f>^6|)mPtlA>7L3J!%gSTos&k58YzpzAmkbXe+}KbbxXZ~{%6jd zQMvs5eA68IYmyTGK;SD`s+(A|n+VH>PMCGX#IY9(X7luY|xYvOqFoJb+A) zGKBX|nKDKC^y#B`#36!PBshk^azBx+5+dUf3Rv^PLESft?b<2(@hV@6^lJvKs$+DBKpn38`c`BZ`b?a939`|J)?BG5YL?kIi zVGiCIQe3L;ERY5fH+K2mD%xui5VQff-8FL?2h fQiIPWrMZ6t+Qw_pYX`A-00000NkvXXu0mjff?=mA literal 0 HcmV?d00001 diff --git a/inherit_graph_1.map b/inherit_graph_1.map new file mode 100644 index 0000000..2171ccf --- /dev/null +++ b/inherit_graph_1.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_1.md5 b/inherit_graph_1.md5 new file mode 100644 index 0000000..aba8210 --- /dev/null +++ b/inherit_graph_1.md5 @@ -0,0 +1 @@ +d7f318601ea1106cb2579801971e0c96 \ No newline at end of file diff --git a/inherit_graph_1.png b/inherit_graph_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a6a2dc08d4fa47f0d744463e70d2c2ac271de292 GIT binary patch literal 1746 zcmV;@1}*uCP)Px*j7da6RA>e5SzAaIZxA0PlS(ShitI+&%}S$`5{iPNf}o;@%A#I+h>&g)6&M5t zL8xSqV$?$v(G?1M+ybyfn`OfpO1w5>Jx7NDfym^!M?%mrO?LT+1 z1!m5iN$c0I575GvHmjAd12|6(3EoRyxQ7Y+Prx){rvfp(Bzyt zbt<$s{~@Z<(o)*8Ws9RUL$~JUX2*H2BV9Z1`}gm33{ENiicI3#BZIOiKoNMO|88U=!-@Z-VyLS)xzz-ij(2pNK0&t-` zeEIT)K7INW3TeAEg9i_$YuBz(j~+ctS}Zc?W(DY3S6636=@`!c`t_>~ZyM=g-T_fDdGcgBe*Czp z(&590Y1XV+`izfRxNsqj9zB}klr2oR^nJbLPx38cJ10lBSws%v17*)9E;8GD{|`dO_}yBS&;DHa33R`&`T}h+}vEnjUPXrj~+d0&Wpo1Jw08Y z#nCJ&n8o=lMr284ERHp4gALA}JhG zI8Db*O-&pb8OdT~mWb8s?%lf_5fQeVZy$Ip@_OIQ{xx5ryhP{0WZ2`o-D zc|#dUM&ebgR@q2{9*=c)F(8Fl0a1dL?gU2EVQ#~Q4OCrSO>5V#Rr=YpXH#);v8GEW z-j3o%jT)tqj6?Tr+qTh!2@^Dpis1u9iBq(}$;`|oaiTegG;6I>0|pE*=TKAeEurw@ zy;ixVkWLK#)2qH@r4sp&(i(Qnxj4@#4i=yQE9w=;&xZcI=q>iYr&HuoP>pFG)#B zEdNiLHShlY`z&21gHKWmPn|lI%gV}>SE5(zs&t0>EXHK;15oqiJ8f5Ta%h%#M8E|C!cRlw#f5@*1nQz o0pEEZUI@PPeCK)C0v=ZVA1`Elg)>N4zyJUM07*qoM6N<$f}DY2kN^Mx literal 0 HcmV?d00001 diff --git a/inherit_graph_10.map b/inherit_graph_10.map new file mode 100644 index 0000000..2e6a252 --- /dev/null +++ b/inherit_graph_10.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_10.md5 b/inherit_graph_10.md5 new file mode 100644 index 0000000..80ec878 --- /dev/null +++ b/inherit_graph_10.md5 @@ -0,0 +1 @@ +401842534f2584bba9dcddbc49ee036f \ No newline at end of file diff --git a/inherit_graph_10.png b/inherit_graph_10.png new file mode 100644 index 0000000000000000000000000000000000000000..3982eeada066c2e31753de39040b728e04b6732d GIT binary patch literal 3978 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 + + diff --git a/inherit_graph_11.md5 b/inherit_graph_11.md5 new file mode 100644 index 0000000..af74ab8 --- /dev/null +++ b/inherit_graph_11.md5 @@ -0,0 +1 @@ +25905d86933fbec4803eca5e1a5c4b48 \ No newline at end of file diff --git a/inherit_graph_11.png b/inherit_graph_11.png new file mode 100644 index 0000000000000000000000000000000000000000..39ad345a0d1fa150558b90a1cc68e93aedb31625 GIT binary patch literal 4699 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 literal 0 HcmV?d00001 diff --git a/inherit_graph_12.map b/inherit_graph_12.map new file mode 100644 index 0000000..8152975 --- /dev/null +++ b/inherit_graph_12.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_12.md5 b/inherit_graph_12.md5 new file mode 100644 index 0000000..75716dd --- /dev/null +++ b/inherit_graph_12.md5 @@ -0,0 +1 @@ +2c09e959aa52443191dd133c97108f65 \ No newline at end of file diff --git a/inherit_graph_12.png b/inherit_graph_12.png new file mode 100644 index 0000000000000000000000000000000000000000..d79dab6ab44e7481ee8515e830a97175e06eb365 GIT binary patch literal 7761 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 Xtsj=P0MY>K00000NkvXXu0mjftS;1` literal 0 HcmV?d00001 diff --git a/inherit_graph_13.map b/inherit_graph_13.map new file mode 100644 index 0000000..2a35091 --- /dev/null +++ b/inherit_graph_13.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_13.md5 b/inherit_graph_13.md5 new file mode 100644 index 0000000..6a91f68 --- /dev/null +++ b/inherit_graph_13.md5 @@ -0,0 +1 @@ +3f53fe05c801500e800d990cbddcc80b \ No newline at end of file diff --git a/inherit_graph_13.png b/inherit_graph_13.png new file mode 100644 index 0000000000000000000000000000000000000000..d48820fdfec243657e2c379a381a2717c02b699f GIT binary patch literal 6871 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 R#RmWY002ovPDHLkV1f@d^wIzT literal 0 HcmV?d00001 diff --git a/inherit_graph_14.map b/inherit_graph_14.map new file mode 100644 index 0000000..13e9333 --- /dev/null +++ b/inherit_graph_14.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_14.md5 b/inherit_graph_14.md5 new file mode 100644 index 0000000..61b3aca --- /dev/null +++ b/inherit_graph_14.md5 @@ -0,0 +1 @@ +de6504d8a8f0fa4f91f99512eaa925c4 \ No newline at end of file diff --git a/inherit_graph_14.png b/inherit_graph_14.png new file mode 100644 index 0000000000000000000000000000000000000000..46cee679d9a5fd386a85cf40f3018e91a2906b35 GIT binary patch literal 4797 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 + + diff --git a/inherit_graph_15.md5 b/inherit_graph_15.md5 new file mode 100644 index 0000000..64ad779 --- /dev/null +++ b/inherit_graph_15.md5 @@ -0,0 +1 @@ +c4b6d41aac234123e5b8b5aab85c0dd1 \ No newline at end of file diff --git a/inherit_graph_15.png b/inherit_graph_15.png new file mode 100644 index 0000000000000000000000000000000000000000..7fe2d3fcba8d6b3d54e39eb26369782c3de5f471 GIT binary patch literal 2922 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 + + diff --git a/inherit_graph_16.md5 b/inherit_graph_16.md5 new file mode 100644 index 0000000..df44bd6 --- /dev/null +++ b/inherit_graph_16.md5 @@ -0,0 +1 @@ +e7b118c7eab20b5968f699967b6ef1d8 \ No newline at end of file diff --git a/inherit_graph_16.png b/inherit_graph_16.png new file mode 100644 index 0000000000000000000000000000000000000000..3ecf065a75b0e77ed8ad07a422398bd0142555c6 GIT binary patch literal 3110 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 A8UO$Q literal 0 HcmV?d00001 diff --git a/inherit_graph_17.map b/inherit_graph_17.map new file mode 100644 index 0000000..ba8b975 --- /dev/null +++ b/inherit_graph_17.map @@ -0,0 +1,4 @@ + + + + diff --git a/inherit_graph_17.md5 b/inherit_graph_17.md5 new file mode 100644 index 0000000..21a875b --- /dev/null +++ b/inherit_graph_17.md5 @@ -0,0 +1 @@ +c967a9f01bc0a541d4b8c91d4b1cba5b \ No newline at end of file diff --git a/inherit_graph_17.png b/inherit_graph_17.png new file mode 100644 index 0000000000000000000000000000000000000000..afdf7a6f455f31bcc8692875a6399f58ca32b16c GIT binary patch literal 11294 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 literal 0 HcmV?d00001 diff --git a/inherit_graph_18.map b/inherit_graph_18.map new file mode 100644 index 0000000..df74527 --- /dev/null +++ b/inherit_graph_18.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_18.md5 b/inherit_graph_18.md5 new file mode 100644 index 0000000..0a18f84 --- /dev/null +++ b/inherit_graph_18.md5 @@ -0,0 +1 @@ +0ffaa70b055e66cfe0a76266769a7632 \ No newline at end of file diff --git a/inherit_graph_18.png b/inherit_graph_18.png new file mode 100644 index 0000000000000000000000000000000000000000..cfcb8972c0a282133358c41f694178cbda5b1bb8 GIT binary patch literal 3596 zcmV+n4)gJeP)Px?#z{m$RCodHod>K`RTIYt#9px>Dxee<5JdwT#X_)BLWw0RM2r$bR3aJ_)ToJK zR4jnKM(HJ>m}u+;6a>LSQHp?A5h;SbkMo<4bHBU$_U_w#Z&|^2C)wS5>OE)9oH_rQ zIS*>7k))Jzpl}XstX+8Bv}VeI|8XD{np6^s=0GYmMYAkzkP1yI1I2RyARMPjlO_R- z(@)9+mw}gGemO24Ja4FzBxWW&NkwUX4dB4fKmRNjU35{-nI;O&Ip>^{vq73!GdQqu z#n zf<=oK$=bDR%Q~#Z+*J10(@C<_-ZEU0dEDwRxV{{H)K`R1E%GRE@9AAiWY zb?Y+nNc{54FBS3%&DgMEgYd3m>G$7%m+!y-K4&v?SjqbJ>vNWo`RlL0`sax!o{-L+ zJ6EXp!w)}X+i$#x6r`NiqSAAb}+*#uu1_rF0U5t^HCzF7`F z_+UBo&_m^b0}hb4-+tRA{`AvN_l4Sd=bioc%P+r_K?ev~w8)=UNt9O&=cbI(2Hyz|b>5ZVVGctGmbtt$;0G>|4un#gOf zz2^OV{q@(f{r20-lTSYBb9(d5H|3<0PLeTW#(4R$#~v%!Tyu>acGzLwzFoU^GIi=y z*>Au7WS@QZk=CtS%bGQ7ye`6e{`u$oI2qd+XPhD5e*3MLEnmLe`EmdK_j^0$cESlK zIKSZQLk~S9BS(&uZr!?h{g+;P$=?aD>FcViuJZisuWbI^dFP#S$|Wok@U+aYSZS#Q7nb~VB9Cex=+R}+w^xj78AQ>RW!o4Ir6s!d!?FrxCI zLx*Z`Tic?kEsC1#n=%tFOMQroD8^lqtI1cH8+oO~Ada z34^});)`n9QI9(6C^c>4ZFz3mw5fjZ!3Vlx#R@fHQCn~|;nwfI`_AWO0_k-xzW8Fb z4dL||NAKRf)fUjp;DxQ6o_p@OY8pl7%$cJm3_5!BXfN;IzrS8`$tC{G*U?8GtrI3p z@bNMq#{b@X?|J!g#~r7SKKiIX$N5JFb1+QiWrcjPo{TH3N36{Tc54O|D>R>c@`*Fr zBv~0K%r|xJea3|bfijJtZ@u+a^uAkexg|qrqJpdk+ugn(EC!6_V`shEj`fZ?2C&{1s2K>JjtdR*T)cR(^LX{@)%wO8 zZ}?_0TbS*begZ9JL;ZXIr3< zO#HQ-?B{x`R;@DXa9lyQD1HR-PJkoFLm-YW(?TKX$5a5b^!vpZUqnYzs04-yl>N?- z&#!5}D7o#n+X_cvAQK7!qnI!_2D|jqOMRT7oMSwWU-sR1-%unw?zp3X!Lo^YKKtym z!ja1Jkw+dW+ibHh`pKDRo|!TDU3S?;{`~V#G0h|` zTD0&oQ|%dbk`gc!Jo5SHp9_ltfe8Yr1Xy2t?X_Y@fZTiUz0#*oAIDhK1Ef;ULO__z z!J?zz_U+qy8!xmkFcd;Zz^*b1W64)92!kCda^i_6dQ}7h%+au6LqTvMgrG74*Ma5O zfJYp0gjWZLm76LbX(c1F^HjQa?dsMC%r?vtSvQ6ce8;eJ5frr2uwla-2FUjcG+40u49hv_1_VRTJoAhT z9X!dVIR7Za{ef{%63RaEip4ahJseK}AltNQqbB(g7y~>Wa>yZ$Wo+VVjwi<)d+f1? z12|jk3`}F{-N7zn0$|z%)%*@VM9yuq!qluBHAbq1?H$~{{`%`$r%oO3n~LBnfH~L& zOhcQF9XqP+YBg=6U=79$nM=U?0bfvV3#?`>d0D_T;HW^^m}b;L z_Ux(P5y*s6?bvpsfUyB)KlGYG)1nZCZzJZFJ(ppAptqSEOeH$l7(Rv@4j>+-C#&Ju)u zOQx+t)8PAIK_KEcSZr8Dn~MxT2oYo6RSX$+aNi9683U%?2Yr#|LwPPT0PDhL9%{D~ zbJf|R^0GlvvDQ;|`^wUQ;^48(RTpaoDw<#YGE}N#o^NPO$#~Q&+0(^K&p}~U( z%Y_$S=*~GDUU+dId+aeU12mhPd)XNnB^eGWcLuWdkIF82D=a}M9l}nY^=F2=7H;zf1jW|Mc5&kB;?n{;| z$yHpwyljcyT$+a1489e1cJPmw5c%t`xZ(;m>p}@2LdHP%#RMNsT+;-<2D{N5W*&ev zue7%#zO&O#JE=vEJ&j)le};KqU7K|2(nZao=Vka#2zr`F*3$$c@e^UXCTW^!)23;! zUcKD+bLy$5`Z&FDj;}&B4NVE4;(M~NfV&2Abmv*jgZLIfN{hHFej@W+CsnUjem+f8 z5>Jq`7c359CT2U(3mFiNVr$p^u@x5=rTeR`k>gZ zPq?#@XO2OH0|7>G?!NnO9}j`mxX=(~CyI`f62~PAOq9JcDpY6?R*om;&)D%L*)VO;Ja#>AyGc*Hx1t>vQy3l{hVEP|lK z-4N<>Ir+*WG^TciolLM26BM#bM!uT>v5>`(A^{+<#&t$OArueVdB&zM!zdoKBytY1 zWAS-}TW*`G<@_P|$F&D`E&h?=!-so4)8rZTSro>Dwgkuz8Z^j-lHY8B&1hIaf?JGe zF~dq;+m1@Vl}N%uAQgHbXbS+xD-LgPJHR(K7@!occD-MK-UlAw-L=zAM8`y4*+JR}}K}7&I z?}iwU9f6Kj%(8ME1TZ$|S_Y=^%2{7CXU=p$Y73WD^8aL^n8t+9FJv)qZvJsGjWr;+ z${6Ex>#et{Me)^yIJ)Q-FE8bDK1@>nF7#~)^@!SXyDp`zg9BTH&=mT|U|R=E|NEmXi}m#1XJgHpVJb8=YrRV{ z+f-;u!p54_Ng}4PzxbZRE!2OM$awn S=5}fT0000 + + diff --git a/inherit_graph_19.md5 b/inherit_graph_19.md5 new file mode 100644 index 0000000..44c921a --- /dev/null +++ b/inherit_graph_19.md5 @@ -0,0 +1 @@ +d8890f220d232708028f84c35e423c48 \ No newline at end of file diff --git a/inherit_graph_19.png b/inherit_graph_19.png new file mode 100644 index 0000000000000000000000000000000000000000..6c13e426d96b3b8592d8bd6a88a95dcf00eb55a4 GIT binary patch literal 3599 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 V4FoB85J3O{002ovPDHLkV1ls;07U=* literal 0 HcmV?d00001 diff --git a/inherit_graph_2.map b/inherit_graph_2.map new file mode 100644 index 0000000..58ad488 --- /dev/null +++ b/inherit_graph_2.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_2.md5 b/inherit_graph_2.md5 new file mode 100644 index 0000000..526012e --- /dev/null +++ b/inherit_graph_2.md5 @@ -0,0 +1 @@ +ca867b79cd21ef024a6161c176c58e8c \ No newline at end of file diff --git a/inherit_graph_2.png b/inherit_graph_2.png new file mode 100644 index 0000000000000000000000000000000000000000..f718171a69f29d765b4bc21a0095b55d6d4c40c9 GIT binary patch literal 2376 zcmV-O3Agr%P)Px;0!c(cRCodHTV;qAT@*gMtO|CE-CY>ipeQPciLE~rK~b?26$J$Y6;TYt!0v8T z1QENtb?xr%>v;~}9cJd8nSFg{m(TCx9+;Wi@!WIIdG398;}i=SF$g3x0`bY*o@ve? zAP5-6GK!EQ2pGjm5m-&5MzM?zqzD2D?pBW;JxbH2O>-xkxIw@dff_Yx(4aws9QhFz z>;C=wv~JxxM2mz5+ysC)b{;x(=x>@|;8<{HSENXhz%n`$ ziZx@#3~OOAS6s^^BqYf5_3Kv}HEI+UELf0$iI#o)_R-X-Q)%$v!Swm_XPxZ%J$UdS zVN8CqWXTeG{`|RL_Ft7ATCwuw%SXqLAE(r*Q#&U1ZQ8VR`Ia+D`e9?F(2 z8;u@4n(&uG7cX9UAlDg4eG~gFd&dOZ(bQEFo0l#Y~H+C6su*+mb7fy zGDmH=&fK|kQ>ILrsAkQYgv)6yu#o-w^&?;iJbL%;ZQU0=di03Wq)9`-4}I?6zhB1R zv13PRD_5>u)VOhDdiLy@ZjQ!{8%Nj(B}?*&YwRoLj(V?U#20fIm!I_^C@lGv;@%bpk0`LNR}*Fs6&Si0vh5KDpa5*O`0Gm z+;08)^`ey6bx^wTJ{_3G85fddE99P*M0SY^O_;AS!!d(i)`obUj*@X!>{_xM96d2}7OL+!aF-WRPl`4+% z%wg2z$&)3mOqnuj>C&ZEK2J*V?@SVBB~C zAGUT1Px|!fRq4{D6}v>M8O#migJ3=w3-dIIGx=A%_!8DH-Y{y&kRcN7(xr>)+qbXI zQrE6slm3}@s0R-oNEqXXu#(DH*g9JCJbCh@ii?X=Y?0KB8#feF6~&uQ@upS0X%*HB z5-aXfnP2VNwNt!tb=3NXwpeb3u2ZLuBMH_8yTnVhwL%_)C_A`Ej~gX#gT8vvP6jzmc`bEFfRyBim>qLTh9}& z7j6=+u2`{RV*PPyM;g{-=gyr{Hw^C5fX^%06^nP1qbseMNkGiOdT&4wzoc=2MYRjU?Z{>P3TlLveY zbHkMdxFFn?T~JnwJ0HqpryRN*zItP=UcK6yC-8)8El{9cgE7VK(9i;l4GRP1!x(4Hnx(TMzSulaoVj!7isb}%$upFyJix$F__++B^Cz>s$~##&1)t<34xWVi5O5eiO-fk5_-;voi$GYZ zgafhFRO}{I*REX^_!0!%gk6l{Q<-8nrGonL;#lm;q#gGQJPdOOw{r`)8Q*mY&zU%J zqHrT{EpXA!ojY3`i>;HYU%$TO0~03Vij`94r8$u(e8;8Cw$vwOBHL=q3iJ}QSqr+Ve#Ffab#ES&hm`2r4(i2)32<7 zy%5@B>nEEBVY`IE-A}Q6{~jwEs|R9;BQ;Dh?p3sa^WeV3OF*vS_q_!7NqnmG$_kZ+ zc5&qQ6Wnk8TLRaF$4i26^ePVy%O`KIEOCh-_Fj?_xQF6ciF`TAmf(N;`=Hk%n6&5+ z2xYNwla7;)5rcpmflwC9-I$3R1T+Fhu{09qo2&>J#Y$EroJZvMzK6$ uF^ORjFp3oxK~vuo0i#%+u$aWK2>b@7gD~|W&~d&10000 + + diff --git a/inherit_graph_20.md5 b/inherit_graph_20.md5 new file mode 100644 index 0000000..8fc9734 --- /dev/null +++ b/inherit_graph_20.md5 @@ -0,0 +1 @@ +c52233d6ab82333afe0c20eda487c3cd \ No newline at end of file diff --git a/inherit_graph_20.png b/inherit_graph_20.png new file mode 100644 index 0000000000000000000000000000000000000000..cdb3e805c6e205ef890a785844a3e36438962d8c GIT binary patch literal 3785 zcmV;)4mRPx@gGod|RCodHoe9uS)f>kTDYQ_L7D|gkp=eiPm=;9~YLqb|(>kU_YSL6wjSxf9 z9$IZB%NRphDjCXFrYK65c7;|;)boEn&;Nh!+~0kF_xJv`*Xuv;eP({|z4t8lp7WgN zJm-6!?=dQgic2KXKw%n~R=KeHN$o@f|J6WZNQosBMFWW;6-AB7OA|Z44?noEW5>qk?`;{M zfBw1q<(FUfXtVnF@9*xo^FM!Xm{CV zmz5~@#~**Bq{Y2U19|SRzy3-o8-DobpMM{^|Hd1-;Vly+w**NRK@7h&%4M z<6Ogr4PD*3b=`sm3v6awbkRjNcn2JCfL*`+_FLDoWlLA1Mh#c5UOhKy(xenUv~Jzn z4I4Jh(pIfnq`)qg5J@>dqjT%|~^UgcZO`ST` z9dX1F?y$oSbElnln)~_ZpRFtgeC@T@T03dm#TQ@fHf`Eud283MHGMqw)KgZEzMX&m z`KB-Q`s}mMx>sI##a(g56;}T3x8JsJqHErD*Ijp6dh}0Je*_ZSwQCnGR=j88+hOq( zNjNRj{a0UoB{~qIGf8yT%b-DnM2*F&%%4AB)M$e08swBqFTGT#vvlcFQDul4OOXHg z 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 literal 0 HcmV?d00001 diff --git a/inherit_graph_21.map b/inherit_graph_21.map new file mode 100644 index 0000000..de182cc --- /dev/null +++ b/inherit_graph_21.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_21.md5 b/inherit_graph_21.md5 new file mode 100644 index 0000000..f42a6ab --- /dev/null +++ b/inherit_graph_21.md5 @@ -0,0 +1 @@ +e9ddd980e6c6856562ce6589a9330e4c \ No newline at end of file diff --git a/inherit_graph_21.png b/inherit_graph_21.png new file mode 100644 index 0000000000000000000000000000000000000000..7d40c3246d1fb5dea9de404b8ac12d915bd318a4 GIT binary patch literal 3474 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 A`v3p{ literal 0 HcmV?d00001 diff --git a/inherit_graph_22.map b/inherit_graph_22.map new file mode 100644 index 0000000..8a35e81 --- /dev/null +++ b/inherit_graph_22.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_22.md5 b/inherit_graph_22.md5 new file mode 100644 index 0000000..bac72e0 --- /dev/null +++ b/inherit_graph_22.md5 @@ -0,0 +1 @@ +f9cf6df6505171f96a66be9a6aeb15e7 \ No newline at end of file diff --git a/inherit_graph_22.png b/inherit_graph_22.png new file mode 100644 index 0000000000000000000000000000000000000000..1cce7a66efc2c5b0b2bbe5b5ab7c28ecc8638867 GIT binary patch literal 3024 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 + + diff --git a/inherit_graph_23.md5 b/inherit_graph_23.md5 new file mode 100644 index 0000000..df28eda --- /dev/null +++ b/inherit_graph_23.md5 @@ -0,0 +1 @@ +889a9474854f73d7d2478a52c1031ba9 \ No newline at end of file diff --git a/inherit_graph_23.png b/inherit_graph_23.png new file mode 100644 index 0000000000000000000000000000000000000000..b75c18fa40ce3cc58c2c77705806fe73e77df40b GIT binary patch literal 4142 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 literal 0 HcmV?d00001 diff --git a/inherit_graph_24.map b/inherit_graph_24.map new file mode 100644 index 0000000..e04afb2 --- /dev/null +++ b/inherit_graph_24.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_24.md5 b/inherit_graph_24.md5 new file mode 100644 index 0000000..8fe8426 --- /dev/null +++ b/inherit_graph_24.md5 @@ -0,0 +1 @@ +f417324fe63f9e56f0d019d28e9777d6 \ No newline at end of file diff --git a/inherit_graph_24.png b/inherit_graph_24.png new file mode 100644 index 0000000000000000000000000000000000000000..95df03dd1c5edb9c8ef20c00e54b19a8e44454cc GIT binary patch literal 4184 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 + + diff --git a/inherit_graph_3.md5 b/inherit_graph_3.md5 new file mode 100644 index 0000000..45e707f --- /dev/null +++ b/inherit_graph_3.md5 @@ -0,0 +1 @@ +40973a8df0a7127751b4109b30713573 \ No newline at end of file diff --git a/inherit_graph_3.png b/inherit_graph_3.png new file mode 100644 index 0000000000000000000000000000000000000000..050c787f0b5d4ce2d84a33b2f1f5e3270c366067 GIT binary patch literal 2161 zcmV-%2#)uOP)Px-D@jB_RCodHTW5$AOAxL*PsOZf&H>B`vxp#=F(5`vpqSu9Q9;Fk>4zewA9t7q zQ9N@FVEUnl`OfT};+eBz&beQGg+0vd&d%F)jt6hI3wEccLrr(hS5;s4-o+^vGGZ)1 zloD^OU@V|5V8Ea)VXkDrU_fA5z<|Lrg()Nin&8ZtGqhyMlE7+nA4L`@TC^ywTD2-@ zMM06_;lqctZQHh>j;10yERda@O?&t5bzMwQWYE2~Zr!Sj<{Cv7NJ&YdxpU{bt|%xn zxb`xYF<}7%hM0KG;VsgDAv`<9L@xt|n0U?MEz&m_UcP)ukjT<-m*5g-!Z!moQ`jt+dIz_*K z|CZ~?lPCSo=|3BfGnH!9s)hBuA3uIjyLRnp|Ni}Q?cBLD?b@}A>ej7G*sl4JvuDrJ z;lqa`RuRek!%^-V3>7L=pmXQWQJy?`9M609>>0s;k;=!9AL-q@caaX0{uul1+c(#- zZ{NNZz}g!zzgMqb*{ed90r+dzt`WR=^5n@hV#EkKaNq!8{p;7ScZ|av?%%&3^gMKe z)8H&8Qi0A-pFTN;MKXWKzz{dS!EpEPUBZc$ehGK(+@XdI8&c)Um8o#y!i0UTmPU;l zIl|%EwQH$On>Nynm({&{cdA~!I+Z9k+!U?EYWxK=1sX@xNxC(CvH&g z+qbWT?NX&mQK3SGXy(kB(hpx3E?l5`_3BZ%a^J}|pBz)q^l`As6@87=@45kHT)InCSUQPM)=a(FeJPf_-)~%DaV#SJ4 z|Ni~OAgE~2paFI1(nZ?9Rkm;6Ehw{K6iYuBcgD_2r{d^}B=BAX zs@2ZMQY~AylzRq_;*hHtOp0HQ;t;49C|2K4g?aPlspid_Tg@25MpTzBT~Zr1Y)~8x z6dPGFFyu3B+BC%kQ2M8(r6~r1HTK^M3|@8g=uwrFl%$v|$hxs62D=Px(V~Uo6yi|B zU{MSJh4s~_QNz);W5*8l;K2hmd-iO_QBgH++*mQt6gz_SV?fJVIHFkd&&bG7adB~q zBdLmX{!p5noUAy)IOg%^COPDB^xvWjo?{nyF}%`EbW}jw*s){j`Sa&AYSbv{-?nXA zTE2X_qzAXL_Bx~oExB{&7LS5%cqF1j{rdHFvs~d-kqW|fu3Wh!J%LC(9gvV2oVI^V~E#tKyHs5IpX-m54-^9Dj<9i@Du3PTTSddu+|j7W<*@C@)EPIEMD*f8lEIDb*(=PNLI z_~i_|aLN71OL_C=mAtK=aqQSJRj^<|$eQ)-P;Qwc_2s}&h6E{%g~#io*q&!M})AS0bKwtM?Z_`1rFw1FTet+4iwmg zcN>A#p7$WG008fXT%Q@q{Jp^7i$H?JAWR~haTKru6vCa}ZdsLo3Lto)@*Vd3*uLeo zKyTBgO+%{1`9rt@T{tiC5|BoG+$3MVd{m`M6}P64b>Lb!n+PS5%s-S4)cfKLjBsL) zi|XGayo?uZZN4G{JOpINNOV}hS7e9|6PQ(K3m7nHOPH%a&S2~pT^0z*8T$3>7hNkg zs}T$612H#q1c3oZr}#SE3U=3nw-?v;Bi*z6`ej1y~3 n1`M(G#y!?+z~Et=SZn$R)*0VW_+vWX00000NkvXXu0mjftp^_t literal 0 HcmV?d00001 diff --git a/inherit_graph_4.map b/inherit_graph_4.map new file mode 100644 index 0000000..257a8c1 --- /dev/null +++ b/inherit_graph_4.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_4.md5 b/inherit_graph_4.md5 new file mode 100644 index 0000000..cfce085 --- /dev/null +++ b/inherit_graph_4.md5 @@ -0,0 +1 @@ +16c30bd054f61360710296c39019f4fe \ No newline at end of file diff --git a/inherit_graph_4.png b/inherit_graph_4.png new file mode 100644 index 0000000000000000000000000000000000000000..22f623d07e64ac248b2b28444cd2e4cea6650fe8 GIT binary patch literal 2806 zcmVPx<2DV}?HWqd_BG`pscPomhsMy%uSSbFXB6cfw zcX!Y4ea??NyqTTZopILRkKKI--oE#4-*eCXp6|JD*f=gr#1TgWu}=dl;>Nx?J2Q4P z@UI3O<993})@r~p{#d*8&cq$#cWfZmY9PM%%#R;GE;DD&^iFo(9SuZV4J1mGNLH>~ z8E*XHkpIDh2eNVF#&89l1V;nWQ3H4H-jyv|w)h-+IOI2_Hf-2n9-X_RfoQ9N6)RRq z&z?Pfjz1jo`z+-oIvR+98gPt11}>^IrNA`c7=K`Ta!SQO4LHUh0~ghqQeYbJ8}J5J zUF7AKj6sZ&QrjvOg-=gyV* z@k5@j-@g213?4jKdiClhxpU{1fddCh*REZqXwjnnibrYsyLazo^ytwtdGcg=_3D+b zk*^LITmSz3ePu^#1*OS-5barbX7)-^k~*;l+y=+Vq?` zbL7^oTYsY)pKX5p_)%uho-N`}-2g$;n-A`{ku@q_H%!e&X5 zB#C#j`~B_Pw~{=0@^GFOo!q~FUovLQ=uv;kk|plC_6Ig9V>LSd@#BZ;$6h9s=a7;A z&Ye4wI(2GA7Y1_s_H8LqqJ-qil}l2lOzB~qB}7#G-;A#%9Kglrq2%_K4{gj zurQ?s#flY^0RskT+Pr!5ROvZ#Dd%`4O7^ER6DrwTB^7!#%y=WK8fUx^p zw{Go5<>JMQOTBvaG%wIUcmOuh`Sa)H=FOY3W5*7yO8>KF&5|BHddSqNQ)Tboy)ty@ zP}#hBvw(gW1bsbw_DstU8#YYi45$ng3#xVI%o)wwx^=78!voO=XdI{^cInbZH$L75 zAShU{pmgZaLEA+)w8e>!hFV$AMbHpzI<7Wv&lAX z+N2<4=00)aL;>l!+O%n-MoT~FYv<0L>fxvi{aw9!wdxM4$uqGIZ9jVSNH^8erAq}y zz^0}yAcN4Cu>;T@Pq1yoiEgrK)23;hw15A81s3!Qu!brj8^8AeN|!DzEnBu! z_iF+@&@wWK8#k`T414zM5q36psE>dE7$(S#5X24|G)SKV{WEUdIIR!D69~gIjS!%N z(xA+O1q(EQt5BhWKr`qI^xw5>m(meD7xTja@I=spYuB!6Qy$d{PiP98`Gx_0m0UCURmUR?~T z`KlXi8XL$624wHszKGB^V~nOecaROk#Px$%JVWo`*+vc=IG|p{yo25*hA?Tq?igai zgbCGHOg^*`F-VCq7$KHw-@d)R;$b+^0bwZvul5xan7YJB5pjO_xDhx%^F&w74Ju|A z@6(z5`SaVem5QK^cd&avu72tNJNo#4ve80 z!KK45sekI!DJ>V#F{Y^(=$*a;5fl&IU;~&7R0e^dHyoSdvN2d(GhWIF9NF$saPM|X zXv%rtF;)!Bt`8^`0@@QlVB|)i5ggrO=zs;@2@ip%;KSk`|an1knR@<>JMQx-htFkgG|PCfWkQEHME{zyjh9 zjZB#`Mc|k4PR_wgl`7@tlb{D^Yxpxt<&61nNTWuL)Tm8x4dQ|D&!0b+d-v`sY7&eg zxNQs;BSfgn4+7Z$7&8XyE$~=2y8QwL@e;%yhJx@DTqp!VE);@a+Oh%Q#Ly}F#T(%* zp(<={C=KPHKK_JFYww$9<`tQ67y+FkCSbmY4b3!-tN1L|Uo&@T)g?$1#n>5PvP50IA+SuFC1 z5hLXE>C?J-L34CL9lH=HdJ6`FvGcKL{rdF+%0ic*SO@_)fC8<7@&FEexPlT8fOA5F zK0!?MhzA9DYSygj-IWlNc?%Q^FBOrn!8kD^J|gy_Z*ToWA6Y{Ls>0@HQzOJ|%#XhC z5Y#1Z2u1)QyhY~Bnbj+!r;xm|%DB@lFXm#-h?%>E z!tVS)AJC0O2V52!yW6wZwY;dyLQ{K^K3gE;vOIx1oidhpb-zdDgXIBT*6E$g^3Wd5 zTEOP&)~%b%qO~r|^M%W&Fgio0mM8b98|+Ik^_MSS?y^o1eRZ)sB;*I#K`PML{xJju zGSt9(XA(sD<9eW}FJ$s=SojK4d&0p0wGIqmY!$4l4) zYkwc+yzBkRJ02~ffExOR*YqV&xUyx-`pOC_4eu8f5|Z)5A5Wepv82i5}XDc;}1?>PU#q=0mt}b&|*4M2~Gq50M0+Pf0IE{YybcN07*qo IM6N<$f)bl#pa1{> literal 0 HcmV?d00001 diff --git a/inherit_graph_5.map b/inherit_graph_5.map new file mode 100644 index 0000000..6aafc05 --- /dev/null +++ b/inherit_graph_5.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_5.md5 b/inherit_graph_5.md5 new file mode 100644 index 0000000..3e889be --- /dev/null +++ b/inherit_graph_5.md5 @@ -0,0 +1 @@ +3beb1c99167642cb93889125b420be22 \ No newline at end of file diff --git a/inherit_graph_5.png b/inherit_graph_5.png new file mode 100644 index 0000000000000000000000000000000000000000..9a7937f42a4b0128cad900987b3dba531a41142d GIT binary patch literal 5423 zcmV+~70~L5P)Px}=}AOERCodHod=W@MH9!HsDe3Tz>G>TU>3tYeTrF7j3}6%Vn$K<6!c-v@xuTH z1Qio11`H^Q8H`{81BhZmMFmk*LVxuuUeDLNH#0ZO?%v)>*L%mLjJ0tXgwAPAzc5&{PT2P)2iAc!jd6NCW-4g?MaK@`?N z;6UI&#W~Qp;v)zHsM8#nH*cP4+&CjM&_l6hgCL4!OSqZOf$g{7-W+hi0r|JXb>Ki|4xkAo z38H`zWoBb27&s6(P%aJxK~yfzhIRu70tYg4APAz&tO^AK2LcDm#er%V(cgdnZD!7# zS+4#T*>;y%W*O78Y12h^{$b*Q18E$nCWsJ1AAkIDTAlE0Avn;sZCkVAiYqQe%|)xq z*=L_^PCof$v-a9+*ZGO#1)4Nzk~!go6YAtxUw-*z^T{Wlm=jMtu}+T9A5=9#kuMd~m%GL_hrSgZcdP&lBfT zjt5zI==y#C{rAn&Pd{BR1W~|<+^-gnCFQ{U`ST4M)u%ag=9uZzr~9|`eD2)2hGz>y zKnZ{R@yEhcH9!6IQ)0c}e*4WZha{RYV}?26h$GB3*IZMr$gEkjjQ>%Kq_!yY%P+rF ztMA|7x!+b258=UIfBofGtykwk5Y?-nt9}gjqKhsv>#Vbm*>J-R&FZVKZeDxsHS^I& zADP{E-(B&?=FOYyk*Mv{PCLykz4X#*ww`p-NrroluD<$ev+J(Ax=XY3&O4jyuDedJ zfe;Qm>@WlNw#q82n2sGgnje4sQS0xp!w%-a0}qVq?YG~4=AeTP((8>j+Q^)L{`snL zt+m!#hU*VM{4gr}-h1yE%;?otTg|Mn!U|f}2?DHy%P+s&v}@PSoN>k(I+iY7x@cX- zy7%6DYpfL}_!?`hVIF+&K|>v`i70;d*=M7EZoc_uv)ppanKjp3)2z4NdS=w9QPDF3 zM=!bL66Ifu7A?$5E3IT+fBp4X9wHFwgZ?PX+>?Zx&p%8y=KtAepGEyv@+1hNN^<{S z*f*HT4L96iKKS4R^YhO?tDx!KySHxckt0W{(BbWk@OkX9$IK&-JYpVw^ilK07hkAm z<8Pu(Hrd4Nwbxz|m-g9b9~A=JKoETY{r6_VgbBLw*o2sUjT$vFx8Hudnj{3zVd}l{ z#vA6Qn{Lu}e*gV<4XPVEcC4lvuyKz(@<`P>&}8TXA;#Fpj~{RDyYD`2kIMi2^N+dy z`s>xyx$?>@jjxTN)jjjfGp19gPAU*-_s~NRRl!7`UAuNQ)PWF4=bn46&YeCHV$5^e zv}yVrt>?}=?=-`Q57#+vx7~K;s;jPw<>9Tj-l_s+>eQ*K;UV1Ov@{y_`A0d%haj&L zB+@>I~dg-N{d*Pxu4!}<_1Bz>;LbYXs@!>ox0wdE11T(SX9kjB!?04UNXT`j+ zVlrsmS6+F=iU5k*>E6A&J@wR6qw7yU{Z#vU>#et?x<564kxzvdioqd+edtoNuwk7SXc-0|sc{B2@IA2wh9x(Ej`HZ<)Ir zJI9ST-q_x8#~u27^UXI`{^^DMGj!-s+p1M7z0Bv~*I$2aMLV=2?5t>ZRs@>1Phk<7 zcDLPj(|UE`A9x~~Vcbv#1dXUpybj_AF>PA?3!_+n{qQH z`>qiU%CDYy?hCBMLh^uqFbCb(If4;kS~|+omZ%oy_~VaPe2h7P#qGG`jyZzUwO7}V zMGGR{AUEE4W1_^)%799^LbHyo+~sD^o@1VPVw~yL?RI$^_cgtHKV-&^ot)z>Dfbvk z)jk^+a2TuyZ3OJYd7lXA1ZQz?e#)Uaf%9;`fB*hD!@yO2|NZwz_rPlqa0m;8-EFts zrkVsoPE06s%rVF4CVchPS9ML^efQmp4H27!=HLhn2^@yCi;&uS>#Y?y223Y0lYZFb z2qeajz$+y&Z}1-n6r&k#y6L8hE!EVI&qMeKuEhA!>KO0C4?i67JHIW*Kkg%-0nB|& zF28(jUKcHh;sy(dC$@JYL*m|!ajwum|NJx6#TwT)_gF+}4CV)Po58i=tF+W-{Bh%S z<+HrGUD>!Jn$C+aPLSZedrj-seFOjcQD+ ztF1I9NbnOiFW78oEUT`%stS<4ef#P;UMlXRP5EXM8qUQRUmUUT!V51nBSwtS>$~o{ zOTlEkMVMrQ!x_PNRJaKKVopE(bR(FJg2Z^d49QyT+61*p+doGnUI2g0DJ(O@}t?s7hha~Lcl`th(zrJtjU|qirsAGN45Zg z9XfQ-=ht3)trc&Do&)d!Vm4{g#4fqyl2#V9ee=yXqju6x`ij^PHiV%!Iw5OhWO2;lPVeMbs%Q`O_5%;GBl$4EQk3Rb7 zv|;2t^TFydVF#r6}|9)PiU?-bk>b1trkg2-aBSuvSnpO@+; zU_QV+U~{45^ALbuaHpsViPf^=nT)RM%1IhnofuiYFj7%ae|5!v`Q?}TrUQ_}?j=qG z8=SWi0G@1iO(WsjfqA|w6xA7*E_OfaJ*u?`CWAenM$RpYTX>gUc2V~*sx>OB{1~eK z^Trb|gvO-E22d6G*kg}1sPiJM^zDMVfU8p$ikbktrHOZO?%RI-`bBXmY2$Ivrc9Y( zMvfdMpzSB3e$O;bnluvAU_rc$JG!#@#}OmOtJ|6H+b785%D>W zD4RtSaOM3Y=1A+-t^He>&*cSY_=_XroVMI@%eY4+y$87M1Kfo)?(+~Ayzhp`bggex zQb9Cm&>-EQsNRscDOGJoKw%GFjkN&Mm`1o!2=rP2I#BmOftiUy({?DEa63C(Te8Q*woai*GiCH zS)jZc`=$Uc=LK5p@tMk_#p3-W0Iw7TSiRU{i|Grd6zzdK)kFjY^0LZb3pLd%O$*WNI*FNjk$5&vGF`fCVVXBz@L7ccrp}k+r9i+w+*=dR8(tc`8l@sIkq#X;5Hs*l`9#BIX3(Hx z#naSI-ujJ2Giy*$?Wa_8bnTE2mgHRodrI?crgkB?(CBzY9O8O0`m!Guk+F-6pzpE=#=&_`N z2!Vks6`&HAEcgmG}Gdy)WANl8*9e+I!J9=2*@CJzU}g?WZHh0p@9u8E3qi_$g# zCHX+$ObAWfxnN6x>g6Cn>y91UiYe1w!23%j=B2Bc1g#=du^fHYMw_^mk2~%-{he`@ z!%r5kBYt1j03bDgV0eyjZ~)+fBeF)4Hjyjuj+l^VopqKbml8GrPU&kLtjV}!*SKWd zop#zuLjh=;{)t&aV`4psmsd@Ao{=Ml>zu?_);Iy01X4PB?z!i5FEB^ud*+#Ex<>^a z)7l}-1QU|+F$TuNiyk6Y2@DiKpM3-d>L@MgHZEzIdW5)u^=`1i25PlP`bg}54dnVL z=$P-?E7X0TU!QBiTGVwb5<2Ixm||8uPga0ry)WJ|D}Z%Q8UI2gvX!@he=E~@F>X;h zAQS<&s_!Dr)Nw)~-+iA@B9g#RA+Ouco&Rek-YDl;ZC@1Xz86zU!#P9{DgU?@ zoXv_5(4k8ZpOp|kS7`CH_AF)m2reXKZ6{!9%4@PLC%`IOf?(=UJAyh{fTv= zxp?q{&=tl)Xp3k*nu|w%AiNPPM04Z_31F{Yam5u@9821U;C@!V6{U5M6XKcHd^UZU z;h!}3Jt|`kl|m5ZH0WKBkVjmOyk+zUVF9w(vJyX@c&%dpBv>nJGqql>P(f7d15D{~ zVFi&N*CN^X8Vg1@2zg@9*wmCEevHk`q9=w+w4t2Qh;zVZ5k#UDSaFo()Mb6in_urC zh?0_BlLQg5O^l70B1eK5>OJ-ef=Hs8-6NfYI6f?85M0DZvC+kBvaA8YAgx3>S-~TLs!D87A!ZLzqk-x^2MBw>jB$jg5wjcu$G}7)PK;=35?vjU>VWCvQ&!Iv z9?v9?t!oc+-x1~?-qJKsns_);Dnvta)ie^C3x}Uz4mrXrOq;Sf^@y42LPLm%<`X4_ z6740m!<_SDwg^vv;J5F2=AQe1>C(K*KoW${@ZBf)iB}m@jl^O0D_9iyZSaj)J@*+B z+AoGmiV@W`5Nt~($q$UDf{6wC_i;e91qFcJ%zV!yd5L(X@PzWsB2p9_%AMa8Y zit~6nkFBfkgUx=jt9zb*1Ybd@uyGwR7YNJ+LJ-6eA6P@+;`m^_gVzu!StzBoLs*Mw zBRS(Ed6oq7e9treA{4<}5uQm&w`obsc)7vAXhS}`qM;q6jg*3FRS=b8z@d%0&jG+{ z=MhC1p#3<{Bj75rTx?3e92*KClrIMk8#YWg7y+0MuwJ-6hYCh;cmC2z<0D z2tf!~4TzuST~13{7QDz@dg-P5yWxyN`zmxkiF22Ra;TgbQBFsT(8Z#L5lIlMexOUt zZv}7V>x2=OAYVpQoB`k%JO~U2@Y>}W0#t*u@Ju{GmbzImBJ#EPNEvm-oY34s5opmW z10#~K5XEW8HQa2o&8!GLeJ-H_il>ODPV>Heu$u9TCs^|nnHQLqXgFFAj7WrM)CVWz zQR3(TKOr|!v?>Mb#e;0cq|teSk!8h*YHCLWwd5CZM}$b5UK%iqLvsg5-Y!UW*smiaBcs4jib@=nI^S_TVx27`c8~DGeiPKqJ1C zLVe}G6T&tOR2mMzPu?J?%k_81tPK?5mqAJEe#34bo2ulT^ZtZ{2VTKUpB64YM72-UrFYe zEAJn{anPQe21WiN_*5Zn&|X?Q@DuY-1Z9-F>Bc}j7MhZHF5Ru@h#7{NMQ8(abA(9X z_W{oX+w#YX=0(sl7%yKwD1=0y$tP}l$GQ9mCW6&$o&foksi@^lkgt*;z#?t3!f3w77l*ExrA zmxlucbP}CSctsv1yYKS~hRa2i1GsYev_zo5fnqs8>{k94QeB%tBXXPw$H0NWfl6^; zV8Dnf#rn{1;6UI&#DO4)B36Wxz=6PlN^u|vqDpZ-^cy%3I1q6l2%?A;;UsV%aG+8g Z_#eXtu%A|-dH4VT002ovPDHLkV1h1eZxH|h literal 0 HcmV?d00001 diff --git a/inherit_graph_6.map b/inherit_graph_6.map new file mode 100644 index 0000000..180a956 --- /dev/null +++ b/inherit_graph_6.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_6.md5 b/inherit_graph_6.md5 new file mode 100644 index 0000000..2cabf30 --- /dev/null +++ b/inherit_graph_6.md5 @@ -0,0 +1 @@ +49ef87fdfb28e3be4f3b61a0af975d34 \ No newline at end of file diff --git a/inherit_graph_6.png b/inherit_graph_6.png new file mode 100644 index 0000000000000000000000000000000000000000..2b7c1c656e7ad913979be81135a2de80b466e9f1 GIT binary patch literal 4454 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 literal 0 HcmV?d00001 diff --git a/inherit_graph_7.map b/inherit_graph_7.map new file mode 100644 index 0000000..8451dc1 --- /dev/null +++ b/inherit_graph_7.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_7.md5 b/inherit_graph_7.md5 new file mode 100644 index 0000000..a113d8f --- /dev/null +++ b/inherit_graph_7.md5 @@ -0,0 +1 @@ +8c4acdeeca6fb59174405cd3a431ef59 \ No newline at end of file diff --git a/inherit_graph_7.png b/inherit_graph_7.png new file mode 100644 index 0000000000000000000000000000000000000000..05757e8ec98dd5a3d95e069150cbc7e4dda9f713 GIT binary patch literal 4188 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 mkD-zSS-30Nk`udu1OEezSk9uBpc|I}0000 + + diff --git a/inherit_graph_8.md5 b/inherit_graph_8.md5 new file mode 100644 index 0000000..f7d1367 --- /dev/null +++ b/inherit_graph_8.md5 @@ -0,0 +1 @@ +f27b0a1106f899a7f4f50ffcfdc1837c \ No newline at end of file diff --git a/inherit_graph_8.png b/inherit_graph_8.png new file mode 100644 index 0000000000000000000000000000000000000000..57f2fa1b1b602737d4fb331f4321974897087252 GIT binary patch literal 4848 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 literal 0 HcmV?d00001 diff --git a/inherit_graph_9.map b/inherit_graph_9.map new file mode 100644 index 0000000..240dc3f --- /dev/null +++ b/inherit_graph_9.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_9.md5 b/inherit_graph_9.md5 new file mode 100644 index 0000000..444ae53 --- /dev/null +++ b/inherit_graph_9.md5 @@ -0,0 +1 @@ +a8020598f31af81b6cd89cf95bb2ef08 \ No newline at end of file diff --git a/inherit_graph_9.png b/inherit_graph_9.png new file mode 100644 index 0000000000000000000000000000000000000000..f557ebb9ccad10e537364eba8b3181115ef07060 GIT binary patch literal 2977 zcmV;S3tsezP)Px=TS-JgRCodHU1x|CO%tv&i#g|Pre_wGFRyeYVynNHJF{dD(JRqgx6un76$Yao0LyiE~) zS-+&Of&Xj32aS(}h&AAYCSsNO6@1Y67>Ha0Ai`GJym>Q-vH$1mKrygy-##lma37n> z4Q2u!w=6$B8ED|sr%%+ocW=ipbp=i5&Yc}A_=(9w18?8Hb^TDE)3~a}&v4U#4;nYk z`01`1@Im9M8b8BL13qZnG~=hcYT&Pe=KA&PG=BVe*Um*-#>|;B>C~xH(bla%f9B4e zOD9g82t5C(n?DMglP6D7@#4i@`~Kv~6I!=!oojxyWn8^_m0rGlnW)_wH*Opa9Xd3u zcW&CWi7s8b6js^z6iP7A{QC8ao<4mV)R*tyztgK%uY%I>@cHxS-_pWOh>eXUyem@q z_U#+Jd-u+7<%|9;U%s5$v}yBOx%cni2c@~S_4Vsl`uOo;k=_-+x0A1T>Q-O`>AOicy&|WvD=b0(AWNaYcOd=FN4WGGxf0 z*M|=uQoVZhD0Ak_RIp${+PZaX&^I@3+?Zy~nx$!1u3VuaMT!u%Fv$7y=c!`Fij+Tp ze#(&}2ThnTL6wHtpCwBcTEBk1mV5N*5#`B~hc;~3pj%0)Ql)6*$dUTK?AfzZ*REZI zK)YbU0?L*x8x<;4h)R?wK?e^W)OH>}eoSf8rll1tR_He!IdX&=HEKj_*RIw4+O=!b z=+UF8Y}v9}zkdDtv~%Z9%9}SY<;s=v#{xE$I34=bCrx z)-Bb?{Q2{>9=@$Xg9fTE=yl=3g|uqbDr(=py_Vm*cdxz^x<*^WhY#0u`;T3JGiJ=7 zX3d(}i^c63eqpPaFoHGB>;C4=n=DFanISB*nWs*j$^s0na`fm?7Jvk*i^Gsxw{Fd- zbN1|6mJeqEMj(Is^yzHe)-q@;gTk_UvCL%7moFbroH&tXrt-ae_gFy6ix)4}y3?jj zvO28dDbkKAGue!nq4I0EU%UJ-W^<*$KfA{X)oGDW#K5*aw%j(73wr%4y zY0~IB1>jm&z`%R<>|t3QxmvYqEUS&y#eK<=CHcaI3w-pyojrGIHFdOBa?Eh0mNh!vY3gvu2Iv4<0<2`}Xat_xPz^ zy*h8)xKaCy??M01oja%bb?esUB};A6**1>QG#^5h`U1Tt(lGP`v^Fc?rQ{$#IbnXy_@ zmUYJ90)$XFzymR$kr}Vg_(4Bw)vBe>GJACZO`EuuD_4$}EnCJ0H24N1cF$cN59?$RUZ`cQpb0b<#~UxuxP}qJUAJVm>GFwf1XUv$9e*E}B zvNBQm^5r#8miC}BZVyl>_{jbH_X&dm0Vgn|62yA!*s&yA0L_~>kNWlNryL9AKvI#9 zfq=kdHWnS)ZPKKP*3nG)0fz$U5U>j+rY~OQ3>aifp@t0`YEb|JoTG5z!UW(#0D@2g zUI#9R30S#uWi1XKme>-yry+VI`zf_+*G{buC|fv7z`7BBpfd(D7eK+PG<)`JC3zsM zFcGZ+^ZWGa)0%|U05b}f2ne-oO=_OYYOCPEdoU0X00uKo_Frn+v?&Q^2=oD#7Jv)^ zATU!wL?P%m$g3gS`}gnH*=tCu7K-N&z>Z0^XwjkofUz3NRu-55Ua!CkW~@Hpa!R^E zf+0J0>`>4_Cw8&w4|#BZz&J<{v2S^iavE7Zluv*_)~Hc~1^EFo2J%?CbZO->^5HCw zC*>Sjvu0HSCxactX=Hg>EhDwVd4 zg5Xsk=HM>iG^o?6RV$WR&9d4sxCZ(R5to3r1Ac*g8DJJ`N%IV+0gp0b=QOKVuQpjM zD=SZ#G9~cbqel-0AAtxcS+;F83eY!@*~^zNYo6gWh6f@MeH=Avl;(qof(yckKz~7~ zWpZ-SqD5IOGVb5MzZwbXua(o-^#=|Jz80={ahiA&VRQoIS4>|WXx!UHP#;Kwa_~U_ zQKSN*3hP36NLWqMY<@^5b�!_R*4VF9X?eJH)349Mm;QN3NBQ64ekE~{Ksj7Y$w~8RN zR#NL$E4K`rDiib!-&JBtyg5x`b~e&?i4TKn)~p$6HNSia4MaU? zKJ$81;;c)k z=Kg3qQ4bn8!NiLk@Us|gz;R}Ej+yjuuBZo}Q7G{W3W`TogP2Zjp#4Ze4%dQ{L(i%G zznvEKpb<-f#6(w*uvc&|lp@EB8ACmL_EZNToNDkCFI~FSv6@#<5WW(4vf&_v;|>S# zjg!$WsOtC@{WSLa3H@yR7zkRLd$-`8*Sm)d8Ny=0 zFoKj2ag3?I2Yw*CPsS@KC>~_>qri0lQy0Du1WZE(RlWL#JOn%uRE!q!GP$FErE!{T z5)CI~e&eWx1o51T{g#HK4JN#SSuM^w5)cKI!?uEB76MESi@;k9Hv!&(I2DdaAjXC? zn7TMBfj+>~jO}IEuwi;+18xQ!huFS-drAs%DmP$tbQ zD2UZVwhxW>$hM?aaA*r@0J2w5)wKUFT$AMX6j#MdoGP%DA$SMtNH|JRb6!C~1PTEb znCBqBAg>6HB7z?(s2cPVhX-q5(jhyll9Cl@;OxWT!g_);4@WE|pc*tFZQHihkO+={ z;t1=OEn7%}f+PV%Jp+wMJa`b=Kzramb?Vg7vN%JGV(ORC+4~pQXIM{i&V~^P~H1 z%Ouvlm-Un+IgQgyoHJ*Ro*8k}w#P0UtC0RrojIYQP6gxSI0I1vKzK XHt!!jPRo + + + + + +JBus: Class Hierarchy + + + + + + + + + + + + + + + +

+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+
+
+ + + + diff --git a/jquery.js b/jquery.js new file mode 100644 index 0000000..1f4d0b4 --- /dev/null +++ b/jquery.js @@ -0,0 +1,68 @@ +/*! + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! + * jQuery UI Widget 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! + * jQuery UI Mouse 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({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("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom: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({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{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"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,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}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' + + +
+
+
DocMain
+
+
+

{#mainpage}

+

Refer to the jbus::Endpoint class for the main interface.

+
+ + + + + diff --git a/namespacejbus.html b/namespacejbus.html new file mode 100644 index 0000000..8e9cb58 --- /dev/null +++ b/namespacejbus.html @@ -0,0 +1,434 @@ + + + + + + +JBus: jbus Namespace Reference + + + + + + + + + + + + + + + +
+
+
+ + + + + +
+
JBus +
+
JoyBus communication server
+
+ + + + + + + +
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
jbus Namespace Reference
+
+
+ + + + +

+Namespaces

 net
 
+ + + + + + + +

+Classes

class  Endpoint
 
class  Listener
 
class  ThreadLocalEndpoint
 
+ + + + + + + + + + + + + + + + + + + + +

+Typedefs

using s8 = int8_t
 
using u8 = uint8_t
 
using s16 = int16_t
 
using u16 = uint16_t
 
using s32 = int32_t
 
using u32 = uint32_t
 
using s64 = int64_t
 
using u64 = uint64_t
 
using FGBACallback = std::function< void(ThreadLocalEndpoint &endpoint, EJoyReturn status)>
 Standard callback for asynchronous jbus::Endpoint APIs. More...
 
+ + + + + +

+Enumerations

enum  EJStatFlags {
+  GBA_JSTAT_MASK = 0x3a, +GBA_JSTAT_FLAGS_SHIFT = 4, +GBA_JSTAT_FLAGS_MASK = 0x30, +GBA_JSTAT_PSF1 = 0x20, +
+  GBA_JSTAT_PSF0 = 0x10, +GBA_JSTAT_SEND = 0x08, +GBA_JSTAT_RECV = 0x02 +
+ }
 
enum  EJoyReturn {
+  GBA_READY = 0, +GBA_NOT_READY = 1, +GBA_BUSY = 2, +GBA_JOYBOOT_UNKNOWN_STATE = 3, +
+  GBA_JOYBOOT_ERR_INVALID = 4 +
+ }
 
+ + + + + + + + + + +

+Functions

u64 GetGCTicks ()
 Get host system's timebase scaled into Dolphin ticks. More...
 
void WaitGCTicks (u64 ticks)
 Wait an approximate Dolphin tick duration (avoid using, it's rather inaccurate). More...
 
void Initialize ()
 Initialize platform specifics of JBus library. More...
 
+

Typedef Documentation

+ +
+
+ + + + +
using jbus::FGBACallback = typedef std::function<void(ThreadLocalEndpoint& endpoint, EJoyReturn status)>
+
+ +

Standard callback for asynchronous jbus::Endpoint APIs.

+
Parameters
+ + + +
endpointThread-local Endpoint interface for optionally issuing next command in sequence.
statusGBA_READY if connection is still open, GBA_NOT_READY if connection lost.
+
+
+ +
+
+ +
+
+ + + + +
using jbus::s16 = typedef int16_t
+
+ +
+
+ +
+
+ + + + +
using jbus::s32 = typedef int32_t
+
+ +
+
+ +
+
+ + + + +
using jbus::s64 = typedef int64_t
+
+ +
+
+ +
+
+ + + + +
using jbus::s8 = typedef int8_t
+
+ +
+
+ +
+
+ + + + +
using jbus::u16 = typedef uint16_t
+
+ +
+
+ +
+
+ + + + +
using jbus::u32 = typedef uint32_t
+
+ +
+
+ +
+
+ + + + +
using jbus::u64 = typedef uint64_t
+
+ +
+
+ +
+
+ + + + +
using jbus::u8 = typedef uint8_t
+
+ +
+
+

Enumeration Type Documentation

+ +
+
+ + + + +
enum jbus::EJoyReturn
+
+ + + + + + +
Enumerator
GBA_READY  +
GBA_NOT_READY  +
GBA_BUSY  +
GBA_JOYBOOT_UNKNOWN_STATE  +
GBA_JOYBOOT_ERR_INVALID  +
+ +
+
+ +
+
+ + + + +
enum jbus::EJStatFlags
+
+ + + + + + + + +
Enumerator
GBA_JSTAT_MASK  +
GBA_JSTAT_FLAGS_SHIFT  +
GBA_JSTAT_FLAGS_MASK  +
GBA_JSTAT_PSF1  +
GBA_JSTAT_PSF0  +
GBA_JSTAT_SEND  +
GBA_JSTAT_RECV  +
+ +
+
+

Function Documentation

+ +
+
+ + + + + + + +
u64 jbus::GetGCTicks ()
+
+ +

Get host system's timebase scaled into Dolphin ticks.

+
Returns
Scaled ticks from host timebase.
+ +
+
+ +
+
+ + + + + + + +
void jbus::Initialize ()
+
+ +

Initialize platform specifics of JBus library.

+ +
+
+ +
+
+ + + + + + + + +
void jbus::WaitGCTicks (u64 ticks)
+
+ +

Wait an approximate Dolphin tick duration (avoid using, it's rather inaccurate).

+
Parameters
+ + +
ticksCPU ticks to wait.
+
+
+ +
+
+
+
+ + + + diff --git a/namespacejbus.js b/namespacejbus.js new file mode 100644 index 0000000..84ec020 --- /dev/null +++ b/namespacejbus.js @@ -0,0 +1,7 @@ +var namespacejbus = +[ + [ "net", "namespacejbus_1_1net.html", "namespacejbus_1_1net" ], + [ "Endpoint", "classjbus_1_1Endpoint.html", "classjbus_1_1Endpoint" ], + [ "Listener", "classjbus_1_1Listener.html", "classjbus_1_1Listener" ], + [ "ThreadLocalEndpoint", "classjbus_1_1ThreadLocalEndpoint.html", "classjbus_1_1ThreadLocalEndpoint" ] +]; \ No newline at end of file diff --git a/namespacejbus_1_1net.html b/namespacejbus_1_1net.html new file mode 100644 index 0000000..274b68e --- /dev/null +++ b/namespacejbus_1_1net.html @@ -0,0 +1,133 @@ + + + + + + +JBus: jbus::net Namespace Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
jbus::net Namespace Reference
+
+
+ + + + + + +

+Classes

class  IPAddress
 
class  Socket
 
+
+
+ + + + diff --git a/namespacejbus_1_1net.js b/namespacejbus_1_1net.js new file mode 100644 index 0000000..62c68a4 --- /dev/null +++ b/namespacejbus_1_1net.js @@ -0,0 +1,5 @@ +var namespacejbus_1_1net = +[ + [ "IPAddress", "classjbus_1_1net_1_1IPAddress.html", "classjbus_1_1net_1_1IPAddress" ], + [ "Socket", "classjbus_1_1net_1_1Socket.html", "classjbus_1_1net_1_1Socket" ] +]; \ No newline at end of file diff --git a/namespacemembers.html b/namespacemembers.html new file mode 100644 index 0000000..b6e4f3d --- /dev/null +++ b/namespacemembers.html @@ -0,0 +1,207 @@ + + + + + + +JBus: Namespace Members + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all namespace members with links to the namespace documentation for each member:
    +
  • EJoyReturn +: jbus +
  • +
  • EJStatFlags +: jbus +
  • +
  • FGBACallback +: jbus +
  • +
  • GBA_BUSY +: jbus +
  • +
  • GBA_JOYBOOT_ERR_INVALID +: jbus +
  • +
  • GBA_JOYBOOT_UNKNOWN_STATE +: jbus +
  • +
  • GBA_JSTAT_FLAGS_MASK +: jbus +
  • +
  • GBA_JSTAT_FLAGS_SHIFT +: jbus +
  • +
  • GBA_JSTAT_MASK +: jbus +
  • +
  • GBA_JSTAT_PSF0 +: jbus +
  • +
  • GBA_JSTAT_PSF1 +: jbus +
  • +
  • GBA_JSTAT_RECV +: jbus +
  • +
  • GBA_JSTAT_SEND +: jbus +
  • +
  • GBA_NOT_READY +: jbus +
  • +
  • GBA_READY +: jbus +
  • +
  • GetGCTicks() +: jbus +
  • +
  • Initialize() +: jbus +
  • +
  • s16 +: jbus +
  • +
  • s32 +: jbus +
  • +
  • s64 +: jbus +
  • +
  • s8 +: jbus +
  • +
  • u16 +: jbus +
  • +
  • u32 +: jbus +
  • +
  • u64 +: jbus +
  • +
  • u8 +: jbus +
  • +
  • WaitGCTicks() +: jbus +
  • +
+
+
+ + + + diff --git a/namespacemembers_enum.html b/namespacemembers_enum.html new file mode 100644 index 0000000..e7076e4 --- /dev/null +++ b/namespacemembers_enum.html @@ -0,0 +1,135 @@ + + + + + + +JBus: Namespace Members + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
    +
  • EJoyReturn +: jbus +
  • +
  • EJStatFlags +: jbus +
  • +
+
+
+ + + + diff --git a/namespacemembers_eval.html b/namespacemembers_eval.html new file mode 100644 index 0000000..e500f69 --- /dev/null +++ b/namespacemembers_eval.html @@ -0,0 +1,165 @@ + + + + + + +JBus: Namespace Members + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
    +
  • GBA_BUSY +: jbus +
  • +
  • GBA_JOYBOOT_ERR_INVALID +: jbus +
  • +
  • GBA_JOYBOOT_UNKNOWN_STATE +: jbus +
  • +
  • GBA_JSTAT_FLAGS_MASK +: jbus +
  • +
  • GBA_JSTAT_FLAGS_SHIFT +: jbus +
  • +
  • GBA_JSTAT_MASK +: jbus +
  • +
  • GBA_JSTAT_PSF0 +: jbus +
  • +
  • GBA_JSTAT_PSF1 +: jbus +
  • +
  • GBA_JSTAT_RECV +: jbus +
  • +
  • GBA_JSTAT_SEND +: jbus +
  • +
  • GBA_NOT_READY +: jbus +
  • +
  • GBA_READY +: jbus +
  • +
+
+
+ + + + diff --git a/namespacemembers_func.html b/namespacemembers_func.html new file mode 100644 index 0000000..ff45718 --- /dev/null +++ b/namespacemembers_func.html @@ -0,0 +1,138 @@ + + + + + + +JBus: Namespace Members + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
    +
  • GetGCTicks() +: jbus +
  • +
  • Initialize() +: jbus +
  • +
  • WaitGCTicks() +: jbus +
  • +
+
+
+ + + + diff --git a/namespacemembers_type.html b/namespacemembers_type.html new file mode 100644 index 0000000..621c35d --- /dev/null +++ b/namespacemembers_type.html @@ -0,0 +1,156 @@ + + + + + + +JBus: Namespace Members + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/namespaces.html b/namespaces.html new file mode 100644 index 0000000..d123617 --- /dev/null +++ b/namespaces.html @@ -0,0 +1,128 @@ + + + + + + +JBus: Namespace List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Namespace List
+
+
+
Here is a list of all namespaces with brief descriptions:
+
[detail level 12]
+ + +
 Njbus
 Nnet
+
+
+
+ + + + diff --git a/namespaces.js b/namespaces.js new file mode 100644 index 0000000..cc5f2b5 --- /dev/null +++ b/namespaces.js @@ -0,0 +1,4 @@ +var namespaces = +[ + [ "jbus", "namespacejbus.html", "namespacejbus" ] +]; \ No newline at end of file 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_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@0HFXL=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + if ($.browser.msie && $.browser.version<=8) { + // script.onload does not work with older versions of IE + script.onreadystatechange = function() { + if (script.readyState=='complete' || script.readyState=='loaded') { + func(); if (show) showRoot(); + } + } + } + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("img"); + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.width = 16; + imgNode.height = 22; + imgNode.border = 0; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.src = node.relpath+"arrowright.png"; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + imgNode.src = node.relpath+"arrowright.png"; + } else { + var span = document.createElement("span"); + span.style.display = 'inline-block'; + span.style.width = 16*(level+1)+'px'; + span.style.height = '22px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',0,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } if (imm || ($.browser.msie && $.browser.version>8)) { + // somehow slideDown jumps to the start of tree for IE9 :-( + $(node.getChildrenUL()).show(); + } else { + $(node.getChildrenUL()).slideDown("fast"); + } + if (node.isLast) { + node.plus_img.src = node.relpath+"arrowdown.png"; + } else { + node.plus_img.src = node.relpath+"arrowdown.png"; + } + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } + gotoAnchor(anchor,aname,false); +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.src = node.relpath+"arrowdown.png"; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("img"); + o.node.plus_img.src = relpath+"arrowright.png"; + o.node.plus_img.width = 16; + o.node.plus_img.height = 22; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + $(window).load(function(){ + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + }); + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + +JBus: include/jbus/optional.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
optional.hpp
+
+
+
1 // Copyright (C) 2011 - 2012 Andrzej Krzemienski.
2 //
3 // Use, modification, and distribution is subject to the Boost Software
4 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5 // http://www.boost.org/LICENSE_1_0.txt)
6 //
7 // The idea and interface is based on Boost.Optional library
8 // authored by Fernando Luis Cacciola Carballal
9 
10 # ifndef ___OPTIONAL_HPP___
11 # define ___OPTIONAL_HPP___
12 
13 # include <utility>
14 # include <type_traits>
15 # include <initializer_list>
16 # include <cassert>
17 # include <functional>
18 # include <string>
19 # include "athena/Global.hpp"
20 
21 # define TR2_OPTIONAL_REQUIRES(...) typename enable_if<__VA_ARGS__::value, bool>::type = false
22 
23 # if defined __GNUC__ // NOTE: GNUC is also defined for Clang
24 # if (__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)
25 # define TR2_OPTIONAL_GCC_4_8_AND_HIGHER___
26 # elif (__GNUC__ > 4)
27 # define TR2_OPTIONAL_GCC_4_8_AND_HIGHER___
28 # endif
29 #
30 # if (__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)
31 # define TR2_OPTIONAL_GCC_4_7_AND_HIGHER___
32 # elif (__GNUC__ > 4)
33 # define TR2_OPTIONAL_GCC_4_7_AND_HIGHER___
34 # endif
35 #
36 # if (__GNUC__ == 4) && (__GNUC_MINOR__ == 8) && (__GNUC_PATCHLEVEL__ >= 1)
37 # define TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___
38 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)
39 # define TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___
40 # elif (__GNUC__ > 4)
41 # define TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___
42 # endif
43 # endif
44 #
45 # if defined __clang_major__
46 # if (__clang_major__ == 3 && __clang_minor__ >= 5)
47 # define TR2_OPTIONAL_CLANG_3_5_AND_HIGHTER_
48 # elif (__clang_major__ > 3)
49 # define TR2_OPTIONAL_CLANG_3_5_AND_HIGHTER_
50 # endif
51 # if defined TR2_OPTIONAL_CLANG_3_5_AND_HIGHTER_
52 # define TR2_OPTIONAL_CLANG_3_4_2_AND_HIGHER_
53 # elif (__clang_major__ == 3 && __clang_minor__ == 4 && __clang_patchlevel__ >= 2)
54 # define TR2_OPTIONAL_CLANG_3_4_2_AND_HIGHER_
55 # endif
56 # endif
57 #
58 # if defined _MSC_VER
59 # if (_MSC_VER >= 1900)
60 # define TR2_OPTIONAL_MSVC_2015_AND_HIGHER___
61 # endif
62 # endif
63 
64 # if defined __clang__
65 # if (__clang_major__ > 2) || (__clang_major__ == 2) && (__clang_minor__ >= 9)
66 # define OPTIONAL_HAS_THIS_RVALUE_REFS 1
67 # else
68 # define OPTIONAL_HAS_THIS_RVALUE_REFS 0
69 # endif
70 # elif defined TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___
71 # define OPTIONAL_HAS_THIS_RVALUE_REFS 1
72 # elif defined TR2_OPTIONAL_MSVC_2015_AND_HIGHER___
73 # define OPTIONAL_HAS_THIS_RVALUE_REFS 1
74 # else
75 # define OPTIONAL_HAS_THIS_RVALUE_REFS 0
76 # endif
77 
78 
79 # if defined TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___
80 # define OPTIONAL_HAS_CONSTEXPR_INIT_LIST 1
81 # define OPTIONAL_CONSTEXPR_INIT_LIST constexpr
82 # else
83 # define OPTIONAL_HAS_CONSTEXPR_INIT_LIST 0
84 # define OPTIONAL_CONSTEXPR_INIT_LIST
85 # endif
86 
87 # if defined TR2_OPTIONAL_CLANG_3_5_AND_HIGHTER_ && (defined __cplusplus) && (__cplusplus != 201103L)
88 # define OPTIONAL_HAS_MOVE_ACCESSORS 1
89 # else
90 # define OPTIONAL_HAS_MOVE_ACCESSORS 0
91 # endif
92 
93 # // In C++11 constexpr implies const, so we need to make non-const members also non-constexpr
94 # if (defined __cplusplus) && (__cplusplus == 201103L)
95 # define OPTIONAL_MUTABLE_CONSTEXPR
96 # else
97 # define OPTIONAL_MUTABLE_CONSTEXPR constexpr
98 # endif
99 
100 namespace std{
101 
102 namespace experimental{
103 
104 // BEGIN workaround for missing is_trivially_destructible
105 # if defined TR2_OPTIONAL_GCC_4_8_AND_HIGHER___
106  // leave it: it is already there
107 # elif defined TR2_OPTIONAL_CLANG_3_4_2_AND_HIGHER_
108  // leave it: it is already there
109 # elif defined TR2_OPTIONAL_MSVC_2015_AND_HIGHER___
110  // leave it: it is already there
111 # elif defined TR2_OPTIONAL_DISABLE_EMULATION_OF_TYPE_TRAITS
112  // leave it: the user doesn't want it
113 # else
114  template <typename T>
115  using is_trivially_destructible = std::has_trivial_destructor<T>;
116 # endif
117 // END workaround for missing is_trivially_destructible
118 
119 # if (defined TR2_OPTIONAL_GCC_4_7_AND_HIGHER___)
120  // leave it; our metafunctions are already defined.
121 # elif defined TR2_OPTIONAL_CLANG_3_4_2_AND_HIGHER_
122  // leave it; our metafunctions are already defined.
123 # elif defined TR2_OPTIONAL_MSVC_2015_AND_HIGHER___
124  // leave it: it is already there
125 # elif defined TR2_OPTIONAL_DISABLE_EMULATION_OF_TYPE_TRAITS
126  // leave it: the user doesn't want it
127 # else
128 
129 
130 // workaround for missing traits in GCC and CLANG
131 template <class T>
133 {
134  constexpr static bool value = std::is_nothrow_constructible<T, T&&>::value;
135 };
136 
137 
138 template <class T, class U>
140 {
141  template <class X, class Y>
142  constexpr static bool has_assign(...) { return false; }
143 
144  template <class X, class Y, size_t S = sizeof((std::declval<X>() = std::declval<Y>(), true)) >
145  // the comma operator is necessary for the cases where operator= returns void
146  constexpr static bool has_assign(bool) { return true; }
147 
148  constexpr static bool value = has_assign<T, U>(true);
149 };
150 
151 
152 template <class T>
154 {
155  template <class X, bool has_any_move_assign>
157  constexpr static bool value = false;
158  };
159 
160  template <class X>
161  struct has_nothrow_move_assign<X, true> {
162  constexpr static bool value = noexcept( std::declval<X&>() = std::declval<X&&>() );
163  };
164 
165  constexpr static bool value = has_nothrow_move_assign<T, is_assignable<T&, T&&>::value>::value;
166 };
167 // end workaround
168 
169 
170 # endif
171 
172 
173 
174 // 20.5.4, optional for object types
175 template <class T> class optional;
176 
177 // 20.5.5, optional for lvalue reference types
178 template <class T> class optional<T&>;
179 
180 
181 // workaround: std utility functions aren't constexpr yet
182 template <class T> inline constexpr T&& constexpr_forward(typename std::remove_reference<T>::type& t) noexcept
183 {
184  return static_cast<T&&>(t);
185 }
186 
187 template <class T> inline constexpr T&& constexpr_forward(typename std::remove_reference<T>::type&& t) noexcept
188 {
189  static_assert(!std::is_lvalue_reference<T>::value, "!!");
190  return static_cast<T&&>(t);
191 }
192 
193 template <class T> inline constexpr typename std::remove_reference<T>::type&& constexpr_move(T&& t) noexcept
194 {
195  return static_cast<typename std::remove_reference<T>::type&&>(t);
196 }
197 
198 
199 #if defined NDEBUG
200 # define TR2_OPTIONAL_ASSERTED_EXPRESSION(CHECK, EXPR) (EXPR)
201 #else
202 # define TR2_OPTIONAL_ASSERTED_EXPRESSION(CHECK, EXPR) ((CHECK) ? (EXPR) : ([]{assert(!#CHECK);}(), (EXPR)))
203 #endif
204 
205 
206 namespace detail_
207 {
208 
209 // static_addressof: a constexpr version of addressof
210 template <typename T>
212 {
213  template <class X>
214  constexpr static bool has_overload(...) { return false; }
215 
216  template <class X, size_t S = sizeof(std::declval<X&>().operator&()) >
217  constexpr static bool has_overload(bool) { return true; }
218 
219  constexpr static bool value = has_overload<T>(true);
220 };
221 
222 template <typename T, TR2_OPTIONAL_REQUIRES(!has_overloaded_addressof<T>)>
223 constexpr T* static_addressof(T& ref)
224 {
225  return &ref;
226 }
227 
228 template <typename T, TR2_OPTIONAL_REQUIRES(has_overloaded_addressof<T>)>
229 T* static_addressof(T& ref)
230 {
231  return std::addressof(ref);
232 }
233 
234 
235 // the call to convert<A>(b) has return type A and converts b to type A iff b decltype(b) is implicitly convertible to A
236 template <class U>
237 U convert(U v) { return v; }
238 
239 } // namespace detail
240 
241 
242 constexpr struct trivial_init_t{} trivial_init{};
243 
244 
245 // 20.5.6, In-place construction
246 constexpr struct in_place_t{} in_place{};
247 
248 
249 // 20.5.7, Disengaged state indicator
250 struct nullopt_t
251 {
252  struct init{};
253  constexpr explicit nullopt_t(init){}
254 };
255 constexpr nullopt_t nullopt{nullopt_t::init()};
256 
257 
258 // 20.5.8, class bad_optional_access
259 class bad_optional_access : public logic_error {
260 public:
261  explicit bad_optional_access(const string& what_arg) : logic_error{what_arg} {}
262  explicit bad_optional_access(const char* what_arg) : logic_error{what_arg} {}
263 };
264 
265 
266 template <class T>
268 {
269  unsigned char dummy_;
270  T value_;
271 
272  constexpr storage_t( trivial_init_t ) noexcept : dummy_() {};
273 
274  template <class... Args>
275  constexpr storage_t( Args&&... args ) : value_(constexpr_forward<Args>(args)...) {}
276 
277  ~storage_t(){}
278 };
279 
280 
281 template <class T>
283 {
284  unsigned char dummy_;
285  T value_;
286 
287  constexpr constexpr_storage_t( trivial_init_t ) noexcept : dummy_() {};
288 
289  template <class... Args>
290  constexpr constexpr_storage_t( Args&&... args ) : value_(constexpr_forward<Args>(args)...) {}
291 
292  ~constexpr_storage_t() = default;
293 };
294 
295 
296 template <class T>
298 {
299  bool init_;
300  storage_t<T> storage_;
301 
302  constexpr optional_base() noexcept : init_(false), storage_(trivial_init) {};
303 
304  explicit constexpr optional_base(const T& v) : init_(true), storage_(v) {}
305 
306  explicit constexpr optional_base(T&& v) : init_(true), storage_(constexpr_move(v)) {}
307 
308  template <class... Args> explicit optional_base(in_place_t, Args&&... args)
309  : init_(true), storage_(constexpr_forward<Args>(args)...) {}
310 
311  template <class U, class... Args, TR2_OPTIONAL_REQUIRES(is_constructible<T, std::initializer_list<U>>)>
312  explicit optional_base(in_place_t, std::initializer_list<U> il, Args&&... args)
313  : init_(true), storage_(il, std::forward<Args>(args)...) {}
314 
315  ~optional_base() { if (init_) storage_.value_.T::~T(); }
316 };
317 
318 
319 template <class T>
321 {
322  bool init_;
323  constexpr_storage_t<T> storage_;
324 
325  constexpr constexpr_optional_base() noexcept : init_(false), storage_(trivial_init) {};
326 
327  explicit constexpr constexpr_optional_base(const T& v) : init_(true), storage_(v) {}
328 
329  explicit constexpr constexpr_optional_base(T&& v) : init_(true), storage_(constexpr_move(v)) {}
330 
331  template <class... Args> explicit constexpr constexpr_optional_base(in_place_t, Args&&... args)
332  : init_(true), storage_(constexpr_forward<Args>(args)...) {}
333 
334  template <class U, class... Args, TR2_OPTIONAL_REQUIRES(is_constructible<T, std::initializer_list<U>>)>
335  OPTIONAL_CONSTEXPR_INIT_LIST explicit constexpr_optional_base(in_place_t, std::initializer_list<U> il, Args&&... args)
336  : init_(true), storage_(il, std::forward<Args>(args)...) {}
337 
338  ~constexpr_optional_base() = default;
339 };
340 
341 template <class T>
342 using OptionalBase = typename std::conditional<
343  is_trivially_destructible<T>::value,
346 >::type;
347 
348 
349 
350 template <class T>
351 class optional : private OptionalBase<T>
352 {
353  static_assert( !std::is_same<typename std::decay<T>::type, nullopt_t>::value, "bad T" );
354  static_assert( !std::is_same<typename std::decay<T>::type, in_place_t>::value, "bad T" );
355 
356 
357  constexpr bool initialized() const noexcept { return OptionalBase<T>::init_; }
358  T* dataptr() { return std::addressof(OptionalBase<T>::storage_.value_); }
359  constexpr const T* dataptr() const { return detail_::static_addressof(OptionalBase<T>::storage_.value_); }
360 
361 # if OPTIONAL_HAS_THIS_RVALUE_REFS == 1
362  constexpr const T& contained_val() const& { return OptionalBase<T>::storage_.value_; }
363 # if OPTIONAL_HAS_MOVE_ACCESSORS == 1
364  OPTIONAL_MUTABLE_CONSTEXPR T&& contained_val() && { return std::move(OptionalBase<T>::storage_.value_); }
365  OPTIONAL_MUTABLE_CONSTEXPR T& contained_val() & { return OptionalBase<T>::storage_.value_; }
366 # else
367  T& contained_val() & { return OptionalBase<T>::storage_.value_; }
368  T&& contained_val() && { return std::move(OptionalBase<T>::storage_.value_); }
369 # endif
370 # else
371  constexpr const T& contained_val() const { return OptionalBase<T>::storage_.value_; }
372  T& contained_val() { return OptionalBase<T>::storage_.value_; }
373 # endif
374 
375  void clear() noexcept {
376  if (initialized()) dataptr()->T::~T();
377  OptionalBase<T>::init_ = false;
378  }
379 
380  template <class... Args>
381  void initialize(Args&&... args) noexcept(noexcept(T(std::forward<Args>(args)...)))
382  {
383  assert(!OptionalBase<T>::init_);
384  ::new (static_cast<void*>(dataptr())) T(std::forward<Args>(args)...);
385  OptionalBase<T>::init_ = true;
386  }
387 
388  template <class U, class... Args>
389  void initialize(std::initializer_list<U> il, Args&&... args) noexcept(noexcept(T(il, std::forward<Args>(args)...)))
390  {
391  assert(!OptionalBase<T>::init_);
392  ::new (static_cast<void*>(dataptr())) T(il, std::forward<Args>(args)...);
393  OptionalBase<T>::init_ = true;
394  }
395 
396 public:
397  typedef T value_type;
398 
399  // 20.5.5.1, constructors
400  constexpr optional() noexcept : OptionalBase<T>() {};
401  constexpr optional(nullopt_t) noexcept : OptionalBase<T>() {};
402 
403  optional(const optional& rhs)
404  : OptionalBase<T>()
405  {
406  if (rhs.initialized()) {
407  ::new (static_cast<void*>(dataptr())) T(*rhs);
408  OptionalBase<T>::init_ = true;
409  }
410  }
411 
413  : OptionalBase<T>()
414  {
415  if (rhs.initialized()) {
416  ::new (static_cast<void*>(dataptr())) T(std::move(*rhs));
417  OptionalBase<T>::init_ = true;
418  }
419  }
420 
421  constexpr optional(const T& v) : OptionalBase<T>(v) {}
422 
423  constexpr optional(T&& v) : OptionalBase<T>(constexpr_move(v)) {}
424 
425  template <class... Args>
426  explicit constexpr optional(in_place_t, Args&&... args)
427  : OptionalBase<T>(in_place_t{}, constexpr_forward<Args>(args)...) {}
428 
429  template <class U, class... Args, TR2_OPTIONAL_REQUIRES(is_constructible<T, std::initializer_list<U>>)>
430  OPTIONAL_CONSTEXPR_INIT_LIST explicit optional(in_place_t, std::initializer_list<U> il, Args&&... args)
431  : OptionalBase<T>(in_place_t{}, il, constexpr_forward<Args>(args)...) {}
432 
433  // 20.5.4.2, Destructor
434  ~optional() = default;
435 
436  // 20.5.4.3, assignment
437  optional& operator=(nullopt_t) noexcept
438  {
439  clear();
440  return *this;
441  }
442 
443  optional& operator=(const optional& rhs)
444  {
445  if (initialized() == true && rhs.initialized() == false) clear();
446  else if (initialized() == false && rhs.initialized() == true) initialize(*rhs);
447  else if (initialized() == true && rhs.initialized() == true) contained_val() = *rhs;
448  return *this;
449  }
450 
451  optional& operator=(optional&& rhs)
453  {
454  if (initialized() == true && rhs.initialized() == false) clear();
455  else if (initialized() == false && rhs.initialized() == true) initialize(std::move(*rhs));
456  else if (initialized() == true && rhs.initialized() == true) contained_val() = std::move(*rhs);
457  return *this;
458  }
459 
460  template <class U>
461  auto operator=(U&& v)
462  -> typename enable_if
463  <
464  is_same<typename decay<U>::type, T>::value,
465  optional&
466  >::type
467  {
468  if (initialized()) { contained_val() = std::forward<U>(v); }
469  else { initialize(std::forward<U>(v)); }
470  return *this;
471  }
472 
473 
474  template <class... Args>
475  void emplace(Args&&... args)
476  {
477  clear();
478  initialize(std::forward<Args>(args)...);
479  }
480 
481  template <class U, class... Args>
482  void emplace(initializer_list<U> il, Args&&... args)
483  {
484  clear();
485  initialize<U, Args...>(il, std::forward<Args>(args)...);
486  }
487 
488  // 20.5.4.4, Swap
489  void swap(optional<T>& rhs) noexcept(is_nothrow_move_constructible<T>::value && noexcept(swap(declval<T&>(), declval<T&>())))
490  {
491  if (initialized() == true && rhs.initialized() == false) { rhs.initialize(std::move(**this)); clear(); }
492  else if (initialized() == false && rhs.initialized() == true) { initialize(std::move(*rhs)); rhs.clear(); }
493  else if (initialized() == true && rhs.initialized() == true) { using std::swap; swap(**this, *rhs); }
494  }
495 
496  // 20.5.4.5, Observers
497 
498  explicit constexpr operator bool() const noexcept { return initialized(); }
499 
500  constexpr T const* operator ->() const {
501  return TR2_OPTIONAL_ASSERTED_EXPRESSION(initialized(), dataptr());
502  }
503 
504 # if OPTIONAL_HAS_MOVE_ACCESSORS == 1
505 
506  OPTIONAL_MUTABLE_CONSTEXPR T* operator ->() {
507  assert (initialized());
508  return dataptr();
509  }
510 
511  constexpr T const& operator *() const& {
512  return TR2_OPTIONAL_ASSERTED_EXPRESSION(initialized(), contained_val());
513  }
514 
515  OPTIONAL_MUTABLE_CONSTEXPR T& operator *() & {
516  assert (initialized());
517  return contained_val();
518  }
519 
520  OPTIONAL_MUTABLE_CONSTEXPR T&& operator *() && {
521  assert (initialized());
522  return constexpr_move(contained_val());
523  }
524 
525  constexpr T const& value() const& {
526  if (!initialized()) atFatal("bad optional access");
527  return contained_val();
528  }
529 
530  OPTIONAL_MUTABLE_CONSTEXPR T& value() & {
531  if (!initialized()) atFatal("bad optional access");
532  return contained_val();
533  }
534 
535  OPTIONAL_MUTABLE_CONSTEXPR T&& value() && {
536  if (!initialized()) atFatal("bad optional access");
537  return std::move(contained_val());
538  }
539 
540 # else
541 
542  T* operator ->() {
543  assert (initialized());
544  return dataptr();
545  }
546 
547  constexpr T const& operator *() const {
548  return TR2_OPTIONAL_ASSERTED_EXPRESSION(initialized(), contained_val());
549  }
550 
551  T& operator *() {
552  assert (initialized());
553  return contained_val();
554  }
555 
556  constexpr T const& value() const {
557  if (!initialized())
558  atFatal("bad optional access");
559  return contained_val();
560  }
561 
562  T& value() {
563  if (!initialized())
564  atFatal("bad optional access");
565  return contained_val();
566  }
567 
568 # endif
569 
570 # if OPTIONAL_HAS_THIS_RVALUE_REFS == 1
571 
572  template <class V>
573  constexpr T value_or(V&& v) const&
574  {
575  return *this ? **this : detail_::convert<T>(constexpr_forward<V>(v));
576  }
577 
578 # if OPTIONAL_HAS_MOVE_ACCESSORS == 1
579 
580  template <class V>
581  OPTIONAL_MUTABLE_CONSTEXPR T value_or(V&& v) &&
582  {
583  return *this ? constexpr_move(const_cast<optional<T>&>(*this).contained_val()) : detail_::convert<T>(constexpr_forward<V>(v));
584  }
585 
586 # else
587 
588  template <class V>
589  T value_or(V&& v) &&
590  {
591  return *this ? constexpr_move(const_cast<optional<T>&>(*this).contained_val()) : detail_::convert<T>(constexpr_forward<V>(v));
592  }
593 
594 # endif
595 
596 # else
597 
598  template <class V>
599  constexpr T value_or(V&& v) const
600  {
601  return *this ? **this : detail_::convert<T>(constexpr_forward<V>(v));
602  }
603 
604 # endif
605 
606 };
607 
608 
609 template <class T>
610 class optional<T&>
611 {
612  static_assert( !std::is_same<T, nullopt_t>::value, "bad T" );
613  static_assert( !std::is_same<T, in_place_t>::value, "bad T" );
614  T* ref;
615 
616 public:
617 
618  // 20.5.5.1, construction/destruction
619  constexpr optional() noexcept : ref(nullptr) {}
620 
621  constexpr optional(nullopt_t) noexcept : ref(nullptr) {}
622 
623  constexpr optional(T& v) noexcept : ref(detail_::static_addressof(v)) {}
624 
625  optional(T&&) = delete;
626 
627  constexpr optional(const optional& rhs) noexcept : ref(rhs.ref) {}
628 
629  explicit constexpr optional(in_place_t, T& v) noexcept : ref(detail_::static_addressof(v)) {}
630 
631  explicit optional(in_place_t, T&&) = delete;
632 
633  ~optional() = default;
634 
635  // 20.5.5.2, mutation
636  optional& operator=(nullopt_t) noexcept {
637  ref = nullptr;
638  return *this;
639  }
640 
641  // optional& operator=(const optional& rhs) noexcept {
642  // ref = rhs.ref;
643  // return *this;
644  // }
645 
646  // optional& operator=(optional&& rhs) noexcept {
647  // ref = rhs.ref;
648  // return *this;
649  // }
650 
651  template <typename U>
652  auto operator=(U&& rhs) noexcept
653  -> typename enable_if
654  <
655  is_same<typename decay<U>::type, optional<T&>>::value,
656  optional&
657  >::type
658  {
659  ref = rhs.ref;
660  return *this;
661  }
662 
663  template <typename U>
664  auto operator=(U&& rhs) noexcept
665  -> typename enable_if
666  <
667  !is_same<typename decay<U>::type, optional<T&>>::value,
668  optional&
669  >::type
670  = delete;
671 
672  void emplace(T& v) noexcept {
673  ref = detail_::static_addressof(v);
674  }
675 
676  void emplace(T&&) = delete;
677 
678 
679  void swap(optional<T&>& rhs) noexcept
680  {
681  std::swap(ref, rhs.ref);
682  }
683 
684  // 20.5.5.3, observers
685  constexpr T* operator->() const {
686  return TR2_OPTIONAL_ASSERTED_EXPRESSION(ref, ref);
687  }
688 
689  constexpr T& operator*() const {
690  return TR2_OPTIONAL_ASSERTED_EXPRESSION(ref, *ref);
691  }
692 
693  constexpr T& value() const {
694  if (!ref) atFatal("bad optional access");
695  return *ref;
696  }
697 
698  explicit constexpr operator bool() const noexcept {
699  return ref != nullptr;
700  }
701 
702  template <class V>
703  constexpr typename decay<T>::type value_or(V&& v) const
704  {
705  return *this ? **this : detail_::convert<typename decay<T>::type>(constexpr_forward<V>(v));
706  }
707 };
708 
709 
710 template <class T>
711 class optional<T&&>
712 {
713  static_assert( sizeof(T) == 0, "optional rvalue references disallowed" );
714 };
715 
716 
717 // 20.5.8, Relational operators
718 template <class T> constexpr bool operator==(const optional<T>& x, const optional<T>& y)
719 {
720  return bool(x) != bool(y) ? false : bool(x) == false ? true : *x == *y;
721 }
722 
723 template <class T> constexpr bool operator!=(const optional<T>& x, const optional<T>& y)
724 {
725  return !(x == y);
726 }
727 
728 template <class T> constexpr bool operator<(const optional<T>& x, const optional<T>& y)
729 {
730  return (!y) ? false : (!x) ? true : *x < *y;
731 }
732 
733 template <class T> constexpr bool operator>(const optional<T>& x, const optional<T>& y)
734 {
735  return (y < x);
736 }
737 
738 template <class T> constexpr bool operator<=(const optional<T>& x, const optional<T>& y)
739 {
740  return !(y < x);
741 }
742 
743 template <class T> constexpr bool operator>=(const optional<T>& x, const optional<T>& y)
744 {
745  return !(x < y);
746 }
747 
748 
749 // 20.5.9, Comparison with nullopt
750 template <class T> constexpr bool operator==(const optional<T>& x, nullopt_t) noexcept
751 {
752  return (!x);
753 }
754 
755 template <class T> constexpr bool operator==(nullopt_t, const optional<T>& x) noexcept
756 {
757  return (!x);
758 }
759 
760 template <class T> constexpr bool operator!=(const optional<T>& x, nullopt_t) noexcept
761 {
762  return bool(x);
763 }
764 
765 template <class T> constexpr bool operator!=(nullopt_t, const optional<T>& x) noexcept
766 {
767  return bool(x);
768 }
769 
770 template <class T> constexpr bool operator<(const optional<T>&, nullopt_t) noexcept
771 {
772  return false;
773 }
774 
775 template <class T> constexpr bool operator<(nullopt_t, const optional<T>& x) noexcept
776 {
777  return bool(x);
778 }
779 
780 template <class T> constexpr bool operator<=(const optional<T>& x, nullopt_t) noexcept
781 {
782  return (!x);
783 }
784 
785 template <class T> constexpr bool operator<=(nullopt_t, const optional<T>&) noexcept
786 {
787  return true;
788 }
789 
790 template <class T> constexpr bool operator>(const optional<T>& x, nullopt_t) noexcept
791 {
792  return bool(x);
793 }
794 
795 template <class T> constexpr bool operator>(nullopt_t, const optional<T>&) noexcept
796 {
797  return false;
798 }
799 
800 template <class T> constexpr bool operator>=(const optional<T>&, nullopt_t) noexcept
801 {
802  return true;
803 }
804 
805 template <class T> constexpr bool operator>=(nullopt_t, const optional<T>& x) noexcept
806 {
807  return (!x);
808 }
809 
810 
811 
812 // 20.5.10, Comparison with T
813 template <class T> constexpr bool operator==(const optional<T>& x, const T& v)
814 {
815  return bool(x) ? *x == v : false;
816 }
817 
818 template <class T> constexpr bool operator==(const T& v, const optional<T>& x)
819 {
820  return bool(x) ? v == *x : false;
821 }
822 
823 template <class T> constexpr bool operator!=(const optional<T>& x, const T& v)
824 {
825  return bool(x) ? *x != v : true;
826 }
827 
828 template <class T> constexpr bool operator!=(const T& v, const optional<T>& x)
829 {
830  return bool(x) ? v != *x : true;
831 }
832 
833 template <class T> constexpr bool operator<(const optional<T>& x, const T& v)
834 {
835  return bool(x) ? *x < v : true;
836 }
837 
838 template <class T> constexpr bool operator>(const T& v, const optional<T>& x)
839 {
840  return bool(x) ? v > *x : true;
841 }
842 
843 template <class T> constexpr bool operator>(const optional<T>& x, const T& v)
844 {
845  return bool(x) ? *x > v : false;
846 }
847 
848 template <class T> constexpr bool operator<(const T& v, const optional<T>& x)
849 {
850  return bool(x) ? v < *x : false;
851 }
852 
853 template <class T> constexpr bool operator>=(const optional<T>& x, const T& v)
854 {
855  return bool(x) ? *x >= v : false;
856 }
857 
858 template <class T> constexpr bool operator<=(const T& v, const optional<T>& x)
859 {
860  return bool(x) ? v <= *x : false;
861 }
862 
863 template <class T> constexpr bool operator<=(const optional<T>& x, const T& v)
864 {
865  return bool(x) ? *x <= v : true;
866 }
867 
868 template <class T> constexpr bool operator>=(const T& v, const optional<T>& x)
869 {
870  return bool(x) ? v >= *x : true;
871 }
872 
873 
874 // Comparison of optional<T&> with T
875 template <class T> constexpr bool operator==(const optional<T&>& x, const T& v)
876 {
877  return bool(x) ? *x == v : false;
878 }
879 
880 template <class T> constexpr bool operator==(const T& v, const optional<T&>& x)
881 {
882  return bool(x) ? v == *x : false;
883 }
884 
885 template <class T> constexpr bool operator!=(const optional<T&>& x, const T& v)
886 {
887  return bool(x) ? *x != v : true;
888 }
889 
890 template <class T> constexpr bool operator!=(const T& v, const optional<T&>& x)
891 {
892  return bool(x) ? v != *x : true;
893 }
894 
895 template <class T> constexpr bool operator<(const optional<T&>& x, const T& v)
896 {
897  return bool(x) ? *x < v : true;
898 }
899 
900 template <class T> constexpr bool operator>(const T& v, const optional<T&>& x)
901 {
902  return bool(x) ? v > *x : true;
903 }
904 
905 template <class T> constexpr bool operator>(const optional<T&>& x, const T& v)
906 {
907  return bool(x) ? *x > v : false;
908 }
909 
910 template <class T> constexpr bool operator<(const T& v, const optional<T&>& x)
911 {
912  return bool(x) ? v < *x : false;
913 }
914 
915 template <class T> constexpr bool operator>=(const optional<T&>& x, const T& v)
916 {
917  return bool(x) ? *x >= v : false;
918 }
919 
920 template <class T> constexpr bool operator<=(const T& v, const optional<T&>& x)
921 {
922  return bool(x) ? v <= *x : false;
923 }
924 
925 template <class T> constexpr bool operator<=(const optional<T&>& x, const T& v)
926 {
927  return bool(x) ? *x <= v : true;
928 }
929 
930 template <class T> constexpr bool operator>=(const T& v, const optional<T&>& x)
931 {
932  return bool(x) ? v >= *x : true;
933 }
934 
935 // Comparison of optional<T const&> with T
936 template <class T> constexpr bool operator==(const optional<const T&>& x, const T& v)
937 {
938  return bool(x) ? *x == v : false;
939 }
940 
941 template <class T> constexpr bool operator==(const T& v, const optional<const T&>& x)
942 {
943  return bool(x) ? v == *x : false;
944 }
945 
946 template <class T> constexpr bool operator!=(const optional<const T&>& x, const T& v)
947 {
948  return bool(x) ? *x != v : true;
949 }
950 
951 template <class T> constexpr bool operator!=(const T& v, const optional<const T&>& x)
952 {
953  return bool(x) ? v != *x : true;
954 }
955 
956 template <class T> constexpr bool operator<(const optional<const T&>& x, const T& v)
957 {
958  return bool(x) ? *x < v : true;
959 }
960 
961 template <class T> constexpr bool operator>(const T& v, const optional<const T&>& x)
962 {
963  return bool(x) ? v > *x : true;
964 }
965 
966 template <class T> constexpr bool operator>(const optional<const T&>& x, const T& v)
967 {
968  return bool(x) ? *x > v : false;
969 }
970 
971 template <class T> constexpr bool operator<(const T& v, const optional<const T&>& x)
972 {
973  return bool(x) ? v < *x : false;
974 }
975 
976 template <class T> constexpr bool operator>=(const optional<const T&>& x, const T& v)
977 {
978  return bool(x) ? *x >= v : false;
979 }
980 
981 template <class T> constexpr bool operator<=(const T& v, const optional<const T&>& x)
982 {
983  return bool(x) ? v <= *x : false;
984 }
985 
986 template <class T> constexpr bool operator<=(const optional<const T&>& x, const T& v)
987 {
988  return bool(x) ? *x <= v : true;
989 }
990 
991 template <class T> constexpr bool operator>=(const T& v, const optional<const T&>& x)
992 {
993  return bool(x) ? v >= *x : true;
994 }
995 
996 
997 // 20.5.12, Specialized algorithms
998 template <class T>
999 void swap(optional<T>& x, optional<T>& y) noexcept(noexcept(x.swap(y)))
1000 {
1001  x.swap(y);
1002 }
1003 
1004 
1005 template <class T>
1006 constexpr optional<typename decay<T>::type> make_optional(T&& v)
1007 {
1008  return optional<typename decay<T>::type>(constexpr_forward<T>(v));
1009 }
1010 
1011 template <class X>
1012 constexpr optional<X&> make_optional(reference_wrapper<X> v)
1013 {
1014  return optional<X&>(v.get());
1015 }
1016 
1017 
1018 } // namespace experimental
1019 } // namespace std
1020 
1021 namespace std
1022 {
1023  template <typename T>
1024  struct hash<std::experimental::optional<T>>
1025  {
1026  typedef typename hash<T>::result_type result_type;
1028 
1029  constexpr result_type operator()(argument_type const& arg) const {
1030  return arg ? std::hash<T>{}(*arg) : result_type{};
1031  }
1032  };
1033 
1034  template <typename T>
1035  struct hash<std::experimental::optional<T&>>
1036  {
1037  typedef typename hash<T>::result_type result_type;
1039 
1040  constexpr result_type operator()(argument_type const& arg) const {
1041  return arg ? std::hash<T>{}(*arg) : result_type{};
1042  }
1043  };
1044 }
1045 
1046 # undef TR2_OPTIONAL_REQUIRES
1047 # undef TR2_OPTIONAL_ASSERTED_EXPRESSION
1048 
1049 # endif //___OPTIONAL_HPP___
Definition: optional.hpp:267
+
Definition: optional.hpp:282
+
Definition: optional.hpp:250
+ +
Definition: optional.hpp:100
+
Definition: optional.hpp:252
+ +
Definition: optional.hpp:139
+
Definition: optional.hpp:246
+
Definition: optional.hpp:320
+ +
Definition: optional.hpp:242
+
Definition: optional.hpp:297
+
Definition: optional.hpp:259
+
Definition: optional.hpp:175
+ +
Definition: optional.hpp:610
+
+
+ + + + diff --git a/pages.html b/pages.html new file mode 100644 index 0000000..303390c --- /dev/null +++ b/pages.html @@ -0,0 +1,122 @@ + + + + + + +JBus: Related Pages + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBus communication server
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Related Pages
+
+
+
Here is a list of all related documentation pages:
+ + +
 DocMain
+
+
+
+ + + + diff --git a/resize.js b/resize.js new file mode 100644 index 0000000..2b86c36 --- /dev/null +++ b/resize.js @@ -0,0 +1,97 @@ +var cookie_namespace = 'doxygen'; +var sidenav,navtree,content,header; + +function readCookie(cookie) +{ + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) + { + var index = document.cookie.indexOf(myCookie); + if (index != -1) + { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) + { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; +} + +function writeCookie(cookie, val, expiration) +{ + if (val==undefined) return; + if (expiration == null) + { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; +} + +function resizeWidth() +{ + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + writeCookie('width',sidenavWidth, null); +} + +function restoreWidth(navWidth) +{ + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+6+"px"}); + sidenav.css({width:navWidth + "px"}); +} + +function resizeHeight() +{ + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px"}); +} + +function initResizable() +{ + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(window).resize(function() { resizeHeight(); }); + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(document).bind('touchmove',function(e){ + var device = navigator.userAgent.toLowerCase(); + var ios = device.match(/(iphone|ipod|ipad)/); + if (ios) { + try { + var target = e.target; + while (target) { + if ($(target).css('-webkit-overflow-scrolling')=='touch') return; + target = target.parentNode; + } + e.preventDefault(); + } catch(err) { + e.preventDefault(); + } + } + }); +} + + diff --git a/search/all_0.html b/search/all_0.html new file mode 100644 index 0000000..d54e0bd --- /dev/null +++ b/search/all_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 0000000..8badb2a --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['accept',['accept',['../classjbus_1_1Listener.html#aca4aeff837a26d69ec7f4dec6572e986',1,'jbus::Listener::accept()'],['../classjbus_1_1net_1_1Socket.html#afb79caaa1f0d96afb0088f9910c9c633',1,'jbus::net::Socket::accept(Socket &remoteSocketOut, sockaddr_in &fromAddress)'],['../classjbus_1_1net_1_1Socket.html#a4eac487033d8a6b855f5023955c6d1fc',1,'jbus::net::Socket::accept(Socket &remoteSocketOut)'],['../classjbus_1_1net_1_1Socket.html#a7775d73e68c92ca6685cc2c9bbad4f99',1,'jbus::net::Socket::accept(Socket &remoteSocketOut, std::string &fromHostname)']]] +]; diff --git a/search/all_1.html b/search/all_1.html new file mode 100644 index 0000000..8cc6a1d --- /dev/null +++ b/search/all_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_1.js b/search/all_1.js new file mode 100644 index 0000000..9b7646b --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['busy',['Busy',['../classjbus_1_1net_1_1Socket.html#a3bfd450bea54d958e35330aa7faa113fad8a942ef2b04672adfafef0ad817a407',1,'jbus::net::Socket']]] +]; diff --git a/search/all_10.html b/search/all_10.html new file mode 100644 index 0000000..c25484f --- /dev/null +++ b/search/all_10.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_10.js b/search/all_10.js new file mode 100644 index 0000000..4a38966 --- /dev/null +++ b/search/all_10.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['_7eendpoint',['~Endpoint',['../classjbus_1_1Endpoint.html#ad39f268d3bee438e5176cc7f4cf59675',1,'jbus::Endpoint']]], + ['_7elistener',['~Listener',['../classjbus_1_1Listener.html#a979078fd2cb5e4faeaa668dfda8f8e9d',1,'jbus::Listener']]], + ['_7esocket',['~Socket',['../classjbus_1_1net_1_1Socket.html#a3d2700e84af823fb63c8119f033a799d',1,'jbus::net::Socket']]] +]; diff --git a/search/all_11.html b/search/all_11.html new file mode 100644 index 0000000..3615c28 --- /dev/null +++ b/search/all_11.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_11.js b/search/all_11.js new file mode 100644 index 0000000..4a38966 --- /dev/null +++ b/search/all_11.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['_7eendpoint',['~Endpoint',['../classjbus_1_1Endpoint.html#ad39f268d3bee438e5176cc7f4cf59675',1,'jbus::Endpoint']]], + ['_7elistener',['~Listener',['../classjbus_1_1Listener.html#a979078fd2cb5e4faeaa668dfda8f8e9d',1,'jbus::Listener']]], + ['_7esocket',['~Socket',['../classjbus_1_1net_1_1Socket.html#a3d2700e84af823fb63c8119f033a799d',1,'jbus::net::Socket']]] +]; diff --git a/search/all_2.html b/search/all_2.html new file mode 100644 index 0000000..d15ac65 --- /dev/null +++ b/search/all_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_2.js b/search/all_2.js new file mode 100644 index 0000000..5ff0463 --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['close',['close',['../classjbus_1_1net_1_1Socket.html#ad981ced8a7a6f1bf5a3e6067df1ada9d',1,'jbus::net::Socket']]], + ['common_2ehpp',['Common.hpp',['../Common_8hpp.html',1,'']]] +]; diff --git a/search/all_3.html b/search/all_3.html new file mode 100644 index 0000000..9f526c6 --- /dev/null +++ b/search/all_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 0000000..8379373 --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['docmain_2emd',['DocMain.md',['../DocMain_8md.html',1,'']]] +]; diff --git a/search/all_4.html b/search/all_4.html new file mode 100644 index 0000000..7b814aa --- /dev/null +++ b/search/all_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_4.js b/search/all_4.js new file mode 100644 index 0000000..5558b0a --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['ejoyreturn',['EJoyReturn',['../namespacejbus.html#a7118bfa3cb9d51e588418220bca20117',1,'jbus']]], + ['ejstatflags',['EJStatFlags',['../namespacejbus.html#a6a14af068c46e5eaac52e4c6ae081ab9',1,'jbus']]], + ['endpoint',['Endpoint',['../classjbus_1_1ThreadLocalEndpoint.html#a500d74fc41e3ab6b4889a579193566ed',1,'jbus::ThreadLocalEndpoint::Endpoint()'],['../classjbus_1_1Endpoint.html#a39ddcbf5ac7078d59a4d99d291e3f0fa',1,'jbus::Endpoint::Endpoint()']]], + ['endpoint',['Endpoint',['../classjbus_1_1Endpoint.html',1,'jbus']]], + ['endpoint_2ehpp',['Endpoint.hpp',['../Endpoint_8hpp.html',1,'']]], + ['eresult',['EResult',['../classjbus_1_1net_1_1Socket.html#a3bfd450bea54d958e35330aa7faa113f',1,'jbus::net::Socket']]], + ['error',['Error',['../classjbus_1_1net_1_1Socket.html#a3bfd450bea54d958e35330aa7faa113fa902b0d55fddef6f8d651fe1035b7d4bd',1,'jbus::net::Socket']]] +]; diff --git a/search/all_5.html b/search/all_5.html new file mode 100644 index 0000000..d8de556 --- /dev/null +++ b/search/all_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 0000000..ce6830e --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['fgbacallback',['FGBACallback',['../namespacejbus.html#ae1577e03ea8c6e27361cb389c992280d',1,'jbus']]] +]; diff --git a/search/all_6.html b/search/all_6.html new file mode 100644 index 0000000..9ba0cc2 --- /dev/null +++ b/search/all_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 0000000..ae7f1d2 --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['gba_5fbusy',['GBA_BUSY',['../namespacejbus.html#a7118bfa3cb9d51e588418220bca20117a97f6047ad685bdd832831954ab4454a0',1,'jbus']]], + ['gba_5fjoyboot_5ferr_5finvalid',['GBA_JOYBOOT_ERR_INVALID',['../namespacejbus.html#a7118bfa3cb9d51e588418220bca20117abdeee79304d78d822a4b5f5b71f5ddad',1,'jbus']]], + ['gba_5fjoyboot_5funknown_5fstate',['GBA_JOYBOOT_UNKNOWN_STATE',['../namespacejbus.html#a7118bfa3cb9d51e588418220bca20117a5f890238a7828bd688477a32fdef34db',1,'jbus']]], + ['gba_5fjstat_5fflags_5fmask',['GBA_JSTAT_FLAGS_MASK',['../namespacejbus.html#a6a14af068c46e5eaac52e4c6ae081ab9a78506d78e40b43d15ff101f4efa00269',1,'jbus']]], + ['gba_5fjstat_5fflags_5fshift',['GBA_JSTAT_FLAGS_SHIFT',['../namespacejbus.html#a6a14af068c46e5eaac52e4c6ae081ab9a92d3659e0d24e5242af71dbfa1a25b20',1,'jbus']]], + ['gba_5fjstat_5fmask',['GBA_JSTAT_MASK',['../namespacejbus.html#a6a14af068c46e5eaac52e4c6ae081ab9a073fa6fd8ff5ae41567160cf897db7c1',1,'jbus']]], + ['gba_5fjstat_5fpsf0',['GBA_JSTAT_PSF0',['../namespacejbus.html#a6a14af068c46e5eaac52e4c6ae081ab9a9d1af0345a227524011d9845c0c3c4f8',1,'jbus']]], + ['gba_5fjstat_5fpsf1',['GBA_JSTAT_PSF1',['../namespacejbus.html#a6a14af068c46e5eaac52e4c6ae081ab9a93e801d066708e0c98eec71c42803f94',1,'jbus']]], + ['gba_5fjstat_5frecv',['GBA_JSTAT_RECV',['../namespacejbus.html#a6a14af068c46e5eaac52e4c6ae081ab9a814553611e2f05ce7daede703c9b0a20',1,'jbus']]], + ['gba_5fjstat_5fsend',['GBA_JSTAT_SEND',['../namespacejbus.html#a6a14af068c46e5eaac52e4c6ae081ab9afe5cad6728edc3ab4aab7b0a9375350c',1,'jbus']]], + ['gba_5fnot_5fready',['GBA_NOT_READY',['../namespacejbus.html#a7118bfa3cb9d51e588418220bca20117aac3cd7dd0e4cb525e5045cb9e9c1f09a',1,'jbus']]], + ['gba_5fready',['GBA_READY',['../namespacejbus.html#a7118bfa3cb9d51e588418220bca20117a1e5f181b31229228f6741a4e3106c3fd',1,'jbus']]], + ['gbagetprocessstatus',['GBAGetProcessStatus',['../classjbus_1_1Endpoint.html#a50401a9a9d658f1f68e3dde61d5dfbce',1,'jbus::Endpoint']]], + ['gbagetstatus',['GBAGetStatus',['../classjbus_1_1Endpoint.html#a779ba524cf30f41e29fd53a626ba2acf',1,'jbus::Endpoint']]], + ['gbagetstatusasync',['GBAGetStatusAsync',['../classjbus_1_1Endpoint.html#a4ba9120b99057be42940b797708b790e',1,'jbus::Endpoint::GBAGetStatusAsync()'],['../classjbus_1_1ThreadLocalEndpoint.html#ad81335c0018a42ef9085d6941c4cddd5',1,'jbus::ThreadLocalEndpoint::GBAGetStatusAsync()']]], + ['gbajoybootasync',['GBAJoyBootAsync',['../classjbus_1_1Endpoint.html#aad76a9374e4e151540f678798548a843',1,'jbus::Endpoint']]], + ['gbaread',['GBARead',['../classjbus_1_1Endpoint.html#a775c816f52ca45117759b5b23eb45683',1,'jbus::Endpoint']]], + ['gbareadasync',['GBAReadAsync',['../classjbus_1_1Endpoint.html#a047d724cc9ccb8253cb8464c24b9ccd4',1,'jbus::Endpoint::GBAReadAsync()'],['../classjbus_1_1ThreadLocalEndpoint.html#aa1b9704d834d55b5118d4612dc335f4c',1,'jbus::ThreadLocalEndpoint::GBAReadAsync()']]], + ['gbareset',['GBAReset',['../classjbus_1_1Endpoint.html#a9065f6189182596a3f5c498e8ef98b40',1,'jbus::Endpoint']]], + ['gbaresetasync',['GBAResetAsync',['../classjbus_1_1Endpoint.html#a81d86608ffb93b3211a915fa1712beb4',1,'jbus::Endpoint::GBAResetAsync()'],['../classjbus_1_1ThreadLocalEndpoint.html#aab260d6d6686c2c3fc2ff31f57cf436d',1,'jbus::ThreadLocalEndpoint::GBAResetAsync()']]], + ['gbawrite',['GBAWrite',['../classjbus_1_1Endpoint.html#a6e59373aa28a23097129470deaeb46dd',1,'jbus::Endpoint']]], + ['gbawriteasync',['GBAWriteAsync',['../classjbus_1_1Endpoint.html#a06506d0cfa26d461f239ed761264d7b0',1,'jbus::Endpoint::GBAWriteAsync()'],['../classjbus_1_1ThreadLocalEndpoint.html#aa1625ccaf1f817831d56cf32554bc40c',1,'jbus::ThreadLocalEndpoint::GBAWriteAsync()']]], + ['getchan',['GetChan',['../classjbus_1_1Endpoint.html#acb5167184768ea65d026adc531f237b9',1,'jbus::Endpoint::GetChan()'],['../classjbus_1_1ThreadLocalEndpoint.html#a0899b0293f9eb4b69763d8e1e21e58a9',1,'jbus::ThreadLocalEndpoint::GetChan()']]], + ['getgcticks',['GetGCTicks',['../namespacejbus.html#a5944719111a14f5920ec765e5dcf71db',1,'jbus']]], + ['getinternalsocket',['GetInternalSocket',['../classjbus_1_1net_1_1Socket.html#a66864f8061a4d96fb9ceabc808532046',1,'jbus::net::Socket']]] +]; diff --git a/search/all_7.html b/search/all_7.html new file mode 100644 index 0000000..9384ec9 --- /dev/null +++ b/search/all_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 0000000..287e598 --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['initialize',['Initialize',['../namespacejbus.html#ae0b3017c3755ceb8c9dd580965b8bc04',1,'jbus']]], + ['ipaddress',['IPAddress',['../classjbus_1_1net_1_1IPAddress.html#a7a9262cd458bcf8e63d5b9204edfdde9',1,'jbus::net::IPAddress']]], + ['ipaddress',['IPAddress',['../classjbus_1_1net_1_1IPAddress.html',1,'jbus::net']]], + ['isopen',['isOpen',['../classjbus_1_1net_1_1Socket.html#a31a6b806331c0856658e08fe9a77b32d',1,'jbus::net::Socket']]] +]; diff --git a/search/all_8.html b/search/all_8.html new file mode 100644 index 0000000..37566c5 --- /dev/null +++ b/search/all_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_8.js b/search/all_8.js new file mode 100644 index 0000000..5756a5c --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['jbus_20documentation',['JBus Documentation',['../index.html',1,'']]], + ['jbus',['jbus',['../namespacejbus.html',1,'']]], + ['net',['net',['../namespacejbus_1_1net.html',1,'jbus']]] +]; diff --git a/search/all_9.html b/search/all_9.html new file mode 100644 index 0000000..c8c5102 --- /dev/null +++ b/search/all_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 0000000..a3b036c --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['listener',['Listener',['../classjbus_1_1Listener.html',1,'jbus']]], + ['listener_2ehpp',['Listener.hpp',['../Listener_8hpp.html',1,'']]] +]; diff --git a/search/all_a.html b/search/all_a.html new file mode 100644 index 0000000..4cb31f0 --- /dev/null +++ b/search/all_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_a.js b/search/all_a.js new file mode 100644 index 0000000..26fed98 --- /dev/null +++ b/search/all_a.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['ok',['OK',['../classjbus_1_1net_1_1Socket.html#a3bfd450bea54d958e35330aa7faa113fae0aa021e21dddbd6d8cecec71e9cf564',1,'jbus::net::Socket']]], + ['openandlisten',['openAndListen',['../classjbus_1_1net_1_1Socket.html#aa6baaf24a436a72735d0561f907864eb',1,'jbus::net::Socket']]], + ['operator_20bool',['operator bool',['../classjbus_1_1net_1_1IPAddress.html#a71d4f132a65595be0d74dd0a9a498696',1,'jbus::net::IPAddress::operator bool()'],['../classjbus_1_1net_1_1Socket.html#a5417fa626737b38ed048595ff0cda452',1,'jbus::net::Socket::operator bool()']]], + ['operator_3d',['operator=',['../classjbus_1_1net_1_1Socket.html#a0f73de864690d7637be5ccdd2ab2cd02',1,'jbus::net::Socket::operator=(const Socket &other)=delete'],['../classjbus_1_1net_1_1Socket.html#af761a3e1046b017ee919595af021bede',1,'jbus::net::Socket::operator=(Socket &&other)']]] +]; diff --git a/search/all_b.html b/search/all_b.html new file mode 100644 index 0000000..d34a612 --- /dev/null +++ b/search/all_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_b.js b/search/all_b.js new file mode 100644 index 0000000..0191db7 --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['recv',['recv',['../classjbus_1_1net_1_1Socket.html#a145c616a39461c9ab57e021a51f746e4',1,'jbus::net::Socket::recv(void *buf, size_t len, size_t &transferred)'],['../classjbus_1_1net_1_1Socket.html#a5563c140f709a91585cafbb27151720a',1,'jbus::net::Socket::recv(void *buf, size_t len)']]] +]; diff --git a/search/all_c.html b/search/all_c.html new file mode 100644 index 0000000..c1ae2ca --- /dev/null +++ b/search/all_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 0000000..b958213 --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['s16',['s16',['../namespacejbus.html#aa767fe4f71e145e2c0b12eccbeb83071',1,'jbus']]], + ['s32',['s32',['../namespacejbus.html#a33e5022738a0799c066372ce74d04c37',1,'jbus']]], + ['s64',['s64',['../namespacejbus.html#a69133321c9f11f1fa0e49c072244d377',1,'jbus']]], + ['s8',['s8',['../namespacejbus.html#a416b65eae1b2ff9ab63c4c71ff857ea4',1,'jbus']]], + ['send',['send',['../classjbus_1_1net_1_1Socket.html#ae3e4995fb077912fa51764053e931bae',1,'jbus::net::Socket::send(const void *buf, size_t len, size_t &transferred)'],['../classjbus_1_1net_1_1Socket.html#aeff335671da65f7397f86af7b712384f',1,'jbus::net::Socket::send(const void *buf, size_t len)']]], + ['setblocking',['setBlocking',['../classjbus_1_1net_1_1Socket.html#a9ee7eee273fdb17fed00972dff0136ee',1,'jbus::net::Socket']]], + ['socket',['Socket',['../classjbus_1_1net_1_1Socket.html#a87bf8bdb4a07533dc7eccfd5bb84857d',1,'jbus::net::Socket::Socket(bool blocking)'],['../classjbus_1_1net_1_1Socket.html#af2bbe556cdffa7e7e542318164c3496c',1,'jbus::net::Socket::Socket(const Socket &other)=delete'],['../classjbus_1_1net_1_1Socket.html#ae55b301ad32ba4a0fe54e7282c2e3e50',1,'jbus::net::Socket::Socket(Socket &&other)']]], + ['socket',['Socket',['../classjbus_1_1net_1_1Socket.html',1,'jbus::net']]], + ['socket_2ehpp',['Socket.hpp',['../Socket_8hpp.html',1,'']]], + ['start',['start',['../classjbus_1_1Listener.html#a2fd5a552555c94be0b03bf2c66ea5e2b',1,'jbus::Listener']]], + ['stop',['stop',['../classjbus_1_1Endpoint.html#a1cae93f2e1e097b10b34810a0d04333f',1,'jbus::Endpoint::stop()'],['../classjbus_1_1Listener.html#a40c805d7681e609d72acad900579fe76',1,'jbus::Listener::stop()']]] +]; diff --git a/search/all_d.html b/search/all_d.html new file mode 100644 index 0000000..712223c --- /dev/null +++ b/search/all_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_d.js b/search/all_d.js new file mode 100644 index 0000000..66cd202 --- /dev/null +++ b/search/all_d.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['threadlocalendpoint',['ThreadLocalEndpoint',['../classjbus_1_1ThreadLocalEndpoint.html',1,'jbus']]], + ['threadlocalendpoint',['ThreadLocalEndpoint',['../classjbus_1_1Endpoint.html#ab5de6af29530791b0b2958002f1d3603',1,'jbus::Endpoint']]], + ['tointeger',['toInteger',['../classjbus_1_1net_1_1IPAddress.html#a36ccdd7a0630a183c16943a21b3c908c',1,'jbus::net::IPAddress']]] +]; diff --git a/search/all_e.html b/search/all_e.html new file mode 100644 index 0000000..d553ffa --- /dev/null +++ b/search/all_e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_e.js b/search/all_e.js new file mode 100644 index 0000000..45c214e --- /dev/null +++ b/search/all_e.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['u16',['u16',['../namespacejbus.html#aff2760609de15f92daafbdff7be79b33',1,'jbus']]], + ['u32',['u32',['../namespacejbus.html#ae4a7d015f3b8913ec0b563caa0a53221',1,'jbus']]], + ['u64',['u64',['../namespacejbus.html#a36fb1f7488218c972a50b1f9dd547b81',1,'jbus']]], + ['u8',['u8',['../namespacejbus.html#a19d112b8b9f912fca094b41ce26c4fef',1,'jbus']]] +]; diff --git a/search/all_f.html b/search/all_f.html new file mode 100644 index 0000000..c77391a --- /dev/null +++ b/search/all_f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_f.js b/search/all_f.js new file mode 100644 index 0000000..3700751 --- /dev/null +++ b/search/all_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['waitgcticks',['WaitGCTicks',['../namespacejbus.html#a918fbee6d761952c56c4914c900c2876',1,'jbus']]] +]; diff --git a/search/classes_0.html b/search/classes_0.html new file mode 100644 index 0000000..025587a --- /dev/null +++ b/search/classes_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 0000000..a973889 --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['endpoint',['Endpoint',['../classjbus_1_1Endpoint.html',1,'jbus']]] +]; diff --git a/search/classes_1.html b/search/classes_1.html new file mode 100644 index 0000000..86dc4ff --- /dev/null +++ b/search/classes_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_1.js b/search/classes_1.js new file mode 100644 index 0000000..e72b46a --- /dev/null +++ b/search/classes_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ipaddress',['IPAddress',['../classjbus_1_1net_1_1IPAddress.html',1,'jbus::net']]] +]; diff --git a/search/classes_2.html b/search/classes_2.html new file mode 100644 index 0000000..014caf8 --- /dev/null +++ b/search/classes_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_2.js b/search/classes_2.js new file mode 100644 index 0000000..44f8348 --- /dev/null +++ b/search/classes_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['listener',['Listener',['../classjbus_1_1Listener.html',1,'jbus']]] +]; diff --git a/search/classes_3.html b/search/classes_3.html new file mode 100644 index 0000000..2e97201 --- /dev/null +++ b/search/classes_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_3.js b/search/classes_3.js new file mode 100644 index 0000000..487c6e8 --- /dev/null +++ b/search/classes_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['socket',['Socket',['../classjbus_1_1net_1_1Socket.html',1,'jbus::net']]] +]; diff --git a/search/classes_4.html b/search/classes_4.html new file mode 100644 index 0000000..776fee3 --- /dev/null +++ b/search/classes_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_4.js b/search/classes_4.js new file mode 100644 index 0000000..4b3a94b --- /dev/null +++ b/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['threadlocalendpoint',['ThreadLocalEndpoint',['../classjbus_1_1ThreadLocalEndpoint.html',1,'jbus']]] +]; diff --git a/search/classes_5.html b/search/classes_5.html new file mode 100644 index 0000000..69bbcc8 --- /dev/null +++ b/search/classes_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_5.js b/search/classes_5.js new file mode 100644 index 0000000..44f8348 --- /dev/null +++ b/search/classes_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['listener',['Listener',['../classjbus_1_1Listener.html',1,'jbus']]] +]; diff --git a/search/classes_6.html b/search/classes_6.html new file mode 100644 index 0000000..2db08a0 --- /dev/null +++ b/search/classes_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_6.js b/search/classes_6.js new file mode 100644 index 0000000..a5eafa4 --- /dev/null +++ b/search/classes_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['nullopt_5ft',['nullopt_t',['../structstd_1_1experimental_1_1nullopt__t.html',1,'std::experimental']]] +]; diff --git a/search/classes_7.html b/search/classes_7.html new file mode 100644 index 0000000..fd67346 --- /dev/null +++ b/search/classes_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_7.js b/search/classes_7.js new file mode 100644 index 0000000..2672abb --- /dev/null +++ b/search/classes_7.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['optional',['optional',['../classstd_1_1experimental_1_1optional.html',1,'std::experimental']]], + ['optional_3c_20kawasedochallenge_20_3e',['optional< KawasedoChallenge >',['../classstd_1_1experimental_1_1optional.html',1,'std::experimental']]], + ['optional_3c_20t_20_26_20_3e',['optional< T & >',['../classstd_1_1experimental_1_1optional_3_01T_01_6_01_4.html',1,'std::experimental']]], + ['optional_3c_20t_20_26_26_20_3e',['optional< T && >',['../classstd_1_1experimental_1_1optional_3_01T_01_6_6_01_4.html',1,'std::experimental']]], + ['optional_5fbase',['optional_base',['../structstd_1_1experimental_1_1optional__base.html',1,'std::experimental']]] +]; diff --git a/search/classes_8.html b/search/classes_8.html new file mode 100644 index 0000000..369fe52 --- /dev/null +++ b/search/classes_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_8.js b/search/classes_8.js new file mode 100644 index 0000000..87a55bf --- /dev/null +++ b/search/classes_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['socket',['Socket',['../classjbus_1_1net_1_1Socket.html',1,'jbus::net']]], + ['storage_5ft',['storage_t',['../unionstd_1_1experimental_1_1storage__t.html',1,'std::experimental']]] +]; diff --git a/search/classes_9.html b/search/classes_9.html new file mode 100644 index 0000000..188dbb3 --- /dev/null +++ b/search/classes_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_9.js b/search/classes_9.js new file mode 100644 index 0000000..a6aa80a --- /dev/null +++ b/search/classes_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['threadlocalendpoint',['ThreadLocalEndpoint',['../classjbus_1_1ThreadLocalEndpoint.html',1,'jbus']]], + ['trivial_5finit_5ft',['trivial_init_t',['../structstd_1_1experimental_1_1trivial__init__t.html',1,'std::experimental']]] +]; diff --git a/search/close.png b/search/close.png new file mode 100644 index 0000000000000000000000000000000000000000..9342d3dfeea7b7c4ee610987e717804b5a42ceb9 GIT binary patch literal 273 zcmV+s0q*{ZP)4(RlMby96)VwnbG{ zbe&}^BDn7x>$<{ck4zAK-=nT;=hHG)kmplIF${xqm8db3oX6wT3bvp`TE@m0cg;b) zBuSL}5?N7O(iZLdAlz@)b)Rd~DnSsSX&P5qC`XwuFwcAYLC+d2>+1(8on;wpt8QIC X2MT$R4iQDd00000NkvXXu0mjfia~GN literal 0 HcmV?d00001 diff --git a/search/defines_0.html b/search/defines_0.html new file mode 100644 index 0000000..17cfaa2 --- /dev/null +++ b/search/defines_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/defines_0.js b/search/defines_0.js new file mode 100644 index 0000000..9eb5ae5 --- /dev/null +++ b/search/defines_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['sbig',['SBIG',['../Common_8hpp.html#a78130f853caa0ab8657889faed13438d',1,'Common.hpp']]], + ['slittle',['SLITTLE',['../Common_8hpp.html#acbf46deec43a4e662e483f4d19b847ad',1,'Common.hpp']]] +]; diff --git a/search/enums_0.html b/search/enums_0.html new file mode 100644 index 0000000..aba8d79 --- /dev/null +++ b/search/enums_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/enums_0.js b/search/enums_0.js new file mode 100644 index 0000000..e5b9097 --- /dev/null +++ b/search/enums_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['ejoyreturn',['EJoyReturn',['../namespacejbus.html#a7118bfa3cb9d51e588418220bca20117',1,'jbus']]], + ['ejstatflags',['EJStatFlags',['../namespacejbus.html#a6a14af068c46e5eaac52e4c6ae081ab9',1,'jbus']]], + ['eresult',['EResult',['../classjbus_1_1net_1_1Socket.html#a3bfd450bea54d958e35330aa7faa113f',1,'jbus::net::Socket']]] +]; diff --git a/search/enumvalues_0.html b/search/enumvalues_0.html new file mode 100644 index 0000000..83192d3 --- /dev/null +++ b/search/enumvalues_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/enumvalues_0.js b/search/enumvalues_0.js new file mode 100644 index 0000000..9b7646b --- /dev/null +++ b/search/enumvalues_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['busy',['Busy',['../classjbus_1_1net_1_1Socket.html#a3bfd450bea54d958e35330aa7faa113fad8a942ef2b04672adfafef0ad817a407',1,'jbus::net::Socket']]] +]; diff --git a/search/enumvalues_1.html b/search/enumvalues_1.html new file mode 100644 index 0000000..0715ef5 --- /dev/null +++ b/search/enumvalues_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/enumvalues_1.js b/search/enumvalues_1.js new file mode 100644 index 0000000..677e10a --- /dev/null +++ b/search/enumvalues_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['error',['Error',['../classjbus_1_1net_1_1Socket.html#a3bfd450bea54d958e35330aa7faa113fa902b0d55fddef6f8d651fe1035b7d4bd',1,'jbus::net::Socket']]] +]; diff --git a/search/enumvalues_2.html b/search/enumvalues_2.html new file mode 100644 index 0000000..0f9b5e9 --- /dev/null +++ b/search/enumvalues_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/enumvalues_2.js b/search/enumvalues_2.js new file mode 100644 index 0000000..37e674d --- /dev/null +++ b/search/enumvalues_2.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['gba_5fbusy',['GBA_BUSY',['../namespacejbus.html#a7118bfa3cb9d51e588418220bca20117a97f6047ad685bdd832831954ab4454a0',1,'jbus']]], + ['gba_5fjoyboot_5ferr_5finvalid',['GBA_JOYBOOT_ERR_INVALID',['../namespacejbus.html#a7118bfa3cb9d51e588418220bca20117abdeee79304d78d822a4b5f5b71f5ddad',1,'jbus']]], + ['gba_5fjoyboot_5funknown_5fstate',['GBA_JOYBOOT_UNKNOWN_STATE',['../namespacejbus.html#a7118bfa3cb9d51e588418220bca20117a5f890238a7828bd688477a32fdef34db',1,'jbus']]], + ['gba_5fjstat_5fflags_5fmask',['GBA_JSTAT_FLAGS_MASK',['../namespacejbus.html#a6a14af068c46e5eaac52e4c6ae081ab9a78506d78e40b43d15ff101f4efa00269',1,'jbus']]], + ['gba_5fjstat_5fflags_5fshift',['GBA_JSTAT_FLAGS_SHIFT',['../namespacejbus.html#a6a14af068c46e5eaac52e4c6ae081ab9a92d3659e0d24e5242af71dbfa1a25b20',1,'jbus']]], + ['gba_5fjstat_5fmask',['GBA_JSTAT_MASK',['../namespacejbus.html#a6a14af068c46e5eaac52e4c6ae081ab9a073fa6fd8ff5ae41567160cf897db7c1',1,'jbus']]], + ['gba_5fjstat_5fpsf0',['GBA_JSTAT_PSF0',['../namespacejbus.html#a6a14af068c46e5eaac52e4c6ae081ab9a9d1af0345a227524011d9845c0c3c4f8',1,'jbus']]], + ['gba_5fjstat_5fpsf1',['GBA_JSTAT_PSF1',['../namespacejbus.html#a6a14af068c46e5eaac52e4c6ae081ab9a93e801d066708e0c98eec71c42803f94',1,'jbus']]], + ['gba_5fjstat_5frecv',['GBA_JSTAT_RECV',['../namespacejbus.html#a6a14af068c46e5eaac52e4c6ae081ab9a814553611e2f05ce7daede703c9b0a20',1,'jbus']]], + ['gba_5fjstat_5fsend',['GBA_JSTAT_SEND',['../namespacejbus.html#a6a14af068c46e5eaac52e4c6ae081ab9afe5cad6728edc3ab4aab7b0a9375350c',1,'jbus']]], + ['gba_5fnot_5fready',['GBA_NOT_READY',['../namespacejbus.html#a7118bfa3cb9d51e588418220bca20117aac3cd7dd0e4cb525e5045cb9e9c1f09a',1,'jbus']]], + ['gba_5fready',['GBA_READY',['../namespacejbus.html#a7118bfa3cb9d51e588418220bca20117a1e5f181b31229228f6741a4e3106c3fd',1,'jbus']]] +]; diff --git a/search/enumvalues_3.html b/search/enumvalues_3.html new file mode 100644 index 0000000..9ebb356 --- /dev/null +++ b/search/enumvalues_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/enumvalues_3.js b/search/enumvalues_3.js new file mode 100644 index 0000000..141f757 --- /dev/null +++ b/search/enumvalues_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ok',['OK',['../classjbus_1_1net_1_1Socket.html#a3bfd450bea54d958e35330aa7faa113fae0aa021e21dddbd6d8cecec71e9cf564',1,'jbus::net::Socket']]] +]; diff --git a/search/files_0.html b/search/files_0.html new file mode 100644 index 0000000..0b637cf --- /dev/null +++ b/search/files_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_0.js b/search/files_0.js new file mode 100644 index 0000000..65cb532 --- /dev/null +++ b/search/files_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['common_2ehpp',['Common.hpp',['../Common_8hpp.html',1,'']]] +]; diff --git a/search/files_1.html b/search/files_1.html new file mode 100644 index 0000000..1094e74 --- /dev/null +++ b/search/files_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_1.js b/search/files_1.js new file mode 100644 index 0000000..8379373 --- /dev/null +++ b/search/files_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['docmain_2emd',['DocMain.md',['../DocMain_8md.html',1,'']]] +]; diff --git a/search/files_2.html b/search/files_2.html new file mode 100644 index 0000000..a08dbd3 --- /dev/null +++ b/search/files_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_2.js b/search/files_2.js new file mode 100644 index 0000000..da84d38 --- /dev/null +++ b/search/files_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['endpoint_2ehpp',['Endpoint.hpp',['../Endpoint_8hpp.html',1,'']]] +]; diff --git a/search/files_3.html b/search/files_3.html new file mode 100644 index 0000000..647fc8d --- /dev/null +++ b/search/files_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_3.js b/search/files_3.js new file mode 100644 index 0000000..d092e6d --- /dev/null +++ b/search/files_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['listener_2ehpp',['Listener.hpp',['../Listener_8hpp.html',1,'']]] +]; diff --git a/search/files_4.html b/search/files_4.html new file mode 100644 index 0000000..186557a --- /dev/null +++ b/search/files_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_4.js b/search/files_4.js new file mode 100644 index 0000000..8348881 --- /dev/null +++ b/search/files_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['socket_2ehpp',['Socket.hpp',['../Socket_8hpp.html',1,'']]] +]; diff --git a/search/functions_0.html b/search/functions_0.html new file mode 100644 index 0000000..6bc52b6 --- /dev/null +++ b/search/functions_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_0.js b/search/functions_0.js new file mode 100644 index 0000000..8badb2a --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['accept',['accept',['../classjbus_1_1Listener.html#aca4aeff837a26d69ec7f4dec6572e986',1,'jbus::Listener::accept()'],['../classjbus_1_1net_1_1Socket.html#afb79caaa1f0d96afb0088f9910c9c633',1,'jbus::net::Socket::accept(Socket &remoteSocketOut, sockaddr_in &fromAddress)'],['../classjbus_1_1net_1_1Socket.html#a4eac487033d8a6b855f5023955c6d1fc',1,'jbus::net::Socket::accept(Socket &remoteSocketOut)'],['../classjbus_1_1net_1_1Socket.html#a7775d73e68c92ca6685cc2c9bbad4f99',1,'jbus::net::Socket::accept(Socket &remoteSocketOut, std::string &fromHostname)']]] +]; diff --git a/search/functions_1.html b/search/functions_1.html new file mode 100644 index 0000000..648831f --- /dev/null +++ b/search/functions_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_1.js b/search/functions_1.js new file mode 100644 index 0000000..d5e9dc9 --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['close',['close',['../classjbus_1_1net_1_1Socket.html#ad981ced8a7a6f1bf5a3e6067df1ada9d',1,'jbus::net::Socket']]] +]; diff --git a/search/functions_2.html b/search/functions_2.html new file mode 100644 index 0000000..c93d089 --- /dev/null +++ b/search/functions_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_2.js b/search/functions_2.js new file mode 100644 index 0000000..8a5984d --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['endpoint',['Endpoint',['../classjbus_1_1Endpoint.html#a39ddcbf5ac7078d59a4d99d291e3f0fa',1,'jbus::Endpoint']]] +]; diff --git a/search/functions_3.html b/search/functions_3.html new file mode 100644 index 0000000..caa48ea --- /dev/null +++ b/search/functions_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_3.js b/search/functions_3.js new file mode 100644 index 0000000..e2df573 --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['gbagetprocessstatus',['GBAGetProcessStatus',['../classjbus_1_1Endpoint.html#a50401a9a9d658f1f68e3dde61d5dfbce',1,'jbus::Endpoint']]], + ['gbagetstatus',['GBAGetStatus',['../classjbus_1_1Endpoint.html#a779ba524cf30f41e29fd53a626ba2acf',1,'jbus::Endpoint']]], + ['gbagetstatusasync',['GBAGetStatusAsync',['../classjbus_1_1Endpoint.html#a4ba9120b99057be42940b797708b790e',1,'jbus::Endpoint::GBAGetStatusAsync()'],['../classjbus_1_1ThreadLocalEndpoint.html#ad81335c0018a42ef9085d6941c4cddd5',1,'jbus::ThreadLocalEndpoint::GBAGetStatusAsync()']]], + ['gbajoybootasync',['GBAJoyBootAsync',['../classjbus_1_1Endpoint.html#aad76a9374e4e151540f678798548a843',1,'jbus::Endpoint']]], + ['gbaread',['GBARead',['../classjbus_1_1Endpoint.html#a775c816f52ca45117759b5b23eb45683',1,'jbus::Endpoint']]], + ['gbareadasync',['GBAReadAsync',['../classjbus_1_1Endpoint.html#a047d724cc9ccb8253cb8464c24b9ccd4',1,'jbus::Endpoint::GBAReadAsync()'],['../classjbus_1_1ThreadLocalEndpoint.html#aa1b9704d834d55b5118d4612dc335f4c',1,'jbus::ThreadLocalEndpoint::GBAReadAsync()']]], + ['gbareset',['GBAReset',['../classjbus_1_1Endpoint.html#a9065f6189182596a3f5c498e8ef98b40',1,'jbus::Endpoint']]], + ['gbaresetasync',['GBAResetAsync',['../classjbus_1_1Endpoint.html#a81d86608ffb93b3211a915fa1712beb4',1,'jbus::Endpoint::GBAResetAsync()'],['../classjbus_1_1ThreadLocalEndpoint.html#aab260d6d6686c2c3fc2ff31f57cf436d',1,'jbus::ThreadLocalEndpoint::GBAResetAsync()']]], + ['gbawrite',['GBAWrite',['../classjbus_1_1Endpoint.html#a6e59373aa28a23097129470deaeb46dd',1,'jbus::Endpoint']]], + ['gbawriteasync',['GBAWriteAsync',['../classjbus_1_1Endpoint.html#a06506d0cfa26d461f239ed761264d7b0',1,'jbus::Endpoint::GBAWriteAsync()'],['../classjbus_1_1ThreadLocalEndpoint.html#aa1625ccaf1f817831d56cf32554bc40c',1,'jbus::ThreadLocalEndpoint::GBAWriteAsync()']]], + ['getchan',['GetChan',['../classjbus_1_1Endpoint.html#acb5167184768ea65d026adc531f237b9',1,'jbus::Endpoint::GetChan()'],['../classjbus_1_1ThreadLocalEndpoint.html#a0899b0293f9eb4b69763d8e1e21e58a9',1,'jbus::ThreadLocalEndpoint::GetChan()']]], + ['getgcticks',['GetGCTicks',['../namespacejbus.html#a5944719111a14f5920ec765e5dcf71db',1,'jbus']]], + ['getinternalsocket',['GetInternalSocket',['../classjbus_1_1net_1_1Socket.html#a66864f8061a4d96fb9ceabc808532046',1,'jbus::net::Socket']]] +]; diff --git a/search/functions_4.html b/search/functions_4.html new file mode 100644 index 0000000..a9c64ad --- /dev/null +++ b/search/functions_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_4.js b/search/functions_4.js new file mode 100644 index 0000000..a312563 --- /dev/null +++ b/search/functions_4.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['initialize',['Initialize',['../namespacejbus.html#ae0b3017c3755ceb8c9dd580965b8bc04',1,'jbus']]], + ['ipaddress',['IPAddress',['../classjbus_1_1net_1_1IPAddress.html#a7a9262cd458bcf8e63d5b9204edfdde9',1,'jbus::net::IPAddress']]], + ['isopen',['isOpen',['../classjbus_1_1net_1_1Socket.html#a31a6b806331c0856658e08fe9a77b32d',1,'jbus::net::Socket']]] +]; diff --git a/search/functions_5.html b/search/functions_5.html new file mode 100644 index 0000000..9d135fa --- /dev/null +++ b/search/functions_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_5.js b/search/functions_5.js new file mode 100644 index 0000000..5a85287 --- /dev/null +++ b/search/functions_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['openandlisten',['openAndListen',['../classjbus_1_1net_1_1Socket.html#aa6baaf24a436a72735d0561f907864eb',1,'jbus::net::Socket']]], + ['operator_20bool',['operator bool',['../classjbus_1_1net_1_1IPAddress.html#a71d4f132a65595be0d74dd0a9a498696',1,'jbus::net::IPAddress::operator bool()'],['../classjbus_1_1net_1_1Socket.html#a5417fa626737b38ed048595ff0cda452',1,'jbus::net::Socket::operator bool()']]], + ['operator_3d',['operator=',['../classjbus_1_1net_1_1Socket.html#a0f73de864690d7637be5ccdd2ab2cd02',1,'jbus::net::Socket::operator=(const Socket &other)=delete'],['../classjbus_1_1net_1_1Socket.html#af761a3e1046b017ee919595af021bede',1,'jbus::net::Socket::operator=(Socket &&other)']]] +]; diff --git a/search/functions_6.html b/search/functions_6.html new file mode 100644 index 0000000..5fca897 --- /dev/null +++ b/search/functions_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_6.js b/search/functions_6.js new file mode 100644 index 0000000..0191db7 --- /dev/null +++ b/search/functions_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['recv',['recv',['../classjbus_1_1net_1_1Socket.html#a145c616a39461c9ab57e021a51f746e4',1,'jbus::net::Socket::recv(void *buf, size_t len, size_t &transferred)'],['../classjbus_1_1net_1_1Socket.html#a5563c140f709a91585cafbb27151720a',1,'jbus::net::Socket::recv(void *buf, size_t len)']]] +]; diff --git a/search/functions_7.html b/search/functions_7.html new file mode 100644 index 0000000..02631a3 --- /dev/null +++ b/search/functions_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_7.js b/search/functions_7.js new file mode 100644 index 0000000..0bfd0a5 --- /dev/null +++ b/search/functions_7.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['send',['send',['../classjbus_1_1net_1_1Socket.html#ae3e4995fb077912fa51764053e931bae',1,'jbus::net::Socket::send(const void *buf, size_t len, size_t &transferred)'],['../classjbus_1_1net_1_1Socket.html#aeff335671da65f7397f86af7b712384f',1,'jbus::net::Socket::send(const void *buf, size_t len)']]], + ['setblocking',['setBlocking',['../classjbus_1_1net_1_1Socket.html#a9ee7eee273fdb17fed00972dff0136ee',1,'jbus::net::Socket']]], + ['socket',['Socket',['../classjbus_1_1net_1_1Socket.html#a87bf8bdb4a07533dc7eccfd5bb84857d',1,'jbus::net::Socket::Socket(bool blocking)'],['../classjbus_1_1net_1_1Socket.html#af2bbe556cdffa7e7e542318164c3496c',1,'jbus::net::Socket::Socket(const Socket &other)=delete'],['../classjbus_1_1net_1_1Socket.html#ae55b301ad32ba4a0fe54e7282c2e3e50',1,'jbus::net::Socket::Socket(Socket &&other)']]], + ['start',['start',['../classjbus_1_1Listener.html#a2fd5a552555c94be0b03bf2c66ea5e2b',1,'jbus::Listener']]], + ['stop',['stop',['../classjbus_1_1Endpoint.html#a1cae93f2e1e097b10b34810a0d04333f',1,'jbus::Endpoint::stop()'],['../classjbus_1_1Listener.html#a40c805d7681e609d72acad900579fe76',1,'jbus::Listener::stop()']]] +]; diff --git a/search/functions_8.html b/search/functions_8.html new file mode 100644 index 0000000..ff37095 --- /dev/null +++ b/search/functions_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_8.js b/search/functions_8.js new file mode 100644 index 0000000..3f7687b --- /dev/null +++ b/search/functions_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['tointeger',['toInteger',['../classjbus_1_1net_1_1IPAddress.html#a36ccdd7a0630a183c16943a21b3c908c',1,'jbus::net::IPAddress']]] +]; diff --git a/search/functions_9.html b/search/functions_9.html new file mode 100644 index 0000000..1d34583 --- /dev/null +++ b/search/functions_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_9.js b/search/functions_9.js new file mode 100644 index 0000000..3700751 --- /dev/null +++ b/search/functions_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['waitgcticks',['WaitGCTicks',['../namespacejbus.html#a918fbee6d761952c56c4914c900c2876',1,'jbus']]] +]; diff --git a/search/functions_a.html b/search/functions_a.html new file mode 100644 index 0000000..8eb5e56 --- /dev/null +++ b/search/functions_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_a.js b/search/functions_a.js new file mode 100644 index 0000000..4a38966 --- /dev/null +++ b/search/functions_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['_7eendpoint',['~Endpoint',['../classjbus_1_1Endpoint.html#ad39f268d3bee438e5176cc7f4cf59675',1,'jbus::Endpoint']]], + ['_7elistener',['~Listener',['../classjbus_1_1Listener.html#a979078fd2cb5e4faeaa668dfda8f8e9d',1,'jbus::Listener']]], + ['_7esocket',['~Socket',['../classjbus_1_1net_1_1Socket.html#a3d2700e84af823fb63c8119f033a799d',1,'jbus::net::Socket']]] +]; diff --git a/search/mag_sel.png b/search/mag_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..81f6040a2092402b4d98f9ffa8855d12a0d4ca17 GIT binary patch literal 563 zcmV-30?hr1P)zxx&tqG15pu7)IiiXFflOc2k;dXd>%13GZAy? zRz!q0=|E6a6vV)&ZBS~G9oe0kbqyw1*gvY`{Pop2oKq#FlzgXt@Xh-7fxh>}`Fxg> z$%N%{$!4=5nM{(;=c!aG1Ofr^Do{u%Ih{^&Fc@H2)+a-?TBXrw5DW&z%Nb6mQ!L9O zl}b@6mB?f=tX3;#vl)}ggh(Vpyh(IK z(Mb0D{l{U$FsRjP;!{($+bsaaVi8T#1c0V#qEIOCYa9@UVLV`f__E81L;?WEaRA;Y zUH;rZ;vb;mk7JX|$=i3O~&If0O@oZfLg8gfIjW=dcBsz;gI=!{-r4# z4%6v$&~;q^j7Fo67yJ(NJWuX+I~I!tj^nW3?}^9bq|<3^+vapS5sgM^x7!cs(+mMT z&y%j};&~po+YO)3hoUH4E*E;e9>?R6SS&`X)p`njycAVcg{rEb41T{~Hk(bl-7eSb zmFxA2uIqo#@R?lKm50ND`~6Nfn|-b1|L6O98vt3Tx@gKz#isxO002ovPDHLkV1kyW B_l^Jn literal 0 HcmV?d00001 diff --git a/search/namespaces_0.html b/search/namespaces_0.html new file mode 100644 index 0000000..f1b59ec --- /dev/null +++ b/search/namespaces_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/namespaces_0.js b/search/namespaces_0.js new file mode 100644 index 0000000..6b16d13 --- /dev/null +++ b/search/namespaces_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['jbus',['jbus',['../namespacejbus.html',1,'']]], + ['net',['net',['../namespacejbus_1_1net.html',1,'jbus']]] +]; diff --git a/search/nomatches.html b/search/nomatches.html new file mode 100644 index 0000000..b1ded27 --- /dev/null +++ b/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
+
No Matches
+
+ + diff --git a/search/pages_0.html b/search/pages_0.html new file mode 100644 index 0000000..0db7267 --- /dev/null +++ b/search/pages_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/pages_0.js b/search/pages_0.js new file mode 100644 index 0000000..dd52b5b --- /dev/null +++ b/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['jbus_20documentation',['JBus Documentation',['../index.html',1,'']]] +]; diff --git a/search/related_0.html b/search/related_0.html new file mode 100644 index 0000000..e40ed42 --- /dev/null +++ b/search/related_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/related_0.js b/search/related_0.js new file mode 100644 index 0000000..3850646 --- /dev/null +++ b/search/related_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['endpoint',['Endpoint',['../classjbus_1_1ThreadLocalEndpoint.html#a500d74fc41e3ab6b4889a579193566ed',1,'jbus::ThreadLocalEndpoint']]] +]; diff --git a/search/related_1.html b/search/related_1.html new file mode 100644 index 0000000..e25d1b3 --- /dev/null +++ b/search/related_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/related_1.js b/search/related_1.js new file mode 100644 index 0000000..f64bc7f --- /dev/null +++ b/search/related_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['threadlocalendpoint',['ThreadLocalEndpoint',['../classjbus_1_1Endpoint.html#ab5de6af29530791b0b2958002f1d3603',1,'jbus::Endpoint']]] +]; diff --git a/search/search.css b/search/search.css new file mode 100644 index 0000000..4d7612f --- /dev/null +++ b/search/search.css @@ -0,0 +1,271 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#MSearchBox { + white-space : nowrap; + position: absolute; + float: none; + display: inline; + margin-top: 8px; + right: 0px; + width: 170px; + z-index: 102; + background-color: white; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:111px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:0px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 1; + 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 Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + 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 #000; + background-color: #EEF1F7; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + 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; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + 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..dedce3b --- /dev/null +++ b/search/search.js @@ -0,0 +1,791 @@ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var 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) + { + 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 + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- 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'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == '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) + { + var 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); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var 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) + { + var focusItem; + while (1) + { + var 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) + { + var focusItem; + while (1) + { + var 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) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // 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 + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var 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 + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var 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) + { + var 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 + { + var newIndex = childIndex+1; + var 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 + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +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); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; ek7RCwB~R6VQOP#AvB$vH7i{6H{96zot$7cZT<7246EF5Np6N}+$IbiG6W zg#87A+NFaX+=_^xM1#gCtshC=E{%9^uQX_%?YwXvo{#q&MnpJ8uh(O?ZRc&~_1%^SsPxG@rfElJg-?U zm!Cz-IOn(qJP3kDp-^~qt+FGbl=5jNli^Wj_xIBG{Rc0en{!oFvyoNC7{V~T8}b>| z=jL2WIReZzX(YN(_9fV;BBD$VXQIxNasAL8ATvEu822WQ%mvv4FO#qs` BFGc_W literal 0 HcmV?d00001 diff --git a/search/search_r.png b/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..97ee8b439687084201b79c6f776a41f495c6392a GIT binary patch literal 612 zcmV-q0-ODbP)PbXFRCwB?)W514K@j&X?z2*SxFI6-@HT2E2K=9X9%Pb zEK*!TBw&g(DMC;|A)uGlRkOS9vd-?zNs%bR4d$w+ox_iFnE8fvIvv7^5<(>Te12Li z7C)9srCzmK{ZcNM{YIl9j{DePFgOWiS%xG@5CnnnJa4nvY<^glbz7^|-ZY!dUkAwd z{gaTC@_>b5h~;ug#R0wRL0>o5!hxm*s0VW?8dr}O#zXTRTnrQm_Z7z1Mrnx>&p zD4qifUjzLvbVVWi?l?rUzwt^sdb~d!f_LEhsRVIXZtQ=qSxuxqm zEX#tf>$?M_Y1-LSDT)HqG?`%-%ZpY!#{N!rcNIiL;G7F0`l?)mNGTD9;f9F5Up3Kg zw}a<-JylhG&;=!>B+fZaCX+?C+kHYrP%c?X2!Zu_olK|GcS4A70HEy;vn)I0>0kLH z`jc(WIaaHc7!HS@f*^R^Znx8W=_jIl2oWJoQ*h1^$FX!>*PqR1J8k|fw}w_y}TpE>7m8DqDO<3z`OzXt$ccSejbEZCg@0000 + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/typedefs_0.js b/search/typedefs_0.js new file mode 100644 index 0000000..ce6830e --- /dev/null +++ b/search/typedefs_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['fgbacallback',['FGBACallback',['../namespacejbus.html#ae1577e03ea8c6e27361cb389c992280d',1,'jbus']]] +]; diff --git a/search/typedefs_1.html b/search/typedefs_1.html new file mode 100644 index 0000000..6edac96 --- /dev/null +++ b/search/typedefs_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/typedefs_1.js b/search/typedefs_1.js new file mode 100644 index 0000000..0f27bcb --- /dev/null +++ b/search/typedefs_1.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['s16',['s16',['../namespacejbus.html#aa767fe4f71e145e2c0b12eccbeb83071',1,'jbus']]], + ['s32',['s32',['../namespacejbus.html#a33e5022738a0799c066372ce74d04c37',1,'jbus']]], + ['s64',['s64',['../namespacejbus.html#a69133321c9f11f1fa0e49c072244d377',1,'jbus']]], + ['s8',['s8',['../namespacejbus.html#a416b65eae1b2ff9ab63c4c71ff857ea4',1,'jbus']]] +]; diff --git a/search/typedefs_2.html b/search/typedefs_2.html new file mode 100644 index 0000000..cc5cc40 --- /dev/null +++ b/search/typedefs_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/typedefs_2.js b/search/typedefs_2.js new file mode 100644 index 0000000..45c214e --- /dev/null +++ b/search/typedefs_2.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['u16',['u16',['../namespacejbus.html#aff2760609de15f92daafbdff7be79b33',1,'jbus']]], + ['u32',['u32',['../namespacejbus.html#ae4a7d015f3b8913ec0b563caa0a53221',1,'jbus']]], + ['u64',['u64',['../namespacejbus.html#a36fb1f7488218c972a50b1f9dd547b81',1,'jbus']]], + ['u8',['u8',['../namespacejbus.html#a19d112b8b9f912fca094b41ce26c4fef',1,'jbus']]] +]; diff --git a/splitbar.png b/splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{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/structstd_1_1experimental_1_1constexpr__optional__base-members.html b/structstd_1_1experimental_1_1constexpr__optional__base-members.html new file mode 100644 index 0000000..1e57409 --- /dev/null +++ b/structstd_1_1experimental_1_1constexpr__optional__base-members.html @@ -0,0 +1,134 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::experimental::constexpr_optional_base< T > Member List
+
+
+ +

This is the complete list of members for std::experimental::constexpr_optional_base< T >, including all inherited members.

+ + + + + + + + + +
constexpr_optional_base() noexcept (defined in std::experimental::constexpr_optional_base< T >)std::experimental::constexpr_optional_base< T >inline
constexpr_optional_base(const T &v) (defined in std::experimental::constexpr_optional_base< T >)std::experimental::constexpr_optional_base< T >inlineexplicit
constexpr_optional_base(T &&v) (defined in std::experimental::constexpr_optional_base< T >)std::experimental::constexpr_optional_base< T >inlineexplicit
constexpr_optional_base(in_place_t, Args &&...args) (defined in std::experimental::constexpr_optional_base< T >)std::experimental::constexpr_optional_base< T >inlineexplicit
constexpr_optional_base(in_place_t, std::initializer_list< U > il, Args &&...args) (defined in std::experimental::constexpr_optional_base< T >)std::experimental::constexpr_optional_base< T >inlineexplicit
init_ (defined in std::experimental::constexpr_optional_base< T >)std::experimental::constexpr_optional_base< T >
storage_ (defined in std::experimental::constexpr_optional_base< T >)std::experimental::constexpr_optional_base< T >
~constexpr_optional_base()=default (defined in std::experimental::constexpr_optional_base< T >)std::experimental::constexpr_optional_base< T >
+
+ + + + diff --git a/structstd_1_1experimental_1_1constexpr__optional__base.html b/structstd_1_1experimental_1_1constexpr__optional__base.html new file mode 100644 index 0000000..c5e4ae3 --- /dev/null +++ b/structstd_1_1experimental_1_1constexpr__optional__base.html @@ -0,0 +1,158 @@ + + + + + + +JBus: std::experimental::constexpr_optional_base< T > Struct Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
std::experimental::constexpr_optional_base< T > Struct Template Reference
+
+
+ + + + + + + + + + + + +

+Public Member Functions

+constexpr constexpr_optional_base (const T &v)
 
+constexpr constexpr_optional_base (T &&v)
 
+template<class... Args>
constexpr constexpr_optional_base (in_place_t, Args &&...args)
 
+template<class U , class... Args, TR2_OPTIONAL_REQUIRES(is_constructible< T, std::initializer_list< U >>) >
OPTIONAL_CONSTEXPR_INIT_LIST constexpr_optional_base (in_place_t, std::initializer_list< U > il, Args &&...args)
 
+ + + + + +

+Public Attributes

+bool init_
 
+constexpr_storage_t< T > storage_
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/structstd_1_1experimental_1_1constexpr__optional__base.js b/structstd_1_1experimental_1_1constexpr__optional__base.js new file mode 100644 index 0000000..ff61db0 --- /dev/null +++ b/structstd_1_1experimental_1_1constexpr__optional__base.js @@ -0,0 +1,11 @@ +var structstd_1_1experimental_1_1constexpr__optional__base = +[ + [ "constexpr_optional_base", "structstd_1_1experimental_1_1constexpr__optional__base.html#a2de68e8d50f3b54344372c96c2123327", null ], + [ "constexpr_optional_base", "structstd_1_1experimental_1_1constexpr__optional__base.html#a215e82b0c75a04e871f55ab74def5653", null ], + [ "constexpr_optional_base", "structstd_1_1experimental_1_1constexpr__optional__base.html#a7a1c2735a3d7c86bdd4e179f9e291444", null ], + [ "constexpr_optional_base", "structstd_1_1experimental_1_1constexpr__optional__base.html#a48b8a0e669cc39fe3347f38a127278f2", null ], + [ "constexpr_optional_base", "structstd_1_1experimental_1_1constexpr__optional__base.html#a48e50b6260ebdf2c97dd75c609dbeb38", null ], + [ "~constexpr_optional_base", "structstd_1_1experimental_1_1constexpr__optional__base.html#aa45afb4ed80eab963e850ca337956a95", null ], + [ "init_", "structstd_1_1experimental_1_1constexpr__optional__base.html#aef0ac13a059b733b785544ade26f3354", null ], + [ "storage_", "structstd_1_1experimental_1_1constexpr__optional__base.html#a21e4f97ec2334b123f8e7c7a9d50c9b1", null ] +]; \ No newline at end of file diff --git a/structstd_1_1experimental_1_1detail___1_1has__overloaded__addressof-members.html b/structstd_1_1experimental_1_1detail___1_1has__overloaded__addressof-members.html new file mode 100644 index 0000000..8674bc5 --- /dev/null +++ b/structstd_1_1experimental_1_1detail___1_1has__overloaded__addressof-members.html @@ -0,0 +1,129 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::experimental::detail_::has_overloaded_addressof< T > Member List
+
+ +
+ + + + diff --git a/structstd_1_1experimental_1_1detail___1_1has__overloaded__addressof.html b/structstd_1_1experimental_1_1detail___1_1has__overloaded__addressof.html new file mode 100644 index 0000000..614a6bf --- /dev/null +++ b/structstd_1_1experimental_1_1detail___1_1has__overloaded__addressof.html @@ -0,0 +1,149 @@ + + + + + + +JBus: std::experimental::detail_::has_overloaded_addressof< T > Struct Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
std::experimental::detail_::has_overloaded_addressof< T > Struct Template Reference
+
+
+ + + + + + + + +

+Static Public Member Functions

+template<class X >
static constexpr bool has_overload (...)
 
+template<class X , size_t S = sizeof(std::declval<X&>().operator&())>
static constexpr bool has_overload (bool)
 
+ + + +

+Static Public Attributes

+static constexpr bool value = has_overload<T>(true)
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/structstd_1_1experimental_1_1in__place__t.html b/structstd_1_1experimental_1_1in__place__t.html new file mode 100644 index 0000000..6a9f2e2 --- /dev/null +++ b/structstd_1_1experimental_1_1in__place__t.html @@ -0,0 +1,127 @@ + + + + + + +JBus: std::experimental::in_place_t Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::experimental::in_place_t Struct Reference
+
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/structstd_1_1experimental_1_1is__assignable-members.html b/structstd_1_1experimental_1_1is__assignable-members.html new file mode 100644 index 0000000..8f58052 --- /dev/null +++ b/structstd_1_1experimental_1_1is__assignable-members.html @@ -0,0 +1,129 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::experimental::is_assignable< T, U > Member List
+
+
+ +

This is the complete list of members for std::experimental::is_assignable< T, U >, including all inherited members.

+ + + + +
has_assign(...) (defined in std::experimental::is_assignable< T, U >)std::experimental::is_assignable< T, U >inlinestatic
has_assign(bool) (defined in std::experimental::is_assignable< T, U >)std::experimental::is_assignable< T, U >inlinestatic
value (defined in std::experimental::is_assignable< T, U >)std::experimental::is_assignable< T, U >static
+
+ + + + diff --git a/structstd_1_1experimental_1_1is__assignable.html b/structstd_1_1experimental_1_1is__assignable.html new file mode 100644 index 0000000..25d2cb0 --- /dev/null +++ b/structstd_1_1experimental_1_1is__assignable.html @@ -0,0 +1,149 @@ + + + + + + +JBus: std::experimental::is_assignable< T, U > Struct Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
std::experimental::is_assignable< T, U > Struct Template Reference
+
+
+ + + + + + + + +

+Static Public Member Functions

+template<class X , class Y >
static constexpr bool has_assign (...)
 
+template<class X , class Y , size_t S = sizeof((std::declval<X>() = std::declval<Y>(), true))>
static constexpr bool has_assign (bool)
 
+ + + +

+Static Public Attributes

+static constexpr bool value = has_assign<T, U>(true)
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/structstd_1_1experimental_1_1is__nothrow__move__assignable-members.html b/structstd_1_1experimental_1_1is__nothrow__move__assignable-members.html new file mode 100644 index 0000000..0d8b989 --- /dev/null +++ b/structstd_1_1experimental_1_1is__nothrow__move__assignable-members.html @@ -0,0 +1,127 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::experimental::is_nothrow_move_assignable< T > Member List
+
+
+ +

This is the complete list of members for std::experimental::is_nothrow_move_assignable< T >, including all inherited members.

+ + +
value (defined in std::experimental::is_nothrow_move_assignable< T >)std::experimental::is_nothrow_move_assignable< T >static
+
+ + + + diff --git a/structstd_1_1experimental_1_1is__nothrow__move__assignable.html b/structstd_1_1experimental_1_1is__nothrow__move__assignable.html new file mode 100644 index 0000000..cbca02a --- /dev/null +++ b/structstd_1_1experimental_1_1is__nothrow__move__assignable.html @@ -0,0 +1,145 @@ + + + + + + +JBus: std::experimental::is_nothrow_move_assignable< T > Struct Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
std::experimental::is_nothrow_move_assignable< T > Struct Template Reference
+
+
+ + + + + + +

+Classes

struct  has_nothrow_move_assign
 
struct  has_nothrow_move_assign< X, true >
 
+ + + +

+Static Public Attributes

+static constexpr bool value = has_nothrow_move_assign<T, is_assignable<T&, T&&>::value>::value
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/structstd_1_1experimental_1_1is__nothrow__move__assignable.js b/structstd_1_1experimental_1_1is__nothrow__move__assignable.js new file mode 100644 index 0000000..811993d --- /dev/null +++ b/structstd_1_1experimental_1_1is__nothrow__move__assignable.js @@ -0,0 +1,5 @@ +var structstd_1_1experimental_1_1is__nothrow__move__assignable = +[ + [ "has_nothrow_move_assign", "structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign.html", null ], + [ "has_nothrow_move_assign< X, true >", "structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign_3_01X_00_01true_01_4.html", null ] +]; \ No newline at end of file diff --git a/structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign-members.html b/structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign-members.html new file mode 100644 index 0000000..4b47e1b --- /dev/null +++ b/structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign-members.html @@ -0,0 +1,127 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::experimental::is_nothrow_move_assignable< T >::has_nothrow_move_assign< X, has_any_move_assign > Member List
+
+ +
+ + + + diff --git a/structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign.html b/structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign.html new file mode 100644 index 0000000..fe69044 --- /dev/null +++ b/structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign.html @@ -0,0 +1,137 @@ + + + + + + +JBus: std::experimental::is_nothrow_move_assignable< T >::has_nothrow_move_assign< X, has_any_move_assign > Struct Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
std::experimental::is_nothrow_move_assignable< T >::has_nothrow_move_assign< X, has_any_move_assign > Struct Template Reference
+
+
+ + + + +

+Static Public Attributes

+static constexpr bool value = false
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign_3_01X_00_01true_01_4-members.html b/structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign_3_01X_00_01true_01_4-members.html new file mode 100644 index 0000000..19fbe22 --- /dev/null +++ b/structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign_3_01X_00_01true_01_4-members.html @@ -0,0 +1,127 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::experimental::is_nothrow_move_assignable< T >::has_nothrow_move_assign< X, true > Member List
+
+ +
+ + + + diff --git a/structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign_3_01X_00_01true_01_4.html b/structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign_3_01X_00_01true_01_4.html new file mode 100644 index 0000000..364a622 --- /dev/null +++ b/structstd_1_1experimental_1_1is__nothrow__move__assignable_1_1has__nothrow__move__assign_3_01X_00_01true_01_4.html @@ -0,0 +1,137 @@ + + + + + + +JBus: std::experimental::is_nothrow_move_assignable< T >::has_nothrow_move_assign< X, true > Struct Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
std::experimental::is_nothrow_move_assignable< T >::has_nothrow_move_assign< X, true > Struct Template Reference
+
+
+ + + + +

+Static Public Attributes

+static constexpr bool value = noexcept( std::declval<X&>() = std::declval<X&&>() )
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/structstd_1_1experimental_1_1is__nothrow__move__constructible-members.html b/structstd_1_1experimental_1_1is__nothrow__move__constructible-members.html new file mode 100644 index 0000000..48067ae --- /dev/null +++ b/structstd_1_1experimental_1_1is__nothrow__move__constructible-members.html @@ -0,0 +1,127 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::experimental::is_nothrow_move_constructible< T > Member List
+
+
+ +

This is the complete list of members for std::experimental::is_nothrow_move_constructible< T >, including all inherited members.

+ + +
value (defined in std::experimental::is_nothrow_move_constructible< T >)std::experimental::is_nothrow_move_constructible< T >static
+
+ + + + diff --git a/structstd_1_1experimental_1_1is__nothrow__move__constructible.html b/structstd_1_1experimental_1_1is__nothrow__move__constructible.html new file mode 100644 index 0000000..5b78dae --- /dev/null +++ b/structstd_1_1experimental_1_1is__nothrow__move__constructible.html @@ -0,0 +1,137 @@ + + + + + + +JBus: std::experimental::is_nothrow_move_constructible< T > Struct Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
std::experimental::is_nothrow_move_constructible< T > Struct Template Reference
+
+
+ + + + +

+Static Public Attributes

+static constexpr bool value = std::is_nothrow_constructible<T, T&&>::value
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/structstd_1_1experimental_1_1nullopt__t-members.html b/structstd_1_1experimental_1_1nullopt__t-members.html new file mode 100644 index 0000000..214b04e --- /dev/null +++ b/structstd_1_1experimental_1_1nullopt__t-members.html @@ -0,0 +1,127 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::experimental::nullopt_t Member List
+
+
+ +

This is the complete list of members for std::experimental::nullopt_t, including all inherited members.

+ + +
nullopt_t(init) (defined in std::experimental::nullopt_t)std::experimental::nullopt_tinlineexplicit
+
+ + + + diff --git a/structstd_1_1experimental_1_1nullopt__t.html b/structstd_1_1experimental_1_1nullopt__t.html new file mode 100644 index 0000000..7f5170d --- /dev/null +++ b/structstd_1_1experimental_1_1nullopt__t.html @@ -0,0 +1,143 @@ + + + + + + +JBus: std::experimental::nullopt_t Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
std::experimental::nullopt_t Struct Reference
+
+
+ + + + +

+Classes

struct  init
 
+ + + +

+Public Member Functions

+constexpr nullopt_t (init)
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/structstd_1_1experimental_1_1nullopt__t.js b/structstd_1_1experimental_1_1nullopt__t.js new file mode 100644 index 0000000..91c5434 --- /dev/null +++ b/structstd_1_1experimental_1_1nullopt__t.js @@ -0,0 +1,5 @@ +var structstd_1_1experimental_1_1nullopt__t = +[ + [ "init", "structstd_1_1experimental_1_1nullopt__t_1_1init.html", null ], + [ "nullopt_t", "structstd_1_1experimental_1_1nullopt__t.html#a70943f47c66aea7fa3c15facd6617dc1", null ] +]; \ No newline at end of file diff --git a/structstd_1_1experimental_1_1nullopt__t_1_1init.html b/structstd_1_1experimental_1_1nullopt__t_1_1init.html new file mode 100644 index 0000000..a15eac7 --- /dev/null +++ b/structstd_1_1experimental_1_1nullopt__t_1_1init.html @@ -0,0 +1,127 @@ + + + + + + +JBus: std::experimental::nullopt_t::init Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::experimental::nullopt_t::init Struct Reference
+
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/structstd_1_1experimental_1_1optional__base-members.html b/structstd_1_1experimental_1_1optional__base-members.html new file mode 100644 index 0000000..9b47848 --- /dev/null +++ b/structstd_1_1experimental_1_1optional__base-members.html @@ -0,0 +1,134 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::experimental::optional_base< T > Member List
+
+
+ +

This is the complete list of members for std::experimental::optional_base< T >, including all inherited members.

+ + + + + + + + + +
init_ (defined in std::experimental::optional_base< T >)std::experimental::optional_base< T >
optional_base() noexcept (defined in std::experimental::optional_base< T >)std::experimental::optional_base< T >inline
optional_base(const T &v) (defined in std::experimental::optional_base< T >)std::experimental::optional_base< T >inlineexplicit
optional_base(T &&v) (defined in std::experimental::optional_base< T >)std::experimental::optional_base< T >inlineexplicit
optional_base(in_place_t, Args &&...args) (defined in std::experimental::optional_base< T >)std::experimental::optional_base< T >inlineexplicit
optional_base(in_place_t, std::initializer_list< U > il, Args &&...args) (defined in std::experimental::optional_base< T >)std::experimental::optional_base< T >inlineexplicit
storage_ (defined in std::experimental::optional_base< T >)std::experimental::optional_base< T >
~optional_base() (defined in std::experimental::optional_base< T >)std::experimental::optional_base< T >inline
+
+ + + + diff --git a/structstd_1_1experimental_1_1optional__base.html b/structstd_1_1experimental_1_1optional__base.html new file mode 100644 index 0000000..ad43121 --- /dev/null +++ b/structstd_1_1experimental_1_1optional__base.html @@ -0,0 +1,158 @@ + + + + + + +JBus: std::experimental::optional_base< T > Struct Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
std::experimental::optional_base< T > Struct Template Reference
+
+
+ + + + + + + + + + + + +

+Public Member Functions

+constexpr optional_base (const T &v)
 
+constexpr optional_base (T &&v)
 
+template<class... Args>
 optional_base (in_place_t, Args &&...args)
 
+template<class U , class... Args, TR2_OPTIONAL_REQUIRES(is_constructible< T, std::initializer_list< U >>) >
 optional_base (in_place_t, std::initializer_list< U > il, Args &&...args)
 
+ + + + + +

+Public Attributes

+bool init_
 
+storage_t< T > storage_
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/structstd_1_1experimental_1_1optional__base.js b/structstd_1_1experimental_1_1optional__base.js new file mode 100644 index 0000000..9b28c79 --- /dev/null +++ b/structstd_1_1experimental_1_1optional__base.js @@ -0,0 +1,11 @@ +var structstd_1_1experimental_1_1optional__base = +[ + [ "optional_base", "structstd_1_1experimental_1_1optional__base.html#a31134784c4c482947d66c600fe0dcad4", null ], + [ "optional_base", "structstd_1_1experimental_1_1optional__base.html#af47cc844bf9d32ad4361be9934c20939", null ], + [ "optional_base", "structstd_1_1experimental_1_1optional__base.html#ad4839801777f8cfeb048f16b02df4c44", null ], + [ "optional_base", "structstd_1_1experimental_1_1optional__base.html#aa18fce92c1fda4e93a4bd2df63d510bd", null ], + [ "optional_base", "structstd_1_1experimental_1_1optional__base.html#ad0cd8c18288d26d776c113c3831a3868", null ], + [ "~optional_base", "structstd_1_1experimental_1_1optional__base.html#ad89678b8ebde087b1f3f61466a7436b9", null ], + [ "init_", "structstd_1_1experimental_1_1optional__base.html#aa0df221e8ebf3abc45c0e78d0b963c01", null ], + [ "storage_", "structstd_1_1experimental_1_1optional__base.html#aa7f2be708eddd8066eee64ef852e4314", null ] +]; \ No newline at end of file diff --git a/structstd_1_1experimental_1_1trivial__init__t.html b/structstd_1_1experimental_1_1trivial__init__t.html new file mode 100644 index 0000000..2240162 --- /dev/null +++ b/structstd_1_1experimental_1_1trivial__init__t.html @@ -0,0 +1,127 @@ + + + + + + +JBus: std::experimental::trivial_init_t Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::experimental::trivial_init_t Struct Reference
+
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_4_01_4-members.html b/structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_4_01_4-members.html new file mode 100644 index 0000000..f0b23e9 --- /dev/null +++ b/structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_4_01_4-members.html @@ -0,0 +1,129 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::hash< std::experimental::optional< T > > Member List
+
+
+ +

This is the complete list of members for std::hash< std::experimental::optional< T > >, including all inherited members.

+ + + + +
argument_type typedef (defined in std::hash< std::experimental::optional< T > >)std::hash< std::experimental::optional< T > >
operator()(argument_type const &arg) const (defined in std::hash< std::experimental::optional< T > >)std::hash< std::experimental::optional< T > >inline
result_type typedef (defined in std::hash< std::experimental::optional< T > >)std::hash< std::experimental::optional< T > >
+
+ + + + diff --git a/structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_4_01_4.html b/structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_4_01_4.html new file mode 100644 index 0000000..2992ca0 --- /dev/null +++ b/structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_4_01_4.html @@ -0,0 +1,147 @@ + + + + + + +JBus: std::hash< std::experimental::optional< T > > Struct Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
std::hash< std::experimental::optional< T > > Struct Template Reference
+
+
+ + + + + + +

+Public Types

+typedef hash< T >::result_type result_type
 
+typedef std::experimental::optional< T > argument_type
 
+ + + +

+Public Member Functions

+constexpr result_type operator() (argument_type const &arg) const
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_4_01_4.js b/structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_4_01_4.js new file mode 100644 index 0000000..ef08d23 --- /dev/null +++ b/structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_4_01_4.js @@ -0,0 +1,6 @@ +var structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_4_01_4 = +[ + [ "argument_type", "structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_4_01_4.html#a990f41de75472068a98961bde97c9f6f", null ], + [ "result_type", "structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_4_01_4.html#a1ffc134496ff2e1dedb167899d460b6b", null ], + [ "operator()", "structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_4_01_4.html#ad20c9caf3fccad7905ccde5592c8d2bb", null ] +]; \ No newline at end of file diff --git a/structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_6_01_4_01_4-members.html b/structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_6_01_4_01_4-members.html new file mode 100644 index 0000000..2f06c4a --- /dev/null +++ b/structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_6_01_4_01_4-members.html @@ -0,0 +1,129 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::hash< std::experimental::optional< T & > > Member List
+
+ +
+ + + + diff --git a/structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_6_01_4_01_4.html b/structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_6_01_4_01_4.html new file mode 100644 index 0000000..6ff3c93 --- /dev/null +++ b/structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_6_01_4_01_4.html @@ -0,0 +1,147 @@ + + + + + + +JBus: std::hash< std::experimental::optional< T & > > Struct Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
std::hash< std::experimental::optional< T & > > Struct Template Reference
+
+
+ + + + + + +

+Public Types

+typedef hash< T >::result_type result_type
 
+typedef std::experimental::optional< T & > argument_type
 
+ + + +

+Public Member Functions

+constexpr result_type operator() (argument_type const &arg) const
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_6_01_4_01_4.js b/structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_6_01_4_01_4.js new file mode 100644 index 0000000..8536827 --- /dev/null +++ b/structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_6_01_4_01_4.js @@ -0,0 +1,6 @@ +var structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_6_01_4_01_4 = +[ + [ "argument_type", "structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_6_01_4_01_4.html#ab5e4cdb491b0c3833fa266cdf95a26f8", null ], + [ "result_type", "structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_6_01_4_01_4.html#acfb996ccc0604598b856ff0b73abf1a0", null ], + [ "operator()", "structstd_1_1hash_3_01std_1_1experimental_1_1optional_3_01T_01_6_01_4_01_4.html#a0802e051864ebe25350f48034ba56323", null ] +]; \ No newline at end of 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_b.png b/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=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/tabs.css b/tabs.css new file mode 100644 index 0000000..9cf578f --- /dev/null +++ b/tabs.css @@ -0,0 +1,60 @@ +.tabs, .tabs2, .tabs3 { + background-image: url('tab_b.png'); + width: 100%; + z-index: 101; + font-size: 13px; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; +} + +.tablist li { + float: left; + display: table-cell; + background-image: url('tab_b.png'); + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:url('tab_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #283A5D; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: url('tab_h.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + text-decoration: none; +} + +.tablist li.current a { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} diff --git a/unionstd_1_1experimental_1_1constexpr__storage__t-members.html b/unionstd_1_1experimental_1_1constexpr__storage__t-members.html new file mode 100644 index 0000000..1308ffd --- /dev/null +++ b/unionstd_1_1experimental_1_1constexpr__storage__t-members.html @@ -0,0 +1,131 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::experimental::constexpr_storage_t< T > Member List
+
+ +
+ + + + diff --git a/unionstd_1_1experimental_1_1constexpr__storage__t.html b/unionstd_1_1experimental_1_1constexpr__storage__t.html new file mode 100644 index 0000000..b07965f --- /dev/null +++ b/unionstd_1_1experimental_1_1constexpr__storage__t.html @@ -0,0 +1,151 @@ + + + + + + +JBus: std::experimental::constexpr_storage_t< T > Union Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
std::experimental::constexpr_storage_t< T > Union Template Reference
+
+
+ + + + + + + +

+Public Member Functions

+constexpr constexpr_storage_t (trivial_init_t) noexcept
 
+template<class... Args>
constexpr constexpr_storage_t (Args &&...args)
 
+ + + + + +

+Public Attributes

+unsigned char dummy_
 
+T value_
 
+
The documentation for this union was generated from the following file: +
+
+ + + + diff --git a/unionstd_1_1experimental_1_1constexpr__storage__t.js b/unionstd_1_1experimental_1_1constexpr__storage__t.js new file mode 100644 index 0000000..f178eec --- /dev/null +++ b/unionstd_1_1experimental_1_1constexpr__storage__t.js @@ -0,0 +1,8 @@ +var unionstd_1_1experimental_1_1constexpr__storage__t = +[ + [ "constexpr_storage_t", "unionstd_1_1experimental_1_1constexpr__storage__t.html#a453f1fc4d9790ed1a15175a9c13fe517", null ], + [ "constexpr_storage_t", "unionstd_1_1experimental_1_1constexpr__storage__t.html#ac87b200d24fe9b58d9c24c4a63a93440", null ], + [ "~constexpr_storage_t", "unionstd_1_1experimental_1_1constexpr__storage__t.html#a91464aa4649be3df9952707782a58a6d", null ], + [ "dummy_", "unionstd_1_1experimental_1_1constexpr__storage__t.html#abab3e99e25b519d05a2b32c3748cf759", null ], + [ "value_", "unionstd_1_1experimental_1_1constexpr__storage__t.html#ab0f056b5b1e7bfde0dc04629fd0b9ade", null ] +]; \ No newline at end of file diff --git a/unionstd_1_1experimental_1_1storage__t-members.html b/unionstd_1_1experimental_1_1storage__t-members.html new file mode 100644 index 0000000..1ab6eec --- /dev/null +++ b/unionstd_1_1experimental_1_1storage__t-members.html @@ -0,0 +1,131 @@ + + + + + + +JBus: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::experimental::storage_t< T > Member List
+
+
+ +

This is the complete list of members for std::experimental::storage_t< T >, including all inherited members.

+ + + + + + +
dummy_ (defined in std::experimental::storage_t< T >)std::experimental::storage_t< T >
storage_t(trivial_init_t) noexcept (defined in std::experimental::storage_t< T >)std::experimental::storage_t< T >inline
storage_t(Args &&...args) (defined in std::experimental::storage_t< T >)std::experimental::storage_t< T >inline
value_ (defined in std::experimental::storage_t< T >)std::experimental::storage_t< T >
~storage_t() (defined in std::experimental::storage_t< T >)std::experimental::storage_t< T >inline
+
+ + + + diff --git a/unionstd_1_1experimental_1_1storage__t.html b/unionstd_1_1experimental_1_1storage__t.html new file mode 100644 index 0000000..889c513 --- /dev/null +++ b/unionstd_1_1experimental_1_1storage__t.html @@ -0,0 +1,151 @@ + + + + + + +JBus: std::experimental::storage_t< T > Union Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
JBus +
+
JoyBuscommunicationserver
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
std::experimental::storage_t< T > Union Template Reference
+
+
+ + + + + + + +

+Public Member Functions

+constexpr storage_t (trivial_init_t) noexcept
 
+template<class... Args>
constexpr storage_t (Args &&...args)
 
+ + + + + +

+Public Attributes

+unsigned char dummy_
 
+T value_
 
+
The documentation for this union was generated from the following file: +
+
+ + + + diff --git a/unionstd_1_1experimental_1_1storage__t.js b/unionstd_1_1experimental_1_1storage__t.js new file mode 100644 index 0000000..757d7eb --- /dev/null +++ b/unionstd_1_1experimental_1_1storage__t.js @@ -0,0 +1,8 @@ +var unionstd_1_1experimental_1_1storage__t = +[ + [ "storage_t", "unionstd_1_1experimental_1_1storage__t.html#a66bf7a342f8770f3213d17b2a4b3b33c", null ], + [ "storage_t", "unionstd_1_1experimental_1_1storage__t.html#ac4bc3b5c25b6fcc9788c0325fccfaf3c", null ], + [ "~storage_t", "unionstd_1_1experimental_1_1storage__t.html#a9de04c8f12a996c2b9b55d430713b31e", null ], + [ "dummy_", "unionstd_1_1experimental_1_1storage__t.html#a66c46e8a91805a1495127fa280a3f58a", null ], + [ "value_", "unionstd_1_1experimental_1_1storage__t.html#afc411a630487df07bf6278ebbef1ebb7", null ] +]; \ No newline at end of file