couchbase 3.0.0-universal-darwin-19 → 3.0.1-universal-darwin-19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/ext/CMakeLists.txt +86 -169
- data/ext/build_version.hxx.in +3 -2
- data/ext/cmake/Backtrace.cmake +35 -0
- data/ext/cmake/BuildTracing.cmake +6 -0
- data/ext/cmake/Cache.cmake +29 -0
- data/ext/cmake/CompilerWarnings.cmake +78 -0
- data/ext/cmake/PreventInSourceBuilds.cmake +18 -0
- data/ext/cmake/Sanitizers.cmake +66 -0
- data/ext/cmake/StandardProjectSettings.cmake +40 -0
- data/ext/cmake/StaticAnalyzers.cmake +37 -0
- data/ext/cmake/Testing.cmake +52 -0
- data/ext/cmake/ThirdPartyDependencies.cmake +20 -0
- data/ext/cmake/VersionInfo.cmake +37 -0
- data/ext/couchbase/bucket.hxx +37 -12
- data/ext/couchbase/capabilities.hxx +117 -0
- data/ext/couchbase/cbcrypto/cbcrypto.cc +15 -15
- data/ext/couchbase/cluster.hxx +34 -2
- data/ext/couchbase/cluster_options.hxx +1 -0
- data/ext/couchbase/configuration.hxx +228 -52
- data/ext/couchbase/couchbase.cxx +914 -35
- data/ext/couchbase/diagnostics.hxx +251 -0
- data/ext/couchbase/document_id.hxx +3 -1
- data/ext/couchbase/errors.hxx +10 -1
- data/ext/couchbase/io/http_command.hxx +11 -7
- data/ext/couchbase/io/http_context.hxx +37 -0
- data/ext/couchbase/io/http_message.hxx +9 -0
- data/ext/couchbase/io/http_parser.hxx +2 -0
- data/ext/couchbase/io/http_session.hxx +100 -14
- data/ext/couchbase/io/http_session_manager.hxx +65 -5
- data/ext/couchbase/io/mcbp_command.hxx +16 -7
- data/ext/couchbase/io/mcbp_session.hxx +193 -51
- data/ext/couchbase/io/query_cache.hxx +61 -0
- data/ext/couchbase/io/retry_context.hxx +1 -2
- data/ext/couchbase/io/retry_orchestrator.hxx +16 -0
- data/ext/couchbase/io/retry_strategy.hxx +1 -1
- data/ext/couchbase/io/streams.hxx +61 -10
- data/ext/couchbase/operations.hxx +13 -0
- data/ext/couchbase/operations/analytics_dataset_create.hxx +1 -1
- data/ext/couchbase/operations/analytics_dataset_drop.hxx +1 -1
- data/ext/couchbase/operations/analytics_dataset_get_all.hxx +1 -1
- data/ext/couchbase/operations/analytics_dataverse_create.hxx +1 -1
- data/ext/couchbase/operations/analytics_dataverse_drop.hxx +1 -1
- data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +1 -1
- data/ext/couchbase/operations/analytics_index_create.hxx +1 -1
- data/ext/couchbase/operations/analytics_index_drop.hxx +1 -1
- data/ext/couchbase/operations/analytics_index_get_all.hxx +1 -1
- data/ext/couchbase/operations/analytics_link_connect.hxx +1 -1
- data/ext/couchbase/operations/analytics_link_disconnect.hxx +1 -1
- data/ext/couchbase/operations/bucket_create.hxx +11 -5
- data/ext/couchbase/operations/bucket_drop.hxx +1 -1
- data/ext/couchbase/operations/bucket_flush.hxx +1 -1
- data/ext/couchbase/operations/bucket_get.hxx +1 -1
- data/ext/couchbase/operations/bucket_get_all.hxx +1 -1
- data/ext/couchbase/operations/bucket_settings.hxx +43 -4
- data/ext/couchbase/operations/bucket_update.hxx +11 -5
- data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +1 -1
- data/ext/couchbase/operations/collection_create.hxx +3 -1
- data/ext/couchbase/operations/collection_drop.hxx +1 -1
- data/ext/couchbase/operations/collections_manifest_get.hxx +70 -0
- data/ext/couchbase/operations/document_analytics.hxx +6 -1
- data/ext/couchbase/operations/document_get_projected.hxx +1 -1
- data/ext/couchbase/operations/document_query.hxx +85 -8
- data/ext/couchbase/operations/document_search.hxx +14 -4
- data/ext/couchbase/operations/document_view.hxx +1 -1
- data/ext/couchbase/operations/group_drop.hxx +71 -0
- data/ext/couchbase/operations/group_get.hxx +75 -0
- data/ext/couchbase/operations/group_get_all.hxx +70 -0
- data/ext/couchbase/operations/group_upsert.hxx +118 -0
- data/ext/couchbase/operations/query_index_build_deferred.hxx +1 -1
- data/ext/couchbase/operations/query_index_create.hxx +1 -1
- data/ext/couchbase/operations/query_index_drop.hxx +1 -1
- data/ext/couchbase/operations/query_index_get_all.hxx +3 -2
- data/ext/couchbase/operations/rbac.hxx +276 -0
- data/ext/couchbase/operations/role_get_all.hxx +70 -0
- data/ext/couchbase/operations/scope_create.hxx +6 -2
- data/ext/couchbase/operations/scope_drop.hxx +1 -1
- data/ext/couchbase/operations/scope_get_all.hxx +1 -1
- data/ext/couchbase/operations/search_get_stats.hxx +59 -0
- data/ext/couchbase/operations/search_index_analyze_document.hxx +1 -1
- data/ext/couchbase/operations/search_index_control_ingest.hxx +1 -1
- data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +1 -1
- data/ext/couchbase/operations/search_index_control_query.hxx +1 -1
- data/ext/couchbase/operations/search_index_drop.hxx +1 -1
- data/ext/couchbase/operations/search_index_get.hxx +1 -1
- data/ext/couchbase/operations/search_index_get_all.hxx +1 -1
- data/ext/couchbase/operations/search_index_get_documents_count.hxx +24 -16
- data/ext/couchbase/operations/search_index_get_stats.hxx +81 -0
- data/ext/couchbase/operations/search_index_upsert.hxx +1 -1
- data/ext/couchbase/operations/user_drop.hxx +72 -0
- data/ext/couchbase/operations/user_get.hxx +76 -0
- data/ext/couchbase/operations/user_get_all.hxx +71 -0
- data/ext/couchbase/operations/user_upsert.hxx +125 -0
- data/ext/couchbase/operations/view_index_drop.hxx +1 -1
- data/ext/couchbase/operations/view_index_get.hxx +1 -1
- data/ext/couchbase/operations/view_index_get_all.hxx +1 -1
- data/ext/couchbase/operations/view_index_upsert.hxx +1 -1
- data/ext/couchbase/origin.hxx +4 -4
- data/ext/couchbase/platform/terminate_handler.cc +5 -4
- data/ext/couchbase/protocol/client_opcode.hxx +38 -38
- data/ext/couchbase/protocol/client_response.hxx +2 -2
- data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +6 -3
- data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +3 -1
- data/ext/couchbase/protocol/magic.hxx +6 -6
- data/ext/couchbase/protocol/server_opcode.hxx +2 -2
- data/ext/couchbase/protocol/status.hxx +57 -57
- data/ext/couchbase/service_type.hxx +1 -1
- data/ext/couchbase/utils/connection_string.hxx +12 -3
- data/ext/couchbase/version.hxx +1 -1
- data/ext/extconf.rb +21 -9
- data/ext/test/test_helper.hxx +141 -0
- data/ext/test/test_helper_native.hxx +59 -0
- data/ext/test/test_helper_ruby.hxx +72 -0
- data/ext/test/test_native_diagnostics.cxx +385 -0
- data/ext/test/test_native_trivial_crud.cxx +83 -0
- data/ext/test/test_ruby_trivial_crud.cxx +35 -0
- data/ext/test/test_ruby_trivial_query.cxx +34 -0
- data/ext/third_party/asio/asio/include/asio.hpp +35 -0
- data/ext/third_party/asio/asio/include/asio/any_io_executor.hpp +71 -0
- data/ext/third_party/asio/asio/include/asio/associated_allocator.hpp +1 -7
- data/ext/third_party/asio/asio/include/asio/associated_executor.hpp +36 -19
- data/ext/third_party/asio/asio/include/asio/async_result.hpp +1 -8
- data/ext/third_party/asio/asio/include/asio/awaitable.hpp +14 -4
- data/ext/third_party/asio/asio/include/asio/basic_datagram_socket.hpp +12 -7
- data/ext/third_party/asio/asio/include/asio/basic_deadline_timer.hpp +4 -4
- data/ext/third_party/asio/asio/include/asio/basic_raw_socket.hpp +11 -7
- data/ext/third_party/asio/asio/include/asio/basic_seq_packet_socket.hpp +9 -4
- data/ext/third_party/asio/asio/include/asio/basic_serial_port.hpp +6 -6
- data/ext/third_party/asio/asio/include/asio/basic_signal_set.hpp +4 -4
- data/ext/third_party/asio/asio/include/asio/basic_socket.hpp +5 -5
- data/ext/third_party/asio/asio/include/asio/basic_socket_acceptor.hpp +13 -7
- data/ext/third_party/asio/asio/include/asio/basic_stream_socket.hpp +7 -3
- data/ext/third_party/asio/asio/include/asio/basic_waitable_timer.hpp +52 -4
- data/ext/third_party/asio/asio/include/asio/bind_executor.hpp +10 -15
- data/ext/third_party/asio/asio/include/asio/buffer.hpp +6 -4
- data/ext/third_party/asio/asio/include/asio/co_spawn.hpp +380 -9
- data/ext/third_party/asio/asio/include/asio/defer.hpp +4 -1
- data/ext/third_party/asio/asio/include/asio/detached.hpp +50 -0
- data/ext/third_party/asio/asio/include/asio/detail/atomic_count.hpp +19 -0
- data/ext/third_party/asio/asio/include/asio/detail/bind_handler.hpp +144 -26
- data/ext/third_party/asio/asio/include/asio/detail/blocking_executor_op.hpp +107 -0
- data/ext/third_party/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +106 -0
- data/ext/third_party/asio/asio/include/asio/detail/bulk_executor_op.hpp +88 -0
- data/ext/third_party/asio/asio/include/asio/detail/completion_handler.hpp +10 -5
- data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +8 -0
- data/ext/third_party/asio/asio/include/asio/detail/config.hpp +360 -37
- data/ext/third_party/asio/asio/include/asio/detail/deadline_timer_service.hpp +17 -2
- data/ext/third_party/asio/asio/include/asio/detail/descriptor_ops.hpp +24 -6
- data/ext/third_party/asio/asio/include/asio/detail/descriptor_read_op.hpp +32 -14
- data/ext/third_party/asio/asio/include/asio/detail/descriptor_write_op.hpp +32 -14
- data/ext/third_party/asio/asio/include/asio/detail/executor_function.hpp +133 -34
- data/ext/third_party/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +42 -0
- data/ext/third_party/asio/asio/include/asio/detail/handler_invoke_helpers.hpp +23 -0
- data/ext/third_party/asio/asio/include/asio/detail/handler_tracking.hpp +26 -0
- data/ext/third_party/asio/asio/include/asio/detail/handler_work.hpp +370 -45
- data/ext/third_party/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +208 -74
- data/ext/third_party/asio/asio/include/asio/detail/impl/handler_tracking.ipp +39 -1
- data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_serial_port_service.ipp +12 -15
- data/ext/third_party/asio/asio/include/asio/detail/impl/scheduler.ipp +37 -0
- data/ext/third_party/asio/asio/include/asio/detail/impl/signal_set_service.ipp +2 -1
- data/ext/third_party/asio/asio/include/asio/detail/impl/socket_ops.ipp +661 -274
- data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +210 -4
- data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.hpp +8 -9
- data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.ipp +5 -4
- data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +15 -6
- data/ext/third_party/asio/asio/include/asio/detail/io_object_impl.hpp +32 -50
- data/ext/third_party/asio/asio/include/asio/detail/memory.hpp +3 -0
- data/ext/third_party/asio/asio/include/asio/detail/null_event.hpp +6 -0
- data/ext/third_party/asio/asio/include/asio/detail/pop_options.hpp +1 -1
- data/ext/third_party/asio/asio/include/asio/detail/posix_event.hpp +13 -0
- data/ext/third_party/asio/asio/include/asio/detail/push_options.hpp +1 -1
- data/ext/third_party/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +38 -13
- data/ext/third_party/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +12 -6
- data/ext/third_party/asio/asio/include/asio/detail/reactive_serial_port_service.hpp +2 -3
- data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +36 -24
- data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +17 -10
- data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +38 -16
- data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +36 -14
- data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +21 -11
- data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +43 -17
- data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +39 -17
- data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service.hpp +44 -21
- data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +41 -18
- data/ext/third_party/asio/asio/include/asio/detail/reactive_wait_op.hpp +12 -6
- data/ext/third_party/asio/asio/include/asio/detail/reactor_op.hpp +3 -1
- data/ext/third_party/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +10 -8
- data/ext/third_party/asio/asio/include/asio/detail/resolve_query_op.hpp +11 -9
- data/ext/third_party/asio/asio/include/asio/detail/scheduler.hpp +8 -0
- data/ext/third_party/asio/asio/include/asio/detail/signal_handler.hpp +7 -5
- data/ext/third_party/asio/asio/include/asio/detail/socket_ops.hpp +46 -0
- data/ext/third_party/asio/asio/include/asio/detail/source_location.hpp +45 -0
- data/ext/third_party/asio/asio/include/asio/detail/std_event.hpp +12 -0
- data/ext/third_party/asio/asio/include/asio/detail/strand_executor_service.hpp +25 -1
- data/ext/third_party/asio/asio/include/asio/detail/strand_service.hpp +4 -1
- data/ext/third_party/asio/asio/include/asio/detail/thread_info_base.hpp +58 -0
- data/ext/third_party/asio/asio/include/asio/detail/type_traits.hpp +59 -0
- data/ext/third_party/asio/asio/include/asio/detail/variadic_templates.hpp +144 -1
- data/ext/third_party/asio/asio/include/asio/detail/wait_handler.hpp +9 -6
- data/ext/third_party/asio/asio/include/asio/detail/win_event.hpp +13 -0
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +9 -5
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +9 -5
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_io_context.hpp +5 -1
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +10 -6
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +9 -5
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +18 -6
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +15 -11
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +10 -5
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +8 -4
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +8 -4
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +8 -4
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +8 -4
- data/ext/third_party/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +10 -5
- data/ext/third_party/asio/asio/include/asio/detail/winrt_resolve_op.hpp +8 -4
- data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +8 -4
- data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +8 -4
- data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +8 -4
- data/ext/third_party/asio/asio/include/asio/detail/work_dispatcher.hpp +81 -6
- data/ext/third_party/asio/asio/include/asio/detail/wrapped_handler.hpp +45 -9
- data/ext/third_party/asio/asio/include/asio/dispatch.hpp +4 -1
- data/ext/third_party/asio/asio/include/asio/execution.hpp +48 -0
- data/ext/third_party/asio/asio/include/asio/execution/allocator.hpp +249 -0
- data/ext/third_party/asio/asio/include/asio/execution/any_executor.hpp +2264 -0
- data/ext/third_party/asio/asio/include/asio/execution/bad_executor.hpp +47 -0
- data/ext/third_party/asio/asio/include/asio/execution/blocking.hpp +1351 -0
- data/ext/third_party/asio/asio/include/asio/execution/blocking_adaptation.hpp +1064 -0
- data/ext/third_party/asio/asio/include/asio/execution/bulk_execute.hpp +390 -0
- data/ext/third_party/asio/asio/include/asio/execution/bulk_guarantee.hpp +1018 -0
- data/ext/third_party/asio/asio/include/asio/execution/connect.hpp +486 -0
- data/ext/third_party/asio/asio/include/asio/execution/context.hpp +185 -0
- data/ext/third_party/asio/asio/include/asio/execution/context_as.hpp +201 -0
- data/ext/third_party/asio/asio/include/asio/execution/detail/as_invocable.hpp +152 -0
- data/ext/third_party/asio/asio/include/asio/execution/detail/as_operation.hpp +105 -0
- data/ext/third_party/asio/asio/include/asio/execution/detail/as_receiver.hpp +128 -0
- data/ext/third_party/asio/asio/include/asio/execution/detail/bulk_sender.hpp +261 -0
- data/ext/third_party/asio/asio/include/asio/execution/detail/submit_receiver.hpp +233 -0
- data/ext/third_party/asio/asio/include/asio/execution/detail/void_receiver.hpp +90 -0
- data/ext/third_party/asio/asio/include/asio/execution/execute.hpp +264 -0
- data/ext/third_party/asio/asio/include/asio/execution/executor.hpp +238 -0
- data/ext/third_party/asio/asio/include/asio/execution/impl/bad_executor.ipp +40 -0
- data/ext/third_party/asio/asio/include/asio/execution/impl/receiver_invocation_error.ipp +36 -0
- data/ext/third_party/asio/asio/include/asio/execution/invocable_archetype.hpp +71 -0
- data/ext/third_party/asio/asio/include/asio/execution/mapping.hpp +917 -0
- data/ext/third_party/asio/asio/include/asio/execution/occupancy.hpp +178 -0
- data/ext/third_party/asio/asio/include/asio/execution/operation_state.hpp +94 -0
- data/ext/third_party/asio/asio/include/asio/execution/outstanding_work.hpp +721 -0
- data/ext/third_party/asio/asio/include/asio/execution/prefer_only.hpp +327 -0
- data/ext/third_party/asio/asio/include/asio/execution/receiver.hpp +280 -0
- data/ext/third_party/asio/asio/include/asio/execution/receiver_invocation_error.hpp +48 -0
- data/ext/third_party/asio/asio/include/asio/execution/relationship.hpp +720 -0
- data/ext/third_party/asio/asio/include/asio/execution/schedule.hpp +290 -0
- data/ext/third_party/asio/asio/include/asio/execution/scheduler.hpp +86 -0
- data/ext/third_party/asio/asio/include/asio/execution/sender.hpp +311 -0
- data/ext/third_party/asio/asio/include/asio/execution/set_done.hpp +253 -0
- data/ext/third_party/asio/asio/include/asio/execution/set_error.hpp +253 -0
- data/ext/third_party/asio/asio/include/asio/execution/set_value.hpp +486 -0
- data/ext/third_party/asio/asio/include/asio/execution/start.hpp +250 -0
- data/ext/third_party/asio/asio/include/asio/execution/submit.hpp +450 -0
- data/ext/third_party/asio/asio/include/asio/executor.hpp +7 -1
- data/ext/third_party/asio/asio/include/asio/executor_work_guard.hpp +126 -9
- data/ext/third_party/asio/asio/include/asio/handler_alloc_hook.hpp +28 -5
- data/ext/third_party/asio/asio/include/asio/handler_invoke_hook.hpp +29 -3
- data/ext/third_party/asio/asio/include/asio/impl/awaitable.hpp +14 -0
- data/ext/third_party/asio/asio/include/asio/impl/buffered_read_stream.hpp +44 -8
- data/ext/third_party/asio/asio/include/asio/impl/buffered_write_stream.hpp +44 -8
- data/ext/third_party/asio/asio/include/asio/impl/co_spawn.hpp +145 -7
- data/ext/third_party/asio/asio/include/asio/impl/compose.hpp +124 -22
- data/ext/third_party/asio/asio/include/asio/impl/connect.hpp +52 -8
- data/ext/third_party/asio/asio/include/asio/impl/defer.hpp +147 -12
- data/ext/third_party/asio/asio/include/asio/impl/dispatch.hpp +142 -12
- data/ext/third_party/asio/asio/include/asio/impl/executor.hpp +15 -101
- data/ext/third_party/asio/asio/include/asio/impl/executor.ipp +5 -0
- data/ext/third_party/asio/asio/include/asio/impl/handler_alloc_hook.ipp +13 -4
- data/ext/third_party/asio/asio/include/asio/impl/io_context.hpp +144 -57
- data/ext/third_party/asio/asio/include/asio/impl/multiple_exceptions.ipp +49 -0
- data/ext/third_party/asio/asio/include/asio/impl/post.hpp +147 -12
- data/ext/third_party/asio/asio/include/asio/impl/read.hpp +85 -18
- data/ext/third_party/asio/asio/include/asio/impl/read_at.hpp +59 -14
- data/ext/third_party/asio/asio/include/asio/impl/read_until.hpp +241 -56
- data/ext/third_party/asio/asio/include/asio/impl/redirect_error.hpp +22 -4
- data/ext/third_party/asio/asio/include/asio/impl/spawn.hpp +58 -22
- data/ext/third_party/asio/asio/include/asio/impl/src.hpp +3 -0
- data/ext/third_party/asio/asio/include/asio/impl/system_context.ipp +16 -4
- data/ext/third_party/asio/asio/include/asio/impl/system_executor.hpp +113 -12
- data/ext/third_party/asio/asio/include/asio/impl/thread_pool.hpp +260 -37
- data/ext/third_party/asio/asio/include/asio/impl/thread_pool.ipp +61 -7
- data/ext/third_party/asio/asio/include/asio/impl/use_awaitable.hpp +5 -2
- data/ext/third_party/asio/asio/include/asio/impl/use_future.hpp +147 -6
- data/ext/third_party/asio/asio/include/asio/impl/write.hpp +75 -14
- data/ext/third_party/asio/asio/include/asio/impl/write_at.hpp +53 -11
- data/ext/third_party/asio/asio/include/asio/io_context.hpp +706 -48
- data/ext/third_party/asio/asio/include/asio/io_context_strand.hpp +3 -1
- data/ext/third_party/asio/asio/include/asio/ip/basic_resolver.hpp +4 -4
- data/ext/third_party/asio/asio/include/asio/is_applicable_property.hpp +61 -0
- data/ext/third_party/asio/asio/include/asio/multiple_exceptions.hpp +58 -0
- data/ext/third_party/asio/asio/include/asio/posix/basic_descriptor.hpp +4 -4
- data/ext/third_party/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +5 -5
- data/ext/third_party/asio/asio/include/asio/post.hpp +4 -1
- data/ext/third_party/asio/asio/include/asio/prefer.hpp +656 -0
- data/ext/third_party/asio/asio/include/asio/query.hpp +296 -0
- data/ext/third_party/asio/asio/include/asio/read_until.hpp +6 -6
- data/ext/third_party/asio/asio/include/asio/require.hpp +524 -0
- data/ext/third_party/asio/asio/include/asio/require_concept.hpp +310 -0
- data/ext/third_party/asio/asio/include/asio/spawn.hpp +12 -4
- data/ext/third_party/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +5 -0
- data/ext/third_party/asio/asio/include/asio/ssl/detail/engine.hpp +5 -0
- data/ext/third_party/asio/asio/include/asio/ssl/detail/handshake_op.hpp +5 -0
- data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/engine.ipp +16 -3
- data/ext/third_party/asio/asio/include/asio/ssl/detail/io.hpp +38 -4
- data/ext/third_party/asio/asio/include/asio/ssl/detail/read_op.hpp +5 -0
- data/ext/third_party/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +5 -0
- data/ext/third_party/asio/asio/include/asio/ssl/detail/stream_core.hpp +36 -2
- data/ext/third_party/asio/asio/include/asio/ssl/detail/write_op.hpp +10 -1
- data/ext/third_party/asio/asio/include/asio/ssl/stream.hpp +15 -0
- data/ext/third_party/asio/asio/include/asio/static_thread_pool.hpp +31 -0
- data/ext/third_party/asio/asio/include/asio/strand.hpp +232 -9
- data/ext/third_party/asio/asio/include/asio/system_context.hpp +12 -3
- data/ext/third_party/asio/asio/include/asio/system_executor.hpp +557 -24
- data/ext/third_party/asio/asio/include/asio/thread_pool.hpp +913 -37
- data/ext/third_party/asio/asio/include/asio/traits/bulk_execute_free.hpp +114 -0
- data/ext/third_party/asio/asio/include/asio/traits/bulk_execute_member.hpp +114 -0
- data/ext/third_party/asio/asio/include/asio/traits/connect_free.hpp +112 -0
- data/ext/third_party/asio/asio/include/asio/traits/connect_member.hpp +112 -0
- data/ext/third_party/asio/asio/include/asio/traits/equality_comparable.hpp +100 -0
- data/ext/third_party/asio/asio/include/asio/traits/execute_free.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/execute_member.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/prefer_free.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/prefer_member.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/query_free.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/query_member.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/query_static_constexpr_member.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/require_concept_free.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/require_concept_member.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/require_free.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/require_member.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/schedule_free.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/schedule_member.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/set_done_free.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/set_done_member.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/set_error_free.hpp +112 -0
- data/ext/third_party/asio/asio/include/asio/traits/set_error_member.hpp +112 -0
- data/ext/third_party/asio/asio/include/asio/traits/set_value_free.hpp +234 -0
- data/ext/third_party/asio/asio/include/asio/traits/set_value_member.hpp +234 -0
- data/ext/third_party/asio/asio/include/asio/traits/start_free.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/start_member.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/static_query.hpp +108 -0
- data/ext/third_party/asio/asio/include/asio/traits/static_require.hpp +123 -0
- data/ext/third_party/asio/asio/include/asio/traits/static_require_concept.hpp +123 -0
- data/ext/third_party/asio/asio/include/asio/traits/submit_free.hpp +112 -0
- data/ext/third_party/asio/asio/include/asio/traits/submit_member.hpp +112 -0
- data/ext/third_party/asio/asio/include/asio/ts/executor.hpp +1 -0
- data/ext/third_party/asio/asio/include/asio/ts/netfwd.hpp +67 -8
- data/ext/third_party/asio/asio/include/asio/use_awaitable.hpp +63 -4
- data/ext/third_party/asio/asio/include/asio/version.hpp +1 -1
- data/ext/third_party/asio/asio/include/asio/windows/basic_object_handle.hpp +4 -4
- data/ext/third_party/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +2 -2
- data/ext/third_party/asio/asio/include/asio/windows/basic_random_access_handle.hpp +5 -5
- data/ext/third_party/asio/asio/include/asio/windows/basic_stream_handle.hpp +5 -5
- data/ext/third_party/asio/asio/include/asio/windows/overlapped_ptr.hpp +4 -2
- data/ext/third_party/gsl/CMakeLists.txt +13 -5
- data/ext/third_party/gsl/include/gsl/gsl_assert +1 -1
- data/ext/third_party/gsl/include/gsl/gsl_byte +3 -3
- data/ext/third_party/gsl/include/gsl/gsl_narrow +52 -0
- data/ext/third_party/gsl/include/gsl/gsl_util +8 -50
- data/ext/third_party/gsl/include/gsl/multi_span +0 -10
- data/ext/third_party/gsl/include/gsl/pointers +14 -28
- data/ext/third_party/gsl/include/gsl/span +98 -46
- data/ext/third_party/gsl/include/gsl/string_span +37 -47
- data/ext/third_party/http_parser/http_parser.c +17 -10
- data/ext/third_party/http_parser/http_parser.h +4 -2
- data/ext/third_party/json/include/tao/json/basic_value.hpp +3 -2
- data/ext/third_party/json/include/tao/json/binary.hpp +4 -4
- data/ext/third_party/json/include/tao/json/binary_view.hpp +2 -2
- data/ext/third_party/json/include/tao/json/binding.hpp +2 -2
- data/ext/third_party/json/include/tao/json/binding/factory.hpp +8 -7
- data/ext/third_party/json/include/tao/json/binding/internal/array.hpp +2 -1
- data/ext/third_party/json/include/tao/json/binding/internal/object.hpp +6 -5
- data/ext/third_party/json/include/tao/json/binding/versions.hpp +3 -1
- data/ext/third_party/json/include/tao/json/cbor.hpp +1 -0
- data/ext/third_party/json/include/tao/json/cbor/consume_file.hpp +7 -7
- data/ext/third_party/json/include/tao/json/cbor/events/from_binary.hpp +43 -0
- data/ext/third_party/json/include/tao/json/cbor/events/from_file.hpp +4 -4
- data/ext/third_party/json/include/tao/json/cbor/events/from_string.hpp +3 -3
- data/ext/third_party/json/include/tao/json/cbor/from_binary.hpp +32 -0
- data/ext/third_party/json/include/tao/json/cbor/from_file.hpp +5 -5
- data/ext/third_party/json/include/tao/json/cbor/internal/grammar.hpp +2 -1
- data/ext/third_party/json/include/tao/json/consume_file.hpp +7 -7
- data/ext/third_party/json/include/tao/json/contrib/internal/indirect_traits.hpp +13 -6
- data/ext/third_party/json/include/tao/json/contrib/position.hpp +15 -15
- data/ext/third_party/json/include/tao/json/contrib/reference.hpp +5 -7
- data/ext/third_party/json/include/tao/json/contrib/schema.hpp +58 -35
- data/ext/third_party/json/include/tao/json/contrib/shared_ptr_traits.hpp +12 -4
- data/ext/third_party/json/include/tao/json/contrib/unique_ptr_traits.hpp +12 -4
- data/ext/third_party/json/include/tao/json/contrib/unordered_map_traits.hpp +1 -1
- data/ext/third_party/json/include/tao/json/contrib/unordered_set_traits.hpp +2 -2
- data/ext/third_party/json/include/tao/json/events/compare.hpp +2 -12
- data/ext/third_party/json/include/tao/json/events/from_file.hpp +4 -4
- data/ext/third_party/json/include/tao/json/events/from_string.hpp +2 -2
- data/ext/third_party/json/include/tao/json/events/invalid_string_to_binary.hpp +1 -1
- data/ext/third_party/json/include/tao/json/events/key_camel_case_to_snake_case.hpp +3 -3
- data/ext/third_party/json/include/tao/json/events/key_snake_case_to_camel_case.hpp +1 -1
- data/ext/third_party/json/include/tao/json/events/tee.hpp +2 -2
- data/ext/third_party/json/include/tao/json/events/to_pretty_stream.hpp +1 -1
- data/ext/third_party/json/include/tao/json/events/to_stream.hpp +1 -1
- data/ext/third_party/json/include/tao/json/events/transformer.hpp +3 -3
- data/ext/third_party/json/include/tao/json/events/validate_event_order.hpp +3 -3
- data/ext/third_party/json/include/tao/json/events/virtual_ref.hpp +6 -0
- data/ext/third_party/json/include/tao/json/external/pegtl.hpp +4 -13
- data/ext/third_party/json/include/tao/json/external/pegtl/argv_input.hpp +3 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/ascii.hpp +5 -18
- data/ext/third_party/json/include/tao/json/external/pegtl/buffer_input.hpp +3 -3
- data/ext/third_party/json/include/tao/json/external/pegtl/change_action.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_state.hpp +6 -6
- data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_states.hpp +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/change_control.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/change_state.hpp +6 -6
- data/ext/third_party/json/include/tao/json/external/pegtl/change_states.hpp +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/alphabet.hpp +52 -52
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/analyze.hpp +176 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/analyze_traits.hpp +275 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/control_action.hpp +77 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/coverage.hpp +151 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/forward.hpp +16 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/http.hpp +37 -18
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/internal.hpp +20 -22
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf16.hpp +6 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf32.hpp +6 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf8.hpp +2 -4
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/if_then.hpp +11 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/integer.hpp +116 -131
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/endian.hpp +4 -4
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/endian_gcc.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/endian_win.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_mask_uint.hpp +9 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_mask_uint8.hpp +9 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_uint.hpp +9 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_uint8.hpp +9 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_utf16.hpp +10 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_utf32.hpp +9 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/read_uint.hpp +3 -3
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/set_stack_guard.hpp +52 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree.hpp +80 -201
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree_to_dot.hpp +11 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/print.hpp +75 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/print_coverage.hpp +53 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/raw_string.hpp +45 -36
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_first_state.hpp +33 -50
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_last_states.hpp +117 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_one_min_max.hpp +43 -11
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_string.hpp +1 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/shuffle_states.hpp +193 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/state_control.hpp +118 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/trace.hpp +227 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/{uint16.hpp → contrib/uint16.hpp} +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/{uint32.hpp → contrib/uint32.hpp} +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/{uint64.hpp → contrib/uint64.hpp} +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/{uint8.hpp → contrib/uint8.hpp} +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/unescape.hpp +14 -14
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uri.hpp +1 -1
- data/ext/third_party/json/include/tao/json/external/pegtl/{utf16.hpp → contrib/utf16.hpp} +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/{utf32.hpp → contrib/utf32.hpp} +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/cstream_input.hpp +2 -3
- data/ext/third_party/json/include/tao/json/external/pegtl/{internal/demangle.hpp → demangle.hpp} +12 -14
- data/ext/third_party/json/include/tao/json/external/pegtl/disable_action.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/discard_input.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_failure.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_success.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/enable_action.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/file_input.hpp +1 -1
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/action.hpp +19 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/action_input.hpp +7 -8
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/any.hpp +14 -14
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply.hpp +9 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0.hpp +8 -7
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply_single.hpp +4 -4
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/at.hpp +17 -15
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/bof.hpp +7 -6
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/bol.hpp +8 -8
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump.hpp +4 -4
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump_help.hpp +3 -3
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/bytes.hpp +17 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/control.hpp +19 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_crlf_eol.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_eol.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/crlf_eol.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstream_reader.hpp +1 -1
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/{always_false.hpp → dependent_false.hpp} +3 -8
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/disable.hpp +19 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/discard.hpp +7 -6
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/enable.hpp +19 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/{skip_control.hpp → enable_control.hpp} +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/eof.hpp +7 -6
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/eol.hpp +8 -7
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/eolf.hpp +8 -7
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/failure.hpp +32 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_posix.hpp +61 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_win32.hpp +27 -33
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_reader.hpp +29 -26
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply.hpp +3 -7
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply0.hpp +3 -7
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_match.hpp +4 -20
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_unwind.hpp +21 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_apply.hpp +8 -7
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must.hpp +8 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must_else.hpp +2 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_then_else.hpp +7 -7
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/istream_reader.hpp +1 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/istring.hpp +11 -11
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/iterator.hpp +7 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_crlf_eol.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_eol.hpp +2 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail.hpp +4 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail_pad.hpp +1 -1
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/marker.hpp +3 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/minus.hpp +21 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply.hpp +5 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply0.hpp +5 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/must.hpp +16 -24
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/not_at.hpp +17 -15
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/one.hpp +23 -12
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/opt.hpp +16 -16
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/path_to_string.hpp +26 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_char.hpp +5 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf8.hpp +12 -13
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/plus.hpp +18 -11
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/raise.hpp +8 -17
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/range.hpp +22 -17
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/ranges.hpp +28 -18
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/rematch.hpp +12 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep.hpp +26 -25
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min_max.hpp +23 -21
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_opt.hpp +24 -9
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/require.hpp +10 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/rules.hpp +4 -4
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/seq.hpp +18 -33
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/sor.hpp +24 -17
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/star.hpp +13 -8
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/state.hpp +21 -11
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/string.hpp +11 -11
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/success.hpp +32 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/try_catch_type.hpp +16 -16
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/until.hpp +18 -14
- data/ext/third_party/json/include/tao/json/external/pegtl/istream_input.hpp +2 -3
- data/ext/third_party/json/include/tao/json/external/pegtl/match.hpp +125 -29
- data/ext/third_party/json/include/tao/json/external/pegtl/memory_input.hpp +32 -48
- data/ext/third_party/json/include/tao/json/external/pegtl/mmap_input.hpp +16 -16
- data/ext/third_party/json/include/tao/json/external/pegtl/must_if.hpp +64 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/normal.hpp +25 -25
- data/ext/third_party/json/include/tao/json/external/pegtl/nothing.hpp +1 -2
- data/ext/third_party/json/include/tao/json/external/pegtl/parse.hpp +6 -8
- data/ext/third_party/json/include/tao/json/external/pegtl/parse_error.hpp +80 -35
- data/ext/third_party/json/include/tao/json/external/pegtl/position.hpp +18 -10
- data/ext/third_party/json/include/tao/json/external/pegtl/read_input.hpp +18 -38
- data/ext/third_party/json/include/tao/json/external/pegtl/rules.hpp +6 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/string_input.hpp +3 -5
- data/ext/third_party/json/include/tao/json/external/pegtl/type_list.hpp +46 -0
- data/ext/third_party/json/include/tao/json/external/pegtl/visit.hpp +66 -0
- data/ext/third_party/json/include/tao/json/from_file.hpp +5 -5
- data/ext/third_party/json/include/tao/json/internal/action.hpp +3 -3
- data/ext/third_party/json/include/tao/json/internal/dependent_false.hpp +14 -0
- data/ext/third_party/json/include/tao/json/internal/errors.hpp +17 -17
- data/ext/third_party/json/include/tao/json/internal/format.hpp +0 -2
- data/ext/third_party/json/include/tao/json/internal/grammar.hpp +17 -17
- data/ext/third_party/json/include/tao/json/internal/pair.hpp +1 -1
- data/ext/third_party/json/include/tao/json/internal/sha256.hpp +8 -8
- data/ext/third_party/json/include/tao/json/internal/single.hpp +1 -1
- data/ext/third_party/json/include/tao/json/internal/type_traits.hpp +12 -29
- data/ext/third_party/json/include/tao/json/jaxn/consume_file.hpp +7 -7
- data/ext/third_party/json/include/tao/json/jaxn/events/from_file.hpp +4 -4
- data/ext/third_party/json/include/tao/json/jaxn/events/from_string.hpp +2 -2
- data/ext/third_party/json/include/tao/json/jaxn/from_file.hpp +5 -5
- data/ext/third_party/json/include/tao/json/jaxn/internal/action.hpp +6 -6
- data/ext/third_party/json/include/tao/json/jaxn/internal/bunescape_action.hpp +2 -2
- data/ext/third_party/json/include/tao/json/jaxn/internal/errors.hpp +43 -43
- data/ext/third_party/json/include/tao/json/jaxn/internal/grammar.hpp +36 -36
- data/ext/third_party/json/include/tao/json/jaxn/internal/integer.hpp +10 -11
- data/ext/third_party/json/include/tao/json/jaxn/is_identifier.hpp +2 -2
- data/ext/third_party/json/include/tao/json/jaxn/parts_parser.hpp +1 -3
- data/ext/third_party/json/include/tao/json/message_extension.hpp +2 -2
- data/ext/third_party/json/include/tao/json/msgpack.hpp +1 -0
- data/ext/third_party/json/include/tao/json/msgpack/consume_file.hpp +7 -7
- data/ext/third_party/json/include/tao/json/msgpack/events/from_binary.hpp +43 -0
- data/ext/third_party/json/include/tao/json/msgpack/events/from_file.hpp +4 -4
- data/ext/third_party/json/include/tao/json/msgpack/events/from_string.hpp +4 -4
- data/ext/third_party/json/include/tao/json/msgpack/events/to_stream.hpp +4 -4
- data/ext/third_party/json/include/tao/json/msgpack/from_binary.hpp +32 -0
- data/ext/third_party/json/include/tao/json/msgpack/from_file.hpp +5 -5
- data/ext/third_party/json/include/tao/json/msgpack/internal/grammar.hpp +2 -1
- data/ext/third_party/json/include/tao/json/operators.hpp +0 -4
- data/ext/third_party/json/include/tao/json/parts_parser.hpp +3 -7
- data/ext/third_party/json/include/tao/json/self_contained.hpp +6 -18
- data/ext/third_party/json/include/tao/json/span.hpp +94 -166
- data/ext/third_party/json/include/tao/json/ubjson.hpp +1 -0
- data/ext/third_party/json/include/tao/json/ubjson/consume_file.hpp +7 -7
- data/ext/third_party/json/include/tao/json/ubjson/events/from_binary.hpp +43 -0
- data/ext/third_party/json/include/tao/json/ubjson/events/from_file.hpp +4 -4
- data/ext/third_party/json/include/tao/json/ubjson/events/from_string.hpp +3 -3
- data/ext/third_party/json/include/tao/json/ubjson/from_binary.hpp +32 -0
- data/ext/third_party/json/include/tao/json/ubjson/from_file.hpp +5 -5
- data/ext/third_party/json/include/tao/json/ubjson/internal/grammar.hpp +5 -3
- data/ext/third_party/json/include/tao/json/utf8.hpp +1 -1
- data/ext/third_party/snappy/snappy.cc +6 -2
- data/ext/third_party/spdlog/CMakeLists.txt +24 -57
- data/ext/third_party/spdlog/cmake/version.rc.in +1 -1
- data/ext/third_party/spdlog/include/spdlog/async.h +3 -3
- data/ext/third_party/spdlog/include/spdlog/cfg/argv.h +3 -4
- data/ext/third_party/spdlog/include/spdlog/cfg/env.h +6 -4
- data/ext/third_party/spdlog/include/spdlog/cfg/helpers-inl.h +22 -6
- data/ext/third_party/spdlog/include/spdlog/cfg/helpers.h +3 -2
- data/ext/third_party/spdlog/include/spdlog/common.h +1 -2
- data/ext/third_party/spdlog/include/spdlog/details/fmt_helper.h +9 -1
- data/ext/third_party/spdlog/include/spdlog/details/os.h +1 -1
- data/ext/third_party/spdlog/include/spdlog/details/registry-inl.h +21 -7
- data/ext/third_party/spdlog/include/spdlog/details/registry.h +6 -3
- data/ext/third_party/spdlog/include/spdlog/details/synchronous_factory.h +1 -1
- data/ext/third_party/spdlog/include/spdlog/details/tcp_client-windows.h +1 -1
- data/ext/third_party/spdlog/include/spdlog/details/tcp_client.h +8 -7
- data/ext/third_party/spdlog/include/spdlog/fmt/bin_to_hex.h +2 -2
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/chrono.h +66 -62
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/color.h +35 -37
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/compile.h +173 -103
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/core.h +538 -445
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format-inl.h +114 -64
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format.h +1152 -1071
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/locale.h +16 -16
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/os.h +450 -0
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ostream.h +37 -13
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/posix.h +1 -1
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/printf.h +93 -63
- data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ranges.h +35 -36
- data/ext/third_party/spdlog/include/spdlog/fmt/chrono.h +20 -0
- data/ext/third_party/spdlog/include/spdlog/fmt/fmt.h +2 -0
- data/ext/third_party/spdlog/include/spdlog/logger-inl.h +5 -1
- data/ext/third_party/spdlog/include/spdlog/logger.h +50 -76
- data/ext/third_party/spdlog/include/spdlog/pattern_formatter-inl.h +23 -8
- data/ext/third_party/spdlog/include/spdlog/pattern_formatter.h +3 -3
- data/ext/third_party/spdlog/include/spdlog/sinks/daily_file_sink.h +1 -1
- data/ext/third_party/spdlog/include/spdlog/sinks/msvc_sink.h +5 -5
- data/ext/third_party/spdlog/include/spdlog/sinks/ringbuffer_sink.h +6 -4
- data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +32 -3
- data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks.h +7 -0
- data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +4 -14
- data/ext/third_party/spdlog/include/spdlog/spdlog-inl.h +11 -1
- data/ext/third_party/spdlog/include/spdlog/spdlog.h +23 -68
- data/ext/third_party/spdlog/include/spdlog/stopwatch.h +61 -0
- data/ext/third_party/spdlog/include/spdlog/version.h +2 -2
- data/ext/third_party/spdlog/src/fmt.cpp +21 -147
- data/lib/couchbase/cluster.rb +111 -1
- data/lib/couchbase/collection_options.rb +18 -1
- data/lib/couchbase/errors.rb +3 -0
- data/lib/couchbase/libcouchbase.bundle +0 -0
- data/lib/couchbase/management/bucket_manager.rb +36 -3
- data/lib/couchbase/management/search_index_manager.rb +42 -1
- data/lib/couchbase/management/user_manager.rb +155 -48
- data/lib/couchbase/query_options.rb +7 -0
- data/lib/couchbase/scope.rb +1 -0
- data/lib/couchbase/search_options.rb +69 -1
- data/lib/couchbase/version.rb +1 -1
- metadata +171 -267
- data/.rubocop.yml +0 -227
- data/.rubocop_todo.yml +0 -47
- data/.yardopts +0 -1
- data/CONTRIBUTING.md +0 -110
- data/Gemfile +0 -37
- data/Rakefile +0 -51
- data/couchbase.gemspec +0 -79
- data/examples/analytics.rb +0 -236
- data/examples/auth.rb +0 -33
- data/examples/crud.rb +0 -34
- data/examples/managing_analytics_indexes.rb +0 -86
- data/examples/managing_buckets.rb +0 -61
- data/examples/managing_collections.rb +0 -71
- data/examples/managing_query_indexes.rb +0 -83
- data/examples/managing_search_indexes.rb +0 -77
- data/examples/managing_view_indexes.rb +0 -68
- data/examples/query.rb +0 -32
- data/examples/query_with_consistency.rb +0 -86
- data/examples/search.rb +0 -202
- data/examples/search_with_consistency.rb +0 -97
- data/examples/subdocument.rb +0 -63
- data/examples/view.rb +0 -59
- data/ext/.clang-format +0 -15
- data/ext/.clang-tidy +0 -22
- data/ext/.cmake-format.yaml +0 -8
- data/ext/.gitignore +0 -2
- data/ext/.idea/.name +0 -1
- data/ext/.idea/dictionaries/couchbase_terms.xml +0 -14
- data/ext/.idea/ext.iml +0 -2
- data/ext/.idea/misc.xml +0 -16
- data/ext/.idea/modules.xml +0 -8
- data/ext/.idea/vcs.xml +0 -12
- data/ext/test/main.cxx +0 -184
- data/ext/third_party/asio/.appveyor.yml +0 -107
- data/ext/third_party/asio/.cirrus.yml +0 -16
- data/ext/third_party/asio/.gitignore +0 -3
- data/ext/third_party/asio/.travis.yml +0 -323
- data/ext/third_party/asio/asio/.gitignore +0 -23
- data/ext/third_party/asio/asio/COPYING +0 -4
- data/ext/third_party/asio/asio/INSTALL +0 -5
- data/ext/third_party/asio/asio/LICENSE_1_0.txt +0 -23
- data/ext/third_party/asio/asio/Makefile.am +0 -19
- data/ext/third_party/asio/asio/README +0 -4
- data/ext/third_party/asio/asio/asio.manifest +0 -4865
- data/ext/third_party/asio/asio/autogen.sh +0 -55
- data/ext/third_party/asio/asio/boost_asio.manifest +0 -5193
- data/ext/third_party/asio/asio/boostify.pl +0 -603
- data/ext/third_party/asio/asio/configure.ac +0 -182
- data/ext/third_party/asio/asio/include/.gitignore +0 -2
- data/ext/third_party/asio/asio/include/Makefile.am +0 -484
- data/ext/third_party/asio/asio/include/asio/detail/io_object_executor.hpp +0 -167
- data/ext/third_party/asio/asio/include/asio/impl/src.cpp +0 -25
- data/ext/third_party/asio/asio/release.pl +0 -440
- data/ext/third_party/asio/asio/src/.gitignore +0 -11
- data/ext/third_party/asio/asio/src/Makefile.am +0 -23
- data/ext/third_party/asio/asio/src/Makefile.mgw +0 -204
- data/ext/third_party/asio/asio/src/Makefile.msc +0 -497
- data/ext/third_party/asio/asio/src/asio.cpp +0 -11
- data/ext/third_party/asio/asio/src/asio_ssl.cpp +0 -11
- data/ext/third_party/asio/asio/src/doc/.gitignore +0 -5
- data/ext/third_party/asio/asio/src/doc/Jamfile.v2 +0 -62
- data/ext/third_party/asio/asio/src/doc/asio.png +0 -0
- data/ext/third_party/asio/asio/src/doc/asio.qbk +0 -127
- data/ext/third_party/asio/asio/src/doc/asioref.sty +0 -90
- data/ext/third_party/asio/asio/src/doc/asioref.xsl +0 -94
- data/ext/third_party/asio/asio/src/doc/boost_bind_dox.txt +0 -5
- data/ext/third_party/asio/asio/src/doc/doxy2qbk.pl +0 -22
- data/ext/third_party/asio/asio/src/doc/examples.qbk +0 -564
- data/ext/third_party/asio/asio/src/doc/history.qbk +0 -1794
- data/ext/third_party/asio/asio/src/doc/index.xml +0 -13
- data/ext/third_party/asio/asio/src/doc/makepdf.pl +0 -26
- data/ext/third_party/asio/asio/src/doc/net_ts.qbk +0 -479
- data/ext/third_party/asio/asio/src/doc/noncopyable_dox.txt +0 -3
- data/ext/third_party/asio/asio/src/doc/overview.qbk +0 -103
- data/ext/third_party/asio/asio/src/doc/overview/allocation.qbk +0 -89
- data/ext/third_party/asio/asio/src/doc/overview/async.qbk +0 -185
- data/ext/third_party/asio/asio/src/doc/overview/async_op1.dot +0 -78
- data/ext/third_party/asio/asio/src/doc/overview/async_op1.png +0 -0
- data/ext/third_party/asio/asio/src/doc/overview/async_op2.dot +0 -78
- data/ext/third_party/asio/asio/src/doc/overview/async_op2.png +0 -0
- data/ext/third_party/asio/asio/src/doc/overview/basics.qbk +0 -106
- data/ext/third_party/asio/asio/src/doc/overview/bsd_sockets.qbk +0 -270
- data/ext/third_party/asio/asio/src/doc/overview/buffers.qbk +0 -163
- data/ext/third_party/asio/asio/src/doc/overview/concurrency_hint.qbk +0 -88
- data/ext/third_party/asio/asio/src/doc/overview/coroutine.qbk +0 -51
- data/ext/third_party/asio/asio/src/doc/overview/coroutines_ts.qbk +0 -97
- data/ext/third_party/asio/asio/src/doc/overview/cpp2011.qbk +0 -271
- data/ext/third_party/asio/asio/src/doc/overview/handler_tracking.qbk +0 -220
- data/ext/third_party/asio/asio/src/doc/overview/implementation.qbk +0 -305
- data/ext/third_party/asio/asio/src/doc/overview/iostreams.qbk +0 -72
- data/ext/third_party/asio/asio/src/doc/overview/line_based.qbk +0 -118
- data/ext/third_party/asio/asio/src/doc/overview/other_protocols.qbk +0 -94
- data/ext/third_party/asio/asio/src/doc/overview/posix.qbk +0 -152
- data/ext/third_party/asio/asio/src/doc/overview/proactor.dot +0 -100
- data/ext/third_party/asio/asio/src/doc/overview/proactor.png +0 -0
- data/ext/third_party/asio/asio/src/doc/overview/protocols.qbk +0 -149
- data/ext/third_party/asio/asio/src/doc/overview/rationale.qbk +0 -54
- data/ext/third_party/asio/asio/src/doc/overview/reactor.qbk +0 -44
- data/ext/third_party/asio/asio/src/doc/overview/serial_ports.qbk +0 -45
- data/ext/third_party/asio/asio/src/doc/overview/signals.qbk +0 -44
- data/ext/third_party/asio/asio/src/doc/overview/spawn.qbk +0 -102
- data/ext/third_party/asio/asio/src/doc/overview/ssl.qbk +0 -124
- data/ext/third_party/asio/asio/src/doc/overview/strands.qbk +0 -114
- data/ext/third_party/asio/asio/src/doc/overview/streams.qbk +0 -62
- data/ext/third_party/asio/asio/src/doc/overview/sync_op.dot +0 -67
- data/ext/third_party/asio/asio/src/doc/overview/sync_op.png +0 -0
- data/ext/third_party/asio/asio/src/doc/overview/threads.qbk +0 -67
- data/ext/third_party/asio/asio/src/doc/overview/timers.qbk +0 -52
- data/ext/third_party/asio/asio/src/doc/overview/windows.qbk +0 -126
- data/ext/third_party/asio/asio/src/doc/project-root.jam +0 -1
- data/ext/third_party/asio/asio/src/doc/quickref.xml +0 -561
- data/ext/third_party/asio/asio/src/doc/reference.dox +0 -264
- data/ext/third_party/asio/asio/src/doc/reference.qbk +0 -125973
- data/ext/third_party/asio/asio/src/doc/reference.xsl +0 -1831
- data/ext/third_party/asio/asio/src/doc/release_checklist.htm +0 -68
- data/ext/third_party/asio/asio/src/doc/requirements/AcceptHandler.qbk +0 -72
- data/ext/third_party/asio/asio/src/doc/requirements/AcceptableProtocol.qbk +0 -25
- data/ext/third_party/asio/asio/src/doc/requirements/AsyncRandomAccessReadDevice.qbk +0 -56
- data/ext/third_party/asio/asio/src/doc/requirements/AsyncRandomAccessWriteDevice.qbk +0 -57
- data/ext/third_party/asio/asio/src/doc/requirements/AsyncReadStream.qbk +0 -50
- data/ext/third_party/asio/asio/src/doc/requirements/AsyncWriteStream.qbk +0 -48
- data/ext/third_party/asio/asio/src/doc/requirements/BufferedHandshakeHandler.qbk +0 -55
- data/ext/third_party/asio/asio/src/doc/requirements/CompletionCondition.qbk +0 -42
- data/ext/third_party/asio/asio/src/doc/requirements/CompletionHandler.qbk +0 -63
- data/ext/third_party/asio/asio/src/doc/requirements/ConnectCondition.qbk +0 -34
- data/ext/third_party/asio/asio/src/doc/requirements/ConnectHandler.qbk +0 -72
- data/ext/third_party/asio/asio/src/doc/requirements/ConstBufferSequence.qbk +0 -53
- data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer.qbk +0 -16
- data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer_v1.qbk +0 -93
- data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer_v2.qbk +0 -94
- data/ext/third_party/asio/asio/src/doc/requirements/Endpoint.qbk +0 -97
- data/ext/third_party/asio/asio/src/doc/requirements/EndpointSequence.qbk +0 -30
- data/ext/third_party/asio/asio/src/doc/requirements/ExecutionContext.qbk +0 -36
- data/ext/third_party/asio/asio/src/doc/requirements/Executor.qbk +0 -141
- data/ext/third_party/asio/asio/src/doc/requirements/GettableSerialPortOption.qbk +0 -33
- data/ext/third_party/asio/asio/src/doc/requirements/GettableSocketOption.qbk +0 -67
- data/ext/third_party/asio/asio/src/doc/requirements/Handler.qbk +0 -64
- data/ext/third_party/asio/asio/src/doc/requirements/HandshakeHandler.qbk +0 -72
- data/ext/third_party/asio/asio/src/doc/requirements/InternetProtocol.qbk +0 -47
- data/ext/third_party/asio/asio/src/doc/requirements/IoControlCommand.qbk +0 -34
- data/ext/third_party/asio/asio/src/doc/requirements/IoObjectService.qbk +0 -62
- data/ext/third_party/asio/asio/src/doc/requirements/IteratorConnectHandler.qbk +0 -81
- data/ext/third_party/asio/asio/src/doc/requirements/LegacyCompletionHandler.qbk +0 -65
- data/ext/third_party/asio/asio/src/doc/requirements/MoveAcceptHandler.qbk +0 -61
- data/ext/third_party/asio/asio/src/doc/requirements/MutableBufferSequence.qbk +0 -54
- data/ext/third_party/asio/asio/src/doc/requirements/ProtoAllocator.qbk +0 -19
- data/ext/third_party/asio/asio/src/doc/requirements/Protocol.qbk +0 -56
- data/ext/third_party/asio/asio/src/doc/requirements/RangeConnectHandler.qbk +0 -82
- data/ext/third_party/asio/asio/src/doc/requirements/ReadHandler.qbk +0 -79
- data/ext/third_party/asio/asio/src/doc/requirements/ResolveHandler.qbk +0 -82
- data/ext/third_party/asio/asio/src/doc/requirements/Service.qbk +0 -40
- data/ext/third_party/asio/asio/src/doc/requirements/SettableSerialPortOption.qbk +0 -33
- data/ext/third_party/asio/asio/src/doc/requirements/SettableSocketOption.qbk +0 -54
- data/ext/third_party/asio/asio/src/doc/requirements/ShutdownHandler.qbk +0 -72
- data/ext/third_party/asio/asio/src/doc/requirements/SignalHandler.qbk +0 -79
- data/ext/third_party/asio/asio/src/doc/requirements/SyncRandomAccessReadDevice.qbk +0 -49
- data/ext/third_party/asio/asio/src/doc/requirements/SyncRandomAccessWriteDevice.qbk +0 -49
- data/ext/third_party/asio/asio/src/doc/requirements/SyncReadStream.qbk +0 -41
- data/ext/third_party/asio/asio/src/doc/requirements/SyncWriteStream.qbk +0 -39
- data/ext/third_party/asio/asio/src/doc/requirements/TimeTraits.qbk +0 -72
- data/ext/third_party/asio/asio/src/doc/requirements/WaitHandler.qbk +0 -72
- data/ext/third_party/asio/asio/src/doc/requirements/WaitTraits.qbk +0 -52
- data/ext/third_party/asio/asio/src/doc/requirements/WriteHandler.qbk +0 -79
- data/ext/third_party/asio/asio/src/doc/requirements/asynchronous_operations.qbk +0 -300
- data/ext/third_party/asio/asio/src/doc/requirements/asynchronous_socket_operations.qbk +0 -39
- data/ext/third_party/asio/asio/src/doc/requirements/read_write_operations.qbk +0 -34
- data/ext/third_party/asio/asio/src/doc/requirements/synchronous_socket_operations.qbk +0 -37
- data/ext/third_party/asio/asio/src/doc/std_exception_dox.txt +0 -7
- data/ext/third_party/asio/asio/src/doc/tutorial.dox +0 -226
- data/ext/third_party/asio/asio/src/doc/tutorial.qbk +0 -2387
- data/ext/third_party/asio/asio/src/doc/tutorial.xsl +0 -437
- data/ext/third_party/asio/asio/src/doc/using.qbk +0 -309
- data/ext/third_party/asio/asio/tsify.pl +0 -574
- data/ext/third_party/gsl/.clang-format +0 -34
- data/ext/third_party/gsl/.github/workflows/main.yml +0 -94
- data/ext/third_party/gsl/.gitignore +0 -16
- data/ext/third_party/gsl/.travis.yml +0 -551
- data/ext/third_party/gsl/CMakeSettings.json +0 -18
- data/ext/third_party/gsl/CONTRIBUTING.md +0 -29
- data/ext/third_party/gsl/GSL.natvis +0 -98
- data/ext/third_party/gsl/README.md +0 -124
- data/ext/third_party/gsl/appveyor.yml +0 -128
- data/ext/third_party/http_parser/.gitignore +0 -30
- data/ext/third_party/http_parser/.mailmap +0 -8
- data/ext/third_party/http_parser/.travis.yml +0 -13
- data/ext/third_party/http_parser/AUTHORS +0 -68
- data/ext/third_party/http_parser/Makefile +0 -160
- data/ext/third_party/http_parser/README.md +0 -246
- data/ext/third_party/http_parser/bench.c +0 -128
- data/ext/third_party/http_parser/http_parser.gyp +0 -111
- data/ext/third_party/http_parser/test.c +0 -4600
- data/ext/third_party/json/.appveyor.yml +0 -44
- data/ext/third_party/json/.clang-format +0 -84
- data/ext/third_party/json/.conan/build.py +0 -80
- data/ext/third_party/json/.conan/test_package/CMakeLists.txt +0 -12
- data/ext/third_party/json/.conan/test_package/conanfile.py +0 -24
- data/ext/third_party/json/.conan/test_package/test_package.cpp +0 -16
- data/ext/third_party/json/.gitignore +0 -3
- data/ext/third_party/json/.travis.yml +0 -173
- data/ext/third_party/json/Makefile +0 -77
- data/ext/third_party/json/README.md +0 -149
- data/ext/third_party/json/conanfile.py +0 -28
- data/ext/third_party/json/include/tao/json/external/pegtl/analysis/analyze_cycles.hpp +0 -127
- data/ext/third_party/json/include/tao/json/external/pegtl/analysis/counted.hpp +0 -23
- data/ext/third_party/json/include/tao/json/external/pegtl/analysis/generic.hpp +0 -31
- data/ext/third_party/json/include/tao/json/external/pegtl/analysis/grammar_info.hpp +0 -32
- data/ext/third_party/json/include/tao/json/external/pegtl/analysis/insert_guard.hpp +0 -51
- data/ext/third_party/json/include/tao/json/external/pegtl/analysis/insert_rules.hpp +0 -25
- data/ext/third_party/json/include/tao/json/external/pegtl/analysis/rule_info.hpp +0 -29
- data/ext/third_party/json/include/tao/json/external/pegtl/analysis/rule_type.hpp +0 -21
- data/ext/third_party/json/include/tao/json/external/pegtl/analyze.hpp +0 -21
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/counter.hpp +0 -54
- data/ext/third_party/json/include/tao/json/external/pegtl/contrib/tracer.hpp +0 -158
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/alnum.hpp +0 -18
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/alpha.hpp +0 -18
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/dusel_mode.hpp +0 -23
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/duseltronik.hpp +0 -187
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_opener.hpp +0 -72
- data/ext/third_party/json/include/tao/json/external/pegtl/internal/trivial.hpp +0 -32
- data/ext/third_party/snappy/.appveyor.yml +0 -36
- data/ext/third_party/snappy/.gitignore +0 -8
- data/ext/third_party/snappy/.travis.yml +0 -98
- data/ext/third_party/snappy/AUTHORS +0 -1
- data/ext/third_party/snappy/CONTRIBUTING.md +0 -26
- data/ext/third_party/snappy/NEWS +0 -188
- data/ext/third_party/snappy/README.md +0 -148
- data/ext/third_party/snappy/docs/README.md +0 -72
- data/ext/third_party/snappy/format_description.txt +0 -110
- data/ext/third_party/snappy/framing_format.txt +0 -135
- data/ext/third_party/snappy/snappy-test.cc +0 -613
- data/ext/third_party/snappy/snappy-test.h +0 -526
- data/ext/third_party/snappy/snappy_compress_fuzzer.cc +0 -60
- data/ext/third_party/snappy/snappy_uncompress_fuzzer.cc +0 -58
- data/ext/third_party/snappy/snappy_unittest.cc +0 -1512
- data/ext/third_party/spdlog/.clang-format +0 -108
- data/ext/third_party/spdlog/.clang-tidy +0 -54
- data/ext/third_party/spdlog/.gitattributes +0 -1
- data/ext/third_party/spdlog/.gitignore +0 -83
- data/ext/third_party/spdlog/.travis.yml +0 -112
- data/ext/third_party/spdlog/INSTALL +0 -24
- data/ext/third_party/spdlog/README.md +0 -423
- data/ext/third_party/spdlog/appveyor.yml +0 -51
- data/ext/third_party/spdlog/include/spdlog/cfg/log_levels.h +0 -47
@@ -0,0 +1,238 @@
|
|
1
|
+
//
|
2
|
+
// execution/executor.hpp
|
3
|
+
// ~~~~~~~~~~~~~~~~~~~~~~
|
4
|
+
//
|
5
|
+
// Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
8
|
+
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
9
|
+
//
|
10
|
+
|
11
|
+
#ifndef ASIO_EXECUTION_EXECUTOR_HPP
|
12
|
+
#define ASIO_EXECUTION_EXECUTOR_HPP
|
13
|
+
|
14
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
15
|
+
# pragma once
|
16
|
+
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
|
17
|
+
|
18
|
+
#include "asio/detail/config.hpp"
|
19
|
+
#include "asio/detail/type_traits.hpp"
|
20
|
+
#include "asio/execution/execute.hpp"
|
21
|
+
#include "asio/execution/invocable_archetype.hpp"
|
22
|
+
#include "asio/traits/equality_comparable.hpp"
|
23
|
+
|
24
|
+
#if defined(ASIO_HAS_DEDUCED_EXECUTE_FREE_TRAIT) \
|
25
|
+
&& defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) \
|
26
|
+
&& defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
|
27
|
+
# define ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT 1
|
28
|
+
#endif // defined(ASIO_HAS_DEDUCED_EXECUTE_FREE_TRAIT)
|
29
|
+
// && defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
|
30
|
+
// && defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
|
31
|
+
|
32
|
+
#include "asio/detail/push_options.hpp"
|
33
|
+
|
34
|
+
namespace asio {
|
35
|
+
namespace execution {
|
36
|
+
namespace detail {
|
37
|
+
|
38
|
+
template <typename T, typename F>
|
39
|
+
struct is_executor_of_impl_base :
|
40
|
+
integral_constant<bool,
|
41
|
+
conditional<true, true_type,
|
42
|
+
typename result_of<typename decay<F>::type&()>::type
|
43
|
+
>::type::value
|
44
|
+
&& is_constructible<typename decay<F>::type, F>::value
|
45
|
+
&& is_move_constructible<typename decay<F>::type>::value
|
46
|
+
#if defined(ASIO_HAS_NOEXCEPT)
|
47
|
+
&& is_nothrow_copy_constructible<T>::value
|
48
|
+
&& is_nothrow_destructible<T>::value
|
49
|
+
#else // defined(ASIO_HAS_NOEXCEPT)
|
50
|
+
&& is_copy_constructible<T>::value
|
51
|
+
&& is_destructible<T>::value
|
52
|
+
#endif // defined(ASIO_HAS_NOEXCEPT)
|
53
|
+
&& traits::equality_comparable<T>::is_valid
|
54
|
+
&& traits::equality_comparable<T>::is_noexcept
|
55
|
+
>
|
56
|
+
{
|
57
|
+
};
|
58
|
+
|
59
|
+
template <typename T, typename F>
|
60
|
+
struct is_executor_of_impl :
|
61
|
+
conditional<
|
62
|
+
can_execute<T, F>::value,
|
63
|
+
is_executor_of_impl_base<T, F>,
|
64
|
+
false_type
|
65
|
+
>::type
|
66
|
+
{
|
67
|
+
};
|
68
|
+
|
69
|
+
template <typename T, typename = void>
|
70
|
+
struct executor_shape
|
71
|
+
{
|
72
|
+
typedef std::size_t type;
|
73
|
+
};
|
74
|
+
|
75
|
+
template <typename T>
|
76
|
+
struct executor_shape<T,
|
77
|
+
typename void_type<
|
78
|
+
typename T::shape_type
|
79
|
+
>::type>
|
80
|
+
{
|
81
|
+
typedef typename T::shape_type type;
|
82
|
+
};
|
83
|
+
|
84
|
+
template <typename T, typename Default, typename = void>
|
85
|
+
struct executor_index
|
86
|
+
{
|
87
|
+
typedef Default type;
|
88
|
+
};
|
89
|
+
|
90
|
+
template <typename T, typename Default>
|
91
|
+
struct executor_index<T, Default,
|
92
|
+
typename void_type<
|
93
|
+
typename T::index_type
|
94
|
+
>::type>
|
95
|
+
{
|
96
|
+
typedef typename T::index_type type;
|
97
|
+
};
|
98
|
+
|
99
|
+
} // namespace detail
|
100
|
+
|
101
|
+
/// The is_executor trait detects whether a type T satisfies the
|
102
|
+
/// execution::executor concept.
|
103
|
+
/**
|
104
|
+
* Class template @c is_executor is a UnaryTypeTrait that is derived from @c
|
105
|
+
* true_type if the type @c T meets the concept definition for an executor,
|
106
|
+
* otherwise @c false_type.
|
107
|
+
*/
|
108
|
+
template <typename T>
|
109
|
+
struct is_executor :
|
110
|
+
#if defined(GENERATING_DOCUMENTATION)
|
111
|
+
integral_constant<bool, automatically_determined>
|
112
|
+
#else // defined(GENERATING_DOCUMENTATION)
|
113
|
+
detail::is_executor_of_impl<T, invocable_archetype>
|
114
|
+
#endif // defined(GENERATING_DOCUMENTATION)
|
115
|
+
{
|
116
|
+
};
|
117
|
+
|
118
|
+
#if defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
119
|
+
|
120
|
+
template <typename T>
|
121
|
+
ASIO_CONSTEXPR const bool is_executor_v = is_executor<T>::value;
|
122
|
+
|
123
|
+
#endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
124
|
+
|
125
|
+
#if defined(ASIO_HAS_CONCEPTS)
|
126
|
+
|
127
|
+
template <typename T>
|
128
|
+
ASIO_CONCEPT executor = is_executor<T>::value;
|
129
|
+
|
130
|
+
#define ASIO_EXECUTION_EXECUTOR ::asio::execution::executor
|
131
|
+
|
132
|
+
#else // defined(ASIO_HAS_CONCEPTS)
|
133
|
+
|
134
|
+
#define ASIO_EXECUTION_EXECUTOR typename
|
135
|
+
|
136
|
+
#endif // defined(ASIO_HAS_CONCEPTS)
|
137
|
+
|
138
|
+
/// The is_executor_of trait detects whether a type T satisfies the
|
139
|
+
/// execution::executor_of concept for some set of value arguments.
|
140
|
+
/**
|
141
|
+
* Class template @c is_executor_of is a type trait that is derived from @c
|
142
|
+
* true_type if the type @c T meets the concept definition for an executor
|
143
|
+
* that is invocable with a function object of type @c F, otherwise @c
|
144
|
+
* false_type.
|
145
|
+
*/
|
146
|
+
template <typename T, typename F>
|
147
|
+
struct is_executor_of :
|
148
|
+
#if defined(GENERATING_DOCUMENTATION)
|
149
|
+
integral_constant<bool, automatically_determined>
|
150
|
+
#else // defined(GENERATING_DOCUMENTATION)
|
151
|
+
integral_constant<bool,
|
152
|
+
is_executor<T>::value && detail::is_executor_of_impl<T, F>::value
|
153
|
+
>
|
154
|
+
#endif // defined(GENERATING_DOCUMENTATION)
|
155
|
+
{
|
156
|
+
};
|
157
|
+
|
158
|
+
#if defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
159
|
+
|
160
|
+
template <typename T, typename F>
|
161
|
+
ASIO_CONSTEXPR const bool is_executor_of_v =
|
162
|
+
is_executor_of<T, F>::value;
|
163
|
+
|
164
|
+
#endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
165
|
+
|
166
|
+
#if defined(ASIO_HAS_CONCEPTS)
|
167
|
+
|
168
|
+
template <typename T, typename F>
|
169
|
+
ASIO_CONCEPT executor_of = is_executor_of<T, F>::value;
|
170
|
+
|
171
|
+
#define ASIO_EXECUTION_EXECUTOR_OF(f) \
|
172
|
+
::asio::execution::executor_of<f>
|
173
|
+
|
174
|
+
#else // defined(ASIO_HAS_CONCEPTS)
|
175
|
+
|
176
|
+
#define ASIO_EXECUTION_EXECUTOR_OF typename
|
177
|
+
|
178
|
+
#endif // defined(ASIO_HAS_CONCEPTS)
|
179
|
+
|
180
|
+
/// The executor_shape trait detects the type used by an executor to represent
|
181
|
+
/// the shape of a bulk operation.
|
182
|
+
/**
|
183
|
+
* Class template @c executor_shape is a type trait with a nested type alias
|
184
|
+
* @c type whose type is @c T::shape_type if @c T::shape_type is valid,
|
185
|
+
* otherwise @c std::size_t.
|
186
|
+
*/
|
187
|
+
template <typename T>
|
188
|
+
struct executor_shape
|
189
|
+
#if !defined(GENERATING_DOCUMENTATION)
|
190
|
+
: detail::executor_shape<T>
|
191
|
+
#endif // !defined(GENERATING_DOCUMENTATION)
|
192
|
+
{
|
193
|
+
#if defined(GENERATING_DOCUMENTATION)
|
194
|
+
/// @c T::shape_type if @c T::shape_type is valid, otherwise @c std::size_t.
|
195
|
+
typedef automatically_determined type;
|
196
|
+
#endif // defined(GENERATING_DOCUMENTATION)
|
197
|
+
};
|
198
|
+
|
199
|
+
#if defined(ASIO_HAS_ALIAS_TEMPLATES)
|
200
|
+
|
201
|
+
template <typename T>
|
202
|
+
using executor_shape_t = typename executor_shape<T>::type;
|
203
|
+
|
204
|
+
#endif // defined(ASIO_HAS_ALIAS_TEMPLATES)
|
205
|
+
|
206
|
+
/// The executor_index trait detects the type used by an executor to represent
|
207
|
+
/// an index within a bulk operation.
|
208
|
+
/**
|
209
|
+
* Class template @c executor_index is a type trait with a nested type alias
|
210
|
+
* @c type whose type is @c T::index_type if @c T::index_type is valid,
|
211
|
+
* otherwise @c executor_shape_t<T>.
|
212
|
+
*/
|
213
|
+
template <typename T>
|
214
|
+
struct executor_index
|
215
|
+
#if !defined(GENERATING_DOCUMENTATION)
|
216
|
+
: detail::executor_index<T, typename executor_shape<T>::type>
|
217
|
+
#endif // !defined(GENERATING_DOCUMENTATION)
|
218
|
+
{
|
219
|
+
#if defined(GENERATING_DOCUMENTATION)
|
220
|
+
/// @c T::index_type if @c T::index_type is valid, otherwise
|
221
|
+
/// @c executor_shape_t<T>.
|
222
|
+
typedef automatically_determined type;
|
223
|
+
#endif // defined(GENERATING_DOCUMENTATION)
|
224
|
+
};
|
225
|
+
|
226
|
+
#if defined(ASIO_HAS_ALIAS_TEMPLATES)
|
227
|
+
|
228
|
+
template <typename T>
|
229
|
+
using executor_index_t = typename executor_index<T>::type;
|
230
|
+
|
231
|
+
#endif // defined(ASIO_HAS_ALIAS_TEMPLATES)
|
232
|
+
|
233
|
+
} // namespace execution
|
234
|
+
} // namespace asio
|
235
|
+
|
236
|
+
#include "asio/detail/pop_options.hpp"
|
237
|
+
|
238
|
+
#endif // ASIO_EXECUTION_EXECUTOR_HPP
|
@@ -0,0 +1,40 @@
|
|
1
|
+
//
|
2
|
+
// exection/impl/bad_executor.ipp
|
3
|
+
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
4
|
+
//
|
5
|
+
// Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
8
|
+
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
9
|
+
//
|
10
|
+
|
11
|
+
#ifndef ASIO_EXECUTION_IMPL_BAD_EXECUTOR_IPP
|
12
|
+
#define ASIO_EXECUTION_IMPL_BAD_EXECUTOR_IPP
|
13
|
+
|
14
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
15
|
+
# pragma once
|
16
|
+
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
|
17
|
+
|
18
|
+
#include "asio/detail/config.hpp"
|
19
|
+
#include "asio/execution/bad_executor.hpp"
|
20
|
+
|
21
|
+
#include "asio/detail/push_options.hpp"
|
22
|
+
|
23
|
+
namespace asio {
|
24
|
+
namespace execution {
|
25
|
+
|
26
|
+
bad_executor::bad_executor() ASIO_NOEXCEPT
|
27
|
+
{
|
28
|
+
}
|
29
|
+
|
30
|
+
const char* bad_executor::what() const ASIO_NOEXCEPT_OR_NOTHROW
|
31
|
+
{
|
32
|
+
return "bad executor";
|
33
|
+
}
|
34
|
+
|
35
|
+
} // namespace execution
|
36
|
+
} // namespace asio
|
37
|
+
|
38
|
+
#include "asio/detail/pop_options.hpp"
|
39
|
+
|
40
|
+
#endif // ASIO_EXECUTION_IMPL_BAD_EXECUTOR_IPP
|
@@ -0,0 +1,36 @@
|
|
1
|
+
//
|
2
|
+
// exection/impl/receiver_invocation_error.ipp
|
3
|
+
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
4
|
+
//
|
5
|
+
// Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
8
|
+
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
9
|
+
//
|
10
|
+
|
11
|
+
#ifndef ASIO_EXECUTION_IMPL_RECEIVER_INVOCATION_ERROR_IPP
|
12
|
+
#define ASIO_EXECUTION_IMPL_RECEIVER_INVOCATION_ERROR_IPP
|
13
|
+
|
14
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
15
|
+
# pragma once
|
16
|
+
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
|
17
|
+
|
18
|
+
#include "asio/detail/config.hpp"
|
19
|
+
#include "asio/execution/receiver_invocation_error.hpp"
|
20
|
+
|
21
|
+
#include "asio/detail/push_options.hpp"
|
22
|
+
|
23
|
+
namespace asio {
|
24
|
+
namespace execution {
|
25
|
+
|
26
|
+
receiver_invocation_error::receiver_invocation_error()
|
27
|
+
: std::runtime_error("receiver invocation error")
|
28
|
+
{
|
29
|
+
}
|
30
|
+
|
31
|
+
} // namespace execution
|
32
|
+
} // namespace asio
|
33
|
+
|
34
|
+
#include "asio/detail/pop_options.hpp"
|
35
|
+
|
36
|
+
#endif // ASIO_EXECUTION_IMPL_RECEIVER_INVOCATION_ERROR_IPP
|
@@ -0,0 +1,71 @@
|
|
1
|
+
//
|
2
|
+
// execution/invocable_archetype.hpp
|
3
|
+
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
4
|
+
//
|
5
|
+
// Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
8
|
+
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
9
|
+
//
|
10
|
+
|
11
|
+
#ifndef ASIO_EXECUTION_INVOCABLE_ARCHETYPE_HPP
|
12
|
+
#define ASIO_EXECUTION_INVOCABLE_ARCHETYPE_HPP
|
13
|
+
|
14
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
15
|
+
# pragma once
|
16
|
+
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
|
17
|
+
|
18
|
+
#include "asio/detail/config.hpp"
|
19
|
+
#include "asio/detail/type_traits.hpp"
|
20
|
+
#include "asio/detail/variadic_templates.hpp"
|
21
|
+
|
22
|
+
#include "asio/detail/push_options.hpp"
|
23
|
+
|
24
|
+
namespace asio {
|
25
|
+
namespace execution {
|
26
|
+
|
27
|
+
/// An archetypal function object used for determining adherence to the
|
28
|
+
/// execution::executor concept.
|
29
|
+
struct invocable_archetype
|
30
|
+
{
|
31
|
+
#if !defined(GENERATING_DOCUMENTATION)
|
32
|
+
// Necessary for compatibility with a C++03 implementation of result_of.
|
33
|
+
typedef void result_type;
|
34
|
+
#endif // !defined(GENERATING_DOCUMENTATION)
|
35
|
+
|
36
|
+
#if defined(ASIO_HAS_VARIADIC_TEMPLATES) \
|
37
|
+
|| defined(GENERATING_DOCUMENTATION)
|
38
|
+
|
39
|
+
/// Function call operator.
|
40
|
+
template <typename... Args>
|
41
|
+
void operator()(ASIO_MOVE_ARG(Args)...)
|
42
|
+
{
|
43
|
+
}
|
44
|
+
|
45
|
+
#else // defined(ASIO_HAS_VARIADIC_TEMPLATES)
|
46
|
+
// || defined(GENERATING_DOCUMENTATION)
|
47
|
+
|
48
|
+
void operator()()
|
49
|
+
{
|
50
|
+
}
|
51
|
+
|
52
|
+
#define ASIO_PRIVATE_INVOCABLE_ARCHETYPE_CALL_DEF(n) \
|
53
|
+
template <ASIO_VARIADIC_TPARAMS(n)> \
|
54
|
+
void operator()(ASIO_VARIADIC_UNNAMED_MOVE_PARAMS(n)) \
|
55
|
+
{ \
|
56
|
+
} \
|
57
|
+
/**/
|
58
|
+
ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_INVOCABLE_ARCHETYPE_CALL_DEF)
|
59
|
+
#undef ASIO_PRIVATE_INVOCABLE_ARCHETYPE_CALL_DEF
|
60
|
+
|
61
|
+
#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES)
|
62
|
+
// || defined(GENERATING_DOCUMENTATION)
|
63
|
+
};
|
64
|
+
|
65
|
+
} // namespace execution
|
66
|
+
} // namespace asio
|
67
|
+
|
68
|
+
#include "asio/detail/pop_options.hpp"
|
69
|
+
|
70
|
+
#endif // ASIO_EXECUTION_INVOCABLE_ARCHETYPE_HPP
|
71
|
+
|
@@ -0,0 +1,917 @@
|
|
1
|
+
//
|
2
|
+
// execution/mapping.hpp
|
3
|
+
// ~~~~~~~~~~~~~~~~~~~~~
|
4
|
+
//
|
5
|
+
// Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
8
|
+
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
9
|
+
//
|
10
|
+
|
11
|
+
#ifndef ASIO_EXECUTION_MAPPING_HPP
|
12
|
+
#define ASIO_EXECUTION_MAPPING_HPP
|
13
|
+
|
14
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
15
|
+
# pragma once
|
16
|
+
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
|
17
|
+
|
18
|
+
#include "asio/detail/config.hpp"
|
19
|
+
#include "asio/detail/type_traits.hpp"
|
20
|
+
#include "asio/execution/executor.hpp"
|
21
|
+
#include "asio/execution/scheduler.hpp"
|
22
|
+
#include "asio/execution/sender.hpp"
|
23
|
+
#include "asio/is_applicable_property.hpp"
|
24
|
+
#include "asio/query.hpp"
|
25
|
+
#include "asio/traits/query_free.hpp"
|
26
|
+
#include "asio/traits/query_member.hpp"
|
27
|
+
#include "asio/traits/query_static_constexpr_member.hpp"
|
28
|
+
#include "asio/traits/static_query.hpp"
|
29
|
+
#include "asio/traits/static_require.hpp"
|
30
|
+
|
31
|
+
#include "asio/detail/push_options.hpp"
|
32
|
+
|
33
|
+
namespace asio {
|
34
|
+
|
35
|
+
#if defined(GENERATING_DOCUMENTATION)
|
36
|
+
|
37
|
+
namespace execution {
|
38
|
+
|
39
|
+
/// A property to describe what guarantees an executor makes about the mapping
|
40
|
+
/// of execution agents on to threads of execution.
|
41
|
+
struct mapping_t
|
42
|
+
{
|
43
|
+
/// The mapping_t property applies to executors, senders, and schedulers.
|
44
|
+
template <typename T>
|
45
|
+
static constexpr bool is_applicable_property_v =
|
46
|
+
is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
|
47
|
+
|
48
|
+
/// The top-level mapping_t property cannot be required.
|
49
|
+
static constexpr bool is_requirable = false;
|
50
|
+
|
51
|
+
/// The top-level mapping_t property cannot be preferred.
|
52
|
+
static constexpr bool is_preferable = false;
|
53
|
+
|
54
|
+
/// The type returned by queries against an @c any_executor.
|
55
|
+
typedef mapping_t polymorphic_query_result_type;
|
56
|
+
|
57
|
+
/// A sub-property that indicates that execution agents are mapped on to
|
58
|
+
/// threads of execution.
|
59
|
+
struct thread_t
|
60
|
+
{
|
61
|
+
/// The mapping_t::thread_t property applies to executors, senders, and
|
62
|
+
/// schedulers.
|
63
|
+
template <typename T>
|
64
|
+
static constexpr bool is_applicable_property_v =
|
65
|
+
is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
|
66
|
+
|
67
|
+
/// The mapping_t::thread_t property can be required.
|
68
|
+
static constexpr bool is_requirable = true;
|
69
|
+
|
70
|
+
/// The mapping_t::thread_t property can be preferred.
|
71
|
+
static constexpr bool is_preferable = true;
|
72
|
+
|
73
|
+
/// The type returned by queries against an @c any_executor.
|
74
|
+
typedef mapping_t polymorphic_query_result_type;
|
75
|
+
|
76
|
+
/// Default constructor.
|
77
|
+
constexpr thread_t();
|
78
|
+
|
79
|
+
/// Get the value associated with a property object.
|
80
|
+
/**
|
81
|
+
* @returns thread_t();
|
82
|
+
*/
|
83
|
+
static constexpr mapping_t value();
|
84
|
+
};
|
85
|
+
|
86
|
+
/// A sub-property that indicates that execution agents are mapped on to
|
87
|
+
/// new threads of execution.
|
88
|
+
struct new_thread_t
|
89
|
+
{
|
90
|
+
/// The mapping_t::new_thread_t property applies to executors, senders, and
|
91
|
+
/// schedulers.
|
92
|
+
template <typename T>
|
93
|
+
static constexpr bool is_applicable_property_v =
|
94
|
+
is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
|
95
|
+
|
96
|
+
/// The mapping_t::new_thread_t property can be required.
|
97
|
+
static constexpr bool is_requirable = true;
|
98
|
+
|
99
|
+
/// The mapping_t::new_thread_t property can be preferred.
|
100
|
+
static constexpr bool is_preferable = true;
|
101
|
+
|
102
|
+
/// The type returned by queries against an @c any_executor.
|
103
|
+
typedef mapping_t polymorphic_query_result_type;
|
104
|
+
|
105
|
+
/// Default constructor.
|
106
|
+
constexpr new_thread_t();
|
107
|
+
|
108
|
+
/// Get the value associated with a property object.
|
109
|
+
/**
|
110
|
+
* @returns new_thread_t();
|
111
|
+
*/
|
112
|
+
static constexpr mapping_t value();
|
113
|
+
};
|
114
|
+
|
115
|
+
/// A sub-property that indicates that the mapping of execution agents is
|
116
|
+
/// implementation-defined.
|
117
|
+
struct other_t
|
118
|
+
{
|
119
|
+
/// The mapping_t::other_t property applies to executors, senders, and
|
120
|
+
/// schedulers.
|
121
|
+
template <typename T>
|
122
|
+
static constexpr bool is_applicable_property_v =
|
123
|
+
is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
|
124
|
+
|
125
|
+
/// The mapping_t::other_t property can be required.
|
126
|
+
static constexpr bool is_requirable = true;
|
127
|
+
|
128
|
+
/// The mapping_t::other_t property can be preferred.
|
129
|
+
static constexpr bool is_preferable = true;
|
130
|
+
|
131
|
+
/// The type returned by queries against an @c any_executor.
|
132
|
+
typedef mapping_t polymorphic_query_result_type;
|
133
|
+
|
134
|
+
/// Default constructor.
|
135
|
+
constexpr other_t();
|
136
|
+
|
137
|
+
/// Get the value associated with a property object.
|
138
|
+
/**
|
139
|
+
* @returns other_t();
|
140
|
+
*/
|
141
|
+
static constexpr mapping_t value();
|
142
|
+
};
|
143
|
+
|
144
|
+
/// A special value used for accessing the mapping_t::thread_t property.
|
145
|
+
static constexpr thread_t thread;
|
146
|
+
|
147
|
+
/// A special value used for accessing the mapping_t::new_thread_t property.
|
148
|
+
static constexpr new_thread_t new_thread;
|
149
|
+
|
150
|
+
/// A special value used for accessing the mapping_t::other_t property.
|
151
|
+
static constexpr other_t other;
|
152
|
+
|
153
|
+
/// Default constructor.
|
154
|
+
constexpr mapping_t();
|
155
|
+
|
156
|
+
/// Construct from a sub-property value.
|
157
|
+
constexpr mapping_t(thread_t);
|
158
|
+
|
159
|
+
/// Construct from a sub-property value.
|
160
|
+
constexpr mapping_t(new_thread_t);
|
161
|
+
|
162
|
+
/// Construct from a sub-property value.
|
163
|
+
constexpr mapping_t(other_t);
|
164
|
+
|
165
|
+
/// Compare property values for equality.
|
166
|
+
friend constexpr bool operator==(
|
167
|
+
const mapping_t& a, const mapping_t& b) noexcept;
|
168
|
+
|
169
|
+
/// Compare property values for inequality.
|
170
|
+
friend constexpr bool operator!=(
|
171
|
+
const mapping_t& a, const mapping_t& b) noexcept;
|
172
|
+
};
|
173
|
+
|
174
|
+
/// A special value used for accessing the mapping_t property.
|
175
|
+
constexpr mapping_t mapping;
|
176
|
+
|
177
|
+
} // namespace execution
|
178
|
+
|
179
|
+
#else // defined(GENERATING_DOCUMENTATION)
|
180
|
+
|
181
|
+
namespace execution {
|
182
|
+
namespace detail {
|
183
|
+
namespace mapping {
|
184
|
+
|
185
|
+
template <int I> struct thread_t;
|
186
|
+
template <int I> struct new_thread_t;
|
187
|
+
template <int I> struct other_t;
|
188
|
+
|
189
|
+
} // namespace mapping
|
190
|
+
|
191
|
+
template <int I = 0>
|
192
|
+
struct mapping_t
|
193
|
+
{
|
194
|
+
#if defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
195
|
+
template <typename T>
|
196
|
+
ASIO_STATIC_CONSTEXPR(bool,
|
197
|
+
is_applicable_property_v = is_executor<T>::value
|
198
|
+
|| is_sender<T>::value || is_scheduler<T>::value);
|
199
|
+
#endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
200
|
+
|
201
|
+
ASIO_STATIC_CONSTEXPR(bool, is_requirable = false);
|
202
|
+
ASIO_STATIC_CONSTEXPR(bool, is_preferable = false);
|
203
|
+
typedef mapping_t polymorphic_query_result_type;
|
204
|
+
|
205
|
+
typedef detail::mapping::thread_t<I> thread_t;
|
206
|
+
typedef detail::mapping::new_thread_t<I> new_thread_t;
|
207
|
+
typedef detail::mapping::other_t<I> other_t;
|
208
|
+
|
209
|
+
ASIO_CONSTEXPR mapping_t()
|
210
|
+
: value_(-1)
|
211
|
+
{
|
212
|
+
}
|
213
|
+
|
214
|
+
ASIO_CONSTEXPR mapping_t(thread_t)
|
215
|
+
: value_(0)
|
216
|
+
{
|
217
|
+
}
|
218
|
+
|
219
|
+
ASIO_CONSTEXPR mapping_t(new_thread_t)
|
220
|
+
: value_(1)
|
221
|
+
{
|
222
|
+
}
|
223
|
+
|
224
|
+
ASIO_CONSTEXPR mapping_t(other_t)
|
225
|
+
: value_(2)
|
226
|
+
{
|
227
|
+
}
|
228
|
+
|
229
|
+
#if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
|
230
|
+
&& defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
231
|
+
template <typename T>
|
232
|
+
static ASIO_CONSTEXPR
|
233
|
+
typename traits::query_static_constexpr_member<T, mapping_t>::result_type
|
234
|
+
static_query()
|
235
|
+
ASIO_NOEXCEPT_IF((
|
236
|
+
traits::query_static_constexpr_member<T, mapping_t>::is_noexcept))
|
237
|
+
{
|
238
|
+
return traits::query_static_constexpr_member<T, mapping_t>::value();
|
239
|
+
}
|
240
|
+
|
241
|
+
template <typename T>
|
242
|
+
static ASIO_CONSTEXPR
|
243
|
+
typename traits::static_query<T, thread_t>::result_type
|
244
|
+
static_query(
|
245
|
+
typename enable_if<
|
246
|
+
!traits::query_static_constexpr_member<T, mapping_t>::is_valid
|
247
|
+
&& !traits::query_member<T, mapping_t>::is_valid
|
248
|
+
&& traits::static_query<T, thread_t>::is_valid
|
249
|
+
>::type* = 0) ASIO_NOEXCEPT
|
250
|
+
{
|
251
|
+
return traits::static_query<T, thread_t>::value();
|
252
|
+
}
|
253
|
+
|
254
|
+
template <typename T>
|
255
|
+
static ASIO_CONSTEXPR
|
256
|
+
typename traits::static_query<T, new_thread_t>::result_type
|
257
|
+
static_query(
|
258
|
+
typename enable_if<
|
259
|
+
!traits::query_static_constexpr_member<T, mapping_t>::is_valid
|
260
|
+
&& !traits::query_member<T, mapping_t>::is_valid
|
261
|
+
&& !traits::static_query<T, thread_t>::is_valid
|
262
|
+
&& traits::static_query<T, new_thread_t>::is_valid
|
263
|
+
>::type* = 0) ASIO_NOEXCEPT
|
264
|
+
{
|
265
|
+
return traits::static_query<T, new_thread_t>::value();
|
266
|
+
}
|
267
|
+
|
268
|
+
template <typename T>
|
269
|
+
static ASIO_CONSTEXPR
|
270
|
+
typename traits::static_query<T, other_t>::result_type
|
271
|
+
static_query(
|
272
|
+
typename enable_if<
|
273
|
+
!traits::query_static_constexpr_member<T, mapping_t>::is_valid
|
274
|
+
&& !traits::query_member<T, mapping_t>::is_valid
|
275
|
+
&& !traits::static_query<T, thread_t>::is_valid
|
276
|
+
&& !traits::static_query<T, new_thread_t>::is_valid
|
277
|
+
&& traits::static_query<T, other_t>::is_valid
|
278
|
+
>::type* = 0) ASIO_NOEXCEPT
|
279
|
+
{
|
280
|
+
return traits::static_query<T, other_t>::value();
|
281
|
+
}
|
282
|
+
|
283
|
+
template <typename E, typename T = decltype(mapping_t::static_query<E>())>
|
284
|
+
static ASIO_CONSTEXPR const T static_query_v
|
285
|
+
= mapping_t::static_query<E>();
|
286
|
+
#endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
|
287
|
+
// && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
288
|
+
|
289
|
+
friend ASIO_CONSTEXPR bool operator==(
|
290
|
+
const mapping_t& a, const mapping_t& b)
|
291
|
+
{
|
292
|
+
return a.value_ == b.value_;
|
293
|
+
}
|
294
|
+
|
295
|
+
friend ASIO_CONSTEXPR bool operator!=(
|
296
|
+
const mapping_t& a, const mapping_t& b)
|
297
|
+
{
|
298
|
+
return a.value_ != b.value_;
|
299
|
+
}
|
300
|
+
|
301
|
+
struct convertible_from_mapping_t
|
302
|
+
{
|
303
|
+
ASIO_CONSTEXPR convertible_from_mapping_t(mapping_t) {}
|
304
|
+
};
|
305
|
+
|
306
|
+
template <typename Executor>
|
307
|
+
friend ASIO_CONSTEXPR mapping_t query(
|
308
|
+
const Executor& ex, convertible_from_mapping_t,
|
309
|
+
typename enable_if<
|
310
|
+
can_query<const Executor&, thread_t>::value
|
311
|
+
>::type* = 0)
|
312
|
+
#if !defined(__clang__) // Clang crashes if noexcept is used here.
|
313
|
+
#if defined(ASIO_MSVC) // Visual C++ wants the type to be qualified.
|
314
|
+
ASIO_NOEXCEPT_IF((
|
315
|
+
is_nothrow_query<const Executor&, mapping_t<>::thread_t>::value))
|
316
|
+
#else // defined(ASIO_MSVC)
|
317
|
+
ASIO_NOEXCEPT_IF((
|
318
|
+
is_nothrow_query<const Executor&, thread_t>::value))
|
319
|
+
#endif // defined(ASIO_MSVC)
|
320
|
+
#endif // !defined(__clang__)
|
321
|
+
{
|
322
|
+
return asio::query(ex, thread_t());
|
323
|
+
}
|
324
|
+
|
325
|
+
template <typename Executor>
|
326
|
+
friend ASIO_CONSTEXPR mapping_t query(
|
327
|
+
const Executor& ex, convertible_from_mapping_t,
|
328
|
+
typename enable_if<
|
329
|
+
!can_query<const Executor&, thread_t>::value
|
330
|
+
&& can_query<const Executor&, new_thread_t>::value
|
331
|
+
>::type* = 0)
|
332
|
+
#if !defined(__clang__) // Clang crashes if noexcept is used here.
|
333
|
+
#if defined(ASIO_MSVC) // Visual C++ wants the type to be qualified.
|
334
|
+
ASIO_NOEXCEPT_IF((
|
335
|
+
is_nothrow_query<const Executor&, mapping_t<>::new_thread_t>::value))
|
336
|
+
#else // defined(ASIO_MSVC)
|
337
|
+
ASIO_NOEXCEPT_IF((
|
338
|
+
is_nothrow_query<const Executor&, new_thread_t>::value))
|
339
|
+
#endif // defined(ASIO_MSVC)
|
340
|
+
#endif // !defined(__clang__)
|
341
|
+
{
|
342
|
+
return asio::query(ex, new_thread_t());
|
343
|
+
}
|
344
|
+
|
345
|
+
template <typename Executor>
|
346
|
+
friend ASIO_CONSTEXPR mapping_t query(
|
347
|
+
const Executor& ex, convertible_from_mapping_t,
|
348
|
+
typename enable_if<
|
349
|
+
!can_query<const Executor&, thread_t>::value
|
350
|
+
&& !can_query<const Executor&, new_thread_t>::value
|
351
|
+
&& can_query<const Executor&, other_t>::value
|
352
|
+
>::type* = 0)
|
353
|
+
#if !defined(__clang__) // Clang crashes if noexcept is used here.
|
354
|
+
#if defined(ASIO_MSVC) // Visual C++ wants the type to be qualified.
|
355
|
+
ASIO_NOEXCEPT_IF((
|
356
|
+
is_nothrow_query<const Executor&, mapping_t<>::other_t>::value))
|
357
|
+
#else // defined(ASIO_MSVC)
|
358
|
+
ASIO_NOEXCEPT_IF((
|
359
|
+
is_nothrow_query<const Executor&, other_t>::value))
|
360
|
+
#endif // defined(ASIO_MSVC)
|
361
|
+
#endif // !defined(__clang__)
|
362
|
+
{
|
363
|
+
return asio::query(ex, other_t());
|
364
|
+
}
|
365
|
+
|
366
|
+
ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(thread_t, thread);
|
367
|
+
ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(new_thread_t, new_thread);
|
368
|
+
ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(other_t, other);
|
369
|
+
|
370
|
+
#if !defined(ASIO_HAS_CONSTEXPR)
|
371
|
+
static const mapping_t instance;
|
372
|
+
#endif // !defined(ASIO_HAS_CONSTEXPR)
|
373
|
+
|
374
|
+
private:
|
375
|
+
int value_;
|
376
|
+
};
|
377
|
+
|
378
|
+
#if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
|
379
|
+
&& defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
380
|
+
template <int I> template <typename E, typename T>
|
381
|
+
const T mapping_t<I>::static_query_v;
|
382
|
+
#endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
|
383
|
+
// && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
384
|
+
|
385
|
+
#if !defined(ASIO_HAS_CONSTEXPR)
|
386
|
+
template <int I>
|
387
|
+
const mapping_t<I> mapping_t<I>::instance;
|
388
|
+
#endif
|
389
|
+
|
390
|
+
template <int I>
|
391
|
+
const typename mapping_t<I>::thread_t mapping_t<I>::thread;
|
392
|
+
|
393
|
+
template <int I>
|
394
|
+
const typename mapping_t<I>::new_thread_t mapping_t<I>::new_thread;
|
395
|
+
|
396
|
+
template <int I>
|
397
|
+
const typename mapping_t<I>::other_t mapping_t<I>::other;
|
398
|
+
|
399
|
+
namespace mapping {
|
400
|
+
|
401
|
+
template <int I = 0>
|
402
|
+
struct thread_t
|
403
|
+
{
|
404
|
+
#if defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
405
|
+
template <typename T>
|
406
|
+
ASIO_STATIC_CONSTEXPR(bool,
|
407
|
+
is_applicable_property_v = is_executor<T>::value
|
408
|
+
|| is_sender<T>::value || is_scheduler<T>::value);
|
409
|
+
#endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
410
|
+
|
411
|
+
ASIO_STATIC_CONSTEXPR(bool, is_requirable = true);
|
412
|
+
ASIO_STATIC_CONSTEXPR(bool, is_preferable = true);
|
413
|
+
typedef mapping_t<I> polymorphic_query_result_type;
|
414
|
+
|
415
|
+
ASIO_CONSTEXPR thread_t()
|
416
|
+
{
|
417
|
+
}
|
418
|
+
|
419
|
+
#if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
|
420
|
+
&& defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
421
|
+
template <typename T>
|
422
|
+
static ASIO_CONSTEXPR
|
423
|
+
typename traits::query_static_constexpr_member<T, thread_t>::result_type
|
424
|
+
static_query()
|
425
|
+
ASIO_NOEXCEPT_IF((
|
426
|
+
traits::query_static_constexpr_member<T, thread_t>::is_noexcept))
|
427
|
+
{
|
428
|
+
return traits::query_static_constexpr_member<T, thread_t>::value();
|
429
|
+
}
|
430
|
+
|
431
|
+
template <typename T>
|
432
|
+
static ASIO_CONSTEXPR thread_t static_query(
|
433
|
+
typename enable_if<
|
434
|
+
!traits::query_static_constexpr_member<T, thread_t>::is_valid
|
435
|
+
&& !traits::query_member<T, thread_t>::is_valid
|
436
|
+
&& !traits::query_free<T, thread_t>::is_valid
|
437
|
+
&& !can_query<T, new_thread_t<I> >::value
|
438
|
+
&& !can_query<T, other_t<I> >::value
|
439
|
+
>::type* = 0) ASIO_NOEXCEPT
|
440
|
+
{
|
441
|
+
return thread_t();
|
442
|
+
}
|
443
|
+
|
444
|
+
template <typename E, typename T = decltype(thread_t::static_query<E>())>
|
445
|
+
static ASIO_CONSTEXPR const T static_query_v
|
446
|
+
= thread_t::static_query<E>();
|
447
|
+
#endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
|
448
|
+
// && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
449
|
+
|
450
|
+
static ASIO_CONSTEXPR mapping_t<I> value()
|
451
|
+
{
|
452
|
+
return thread_t();
|
453
|
+
}
|
454
|
+
|
455
|
+
friend ASIO_CONSTEXPR bool operator==(
|
456
|
+
const thread_t&, const thread_t&)
|
457
|
+
{
|
458
|
+
return true;
|
459
|
+
}
|
460
|
+
|
461
|
+
friend ASIO_CONSTEXPR bool operator!=(
|
462
|
+
const thread_t&, const thread_t&)
|
463
|
+
{
|
464
|
+
return false;
|
465
|
+
}
|
466
|
+
};
|
467
|
+
|
468
|
+
#if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
|
469
|
+
&& defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
470
|
+
template <int I> template <typename E, typename T>
|
471
|
+
const T thread_t<I>::static_query_v;
|
472
|
+
#endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
|
473
|
+
// && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
474
|
+
|
475
|
+
template <int I = 0>
|
476
|
+
struct new_thread_t
|
477
|
+
{
|
478
|
+
#if defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
479
|
+
template <typename T>
|
480
|
+
ASIO_STATIC_CONSTEXPR(bool,
|
481
|
+
is_applicable_property_v = is_executor<T>::value
|
482
|
+
|| is_sender<T>::value || is_scheduler<T>::value);
|
483
|
+
#endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
484
|
+
|
485
|
+
ASIO_STATIC_CONSTEXPR(bool, is_requirable = true);
|
486
|
+
ASIO_STATIC_CONSTEXPR(bool, is_preferable = true);
|
487
|
+
typedef mapping_t<I> polymorphic_query_result_type;
|
488
|
+
|
489
|
+
ASIO_CONSTEXPR new_thread_t()
|
490
|
+
{
|
491
|
+
}
|
492
|
+
|
493
|
+
#if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
|
494
|
+
&& defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
495
|
+
template <typename T>
|
496
|
+
static ASIO_CONSTEXPR
|
497
|
+
typename traits::query_static_constexpr_member<T, new_thread_t>::result_type
|
498
|
+
static_query()
|
499
|
+
ASIO_NOEXCEPT_IF((
|
500
|
+
traits::query_static_constexpr_member<T, new_thread_t>::is_noexcept))
|
501
|
+
{
|
502
|
+
return traits::query_static_constexpr_member<T, new_thread_t>::value();
|
503
|
+
}
|
504
|
+
|
505
|
+
template <typename E, typename T = decltype(new_thread_t::static_query<E>())>
|
506
|
+
static ASIO_CONSTEXPR const T static_query_v
|
507
|
+
= new_thread_t::static_query<E>();
|
508
|
+
#endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
|
509
|
+
// && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
510
|
+
|
511
|
+
static ASIO_CONSTEXPR mapping_t<I> value()
|
512
|
+
{
|
513
|
+
return new_thread_t();
|
514
|
+
}
|
515
|
+
|
516
|
+
friend ASIO_CONSTEXPR bool operator==(
|
517
|
+
const new_thread_t&, const new_thread_t&)
|
518
|
+
{
|
519
|
+
return true;
|
520
|
+
}
|
521
|
+
|
522
|
+
friend ASIO_CONSTEXPR bool operator!=(
|
523
|
+
const new_thread_t&, const new_thread_t&)
|
524
|
+
{
|
525
|
+
return false;
|
526
|
+
}
|
527
|
+
};
|
528
|
+
|
529
|
+
#if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
|
530
|
+
&& defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
531
|
+
template <int I> template <typename E, typename T>
|
532
|
+
const T new_thread_t<I>::static_query_v;
|
533
|
+
#endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
|
534
|
+
// && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
535
|
+
|
536
|
+
template <int I>
|
537
|
+
struct other_t
|
538
|
+
{
|
539
|
+
#if defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
540
|
+
template <typename T>
|
541
|
+
ASIO_STATIC_CONSTEXPR(bool,
|
542
|
+
is_applicable_property_v = is_executor<T>::value
|
543
|
+
|| is_sender<T>::value || is_scheduler<T>::value);
|
544
|
+
#endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
545
|
+
|
546
|
+
ASIO_STATIC_CONSTEXPR(bool, is_requirable = true);
|
547
|
+
ASIO_STATIC_CONSTEXPR(bool, is_preferable = true);
|
548
|
+
typedef mapping_t<I> polymorphic_query_result_type;
|
549
|
+
|
550
|
+
ASIO_CONSTEXPR other_t()
|
551
|
+
{
|
552
|
+
}
|
553
|
+
|
554
|
+
#if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
|
555
|
+
&& defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
556
|
+
template <typename T>
|
557
|
+
static ASIO_CONSTEXPR
|
558
|
+
typename traits::query_static_constexpr_member<T, other_t>::result_type
|
559
|
+
static_query()
|
560
|
+
ASIO_NOEXCEPT_IF((
|
561
|
+
traits::query_static_constexpr_member<T, other_t>::is_noexcept))
|
562
|
+
{
|
563
|
+
return traits::query_static_constexpr_member<T, other_t>::value();
|
564
|
+
}
|
565
|
+
|
566
|
+
template <typename E, typename T = decltype(other_t::static_query<E>())>
|
567
|
+
static ASIO_CONSTEXPR const T static_query_v
|
568
|
+
= other_t::static_query<E>();
|
569
|
+
#endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
|
570
|
+
// && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
571
|
+
|
572
|
+
static ASIO_CONSTEXPR mapping_t<I> value()
|
573
|
+
{
|
574
|
+
return other_t();
|
575
|
+
}
|
576
|
+
|
577
|
+
friend ASIO_CONSTEXPR bool operator==(
|
578
|
+
const other_t&, const other_t&)
|
579
|
+
{
|
580
|
+
return true;
|
581
|
+
}
|
582
|
+
|
583
|
+
friend ASIO_CONSTEXPR bool operator!=(
|
584
|
+
const other_t&, const other_t&)
|
585
|
+
{
|
586
|
+
return false;
|
587
|
+
}
|
588
|
+
};
|
589
|
+
|
590
|
+
#if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
|
591
|
+
&& defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
592
|
+
template <int I> template <typename E, typename T>
|
593
|
+
const T other_t<I>::static_query_v;
|
594
|
+
#endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
|
595
|
+
// && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
596
|
+
|
597
|
+
} // namespace mapping
|
598
|
+
} // namespace detail
|
599
|
+
|
600
|
+
typedef detail::mapping_t<> mapping_t;
|
601
|
+
|
602
|
+
#if defined(ASIO_HAS_CONSTEXPR) || defined(GENERATING_DOCUMENTATION)
|
603
|
+
constexpr mapping_t mapping;
|
604
|
+
#else // defined(ASIO_HAS_CONSTEXPR) || defined(GENERATING_DOCUMENTATION)
|
605
|
+
namespace { static const mapping_t& mapping = mapping_t::instance; }
|
606
|
+
#endif
|
607
|
+
|
608
|
+
} // namespace execution
|
609
|
+
|
610
|
+
#if !defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
611
|
+
|
612
|
+
template <typename T>
|
613
|
+
struct is_applicable_property<T, execution::mapping_t>
|
614
|
+
: integral_constant<bool,
|
615
|
+
execution::is_executor<T>::value
|
616
|
+
|| execution::is_sender<T>::value
|
617
|
+
|| execution::is_scheduler<T>::value>
|
618
|
+
{
|
619
|
+
};
|
620
|
+
|
621
|
+
template <typename T>
|
622
|
+
struct is_applicable_property<T, execution::mapping_t::thread_t>
|
623
|
+
: integral_constant<bool,
|
624
|
+
execution::is_executor<T>::value
|
625
|
+
|| execution::is_sender<T>::value
|
626
|
+
|| execution::is_scheduler<T>::value>
|
627
|
+
{
|
628
|
+
};
|
629
|
+
|
630
|
+
template <typename T>
|
631
|
+
struct is_applicable_property<T, execution::mapping_t::new_thread_t>
|
632
|
+
: integral_constant<bool,
|
633
|
+
execution::is_executor<T>::value
|
634
|
+
|| execution::is_sender<T>::value
|
635
|
+
|| execution::is_scheduler<T>::value>
|
636
|
+
{
|
637
|
+
};
|
638
|
+
|
639
|
+
template <typename T>
|
640
|
+
struct is_applicable_property<T, execution::mapping_t::other_t>
|
641
|
+
: integral_constant<bool,
|
642
|
+
execution::is_executor<T>::value
|
643
|
+
|| execution::is_sender<T>::value
|
644
|
+
|| execution::is_scheduler<T>::value>
|
645
|
+
{
|
646
|
+
};
|
647
|
+
|
648
|
+
#endif // !defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
649
|
+
|
650
|
+
namespace traits {
|
651
|
+
|
652
|
+
#if !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
|
653
|
+
|
654
|
+
template <typename T>
|
655
|
+
struct query_free_default<T, execution::mapping_t,
|
656
|
+
typename enable_if<
|
657
|
+
can_query<T, execution::mapping_t::thread_t>::value
|
658
|
+
>::type>
|
659
|
+
{
|
660
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
661
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
|
662
|
+
(is_nothrow_query<T, execution::mapping_t::thread_t>::value));
|
663
|
+
|
664
|
+
typedef execution::mapping_t result_type;
|
665
|
+
};
|
666
|
+
|
667
|
+
template <typename T>
|
668
|
+
struct query_free_default<T, execution::mapping_t,
|
669
|
+
typename enable_if<
|
670
|
+
!can_query<T, execution::mapping_t::thread_t>::value
|
671
|
+
&& can_query<T, execution::mapping_t::new_thread_t>::value
|
672
|
+
>::type>
|
673
|
+
{
|
674
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
675
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
|
676
|
+
(is_nothrow_query<T, execution::mapping_t::new_thread_t>::value));
|
677
|
+
|
678
|
+
typedef execution::mapping_t result_type;
|
679
|
+
};
|
680
|
+
|
681
|
+
template <typename T>
|
682
|
+
struct query_free_default<T, execution::mapping_t,
|
683
|
+
typename enable_if<
|
684
|
+
!can_query<T, execution::mapping_t::thread_t>::value
|
685
|
+
&& !can_query<T, execution::mapping_t::new_thread_t>::value
|
686
|
+
&& can_query<T, execution::mapping_t::other_t>::value
|
687
|
+
>::type>
|
688
|
+
{
|
689
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
690
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
|
691
|
+
(is_nothrow_query<T, execution::mapping_t::other_t>::value));
|
692
|
+
|
693
|
+
typedef execution::mapping_t result_type;
|
694
|
+
};
|
695
|
+
|
696
|
+
#endif // !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
|
697
|
+
|
698
|
+
#if !defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
|
699
|
+
|| !defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
700
|
+
|
701
|
+
template <typename T>
|
702
|
+
struct static_query<T, execution::mapping_t,
|
703
|
+
typename enable_if<
|
704
|
+
traits::query_static_constexpr_member<T,
|
705
|
+
execution::mapping_t>::is_valid
|
706
|
+
>::type>
|
707
|
+
{
|
708
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
709
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
710
|
+
|
711
|
+
typedef typename traits::query_static_constexpr_member<T,
|
712
|
+
execution::mapping_t>::result_type result_type;
|
713
|
+
|
714
|
+
static ASIO_CONSTEXPR result_type value()
|
715
|
+
{
|
716
|
+
return traits::query_static_constexpr_member<T,
|
717
|
+
execution::mapping_t>::value();
|
718
|
+
}
|
719
|
+
};
|
720
|
+
|
721
|
+
template <typename T>
|
722
|
+
struct static_query<T, execution::mapping_t,
|
723
|
+
typename enable_if<
|
724
|
+
!traits::query_static_constexpr_member<T, execution::mapping_t>::is_valid
|
725
|
+
&& !traits::query_member<T, execution::mapping_t>::is_valid
|
726
|
+
&& traits::static_query<T, execution::mapping_t::thread_t>::is_valid
|
727
|
+
>::type>
|
728
|
+
{
|
729
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
730
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
731
|
+
|
732
|
+
typedef typename traits::static_query<T,
|
733
|
+
execution::mapping_t::thread_t>::result_type result_type;
|
734
|
+
|
735
|
+
static ASIO_CONSTEXPR result_type value()
|
736
|
+
{
|
737
|
+
return traits::static_query<T, execution::mapping_t::thread_t>::value();
|
738
|
+
}
|
739
|
+
};
|
740
|
+
|
741
|
+
template <typename T>
|
742
|
+
struct static_query<T, execution::mapping_t,
|
743
|
+
typename enable_if<
|
744
|
+
!traits::query_static_constexpr_member<T, execution::mapping_t>::is_valid
|
745
|
+
&& !traits::query_member<T, execution::mapping_t>::is_valid
|
746
|
+
&& !traits::static_query<T, execution::mapping_t::thread_t>::is_valid
|
747
|
+
&& traits::static_query<T, execution::mapping_t::new_thread_t>::is_valid
|
748
|
+
>::type>
|
749
|
+
{
|
750
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
751
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
752
|
+
|
753
|
+
typedef typename traits::static_query<T,
|
754
|
+
execution::mapping_t::new_thread_t>::result_type result_type;
|
755
|
+
|
756
|
+
static ASIO_CONSTEXPR result_type value()
|
757
|
+
{
|
758
|
+
return traits::static_query<T, execution::mapping_t::new_thread_t>::value();
|
759
|
+
}
|
760
|
+
};
|
761
|
+
|
762
|
+
template <typename T>
|
763
|
+
struct static_query<T, execution::mapping_t,
|
764
|
+
typename enable_if<
|
765
|
+
!traits::query_static_constexpr_member<T, execution::mapping_t>::is_valid
|
766
|
+
&& !traits::query_member<T, execution::mapping_t>::is_valid
|
767
|
+
&& !traits::static_query<T, execution::mapping_t::thread_t>::is_valid
|
768
|
+
&& !traits::static_query<T, execution::mapping_t::new_thread_t>::is_valid
|
769
|
+
&& traits::static_query<T, execution::mapping_t::other_t>::is_valid
|
770
|
+
>::type>
|
771
|
+
{
|
772
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
773
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
774
|
+
|
775
|
+
typedef typename traits::static_query<T,
|
776
|
+
execution::mapping_t::other_t>::result_type result_type;
|
777
|
+
|
778
|
+
static ASIO_CONSTEXPR result_type value()
|
779
|
+
{
|
780
|
+
return traits::static_query<T, execution::mapping_t::other_t>::value();
|
781
|
+
}
|
782
|
+
};
|
783
|
+
|
784
|
+
template <typename T>
|
785
|
+
struct static_query<T, execution::mapping_t::thread_t,
|
786
|
+
typename enable_if<
|
787
|
+
traits::query_static_constexpr_member<T,
|
788
|
+
execution::mapping_t::thread_t>::is_valid
|
789
|
+
>::type>
|
790
|
+
{
|
791
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
792
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
793
|
+
|
794
|
+
typedef typename traits::query_static_constexpr_member<T,
|
795
|
+
execution::mapping_t::thread_t>::result_type result_type;
|
796
|
+
|
797
|
+
static ASIO_CONSTEXPR result_type value()
|
798
|
+
{
|
799
|
+
return traits::query_static_constexpr_member<T,
|
800
|
+
execution::mapping_t::thread_t>::value();
|
801
|
+
}
|
802
|
+
};
|
803
|
+
|
804
|
+
template <typename T>
|
805
|
+
struct static_query<T, execution::mapping_t::thread_t,
|
806
|
+
typename enable_if<
|
807
|
+
!traits::query_static_constexpr_member<T,
|
808
|
+
execution::mapping_t::thread_t>::is_valid
|
809
|
+
&& !traits::query_member<T, execution::mapping_t::thread_t>::is_valid
|
810
|
+
&& !traits::query_free<T, execution::mapping_t::thread_t>::is_valid
|
811
|
+
&& !can_query<T, execution::mapping_t::new_thread_t>::value
|
812
|
+
&& !can_query<T, execution::mapping_t::other_t>::value
|
813
|
+
>::type>
|
814
|
+
{
|
815
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
816
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
817
|
+
|
818
|
+
typedef execution::mapping_t::thread_t result_type;
|
819
|
+
|
820
|
+
static ASIO_CONSTEXPR result_type value()
|
821
|
+
{
|
822
|
+
return result_type();
|
823
|
+
}
|
824
|
+
};
|
825
|
+
|
826
|
+
template <typename T>
|
827
|
+
struct static_query<T, execution::mapping_t::new_thread_t,
|
828
|
+
typename enable_if<
|
829
|
+
traits::query_static_constexpr_member<T,
|
830
|
+
execution::mapping_t::new_thread_t>::is_valid
|
831
|
+
>::type>
|
832
|
+
{
|
833
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
834
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
835
|
+
|
836
|
+
typedef typename traits::query_static_constexpr_member<T,
|
837
|
+
execution::mapping_t::new_thread_t>::result_type result_type;
|
838
|
+
|
839
|
+
static ASIO_CONSTEXPR result_type value()
|
840
|
+
{
|
841
|
+
return traits::query_static_constexpr_member<T,
|
842
|
+
execution::mapping_t::new_thread_t>::value();
|
843
|
+
}
|
844
|
+
};
|
845
|
+
|
846
|
+
template <typename T>
|
847
|
+
struct static_query<T, execution::mapping_t::other_t,
|
848
|
+
typename enable_if<
|
849
|
+
traits::query_static_constexpr_member<T,
|
850
|
+
execution::mapping_t::other_t>::is_valid
|
851
|
+
>::type>
|
852
|
+
{
|
853
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
854
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
855
|
+
|
856
|
+
typedef typename traits::query_static_constexpr_member<T,
|
857
|
+
execution::mapping_t::other_t>::result_type result_type;
|
858
|
+
|
859
|
+
static ASIO_CONSTEXPR result_type value()
|
860
|
+
{
|
861
|
+
return traits::query_static_constexpr_member<T,
|
862
|
+
execution::mapping_t::other_t>::value();
|
863
|
+
}
|
864
|
+
};
|
865
|
+
|
866
|
+
#endif // !defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
|
867
|
+
// || !defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
868
|
+
|
869
|
+
#if !defined(ASIO_HAS_DEDUCED_STATIC_REQUIRE_TRAIT)
|
870
|
+
|
871
|
+
template <typename T>
|
872
|
+
struct static_require<T, execution::mapping_t::thread_t,
|
873
|
+
typename enable_if<
|
874
|
+
static_query<T, execution::mapping_t::thread_t>::is_valid
|
875
|
+
>::type>
|
876
|
+
{
|
877
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid =
|
878
|
+
(is_same<typename static_query<T,
|
879
|
+
execution::mapping_t::thread_t>::result_type,
|
880
|
+
execution::mapping_t::thread_t>::value));
|
881
|
+
};
|
882
|
+
|
883
|
+
template <typename T>
|
884
|
+
struct static_require<T, execution::mapping_t::new_thread_t,
|
885
|
+
typename enable_if<
|
886
|
+
static_query<T, execution::mapping_t::new_thread_t>::is_valid
|
887
|
+
>::type>
|
888
|
+
{
|
889
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid =
|
890
|
+
(is_same<typename static_query<T,
|
891
|
+
execution::mapping_t::new_thread_t>::result_type,
|
892
|
+
execution::mapping_t::new_thread_t>::value));
|
893
|
+
};
|
894
|
+
|
895
|
+
template <typename T>
|
896
|
+
struct static_require<T, execution::mapping_t::other_t,
|
897
|
+
typename enable_if<
|
898
|
+
static_query<T, execution::mapping_t::other_t>::is_valid
|
899
|
+
>::type>
|
900
|
+
{
|
901
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid =
|
902
|
+
(is_same<typename static_query<T,
|
903
|
+
execution::mapping_t::other_t>::result_type,
|
904
|
+
execution::mapping_t::other_t>::value));
|
905
|
+
};
|
906
|
+
|
907
|
+
#endif // !defined(ASIO_HAS_DEDUCED_STATIC_REQUIRE_TRAIT)
|
908
|
+
|
909
|
+
} // namespace traits
|
910
|
+
|
911
|
+
#endif // defined(GENERATING_DOCUMENTATION)
|
912
|
+
|
913
|
+
} // namespace asio
|
914
|
+
|
915
|
+
#include "asio/detail/pop_options.hpp"
|
916
|
+
|
917
|
+
#endif // ASIO_EXECUTION_MAPPING_HPP
|