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,47 @@
|
|
1
|
+
//
|
2
|
+
// execution/bad_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_BAD_EXECUTOR_HPP
|
12
|
+
#define ASIO_EXECUTION_BAD_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 <exception>
|
20
|
+
#include "asio/detail/push_options.hpp"
|
21
|
+
|
22
|
+
namespace asio {
|
23
|
+
namespace execution {
|
24
|
+
|
25
|
+
/// Exception thrown when trying to access an empty polymorphic executor.
|
26
|
+
class bad_executor
|
27
|
+
: public std::exception
|
28
|
+
{
|
29
|
+
public:
|
30
|
+
/// Constructor.
|
31
|
+
ASIO_DECL bad_executor() ASIO_NOEXCEPT;
|
32
|
+
|
33
|
+
/// Obtain message associated with exception.
|
34
|
+
ASIO_DECL virtual const char* what() const
|
35
|
+
ASIO_NOEXCEPT_OR_NOTHROW;
|
36
|
+
};
|
37
|
+
|
38
|
+
} // namespace execution
|
39
|
+
} // namespace asio
|
40
|
+
|
41
|
+
#include "asio/detail/pop_options.hpp"
|
42
|
+
|
43
|
+
#if defined(ASIO_HEADER_ONLY)
|
44
|
+
# include "asio/execution/impl/bad_executor.ipp"
|
45
|
+
#endif // defined(ASIO_HEADER_ONLY)
|
46
|
+
|
47
|
+
#endif // ASIO_EXECUTION_BAD_EXECUTOR_HPP
|
@@ -0,0 +1,1351 @@
|
|
1
|
+
//
|
2
|
+
// execution/blocking.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_BLOCKING_HPP
|
12
|
+
#define ASIO_EXECUTION_BLOCKING_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/executor.hpp"
|
22
|
+
#include "asio/execution/scheduler.hpp"
|
23
|
+
#include "asio/execution/sender.hpp"
|
24
|
+
#include "asio/is_applicable_property.hpp"
|
25
|
+
#include "asio/prefer.hpp"
|
26
|
+
#include "asio/query.hpp"
|
27
|
+
#include "asio/require.hpp"
|
28
|
+
#include "asio/traits/query_free.hpp"
|
29
|
+
#include "asio/traits/query_member.hpp"
|
30
|
+
#include "asio/traits/query_static_constexpr_member.hpp"
|
31
|
+
#include "asio/traits/static_query.hpp"
|
32
|
+
#include "asio/traits/static_require.hpp"
|
33
|
+
|
34
|
+
#include "asio/detail/push_options.hpp"
|
35
|
+
|
36
|
+
namespace asio {
|
37
|
+
|
38
|
+
#if defined(GENERATING_DOCUMENTATION)
|
39
|
+
|
40
|
+
namespace execution {
|
41
|
+
|
42
|
+
/// A property to describe what guarantees an executor makes about the blocking
|
43
|
+
/// behaviour of their execution functions.
|
44
|
+
struct blocking_t
|
45
|
+
{
|
46
|
+
/// The blocking_t property applies to executors, senders, and schedulers.
|
47
|
+
template <typename T>
|
48
|
+
static constexpr bool is_applicable_property_v =
|
49
|
+
is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
|
50
|
+
|
51
|
+
/// The top-level blocking_t property cannot be required.
|
52
|
+
static constexpr bool is_requirable = false;
|
53
|
+
|
54
|
+
/// The top-level blocking_t property cannot be preferred.
|
55
|
+
static constexpr bool is_preferable = false;
|
56
|
+
|
57
|
+
/// The type returned by queries against an @c any_executor.
|
58
|
+
typedef blocking_t polymorphic_query_result_type;
|
59
|
+
|
60
|
+
/// A sub-property that indicates that invocation of an executor's execution
|
61
|
+
/// function may block pending completion of one or more invocations of the
|
62
|
+
/// submitted function object.
|
63
|
+
struct possibly_t
|
64
|
+
{
|
65
|
+
/// The blocking_t::possibly_t property applies to executors, senders, and
|
66
|
+
/// schedulers.
|
67
|
+
template <typename T>
|
68
|
+
static constexpr bool is_applicable_property_v =
|
69
|
+
is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
|
70
|
+
|
71
|
+
/// The blocking_t::possibly_t property can be required.
|
72
|
+
static constexpr bool is_requirable = true;
|
73
|
+
|
74
|
+
/// The blocking_t::possibly_t property can be preferred.
|
75
|
+
static constexpr bool is_preferable = true;
|
76
|
+
|
77
|
+
/// The type returned by queries against an @c any_executor.
|
78
|
+
typedef blocking_t polymorphic_query_result_type;
|
79
|
+
|
80
|
+
/// Default constructor.
|
81
|
+
constexpr possibly_t();
|
82
|
+
|
83
|
+
/// Get the value associated with a property object.
|
84
|
+
/**
|
85
|
+
* @returns possibly_t();
|
86
|
+
*/
|
87
|
+
static constexpr blocking_t value();
|
88
|
+
};
|
89
|
+
|
90
|
+
/// A sub-property that indicates that invocation of an executor's execution
|
91
|
+
/// function shall block until completion of all invocations of the submitted
|
92
|
+
/// function object.
|
93
|
+
struct always_t
|
94
|
+
{
|
95
|
+
/// The blocking_t::always_t property applies to executors, senders, and
|
96
|
+
/// schedulers.
|
97
|
+
template <typename T>
|
98
|
+
static constexpr bool is_applicable_property_v =
|
99
|
+
is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
|
100
|
+
|
101
|
+
/// The blocking_t::always_t property can be required.
|
102
|
+
static constexpr bool is_requirable = true;
|
103
|
+
|
104
|
+
/// The blocking_t::always_t property can be preferred.
|
105
|
+
static constexpr bool is_preferable = false;
|
106
|
+
|
107
|
+
/// The type returned by queries against an @c any_executor.
|
108
|
+
typedef blocking_t polymorphic_query_result_type;
|
109
|
+
|
110
|
+
/// Default constructor.
|
111
|
+
constexpr always_t();
|
112
|
+
|
113
|
+
/// Get the value associated with a property object.
|
114
|
+
/**
|
115
|
+
* @returns always_t();
|
116
|
+
*/
|
117
|
+
static constexpr blocking_t value();
|
118
|
+
};
|
119
|
+
|
120
|
+
/// A sub-property that indicates that invocation of an executor's execution
|
121
|
+
/// function shall not block pending completion of the invocations of the
|
122
|
+
/// submitted function object.
|
123
|
+
struct never_t
|
124
|
+
{
|
125
|
+
/// The blocking_t::never_t property applies to executors, senders, and
|
126
|
+
/// schedulers.
|
127
|
+
template <typename T>
|
128
|
+
static constexpr bool is_applicable_property_v =
|
129
|
+
is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
|
130
|
+
|
131
|
+
/// The blocking_t::never_t property can be required.
|
132
|
+
static constexpr bool is_requirable = true;
|
133
|
+
|
134
|
+
/// The blocking_t::never_t property can be preferred.
|
135
|
+
static constexpr bool is_preferable = true;
|
136
|
+
|
137
|
+
/// The type returned by queries against an @c any_executor.
|
138
|
+
typedef blocking_t polymorphic_query_result_type;
|
139
|
+
|
140
|
+
/// Default constructor.
|
141
|
+
constexpr never_t();
|
142
|
+
|
143
|
+
/// Get the value associated with a property object.
|
144
|
+
/**
|
145
|
+
* @returns never_t();
|
146
|
+
*/
|
147
|
+
static constexpr blocking_t value();
|
148
|
+
};
|
149
|
+
|
150
|
+
/// A special value used for accessing the blocking_t::possibly_t property.
|
151
|
+
static constexpr possibly_t possibly;
|
152
|
+
|
153
|
+
/// A special value used for accessing the blocking_t::always_t property.
|
154
|
+
static constexpr always_t always;
|
155
|
+
|
156
|
+
/// A special value used for accessing the blocking_t::never_t property.
|
157
|
+
static constexpr never_t never;
|
158
|
+
|
159
|
+
/// Default constructor.
|
160
|
+
constexpr blocking_t();
|
161
|
+
|
162
|
+
/// Construct from a sub-property value.
|
163
|
+
constexpr blocking_t(possibly_t);
|
164
|
+
|
165
|
+
/// Construct from a sub-property value.
|
166
|
+
constexpr blocking_t(always_t);
|
167
|
+
|
168
|
+
/// Construct from a sub-property value.
|
169
|
+
constexpr blocking_t(never_t);
|
170
|
+
|
171
|
+
/// Compare property values for equality.
|
172
|
+
friend constexpr bool operator==(
|
173
|
+
const blocking_t& a, const blocking_t& b) noexcept;
|
174
|
+
|
175
|
+
/// Compare property values for inequality.
|
176
|
+
friend constexpr bool operator!=(
|
177
|
+
const blocking_t& a, const blocking_t& b) noexcept;
|
178
|
+
};
|
179
|
+
|
180
|
+
/// A special value used for accessing the blocking_t property.
|
181
|
+
constexpr blocking_t blocking;
|
182
|
+
|
183
|
+
} // namespace execution
|
184
|
+
|
185
|
+
#else // defined(GENERATING_DOCUMENTATION)
|
186
|
+
|
187
|
+
namespace execution {
|
188
|
+
namespace detail {
|
189
|
+
namespace blocking {
|
190
|
+
|
191
|
+
template <int I> struct possibly_t;
|
192
|
+
template <int I> struct always_t;
|
193
|
+
template <int I> struct never_t;
|
194
|
+
|
195
|
+
} // namespace blocking
|
196
|
+
namespace blocking_adaptation {
|
197
|
+
|
198
|
+
template <int I> struct allowed_t;
|
199
|
+
|
200
|
+
template <typename Executor, typename Function>
|
201
|
+
void blocking_execute(
|
202
|
+
ASIO_MOVE_ARG(Executor) ex,
|
203
|
+
ASIO_MOVE_ARG(Function) func);
|
204
|
+
|
205
|
+
} // namespace blocking_adaptation
|
206
|
+
|
207
|
+
template <int I = 0>
|
208
|
+
struct blocking_t
|
209
|
+
{
|
210
|
+
#if defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
211
|
+
template <typename T>
|
212
|
+
ASIO_STATIC_CONSTEXPR(bool,
|
213
|
+
is_applicable_property_v = is_executor<T>::value
|
214
|
+
|| is_sender<T>::value || is_scheduler<T>::value);
|
215
|
+
#endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
216
|
+
|
217
|
+
ASIO_STATIC_CONSTEXPR(bool, is_requirable = false);
|
218
|
+
ASIO_STATIC_CONSTEXPR(bool, is_preferable = false);
|
219
|
+
typedef blocking_t polymorphic_query_result_type;
|
220
|
+
|
221
|
+
typedef detail::blocking::possibly_t<I> possibly_t;
|
222
|
+
typedef detail::blocking::always_t<I> always_t;
|
223
|
+
typedef detail::blocking::never_t<I> never_t;
|
224
|
+
|
225
|
+
ASIO_CONSTEXPR blocking_t()
|
226
|
+
: value_(-1)
|
227
|
+
{
|
228
|
+
}
|
229
|
+
|
230
|
+
ASIO_CONSTEXPR blocking_t(possibly_t)
|
231
|
+
: value_(0)
|
232
|
+
{
|
233
|
+
}
|
234
|
+
|
235
|
+
ASIO_CONSTEXPR blocking_t(always_t)
|
236
|
+
: value_(1)
|
237
|
+
{
|
238
|
+
}
|
239
|
+
|
240
|
+
ASIO_CONSTEXPR blocking_t(never_t)
|
241
|
+
: value_(2)
|
242
|
+
{
|
243
|
+
}
|
244
|
+
|
245
|
+
#if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
|
246
|
+
&& defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
247
|
+
template <typename T>
|
248
|
+
static ASIO_CONSTEXPR
|
249
|
+
typename traits::query_static_constexpr_member<T, blocking_t>::result_type
|
250
|
+
static_query()
|
251
|
+
ASIO_NOEXCEPT_IF((
|
252
|
+
traits::query_static_constexpr_member<T, blocking_t>::is_noexcept))
|
253
|
+
{
|
254
|
+
return traits::query_static_constexpr_member<T, blocking_t>::value();
|
255
|
+
}
|
256
|
+
|
257
|
+
template <typename T>
|
258
|
+
static ASIO_CONSTEXPR
|
259
|
+
typename traits::static_query<T, possibly_t>::result_type
|
260
|
+
static_query(
|
261
|
+
typename enable_if<
|
262
|
+
!traits::query_static_constexpr_member<T, blocking_t>::is_valid
|
263
|
+
&& !traits::query_member<T, blocking_t>::is_valid
|
264
|
+
&& traits::static_query<T, possibly_t>::is_valid
|
265
|
+
>::type* = 0) ASIO_NOEXCEPT
|
266
|
+
{
|
267
|
+
return traits::static_query<T, possibly_t>::value();
|
268
|
+
}
|
269
|
+
|
270
|
+
template <typename T>
|
271
|
+
static ASIO_CONSTEXPR
|
272
|
+
typename traits::static_query<T, always_t>::result_type
|
273
|
+
static_query(
|
274
|
+
typename enable_if<
|
275
|
+
!traits::query_static_constexpr_member<T, blocking_t>::is_valid
|
276
|
+
&& !traits::query_member<T, blocking_t>::is_valid
|
277
|
+
&& !traits::static_query<T, possibly_t>::is_valid
|
278
|
+
&& traits::static_query<T, always_t>::is_valid
|
279
|
+
>::type* = 0) ASIO_NOEXCEPT
|
280
|
+
{
|
281
|
+
return traits::static_query<T, always_t>::value();
|
282
|
+
}
|
283
|
+
|
284
|
+
template <typename T>
|
285
|
+
static ASIO_CONSTEXPR
|
286
|
+
typename traits::static_query<T, never_t>::result_type
|
287
|
+
static_query(
|
288
|
+
typename enable_if<
|
289
|
+
!traits::query_static_constexpr_member<T, blocking_t>::is_valid
|
290
|
+
&& !traits::query_member<T, blocking_t>::is_valid
|
291
|
+
&& !traits::static_query<T, possibly_t>::is_valid
|
292
|
+
&& !traits::static_query<T, always_t>::is_valid
|
293
|
+
&& traits::static_query<T, never_t>::is_valid
|
294
|
+
>::type* = 0) ASIO_NOEXCEPT
|
295
|
+
{
|
296
|
+
return traits::static_query<T, never_t>::value();
|
297
|
+
}
|
298
|
+
|
299
|
+
template <typename E, typename T = decltype(blocking_t::static_query<E>())>
|
300
|
+
static ASIO_CONSTEXPR const T static_query_v
|
301
|
+
= blocking_t::static_query<E>();
|
302
|
+
#endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
|
303
|
+
// && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
304
|
+
|
305
|
+
friend ASIO_CONSTEXPR bool operator==(
|
306
|
+
const blocking_t& a, const blocking_t& b)
|
307
|
+
{
|
308
|
+
return a.value_ == b.value_;
|
309
|
+
}
|
310
|
+
|
311
|
+
friend ASIO_CONSTEXPR bool operator!=(
|
312
|
+
const blocking_t& a, const blocking_t& b)
|
313
|
+
{
|
314
|
+
return a.value_ != b.value_;
|
315
|
+
}
|
316
|
+
|
317
|
+
struct convertible_from_blocking_t
|
318
|
+
{
|
319
|
+
ASIO_CONSTEXPR convertible_from_blocking_t(blocking_t) {}
|
320
|
+
};
|
321
|
+
|
322
|
+
template <typename Executor>
|
323
|
+
friend ASIO_CONSTEXPR blocking_t query(
|
324
|
+
const Executor& ex, convertible_from_blocking_t,
|
325
|
+
typename enable_if<
|
326
|
+
can_query<const Executor&, possibly_t>::value
|
327
|
+
>::type* = 0)
|
328
|
+
#if !defined(__clang__) // Clang crashes if noexcept is used here.
|
329
|
+
#if defined(ASIO_MSVC) // Visual C++ wants the type to be qualified.
|
330
|
+
ASIO_NOEXCEPT_IF((
|
331
|
+
is_nothrow_query<const Executor&, blocking_t<>::possibly_t>::value))
|
332
|
+
#else // defined(ASIO_MSVC)
|
333
|
+
ASIO_NOEXCEPT_IF((
|
334
|
+
is_nothrow_query<const Executor&, possibly_t>::value))
|
335
|
+
#endif // defined(ASIO_MSVC)
|
336
|
+
#endif // !defined(__clang__)
|
337
|
+
{
|
338
|
+
return asio::query(ex, possibly_t());
|
339
|
+
}
|
340
|
+
|
341
|
+
template <typename Executor>
|
342
|
+
friend ASIO_CONSTEXPR blocking_t query(
|
343
|
+
const Executor& ex, convertible_from_blocking_t,
|
344
|
+
typename enable_if<
|
345
|
+
!can_query<const Executor&, possibly_t>::value
|
346
|
+
&& can_query<const Executor&, always_t>::value
|
347
|
+
>::type* = 0)
|
348
|
+
#if !defined(__clang__) // Clang crashes if noexcept is used here.
|
349
|
+
#if defined(ASIO_MSVC) // Visual C++ wants the type to be qualified.
|
350
|
+
ASIO_NOEXCEPT_IF((
|
351
|
+
is_nothrow_query<const Executor&, blocking_t<>::always_t>::value))
|
352
|
+
#else // defined(ASIO_MSVC)
|
353
|
+
ASIO_NOEXCEPT_IF((
|
354
|
+
is_nothrow_query<const Executor&, always_t>::value))
|
355
|
+
#endif // defined(ASIO_MSVC)
|
356
|
+
#endif // !defined(__clang__)
|
357
|
+
{
|
358
|
+
return asio::query(ex, always_t());
|
359
|
+
}
|
360
|
+
|
361
|
+
template <typename Executor>
|
362
|
+
friend ASIO_CONSTEXPR blocking_t query(
|
363
|
+
const Executor& ex, convertible_from_blocking_t,
|
364
|
+
typename enable_if<
|
365
|
+
!can_query<const Executor&, possibly_t>::value
|
366
|
+
&& !can_query<const Executor&, always_t>::value
|
367
|
+
&& can_query<const Executor&, never_t>::value
|
368
|
+
>::type* = 0)
|
369
|
+
#if !defined(__clang__) // Clang crashes if noexcept is used here.
|
370
|
+
#if defined(ASIO_MSVC) // Visual C++ wants the type to be qualified.
|
371
|
+
ASIO_NOEXCEPT_IF((
|
372
|
+
is_nothrow_query<const Executor&, blocking_t<>::never_t>::value))
|
373
|
+
#else // defined(ASIO_MSVC)
|
374
|
+
ASIO_NOEXCEPT_IF((
|
375
|
+
is_nothrow_query<const Executor&, never_t>::value))
|
376
|
+
#endif // defined(ASIO_MSVC)
|
377
|
+
#endif // !defined(__clang__)
|
378
|
+
{
|
379
|
+
return asio::query(ex, never_t());
|
380
|
+
}
|
381
|
+
|
382
|
+
ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(possibly_t, possibly);
|
383
|
+
ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(always_t, always);
|
384
|
+
ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(never_t, never);
|
385
|
+
|
386
|
+
#if !defined(ASIO_HAS_CONSTEXPR)
|
387
|
+
static const blocking_t instance;
|
388
|
+
#endif // !defined(ASIO_HAS_CONSTEXPR)
|
389
|
+
|
390
|
+
private:
|
391
|
+
int value_;
|
392
|
+
};
|
393
|
+
|
394
|
+
#if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
|
395
|
+
&& defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
396
|
+
template <int I> template <typename E, typename T>
|
397
|
+
const T blocking_t<I>::static_query_v;
|
398
|
+
#endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
|
399
|
+
// && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
400
|
+
|
401
|
+
#if !defined(ASIO_HAS_CONSTEXPR)
|
402
|
+
template <int I>
|
403
|
+
const blocking_t<I> blocking_t<I>::instance;
|
404
|
+
#endif
|
405
|
+
|
406
|
+
template <int I>
|
407
|
+
const typename blocking_t<I>::possibly_t blocking_t<I>::possibly;
|
408
|
+
|
409
|
+
template <int I>
|
410
|
+
const typename blocking_t<I>::always_t blocking_t<I>::always;
|
411
|
+
|
412
|
+
template <int I>
|
413
|
+
const typename blocking_t<I>::never_t blocking_t<I>::never;
|
414
|
+
|
415
|
+
namespace blocking {
|
416
|
+
|
417
|
+
template <int I = 0>
|
418
|
+
struct possibly_t
|
419
|
+
{
|
420
|
+
#if defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
421
|
+
template <typename T>
|
422
|
+
ASIO_STATIC_CONSTEXPR(bool,
|
423
|
+
is_applicable_property_v = is_executor<T>::value
|
424
|
+
|| is_sender<T>::value || is_scheduler<T>::value);
|
425
|
+
#endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
426
|
+
|
427
|
+
ASIO_STATIC_CONSTEXPR(bool, is_requirable = true);
|
428
|
+
ASIO_STATIC_CONSTEXPR(bool, is_preferable = true);
|
429
|
+
typedef blocking_t<I> polymorphic_query_result_type;
|
430
|
+
|
431
|
+
ASIO_CONSTEXPR possibly_t()
|
432
|
+
{
|
433
|
+
}
|
434
|
+
|
435
|
+
#if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
|
436
|
+
&& defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
437
|
+
template <typename T>
|
438
|
+
static ASIO_CONSTEXPR
|
439
|
+
typename traits::query_static_constexpr_member<T, possibly_t>::result_type
|
440
|
+
static_query()
|
441
|
+
ASIO_NOEXCEPT_IF((
|
442
|
+
traits::query_static_constexpr_member<T, possibly_t>::is_noexcept))
|
443
|
+
{
|
444
|
+
return traits::query_static_constexpr_member<T, possibly_t>::value();
|
445
|
+
}
|
446
|
+
|
447
|
+
template <typename T>
|
448
|
+
static ASIO_CONSTEXPR possibly_t static_query(
|
449
|
+
typename enable_if<
|
450
|
+
!traits::query_static_constexpr_member<T, possibly_t>::is_valid
|
451
|
+
&& !traits::query_member<T, possibly_t>::is_valid
|
452
|
+
&& !traits::query_free<T, possibly_t>::is_valid
|
453
|
+
&& !can_query<T, always_t<I> >::value
|
454
|
+
&& !can_query<T, never_t<I> >::value
|
455
|
+
>::type* = 0) ASIO_NOEXCEPT
|
456
|
+
{
|
457
|
+
return possibly_t();
|
458
|
+
}
|
459
|
+
|
460
|
+
template <typename E, typename T = decltype(possibly_t::static_query<E>())>
|
461
|
+
static ASIO_CONSTEXPR const T static_query_v
|
462
|
+
= possibly_t::static_query<E>();
|
463
|
+
#endif // defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
464
|
+
// && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
465
|
+
|
466
|
+
static ASIO_CONSTEXPR blocking_t<I> value()
|
467
|
+
{
|
468
|
+
return possibly_t();
|
469
|
+
}
|
470
|
+
|
471
|
+
friend ASIO_CONSTEXPR bool operator==(
|
472
|
+
const possibly_t&, const possibly_t&)
|
473
|
+
{
|
474
|
+
return true;
|
475
|
+
}
|
476
|
+
|
477
|
+
friend ASIO_CONSTEXPR bool operator!=(
|
478
|
+
const possibly_t&, const possibly_t&)
|
479
|
+
{
|
480
|
+
return false;
|
481
|
+
}
|
482
|
+
|
483
|
+
friend ASIO_CONSTEXPR bool operator==(
|
484
|
+
const possibly_t&, const always_t<I>&)
|
485
|
+
{
|
486
|
+
return false;
|
487
|
+
}
|
488
|
+
|
489
|
+
friend ASIO_CONSTEXPR bool operator!=(
|
490
|
+
const possibly_t&, const always_t<I>&)
|
491
|
+
{
|
492
|
+
return true;
|
493
|
+
}
|
494
|
+
|
495
|
+
friend ASIO_CONSTEXPR bool operator==(
|
496
|
+
const possibly_t&, const never_t<I>&)
|
497
|
+
{
|
498
|
+
return false;
|
499
|
+
}
|
500
|
+
|
501
|
+
friend ASIO_CONSTEXPR bool operator!=(
|
502
|
+
const possibly_t&, const never_t<I>&)
|
503
|
+
{
|
504
|
+
return true;
|
505
|
+
}
|
506
|
+
};
|
507
|
+
|
508
|
+
#if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
|
509
|
+
&& defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
510
|
+
template <int I> template <typename E, typename T>
|
511
|
+
const T possibly_t<I>::static_query_v;
|
512
|
+
#endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
|
513
|
+
// && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
514
|
+
|
515
|
+
template <typename Executor>
|
516
|
+
class adapter
|
517
|
+
{
|
518
|
+
public:
|
519
|
+
adapter(int, const Executor& e) ASIO_NOEXCEPT
|
520
|
+
: executor_(e)
|
521
|
+
{
|
522
|
+
}
|
523
|
+
|
524
|
+
adapter(const adapter& other) ASIO_NOEXCEPT
|
525
|
+
: executor_(other.executor_)
|
526
|
+
{
|
527
|
+
}
|
528
|
+
|
529
|
+
#if defined(ASIO_HAS_MOVE)
|
530
|
+
adapter(adapter&& other) ASIO_NOEXCEPT
|
531
|
+
: executor_(ASIO_MOVE_CAST(Executor)(other.executor_))
|
532
|
+
{
|
533
|
+
}
|
534
|
+
#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
|
535
|
+
|
536
|
+
template <int I>
|
537
|
+
static ASIO_CONSTEXPR always_t<I> query(
|
538
|
+
blocking_t<I>) ASIO_NOEXCEPT
|
539
|
+
{
|
540
|
+
return always_t<I>();
|
541
|
+
}
|
542
|
+
|
543
|
+
template <int I>
|
544
|
+
static ASIO_CONSTEXPR always_t<I> query(
|
545
|
+
possibly_t<I>) ASIO_NOEXCEPT
|
546
|
+
{
|
547
|
+
return always_t<I>();
|
548
|
+
}
|
549
|
+
|
550
|
+
template <int I>
|
551
|
+
static ASIO_CONSTEXPR always_t<I> query(
|
552
|
+
always_t<I>) ASIO_NOEXCEPT
|
553
|
+
{
|
554
|
+
return always_t<I>();
|
555
|
+
}
|
556
|
+
|
557
|
+
template <int I>
|
558
|
+
static ASIO_CONSTEXPR always_t<I> query(
|
559
|
+
never_t<I>) ASIO_NOEXCEPT
|
560
|
+
{
|
561
|
+
return always_t<I>();
|
562
|
+
}
|
563
|
+
|
564
|
+
template <typename Property>
|
565
|
+
typename enable_if<
|
566
|
+
can_query<const Executor&, Property>::value,
|
567
|
+
typename query_result<const Executor&, Property>::type
|
568
|
+
>::type query(const Property& p) const
|
569
|
+
ASIO_NOEXCEPT_IF((
|
570
|
+
is_nothrow_query<const Executor&, Property>::value))
|
571
|
+
{
|
572
|
+
return asio::query(executor_, p);
|
573
|
+
}
|
574
|
+
|
575
|
+
template <int I>
|
576
|
+
typename enable_if<
|
577
|
+
can_require<const Executor&, possibly_t<I> >::value,
|
578
|
+
typename require_result<const Executor&, possibly_t<I> >::type
|
579
|
+
>::type require(possibly_t<I>) const ASIO_NOEXCEPT
|
580
|
+
{
|
581
|
+
return asio::require(executor_, possibly_t<I>());
|
582
|
+
}
|
583
|
+
|
584
|
+
template <int I>
|
585
|
+
typename enable_if<
|
586
|
+
can_require<const Executor&, never_t<I> >::value,
|
587
|
+
typename require_result<const Executor&, never_t<I> >::type
|
588
|
+
>::type require(never_t<I>) const ASIO_NOEXCEPT
|
589
|
+
{
|
590
|
+
return asio::require(executor_, never_t<I>());
|
591
|
+
}
|
592
|
+
|
593
|
+
template <typename Property>
|
594
|
+
typename enable_if<
|
595
|
+
can_require<const Executor&, Property>::value,
|
596
|
+
adapter<typename decay<
|
597
|
+
typename require_result<const Executor&, Property>::type
|
598
|
+
>::type>
|
599
|
+
>::type require(const Property& p) const
|
600
|
+
ASIO_NOEXCEPT_IF((
|
601
|
+
is_nothrow_require<const Executor&, Property>::value))
|
602
|
+
{
|
603
|
+
return adapter<typename decay<
|
604
|
+
typename require_result<const Executor&, Property>::type
|
605
|
+
>::type>(0, asio::require(executor_, p));
|
606
|
+
}
|
607
|
+
|
608
|
+
template <typename Property>
|
609
|
+
typename enable_if<
|
610
|
+
can_prefer<const Executor&, Property>::value,
|
611
|
+
adapter<typename decay<
|
612
|
+
typename prefer_result<const Executor&, Property>::type
|
613
|
+
>::type>
|
614
|
+
>::type prefer(const Property& p) const
|
615
|
+
ASIO_NOEXCEPT_IF((
|
616
|
+
is_nothrow_prefer<const Executor&, Property>::value))
|
617
|
+
{
|
618
|
+
return adapter<typename decay<
|
619
|
+
typename prefer_result<const Executor&, Property>::type
|
620
|
+
>::type>(0, asio::prefer(executor_, p));
|
621
|
+
}
|
622
|
+
|
623
|
+
template <typename Function>
|
624
|
+
typename enable_if<
|
625
|
+
execution::can_execute<const Executor&, Function>::value
|
626
|
+
>::type execute(ASIO_MOVE_ARG(Function) f) const
|
627
|
+
{
|
628
|
+
blocking_adaptation::blocking_execute(
|
629
|
+
executor_, ASIO_MOVE_CAST(Function)(f));
|
630
|
+
}
|
631
|
+
|
632
|
+
friend bool operator==(const adapter& a, const adapter& b) ASIO_NOEXCEPT
|
633
|
+
{
|
634
|
+
return a.executor_ == b.executor_;
|
635
|
+
}
|
636
|
+
|
637
|
+
friend bool operator!=(const adapter& a, const adapter& b) ASIO_NOEXCEPT
|
638
|
+
{
|
639
|
+
return a.executor_ != b.executor_;
|
640
|
+
}
|
641
|
+
|
642
|
+
private:
|
643
|
+
Executor executor_;
|
644
|
+
};
|
645
|
+
|
646
|
+
template <int I = 0>
|
647
|
+
struct always_t
|
648
|
+
{
|
649
|
+
#if defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
650
|
+
template <typename T>
|
651
|
+
ASIO_STATIC_CONSTEXPR(bool,
|
652
|
+
is_applicable_property_v = is_executor<T>::value
|
653
|
+
|| is_sender<T>::value || is_scheduler<T>::value);
|
654
|
+
#endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
655
|
+
|
656
|
+
ASIO_STATIC_CONSTEXPR(bool, is_requirable = true);
|
657
|
+
ASIO_STATIC_CONSTEXPR(bool, is_preferable = false);
|
658
|
+
typedef blocking_t<I> polymorphic_query_result_type;
|
659
|
+
|
660
|
+
ASIO_CONSTEXPR always_t()
|
661
|
+
{
|
662
|
+
}
|
663
|
+
|
664
|
+
#if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
|
665
|
+
&& defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
666
|
+
template <typename T>
|
667
|
+
static ASIO_CONSTEXPR
|
668
|
+
typename traits::query_static_constexpr_member<T, always_t>::result_type
|
669
|
+
static_query()
|
670
|
+
ASIO_NOEXCEPT_IF((
|
671
|
+
traits::query_static_constexpr_member<T, always_t>::is_noexcept))
|
672
|
+
{
|
673
|
+
return traits::query_static_constexpr_member<T, always_t>::value();
|
674
|
+
}
|
675
|
+
|
676
|
+
template <typename E, typename T = decltype(always_t::static_query<E>())>
|
677
|
+
static ASIO_CONSTEXPR const T static_query_v
|
678
|
+
= always_t::static_query<E>();
|
679
|
+
#endif // defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
680
|
+
// && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
681
|
+
|
682
|
+
static ASIO_CONSTEXPR blocking_t<I> value()
|
683
|
+
{
|
684
|
+
return always_t();
|
685
|
+
}
|
686
|
+
|
687
|
+
friend ASIO_CONSTEXPR bool operator==(
|
688
|
+
const always_t&, const always_t&)
|
689
|
+
{
|
690
|
+
return true;
|
691
|
+
}
|
692
|
+
|
693
|
+
friend ASIO_CONSTEXPR bool operator!=(
|
694
|
+
const always_t&, const always_t&)
|
695
|
+
{
|
696
|
+
return false;
|
697
|
+
}
|
698
|
+
|
699
|
+
friend ASIO_CONSTEXPR bool operator==(
|
700
|
+
const always_t&, const possibly_t<I>&)
|
701
|
+
{
|
702
|
+
return false;
|
703
|
+
}
|
704
|
+
|
705
|
+
friend ASIO_CONSTEXPR bool operator!=(
|
706
|
+
const always_t&, const possibly_t<I>&)
|
707
|
+
{
|
708
|
+
return true;
|
709
|
+
}
|
710
|
+
|
711
|
+
friend ASIO_CONSTEXPR bool operator==(
|
712
|
+
const always_t&, const never_t<I>&)
|
713
|
+
{
|
714
|
+
return false;
|
715
|
+
}
|
716
|
+
|
717
|
+
friend ASIO_CONSTEXPR bool operator!=(
|
718
|
+
const always_t&, const never_t<I>&)
|
719
|
+
{
|
720
|
+
return true;
|
721
|
+
}
|
722
|
+
|
723
|
+
template <typename Executor>
|
724
|
+
friend adapter<Executor> require(
|
725
|
+
const Executor& e, const always_t&,
|
726
|
+
typename enable_if<
|
727
|
+
is_executor<Executor>::value
|
728
|
+
&& traits::static_require<
|
729
|
+
const Executor&,
|
730
|
+
blocking_adaptation::allowed_t<0>
|
731
|
+
>::is_valid
|
732
|
+
>::type* = 0)
|
733
|
+
{
|
734
|
+
return adapter<Executor>(0, e);
|
735
|
+
}
|
736
|
+
};
|
737
|
+
|
738
|
+
#if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
|
739
|
+
&& defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
740
|
+
template <int I> template <typename E, typename T>
|
741
|
+
const T always_t<I>::static_query_v;
|
742
|
+
#endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
|
743
|
+
// && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
744
|
+
|
745
|
+
template <int I>
|
746
|
+
struct never_t
|
747
|
+
{
|
748
|
+
#if defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
749
|
+
template <typename T>
|
750
|
+
ASIO_STATIC_CONSTEXPR(bool,
|
751
|
+
is_applicable_property_v = is_executor<T>::value
|
752
|
+
|| is_sender<T>::value || is_scheduler<T>::value);
|
753
|
+
#endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
754
|
+
|
755
|
+
ASIO_STATIC_CONSTEXPR(bool, is_requirable = true);
|
756
|
+
ASIO_STATIC_CONSTEXPR(bool, is_preferable = true);
|
757
|
+
typedef blocking_t<I> polymorphic_query_result_type;
|
758
|
+
|
759
|
+
ASIO_CONSTEXPR never_t()
|
760
|
+
{
|
761
|
+
}
|
762
|
+
|
763
|
+
#if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
|
764
|
+
&& defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
765
|
+
template <typename T>
|
766
|
+
static ASIO_CONSTEXPR
|
767
|
+
typename traits::query_static_constexpr_member<T, never_t>::result_type
|
768
|
+
static_query()
|
769
|
+
ASIO_NOEXCEPT_IF((
|
770
|
+
traits::query_static_constexpr_member<T, never_t>::is_noexcept))
|
771
|
+
{
|
772
|
+
return traits::query_static_constexpr_member<T, never_t>::value();
|
773
|
+
}
|
774
|
+
|
775
|
+
template <typename E, typename T = decltype(never_t::static_query<E>())>
|
776
|
+
static ASIO_CONSTEXPR const T static_query_v
|
777
|
+
= never_t::static_query<E>();
|
778
|
+
#endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
|
779
|
+
// && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
780
|
+
|
781
|
+
static ASIO_CONSTEXPR blocking_t<I> value()
|
782
|
+
{
|
783
|
+
return never_t();
|
784
|
+
}
|
785
|
+
|
786
|
+
friend ASIO_CONSTEXPR bool operator==(
|
787
|
+
const never_t&, const never_t&)
|
788
|
+
{
|
789
|
+
return true;
|
790
|
+
}
|
791
|
+
|
792
|
+
friend ASIO_CONSTEXPR bool operator!=(
|
793
|
+
const never_t&, const never_t&)
|
794
|
+
{
|
795
|
+
return false;
|
796
|
+
}
|
797
|
+
|
798
|
+
friend ASIO_CONSTEXPR bool operator==(
|
799
|
+
const never_t&, const possibly_t<I>&)
|
800
|
+
{
|
801
|
+
return false;
|
802
|
+
}
|
803
|
+
|
804
|
+
friend ASIO_CONSTEXPR bool operator!=(
|
805
|
+
const never_t&, const possibly_t<I>&)
|
806
|
+
{
|
807
|
+
return true;
|
808
|
+
}
|
809
|
+
|
810
|
+
friend ASIO_CONSTEXPR bool operator==(
|
811
|
+
const never_t&, const always_t<I>&)
|
812
|
+
{
|
813
|
+
return false;
|
814
|
+
}
|
815
|
+
|
816
|
+
friend ASIO_CONSTEXPR bool operator!=(
|
817
|
+
const never_t&, const always_t<I>&)
|
818
|
+
{
|
819
|
+
return true;
|
820
|
+
}
|
821
|
+
};
|
822
|
+
|
823
|
+
#if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
|
824
|
+
&& defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
825
|
+
template <int I> template <typename E, typename T>
|
826
|
+
const T never_t<I>::static_query_v;
|
827
|
+
#endif // defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
828
|
+
|
829
|
+
} // namespace blocking
|
830
|
+
} // namespace detail
|
831
|
+
|
832
|
+
typedef detail::blocking_t<> blocking_t;
|
833
|
+
|
834
|
+
#if defined(ASIO_HAS_CONSTEXPR) || defined(GENERATING_DOCUMENTATION)
|
835
|
+
constexpr blocking_t blocking;
|
836
|
+
#else // defined(ASIO_HAS_CONSTEXPR) || defined(GENERATING_DOCUMENTATION)
|
837
|
+
namespace { static const blocking_t& blocking = blocking_t::instance; }
|
838
|
+
#endif
|
839
|
+
|
840
|
+
} // namespace execution
|
841
|
+
|
842
|
+
#if !defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
843
|
+
|
844
|
+
template <typename T>
|
845
|
+
struct is_applicable_property<T, execution::blocking_t>
|
846
|
+
: integral_constant<bool,
|
847
|
+
execution::is_executor<T>::value
|
848
|
+
|| execution::is_sender<T>::value
|
849
|
+
|| execution::is_scheduler<T>::value>
|
850
|
+
{
|
851
|
+
};
|
852
|
+
|
853
|
+
template <typename T>
|
854
|
+
struct is_applicable_property<T, execution::blocking_t::possibly_t>
|
855
|
+
: integral_constant<bool,
|
856
|
+
execution::is_executor<T>::value
|
857
|
+
|| execution::is_sender<T>::value
|
858
|
+
|| execution::is_scheduler<T>::value>
|
859
|
+
{
|
860
|
+
};
|
861
|
+
|
862
|
+
template <typename T>
|
863
|
+
struct is_applicable_property<T, execution::blocking_t::always_t>
|
864
|
+
: integral_constant<bool,
|
865
|
+
execution::is_executor<T>::value
|
866
|
+
|| execution::is_sender<T>::value
|
867
|
+
|| execution::is_scheduler<T>::value>
|
868
|
+
{
|
869
|
+
};
|
870
|
+
|
871
|
+
template <typename T>
|
872
|
+
struct is_applicable_property<T, execution::blocking_t::never_t>
|
873
|
+
: integral_constant<bool,
|
874
|
+
execution::is_executor<T>::value
|
875
|
+
|| execution::is_sender<T>::value
|
876
|
+
|| execution::is_scheduler<T>::value>
|
877
|
+
{
|
878
|
+
};
|
879
|
+
|
880
|
+
#endif // !defined(ASIO_HAS_VARIABLE_TEMPLATES)
|
881
|
+
|
882
|
+
namespace traits {
|
883
|
+
|
884
|
+
#if !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
|
885
|
+
|
886
|
+
template <typename T>
|
887
|
+
struct query_free_default<T, execution::blocking_t,
|
888
|
+
typename enable_if<
|
889
|
+
can_query<T, execution::blocking_t::possibly_t>::value
|
890
|
+
>::type>
|
891
|
+
{
|
892
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
893
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
|
894
|
+
(is_nothrow_query<T, execution::blocking_t::possibly_t>::value));
|
895
|
+
|
896
|
+
typedef execution::blocking_t result_type;
|
897
|
+
};
|
898
|
+
|
899
|
+
template <typename T>
|
900
|
+
struct query_free_default<T, execution::blocking_t,
|
901
|
+
typename enable_if<
|
902
|
+
!can_query<T, execution::blocking_t::possibly_t>::value
|
903
|
+
&& can_query<T, execution::blocking_t::always_t>::value
|
904
|
+
>::type>
|
905
|
+
{
|
906
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
907
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
|
908
|
+
(is_nothrow_query<T, execution::blocking_t::always_t>::value));
|
909
|
+
|
910
|
+
typedef execution::blocking_t result_type;
|
911
|
+
};
|
912
|
+
|
913
|
+
template <typename T>
|
914
|
+
struct query_free_default<T, execution::blocking_t,
|
915
|
+
typename enable_if<
|
916
|
+
!can_query<T, execution::blocking_t::possibly_t>::value
|
917
|
+
&& !can_query<T, execution::blocking_t::always_t>::value
|
918
|
+
&& can_query<T, execution::blocking_t::never_t>::value
|
919
|
+
>::type>
|
920
|
+
{
|
921
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
922
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
|
923
|
+
(is_nothrow_query<T, execution::blocking_t::never_t>::value));
|
924
|
+
|
925
|
+
typedef execution::blocking_t result_type;
|
926
|
+
};
|
927
|
+
|
928
|
+
#endif // !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
|
929
|
+
|
930
|
+
#if !defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
|
931
|
+
|| !defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
932
|
+
|
933
|
+
template <typename T>
|
934
|
+
struct static_query<T, execution::blocking_t,
|
935
|
+
typename enable_if<
|
936
|
+
traits::query_static_constexpr_member<T,
|
937
|
+
execution::blocking_t>::is_valid
|
938
|
+
>::type>
|
939
|
+
{
|
940
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
941
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
942
|
+
|
943
|
+
typedef typename traits::query_static_constexpr_member<T,
|
944
|
+
execution::blocking_t>::result_type result_type;
|
945
|
+
|
946
|
+
static ASIO_CONSTEXPR result_type value()
|
947
|
+
{
|
948
|
+
return traits::query_static_constexpr_member<T,
|
949
|
+
execution::blocking_t>::value();
|
950
|
+
}
|
951
|
+
};
|
952
|
+
|
953
|
+
template <typename T>
|
954
|
+
struct static_query<T, execution::blocking_t,
|
955
|
+
typename enable_if<
|
956
|
+
!traits::query_static_constexpr_member<T, execution::blocking_t>::is_valid
|
957
|
+
&& !traits::query_member<T, execution::blocking_t>::is_valid
|
958
|
+
&& traits::static_query<T, execution::blocking_t::possibly_t>::is_valid
|
959
|
+
>::type>
|
960
|
+
{
|
961
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
962
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
963
|
+
|
964
|
+
typedef typename traits::static_query<T,
|
965
|
+
execution::blocking_t::possibly_t>::result_type result_type;
|
966
|
+
|
967
|
+
static ASIO_CONSTEXPR result_type value()
|
968
|
+
{
|
969
|
+
return traits::static_query<T, execution::blocking_t::possibly_t>::value();
|
970
|
+
}
|
971
|
+
};
|
972
|
+
|
973
|
+
template <typename T>
|
974
|
+
struct static_query<T, execution::blocking_t,
|
975
|
+
typename enable_if<
|
976
|
+
!traits::query_static_constexpr_member<T, execution::blocking_t>::is_valid
|
977
|
+
&& !traits::query_member<T, execution::blocking_t>::is_valid
|
978
|
+
&& !traits::static_query<T, execution::blocking_t::possibly_t>::is_valid
|
979
|
+
&& traits::static_query<T, execution::blocking_t::always_t>::is_valid
|
980
|
+
>::type>
|
981
|
+
{
|
982
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
983
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
984
|
+
|
985
|
+
typedef typename traits::static_query<T,
|
986
|
+
execution::blocking_t::always_t>::result_type result_type;
|
987
|
+
|
988
|
+
static ASIO_CONSTEXPR result_type value()
|
989
|
+
{
|
990
|
+
return traits::static_query<T, execution::blocking_t::always_t>::value();
|
991
|
+
}
|
992
|
+
};
|
993
|
+
|
994
|
+
template <typename T>
|
995
|
+
struct static_query<T, execution::blocking_t,
|
996
|
+
typename enable_if<
|
997
|
+
!traits::query_static_constexpr_member<T, execution::blocking_t>::is_valid
|
998
|
+
&& !traits::query_member<T, execution::blocking_t>::is_valid
|
999
|
+
&& !traits::static_query<T, execution::blocking_t::possibly_t>::is_valid
|
1000
|
+
&& !traits::static_query<T, execution::blocking_t::always_t>::is_valid
|
1001
|
+
&& traits::static_query<T, execution::blocking_t::never_t>::is_valid
|
1002
|
+
>::type>
|
1003
|
+
{
|
1004
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1005
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
1006
|
+
|
1007
|
+
typedef typename traits::static_query<T,
|
1008
|
+
execution::blocking_t::never_t>::result_type result_type;
|
1009
|
+
|
1010
|
+
static ASIO_CONSTEXPR result_type value()
|
1011
|
+
{
|
1012
|
+
return traits::static_query<T, execution::blocking_t::never_t>::value();
|
1013
|
+
}
|
1014
|
+
};
|
1015
|
+
|
1016
|
+
template <typename T>
|
1017
|
+
struct static_query<T, execution::blocking_t::possibly_t,
|
1018
|
+
typename enable_if<
|
1019
|
+
traits::query_static_constexpr_member<T,
|
1020
|
+
execution::blocking_t::possibly_t>::is_valid
|
1021
|
+
>::type>
|
1022
|
+
{
|
1023
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1024
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
1025
|
+
|
1026
|
+
typedef typename traits::query_static_constexpr_member<T,
|
1027
|
+
execution::blocking_t::possibly_t>::result_type result_type;
|
1028
|
+
|
1029
|
+
static ASIO_CONSTEXPR result_type value()
|
1030
|
+
{
|
1031
|
+
return traits::query_static_constexpr_member<T,
|
1032
|
+
execution::blocking_t::possibly_t>::value();
|
1033
|
+
}
|
1034
|
+
};
|
1035
|
+
|
1036
|
+
template <typename T>
|
1037
|
+
struct static_query<T, execution::blocking_t::possibly_t,
|
1038
|
+
typename enable_if<
|
1039
|
+
!traits::query_static_constexpr_member<T,
|
1040
|
+
execution::blocking_t::possibly_t>::is_valid
|
1041
|
+
&& !traits::query_member<T, execution::blocking_t::possibly_t>::is_valid
|
1042
|
+
&& !traits::query_free<T, execution::blocking_t::possibly_t>::is_valid
|
1043
|
+
&& !can_query<T, execution::blocking_t::always_t>::value
|
1044
|
+
&& !can_query<T, execution::blocking_t::never_t>::value
|
1045
|
+
>::type>
|
1046
|
+
{
|
1047
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1048
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
1049
|
+
|
1050
|
+
typedef execution::blocking_t::possibly_t result_type;
|
1051
|
+
|
1052
|
+
static ASIO_CONSTEXPR result_type value()
|
1053
|
+
{
|
1054
|
+
return result_type();
|
1055
|
+
}
|
1056
|
+
};
|
1057
|
+
|
1058
|
+
template <typename T>
|
1059
|
+
struct static_query<T, execution::blocking_t::always_t,
|
1060
|
+
typename enable_if<
|
1061
|
+
traits::query_static_constexpr_member<T,
|
1062
|
+
execution::blocking_t::always_t>::is_valid
|
1063
|
+
>::type>
|
1064
|
+
{
|
1065
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1066
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
1067
|
+
|
1068
|
+
typedef typename traits::query_static_constexpr_member<T,
|
1069
|
+
execution::blocking_t::always_t>::result_type result_type;
|
1070
|
+
|
1071
|
+
static ASIO_CONSTEXPR result_type value()
|
1072
|
+
{
|
1073
|
+
return traits::query_static_constexpr_member<T,
|
1074
|
+
execution::blocking_t::always_t>::value();
|
1075
|
+
}
|
1076
|
+
};
|
1077
|
+
|
1078
|
+
template <typename T>
|
1079
|
+
struct static_query<T, execution::blocking_t::never_t,
|
1080
|
+
typename enable_if<
|
1081
|
+
traits::query_static_constexpr_member<T,
|
1082
|
+
execution::blocking_t::never_t>::is_valid
|
1083
|
+
>::type>
|
1084
|
+
{
|
1085
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1086
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
1087
|
+
|
1088
|
+
typedef typename traits::query_static_constexpr_member<T,
|
1089
|
+
execution::blocking_t::never_t>::result_type result_type;
|
1090
|
+
|
1091
|
+
static ASIO_CONSTEXPR result_type value()
|
1092
|
+
{
|
1093
|
+
return traits::query_static_constexpr_member<T,
|
1094
|
+
execution::blocking_t::never_t>::value();
|
1095
|
+
}
|
1096
|
+
};
|
1097
|
+
|
1098
|
+
#endif // !defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
|
1099
|
+
// || !defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
|
1100
|
+
|
1101
|
+
#if !defined(ASIO_HAS_DEDUCED_STATIC_REQUIRE_TRAIT)
|
1102
|
+
|
1103
|
+
template <typename T>
|
1104
|
+
struct static_require<T, execution::blocking_t::possibly_t,
|
1105
|
+
typename enable_if<
|
1106
|
+
static_query<T, execution::blocking_t::possibly_t>::is_valid
|
1107
|
+
>::type>
|
1108
|
+
{
|
1109
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid =
|
1110
|
+
(is_same<typename static_query<T,
|
1111
|
+
execution::blocking_t::possibly_t>::result_type,
|
1112
|
+
execution::blocking_t::possibly_t>::value));
|
1113
|
+
};
|
1114
|
+
|
1115
|
+
template <typename T>
|
1116
|
+
struct static_require<T, execution::blocking_t::always_t,
|
1117
|
+
typename enable_if<
|
1118
|
+
static_query<T, execution::blocking_t::always_t>::is_valid
|
1119
|
+
>::type>
|
1120
|
+
{
|
1121
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid =
|
1122
|
+
(is_same<typename static_query<T,
|
1123
|
+
execution::blocking_t::always_t>::result_type,
|
1124
|
+
execution::blocking_t::always_t>::value));
|
1125
|
+
};
|
1126
|
+
|
1127
|
+
template <typename T>
|
1128
|
+
struct static_require<T, execution::blocking_t::never_t,
|
1129
|
+
typename enable_if<
|
1130
|
+
static_query<T, execution::blocking_t::never_t>::is_valid
|
1131
|
+
>::type>
|
1132
|
+
{
|
1133
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid =
|
1134
|
+
(is_same<typename static_query<T,
|
1135
|
+
execution::blocking_t::never_t>::result_type,
|
1136
|
+
execution::blocking_t::never_t>::value));
|
1137
|
+
};
|
1138
|
+
|
1139
|
+
#endif // !defined(ASIO_HAS_DEDUCED_STATIC_REQUIRE_TRAIT)
|
1140
|
+
|
1141
|
+
#if !defined(ASIO_HAS_DEDUCED_REQUIRE_FREE_TRAIT)
|
1142
|
+
|
1143
|
+
template <typename T>
|
1144
|
+
struct require_free_default<T, execution::blocking_t::always_t,
|
1145
|
+
typename enable_if<
|
1146
|
+
is_same<T, typename decay<T>::type>::value
|
1147
|
+
&& execution::is_executor<T>::value
|
1148
|
+
&& traits::static_require<
|
1149
|
+
const T&,
|
1150
|
+
execution::detail::blocking_adaptation::allowed_t<0>
|
1151
|
+
>::is_valid
|
1152
|
+
>::type>
|
1153
|
+
{
|
1154
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1155
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
|
1156
|
+
typedef execution::detail::blocking::adapter<T> result_type;
|
1157
|
+
};
|
1158
|
+
|
1159
|
+
#endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_FREE_TRAIT)
|
1160
|
+
|
1161
|
+
#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
|
1162
|
+
|
1163
|
+
template <typename Executor>
|
1164
|
+
struct equality_comparable<
|
1165
|
+
execution::detail::blocking::adapter<Executor> >
|
1166
|
+
{
|
1167
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1168
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
1169
|
+
};
|
1170
|
+
|
1171
|
+
#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
|
1172
|
+
|
1173
|
+
#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
|
1174
|
+
|
1175
|
+
template <typename Executor, typename Function>
|
1176
|
+
struct execute_member<
|
1177
|
+
execution::detail::blocking::adapter<Executor>, Function>
|
1178
|
+
{
|
1179
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1180
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
|
1181
|
+
typedef void result_type;
|
1182
|
+
};
|
1183
|
+
|
1184
|
+
#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
|
1185
|
+
|
1186
|
+
#if !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
|
1187
|
+
|
1188
|
+
template <typename Executor, int I>
|
1189
|
+
struct query_static_constexpr_member<
|
1190
|
+
execution::detail::blocking::adapter<Executor>,
|
1191
|
+
execution::detail::blocking_t<I> >
|
1192
|
+
{
|
1193
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1194
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
1195
|
+
typedef execution::blocking_t::always_t result_type;
|
1196
|
+
|
1197
|
+
static ASIO_CONSTEXPR result_type value() ASIO_NOEXCEPT
|
1198
|
+
{
|
1199
|
+
return result_type();
|
1200
|
+
}
|
1201
|
+
};
|
1202
|
+
|
1203
|
+
template <typename Executor, int I>
|
1204
|
+
struct query_static_constexpr_member<
|
1205
|
+
execution::detail::blocking::adapter<Executor>,
|
1206
|
+
execution::detail::blocking::always_t<I> >
|
1207
|
+
{
|
1208
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1209
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
1210
|
+
typedef execution::blocking_t::always_t result_type;
|
1211
|
+
|
1212
|
+
static ASIO_CONSTEXPR result_type value() ASIO_NOEXCEPT
|
1213
|
+
{
|
1214
|
+
return result_type();
|
1215
|
+
}
|
1216
|
+
};
|
1217
|
+
|
1218
|
+
template <typename Executor, int I>
|
1219
|
+
struct query_static_constexpr_member<
|
1220
|
+
execution::detail::blocking::adapter<Executor>,
|
1221
|
+
execution::detail::blocking::possibly_t<I> >
|
1222
|
+
{
|
1223
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1224
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
1225
|
+
typedef execution::blocking_t::always_t result_type;
|
1226
|
+
|
1227
|
+
static ASIO_CONSTEXPR result_type value() ASIO_NOEXCEPT
|
1228
|
+
{
|
1229
|
+
return result_type();
|
1230
|
+
}
|
1231
|
+
};
|
1232
|
+
|
1233
|
+
template <typename Executor, int I>
|
1234
|
+
struct query_static_constexpr_member<
|
1235
|
+
execution::detail::blocking::adapter<Executor>,
|
1236
|
+
execution::detail::blocking::never_t<I> >
|
1237
|
+
{
|
1238
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1239
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
1240
|
+
typedef execution::blocking_t::always_t result_type;
|
1241
|
+
|
1242
|
+
static ASIO_CONSTEXPR result_type value() ASIO_NOEXCEPT
|
1243
|
+
{
|
1244
|
+
return result_type();
|
1245
|
+
}
|
1246
|
+
};
|
1247
|
+
|
1248
|
+
#endif // !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
|
1249
|
+
|
1250
|
+
#if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
|
1251
|
+
|
1252
|
+
template <typename Executor, typename Property>
|
1253
|
+
struct query_member<
|
1254
|
+
execution::detail::blocking::adapter<Executor>, Property,
|
1255
|
+
typename enable_if<
|
1256
|
+
can_query<const Executor&, Property>::value
|
1257
|
+
>::type>
|
1258
|
+
{
|
1259
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1260
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
|
1261
|
+
(is_nothrow_query<Executor, Property>::value));
|
1262
|
+
typedef typename query_result<Executor, Property>::type result_type;
|
1263
|
+
};
|
1264
|
+
|
1265
|
+
#endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
|
1266
|
+
|
1267
|
+
#if !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
|
1268
|
+
|
1269
|
+
template <typename Executor, int I>
|
1270
|
+
struct require_member<
|
1271
|
+
execution::detail::blocking::adapter<Executor>,
|
1272
|
+
execution::detail::blocking::possibly_t<I>,
|
1273
|
+
typename enable_if<
|
1274
|
+
can_require<
|
1275
|
+
const Executor&,
|
1276
|
+
execution::detail::blocking::possibly_t<I>
|
1277
|
+
>::value
|
1278
|
+
>::type>
|
1279
|
+
{
|
1280
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1281
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
|
1282
|
+
(is_nothrow_require<const Executor&,
|
1283
|
+
execution::detail::blocking::possibly_t<I> >::value));
|
1284
|
+
typedef typename require_result<const Executor&,
|
1285
|
+
execution::detail::blocking::possibly_t<I> >::type result_type;
|
1286
|
+
};
|
1287
|
+
|
1288
|
+
template <typename Executor, int I>
|
1289
|
+
struct require_member<
|
1290
|
+
execution::detail::blocking::adapter<Executor>,
|
1291
|
+
execution::detail::blocking::never_t<I>,
|
1292
|
+
typename enable_if<
|
1293
|
+
can_require<
|
1294
|
+
const Executor&,
|
1295
|
+
execution::detail::blocking::never_t<I>
|
1296
|
+
>::value
|
1297
|
+
>::type>
|
1298
|
+
{
|
1299
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1300
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
|
1301
|
+
(is_nothrow_require<const Executor&,
|
1302
|
+
execution::detail::blocking::never_t<I> >::value));
|
1303
|
+
typedef typename require_result<const Executor&,
|
1304
|
+
execution::detail::blocking::never_t<I> >::type result_type;
|
1305
|
+
};
|
1306
|
+
|
1307
|
+
template <typename Executor, typename Property>
|
1308
|
+
struct require_member<
|
1309
|
+
execution::detail::blocking::adapter<Executor>, Property,
|
1310
|
+
typename enable_if<
|
1311
|
+
can_require<const Executor&, Property>::value
|
1312
|
+
>::type>
|
1313
|
+
{
|
1314
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1315
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
|
1316
|
+
(is_nothrow_require<Executor, Property>::value));
|
1317
|
+
typedef execution::detail::blocking::adapter<typename decay<
|
1318
|
+
typename require_result<Executor, Property>::type
|
1319
|
+
>::type> result_type;
|
1320
|
+
};
|
1321
|
+
|
1322
|
+
#endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
|
1323
|
+
|
1324
|
+
#if !defined(ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT)
|
1325
|
+
|
1326
|
+
template <typename Executor, typename Property>
|
1327
|
+
struct prefer_member<
|
1328
|
+
execution::detail::blocking::adapter<Executor>, Property,
|
1329
|
+
typename enable_if<
|
1330
|
+
can_prefer<const Executor&, Property>::value
|
1331
|
+
>::type>
|
1332
|
+
{
|
1333
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1334
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
|
1335
|
+
(is_nothrow_prefer<Executor, Property>::value));
|
1336
|
+
typedef execution::detail::blocking::adapter<typename decay<
|
1337
|
+
typename prefer_result<Executor, Property>::type
|
1338
|
+
>::type> result_type;
|
1339
|
+
};
|
1340
|
+
|
1341
|
+
#endif // !defined(ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT)
|
1342
|
+
|
1343
|
+
} // namespace traits
|
1344
|
+
|
1345
|
+
#endif // defined(GENERATING_DOCUMENTATION)
|
1346
|
+
|
1347
|
+
} // namespace asio
|
1348
|
+
|
1349
|
+
#include "asio/detail/pop_options.hpp"
|
1350
|
+
|
1351
|
+
#endif // ASIO_EXECUTION_BLOCKING_HPP
|