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
@@ -27,6 +27,7 @@
|
|
27
27
|
#include "asio/detail/handler_alloc_helpers.hpp"
|
28
28
|
#include "asio/detail/handler_cont_helpers.hpp"
|
29
29
|
#include "asio/detail/handler_invoke_helpers.hpp"
|
30
|
+
#include "asio/detail/handler_tracking.hpp"
|
30
31
|
#include "asio/detail/handler_type_requirements.hpp"
|
31
32
|
#include "asio/detail/non_const_lvalue.hpp"
|
32
33
|
#include "asio/detail/throw_error.hpp"
|
@@ -210,9 +211,12 @@ namespace detail
|
|
210
211
|
max_size = this->check_for_completion(ec, buffers_.total_consumed());
|
211
212
|
do
|
212
213
|
{
|
213
|
-
|
214
|
-
|
215
|
-
|
214
|
+
{
|
215
|
+
ASIO_HANDLER_LOCATION((__FILE__, __LINE__, "async_write_at"));
|
216
|
+
device_.async_write_some_at(
|
217
|
+
offset_ + buffers_.total_consumed(), buffers_.prepare(max_size),
|
218
|
+
ASIO_MOVE_CAST(write_at_op)(*this));
|
219
|
+
}
|
216
220
|
return; default:
|
217
221
|
buffers_.consume(bytes_transferred);
|
218
222
|
if ((!ec && bytes_transferred == 0) || buffers_.empty())
|
@@ -238,23 +242,33 @@ namespace detail
|
|
238
242
|
template <typename AsyncRandomAccessWriteDevice,
|
239
243
|
typename ConstBufferSequence, typename ConstBufferIterator,
|
240
244
|
typename CompletionCondition, typename WriteHandler>
|
241
|
-
inline
|
245
|
+
inline asio_handler_allocate_is_deprecated
|
246
|
+
asio_handler_allocate(std::size_t size,
|
242
247
|
write_at_op<AsyncRandomAccessWriteDevice, ConstBufferSequence,
|
243
248
|
ConstBufferIterator, CompletionCondition, WriteHandler>* this_handler)
|
244
249
|
{
|
250
|
+
#if defined(ASIO_NO_DEPRECATED)
|
251
|
+
asio_handler_alloc_helpers::allocate(size, this_handler->handler_);
|
252
|
+
return asio_handler_allocate_is_no_longer_used();
|
253
|
+
#else // defined(ASIO_NO_DEPRECATED)
|
245
254
|
return asio_handler_alloc_helpers::allocate(
|
246
255
|
size, this_handler->handler_);
|
256
|
+
#endif // defined(ASIO_NO_DEPRECATED)
|
247
257
|
}
|
248
258
|
|
249
259
|
template <typename AsyncRandomAccessWriteDevice,
|
250
260
|
typename ConstBufferSequence, typename ConstBufferIterator,
|
251
261
|
typename CompletionCondition, typename WriteHandler>
|
252
|
-
inline
|
262
|
+
inline asio_handler_deallocate_is_deprecated
|
263
|
+
asio_handler_deallocate(void* pointer, std::size_t size,
|
253
264
|
write_at_op<AsyncRandomAccessWriteDevice, ConstBufferSequence,
|
254
265
|
ConstBufferIterator, CompletionCondition, WriteHandler>* this_handler)
|
255
266
|
{
|
256
267
|
asio_handler_alloc_helpers::deallocate(
|
257
268
|
pointer, size, this_handler->handler_);
|
269
|
+
#if defined(ASIO_NO_DEPRECATED)
|
270
|
+
return asio_handler_deallocate_is_no_longer_used();
|
271
|
+
#endif // defined(ASIO_NO_DEPRECATED)
|
258
272
|
}
|
259
273
|
|
260
274
|
template <typename AsyncRandomAccessWriteDevice,
|
@@ -272,23 +286,31 @@ namespace detail
|
|
272
286
|
template <typename Function, typename AsyncRandomAccessWriteDevice,
|
273
287
|
typename ConstBufferSequence, typename ConstBufferIterator,
|
274
288
|
typename CompletionCondition, typename WriteHandler>
|
275
|
-
inline
|
289
|
+
inline asio_handler_invoke_is_deprecated
|
290
|
+
asio_handler_invoke(Function& function,
|
276
291
|
write_at_op<AsyncRandomAccessWriteDevice, ConstBufferSequence,
|
277
292
|
ConstBufferIterator, CompletionCondition, WriteHandler>* this_handler)
|
278
293
|
{
|
279
294
|
asio_handler_invoke_helpers::invoke(
|
280
295
|
function, this_handler->handler_);
|
296
|
+
#if defined(ASIO_NO_DEPRECATED)
|
297
|
+
return asio_handler_invoke_is_no_longer_used();
|
298
|
+
#endif // defined(ASIO_NO_DEPRECATED)
|
281
299
|
}
|
282
300
|
|
283
301
|
template <typename Function, typename AsyncRandomAccessWriteDevice,
|
284
302
|
typename ConstBufferSequence, typename ConstBufferIterator,
|
285
303
|
typename CompletionCondition, typename WriteHandler>
|
286
|
-
inline
|
304
|
+
inline asio_handler_invoke_is_deprecated
|
305
|
+
asio_handler_invoke(const Function& function,
|
287
306
|
write_at_op<AsyncRandomAccessWriteDevice, ConstBufferSequence,
|
288
307
|
ConstBufferIterator, CompletionCondition, WriteHandler>* this_handler)
|
289
308
|
{
|
290
309
|
asio_handler_invoke_helpers::invoke(
|
291
310
|
function, this_handler->handler_);
|
311
|
+
#if defined(ASIO_NO_DEPRECATED)
|
312
|
+
return asio_handler_invoke_is_no_longer_used();
|
313
|
+
#endif // defined(ASIO_NO_DEPRECATED)
|
292
314
|
}
|
293
315
|
|
294
316
|
template <typename AsyncRandomAccessWriteDevice,
|
@@ -373,6 +395,7 @@ struct associated_executor<
|
|
373
395
|
detail::write_at_op<AsyncRandomAccessWriteDevice, ConstBufferSequence,
|
374
396
|
ConstBufferIterator, CompletionCondition, WriteHandler>,
|
375
397
|
Executor>
|
398
|
+
: detail::associated_executor_forwarding_base<WriteHandler, Executor>
|
376
399
|
{
|
377
400
|
typedef typename associated_executor<WriteHandler, Executor>::type type;
|
378
401
|
|
@@ -467,19 +490,29 @@ namespace detail
|
|
467
490
|
};
|
468
491
|
|
469
492
|
template <typename Allocator, typename WriteHandler>
|
470
|
-
inline
|
493
|
+
inline asio_handler_allocate_is_deprecated
|
494
|
+
asio_handler_allocate(std::size_t size,
|
471
495
|
write_at_streambuf_op<Allocator, WriteHandler>* this_handler)
|
472
496
|
{
|
497
|
+
#if defined(ASIO_NO_DEPRECATED)
|
498
|
+
asio_handler_alloc_helpers::allocate(size, this_handler->handler_);
|
499
|
+
return asio_handler_allocate_is_no_longer_used();
|
500
|
+
#else // defined(ASIO_NO_DEPRECATED)
|
473
501
|
return asio_handler_alloc_helpers::allocate(
|
474
502
|
size, this_handler->handler_);
|
503
|
+
#endif // defined(ASIO_NO_DEPRECATED)
|
475
504
|
}
|
476
505
|
|
477
506
|
template <typename Allocator, typename WriteHandler>
|
478
|
-
inline
|
507
|
+
inline asio_handler_deallocate_is_deprecated
|
508
|
+
asio_handler_deallocate(void* pointer, std::size_t size,
|
479
509
|
write_at_streambuf_op<Allocator, WriteHandler>* this_handler)
|
480
510
|
{
|
481
511
|
asio_handler_alloc_helpers::deallocate(
|
482
512
|
pointer, size, this_handler->handler_);
|
513
|
+
#if defined(ASIO_NO_DEPRECATED)
|
514
|
+
return asio_handler_deallocate_is_no_longer_used();
|
515
|
+
#endif // defined(ASIO_NO_DEPRECATED)
|
483
516
|
}
|
484
517
|
|
485
518
|
template <typename Allocator, typename WriteHandler>
|
@@ -491,19 +524,27 @@ namespace detail
|
|
491
524
|
}
|
492
525
|
|
493
526
|
template <typename Function, typename Allocator, typename WriteHandler>
|
494
|
-
inline
|
527
|
+
inline asio_handler_invoke_is_deprecated
|
528
|
+
asio_handler_invoke(Function& function,
|
495
529
|
write_at_streambuf_op<Allocator, WriteHandler>* this_handler)
|
496
530
|
{
|
497
531
|
asio_handler_invoke_helpers::invoke(
|
498
532
|
function, this_handler->handler_);
|
533
|
+
#if defined(ASIO_NO_DEPRECATED)
|
534
|
+
return asio_handler_invoke_is_no_longer_used();
|
535
|
+
#endif // defined(ASIO_NO_DEPRECATED)
|
499
536
|
}
|
500
537
|
|
501
538
|
template <typename Function, typename Allocator, typename WriteHandler>
|
502
|
-
inline
|
539
|
+
inline asio_handler_invoke_is_deprecated
|
540
|
+
asio_handler_invoke(const Function& function,
|
503
541
|
write_at_streambuf_op<Allocator, WriteHandler>* this_handler)
|
504
542
|
{
|
505
543
|
asio_handler_invoke_helpers::invoke(
|
506
544
|
function, this_handler->handler_);
|
545
|
+
#if defined(ASIO_NO_DEPRECATED)
|
546
|
+
return asio_handler_invoke_is_no_longer_used();
|
547
|
+
#endif // defined(ASIO_NO_DEPRECATED)
|
507
548
|
}
|
508
549
|
|
509
550
|
template <typename AsyncRandomAccessWriteDevice>
|
@@ -566,6 +607,7 @@ template <typename Executor, typename WriteHandler, typename Executor1>
|
|
566
607
|
struct associated_executor<
|
567
608
|
detail::write_at_streambuf_op<Executor, WriteHandler>,
|
568
609
|
Executor1>
|
610
|
+
: detail::associated_executor_forwarding_base<WriteHandler, Executor>
|
569
611
|
{
|
570
612
|
typedef typename associated_executor<WriteHandler, Executor1>::type type;
|
571
613
|
|
@@ -20,9 +20,9 @@
|
|
20
20
|
#include <stdexcept>
|
21
21
|
#include <typeinfo>
|
22
22
|
#include "asio/async_result.hpp"
|
23
|
-
#include "asio/detail/noncopyable.hpp"
|
24
23
|
#include "asio/detail/wrapped_handler.hpp"
|
25
24
|
#include "asio/error_code.hpp"
|
25
|
+
#include "asio/execution.hpp"
|
26
26
|
#include "asio/execution_context.hpp"
|
27
27
|
|
28
28
|
#if defined(ASIO_HAS_CHRONO)
|
@@ -36,17 +36,30 @@
|
|
36
36
|
# include "asio/detail/signal_init.hpp"
|
37
37
|
#endif
|
38
38
|
|
39
|
+
#if defined(ASIO_HAS_IOCP)
|
40
|
+
# include "asio/detail/win_iocp_io_context.hpp"
|
41
|
+
#else
|
42
|
+
# include "asio/detail/scheduler.hpp"
|
43
|
+
#endif
|
44
|
+
|
39
45
|
#include "asio/detail/push_options.hpp"
|
40
46
|
|
41
47
|
namespace asio {
|
42
48
|
|
43
49
|
namespace detail {
|
44
50
|
#if defined(ASIO_HAS_IOCP)
|
45
|
-
typedef
|
51
|
+
typedef win_iocp_io_context io_context_impl;
|
46
52
|
class win_iocp_overlapped_ptr;
|
47
53
|
#else
|
48
|
-
typedef
|
54
|
+
typedef scheduler io_context_impl;
|
49
55
|
#endif
|
56
|
+
|
57
|
+
struct io_context_bits
|
58
|
+
{
|
59
|
+
ASIO_STATIC_CONSTEXPR(unsigned int, blocking_never = 1);
|
60
|
+
ASIO_STATIC_CONSTEXPR(unsigned int, relationship_continuation = 2);
|
61
|
+
ASIO_STATIC_CONSTEXPR(unsigned int, outstanding_work_tracked = 4);
|
62
|
+
};
|
50
63
|
} // namespace detail
|
51
64
|
|
52
65
|
/// Provides core I/O functionality.
|
@@ -153,12 +166,30 @@ namespace detail {
|
|
153
166
|
* returning when there is no more work to do. For example, the io_context may
|
154
167
|
* be being run in a background thread that is launched prior to the
|
155
168
|
* application's asynchronous operations. The run() call may be kept running by
|
156
|
-
* creating an
|
157
|
-
* asio::executor_work_guard<io_context::executor_type>:
|
169
|
+
* creating an executor that tracks work against the io_context:
|
158
170
|
*
|
159
171
|
* @code asio::io_context io_context;
|
160
|
-
* asio::
|
161
|
-
*
|
172
|
+
* auto work = asio::require(io_context.get_executor(),
|
173
|
+
* asio::execution::outstanding_work.tracked);
|
174
|
+
* ... @endcode
|
175
|
+
*
|
176
|
+
* If using C++03, which lacks automatic variable type deduction, you may
|
177
|
+
* compute the return type of the require call:
|
178
|
+
*
|
179
|
+
* @code asio::io_context io_context;
|
180
|
+
* typename asio::require_result<
|
181
|
+
* asio::io_context::executor_type,
|
182
|
+
* asio::exeution::outstanding_work_t::tracked_t>
|
183
|
+
* work = asio::require(io_context.get_executor(),
|
184
|
+
* asio::execution::outstanding_work.tracked);
|
185
|
+
* ... @endcode
|
186
|
+
*
|
187
|
+
* or store the result in the type-erasing executor wrapper, any_io_executor:
|
188
|
+
*
|
189
|
+
* @code asio::io_context io_context;
|
190
|
+
* asio::any_io_executor work
|
191
|
+
* = asio::require(io_context.get_executor(),
|
192
|
+
* asio::execution::outstanding_work.tracked);
|
162
193
|
* ... @endcode
|
163
194
|
*
|
164
195
|
* To effect a shutdown, the application will then need to call the io_context
|
@@ -167,13 +198,15 @@ namespace detail {
|
|
167
198
|
* permitting ready handlers to be dispatched.
|
168
199
|
*
|
169
200
|
* Alternatively, if the application requires that all operations and handlers
|
170
|
-
* be allowed to finish normally, the work
|
201
|
+
* be allowed to finish normally, store the work-tracking executor in an
|
202
|
+
* any_io_executor object, so that it may be explicitly reset.
|
171
203
|
*
|
172
204
|
* @code asio::io_context io_context;
|
173
|
-
* asio::
|
174
|
-
* = asio::
|
205
|
+
* asio::any_io_executor work
|
206
|
+
* = asio::require(io_context.get_executor(),
|
207
|
+
* asio::execution::outstanding_work.tracked);
|
175
208
|
* ...
|
176
|
-
* work
|
209
|
+
* work = asio::any_io_executor(); // Allow run() to exit. @endcode
|
177
210
|
*/
|
178
211
|
class io_context
|
179
212
|
: public execution_context
|
@@ -185,8 +218,14 @@ private:
|
|
185
218
|
#endif
|
186
219
|
|
187
220
|
public:
|
188
|
-
|
189
|
-
|
221
|
+
template <typename Allocator, unsigned int Bits>
|
222
|
+
class basic_executor_type;
|
223
|
+
|
224
|
+
template <typename Allocator, unsigned int Bits>
|
225
|
+
friend class basic_executor_type;
|
226
|
+
|
227
|
+
/// Executor used to submit functions to an io_context.
|
228
|
+
typedef basic_executor_type<std::allocator<void>, 0> executor_type;
|
190
229
|
|
191
230
|
#if !defined(ASIO_NO_DEPRECATED)
|
192
231
|
class work;
|
@@ -195,9 +234,11 @@ public:
|
|
195
234
|
|
196
235
|
class service;
|
197
236
|
|
198
|
-
#if !defined(ASIO_NO_EXTENSIONS)
|
237
|
+
#if !defined(ASIO_NO_EXTENSIONS) \
|
238
|
+
&& !defined(ASIO_NO_TS_EXECUTORS)
|
199
239
|
class strand;
|
200
240
|
#endif // !defined(ASIO_NO_EXTENSIONS)
|
241
|
+
// && !defined(ASIO_NO_TS_EXECUTORS)
|
201
242
|
|
202
243
|
/// The type used to count the number of handlers executed by the context.
|
203
244
|
typedef std::size_t count_type;
|
@@ -594,6 +635,9 @@ public:
|
|
594
635
|
#endif // !defined(ASIO_NO_DEPRECATED)
|
595
636
|
|
596
637
|
private:
|
638
|
+
io_context(const io_context&) ASIO_DELETED;
|
639
|
+
io_context& operator=(const io_context&) ASIO_DELETED;
|
640
|
+
|
597
641
|
#if !defined(ASIO_NO_DEPRECATED)
|
598
642
|
struct initiate_dispatch;
|
599
643
|
struct initiate_post;
|
@@ -618,10 +662,362 @@ private:
|
|
618
662
|
impl_type& impl_;
|
619
663
|
};
|
620
664
|
|
621
|
-
|
622
|
-
|
665
|
+
namespace detail {
|
666
|
+
|
667
|
+
} // namespace detail
|
668
|
+
|
669
|
+
/// Executor implementation type used to submit functions to an io_context.
|
670
|
+
template <typename Allocator, unsigned int Bits>
|
671
|
+
class io_context::basic_executor_type : detail::io_context_bits
|
623
672
|
{
|
624
673
|
public:
|
674
|
+
/// Copy constructor.
|
675
|
+
basic_executor_type(
|
676
|
+
const basic_executor_type& other) ASIO_NOEXCEPT
|
677
|
+
: io_context_(other.io_context_),
|
678
|
+
allocator_(other.allocator_),
|
679
|
+
bits_(other.bits_)
|
680
|
+
{
|
681
|
+
if (Bits & outstanding_work_tracked)
|
682
|
+
if (io_context_)
|
683
|
+
io_context_->impl_.work_started();
|
684
|
+
}
|
685
|
+
|
686
|
+
#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
|
687
|
+
/// Move constructor.
|
688
|
+
basic_executor_type(basic_executor_type&& other) ASIO_NOEXCEPT
|
689
|
+
: io_context_(other.io_context_),
|
690
|
+
allocator_(ASIO_MOVE_CAST(Allocator)(other.allocator_)),
|
691
|
+
bits_(other.bits_)
|
692
|
+
{
|
693
|
+
if (Bits & outstanding_work_tracked)
|
694
|
+
other.io_context_ = 0;
|
695
|
+
}
|
696
|
+
#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
|
697
|
+
|
698
|
+
/// Destructor.
|
699
|
+
~basic_executor_type() ASIO_NOEXCEPT
|
700
|
+
{
|
701
|
+
if (Bits & outstanding_work_tracked)
|
702
|
+
if (io_context_)
|
703
|
+
io_context_->impl_.work_finished();
|
704
|
+
}
|
705
|
+
|
706
|
+
/// Assignment operator.
|
707
|
+
basic_executor_type& operator=(
|
708
|
+
const basic_executor_type& other) ASIO_NOEXCEPT;
|
709
|
+
|
710
|
+
#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
|
711
|
+
/// Move assignment operator.
|
712
|
+
basic_executor_type& operator=(
|
713
|
+
basic_executor_type&& other) ASIO_NOEXCEPT;
|
714
|
+
#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
|
715
|
+
|
716
|
+
/// Obtain an executor with the @c blocking.possibly property.
|
717
|
+
/**
|
718
|
+
* Do not call this function directly. It is intended for use with the
|
719
|
+
* asio::require customisation point.
|
720
|
+
*
|
721
|
+
* For example:
|
722
|
+
* @code auto ex1 = my_io_context.get_executor();
|
723
|
+
* auto ex2 = asio::require(ex1,
|
724
|
+
* asio::execution::blocking.possibly); @endcode
|
725
|
+
*/
|
726
|
+
ASIO_CONSTEXPR basic_executor_type require(
|
727
|
+
execution::blocking_t::possibly_t) const
|
728
|
+
{
|
729
|
+
return basic_executor_type(io_context_,
|
730
|
+
allocator_, bits_ & ~blocking_never);
|
731
|
+
}
|
732
|
+
|
733
|
+
/// Obtain an executor with the @c blocking.never property.
|
734
|
+
/**
|
735
|
+
* Do not call this function directly. It is intended for use with the
|
736
|
+
* asio::require customisation point.
|
737
|
+
*
|
738
|
+
* For example:
|
739
|
+
* @code auto ex1 = my_io_context.get_executor();
|
740
|
+
* auto ex2 = asio::require(ex1,
|
741
|
+
* asio::execution::blocking.never); @endcode
|
742
|
+
*/
|
743
|
+
ASIO_CONSTEXPR basic_executor_type require(
|
744
|
+
execution::blocking_t::never_t) const
|
745
|
+
{
|
746
|
+
return basic_executor_type(io_context_,
|
747
|
+
allocator_, bits_ | blocking_never);
|
748
|
+
}
|
749
|
+
|
750
|
+
/// Obtain an executor with the @c relationship.fork property.
|
751
|
+
/**
|
752
|
+
* Do not call this function directly. It is intended for use with the
|
753
|
+
* asio::require customisation point.
|
754
|
+
*
|
755
|
+
* For example:
|
756
|
+
* @code auto ex1 = my_io_context.get_executor();
|
757
|
+
* auto ex2 = asio::require(ex1,
|
758
|
+
* asio::execution::relationship.fork); @endcode
|
759
|
+
*/
|
760
|
+
ASIO_CONSTEXPR basic_executor_type require(
|
761
|
+
execution::relationship_t::fork_t) const
|
762
|
+
{
|
763
|
+
return basic_executor_type(io_context_,
|
764
|
+
allocator_, bits_ & ~relationship_continuation);
|
765
|
+
}
|
766
|
+
|
767
|
+
/// Obtain an executor with the @c relationship.continuation property.
|
768
|
+
/**
|
769
|
+
* Do not call this function directly. It is intended for use with the
|
770
|
+
* asio::require customisation point.
|
771
|
+
*
|
772
|
+
* For example:
|
773
|
+
* @code auto ex1 = my_io_context.get_executor();
|
774
|
+
* auto ex2 = asio::require(ex1,
|
775
|
+
* asio::execution::relationship.continuation); @endcode
|
776
|
+
*/
|
777
|
+
ASIO_CONSTEXPR basic_executor_type require(
|
778
|
+
execution::relationship_t::continuation_t) const
|
779
|
+
{
|
780
|
+
return basic_executor_type(io_context_,
|
781
|
+
allocator_, bits_ | relationship_continuation);
|
782
|
+
}
|
783
|
+
|
784
|
+
/// Obtain an executor with the @c outstanding_work.tracked property.
|
785
|
+
/**
|
786
|
+
* Do not call this function directly. It is intended for use with the
|
787
|
+
* asio::require customisation point.
|
788
|
+
*
|
789
|
+
* For example:
|
790
|
+
* @code auto ex1 = my_io_context.get_executor();
|
791
|
+
* auto ex2 = asio::require(ex1,
|
792
|
+
* asio::execution::outstanding_work.tracked); @endcode
|
793
|
+
*/
|
794
|
+
ASIO_CONSTEXPR basic_executor_type<Allocator,
|
795
|
+
ASIO_UNSPECIFIED(Bits | outstanding_work_tracked)>
|
796
|
+
require(execution::outstanding_work_t::tracked_t) const
|
797
|
+
{
|
798
|
+
return basic_executor_type<Allocator, Bits | outstanding_work_tracked>(
|
799
|
+
io_context_, allocator_, bits_);
|
800
|
+
}
|
801
|
+
|
802
|
+
/// Obtain an executor with the @c outstanding_work.untracked property.
|
803
|
+
/**
|
804
|
+
* Do not call this function directly. It is intended for use with the
|
805
|
+
* asio::require customisation point.
|
806
|
+
*
|
807
|
+
* For example:
|
808
|
+
* @code auto ex1 = my_io_context.get_executor();
|
809
|
+
* auto ex2 = asio::require(ex1,
|
810
|
+
* asio::execution::outstanding_work.untracked); @endcode
|
811
|
+
*/
|
812
|
+
ASIO_CONSTEXPR basic_executor_type<Allocator,
|
813
|
+
ASIO_UNSPECIFIED(Bits & ~outstanding_work_tracked)>
|
814
|
+
require(execution::outstanding_work_t::untracked_t) const
|
815
|
+
{
|
816
|
+
return basic_executor_type<Allocator, Bits & ~outstanding_work_tracked>(
|
817
|
+
io_context_, allocator_, bits_);
|
818
|
+
}
|
819
|
+
|
820
|
+
/// Obtain an executor with the specified @c allocator property.
|
821
|
+
/**
|
822
|
+
* Do not call this function directly. It is intended for use with the
|
823
|
+
* asio::require customisation point.
|
824
|
+
*
|
825
|
+
* For example:
|
826
|
+
* @code auto ex1 = my_io_context.get_executor();
|
827
|
+
* auto ex2 = asio::require(ex1,
|
828
|
+
* asio::execution::allocator(my_allocator)); @endcode
|
829
|
+
*/
|
830
|
+
template <typename OtherAllocator>
|
831
|
+
ASIO_CONSTEXPR basic_executor_type<OtherAllocator, Bits>
|
832
|
+
require(execution::allocator_t<OtherAllocator> a) const
|
833
|
+
{
|
834
|
+
return basic_executor_type<OtherAllocator, Bits>(
|
835
|
+
io_context_, a.value(), bits_);
|
836
|
+
}
|
837
|
+
|
838
|
+
/// Obtain an executor with the default @c allocator property.
|
839
|
+
/**
|
840
|
+
* Do not call this function directly. It is intended for use with the
|
841
|
+
* asio::require customisation point.
|
842
|
+
*
|
843
|
+
* For example:
|
844
|
+
* @code auto ex1 = my_io_context.get_executor();
|
845
|
+
* auto ex2 = asio::require(ex1,
|
846
|
+
* asio::execution::allocator); @endcode
|
847
|
+
*/
|
848
|
+
ASIO_CONSTEXPR basic_executor_type<std::allocator<void>, Bits>
|
849
|
+
require(execution::allocator_t<void>) const
|
850
|
+
{
|
851
|
+
return basic_executor_type<std::allocator<void>, Bits>(
|
852
|
+
io_context_, std::allocator<void>(), bits_);
|
853
|
+
}
|
854
|
+
|
855
|
+
/// Query the current value of the @c mapping property.
|
856
|
+
/**
|
857
|
+
* Do not call this function directly. It is intended for use with the
|
858
|
+
* asio::query customisation point.
|
859
|
+
*
|
860
|
+
* For example:
|
861
|
+
* @code auto ex = my_io_context.get_executor();
|
862
|
+
* if (asio::query(ex, asio::execution::mapping)
|
863
|
+
* == asio::execution::mapping.thread)
|
864
|
+
* ... @endcode
|
865
|
+
*/
|
866
|
+
static ASIO_CONSTEXPR execution::mapping_t query(
|
867
|
+
execution::mapping_t) ASIO_NOEXCEPT
|
868
|
+
{
|
869
|
+
return execution::mapping.thread;
|
870
|
+
}
|
871
|
+
|
872
|
+
/// Query the current value of the @c context property.
|
873
|
+
/**
|
874
|
+
* Do not call this function directly. It is intended for use with the
|
875
|
+
* asio::query customisation point.
|
876
|
+
*
|
877
|
+
* For example:
|
878
|
+
* @code auto ex = my_io_context.get_executor();
|
879
|
+
* asio::io_context& ctx = asio::query(
|
880
|
+
* ex, asio::execution::context); @endcode
|
881
|
+
*/
|
882
|
+
io_context& query(execution::context_t) const ASIO_NOEXCEPT
|
883
|
+
{
|
884
|
+
return *io_context_;
|
885
|
+
}
|
886
|
+
|
887
|
+
/// Query the current value of the @c blocking property.
|
888
|
+
/**
|
889
|
+
* Do not call this function directly. It is intended for use with the
|
890
|
+
* asio::query customisation point.
|
891
|
+
*
|
892
|
+
* For example:
|
893
|
+
* @code auto ex = my_io_context.get_executor();
|
894
|
+
* if (asio::query(ex, asio::execution::blocking)
|
895
|
+
* == asio::execution::blocking.always)
|
896
|
+
* ... @endcode
|
897
|
+
*/
|
898
|
+
ASIO_CONSTEXPR execution::blocking_t query(
|
899
|
+
execution::blocking_t) const ASIO_NOEXCEPT
|
900
|
+
{
|
901
|
+
return (bits_ & blocking_never)
|
902
|
+
? execution::blocking_t(execution::blocking.never)
|
903
|
+
: execution::blocking_t(execution::blocking.possibly);
|
904
|
+
}
|
905
|
+
|
906
|
+
/// Query the current value of the @c relationship property.
|
907
|
+
/**
|
908
|
+
* Do not call this function directly. It is intended for use with the
|
909
|
+
* asio::query customisation point.
|
910
|
+
*
|
911
|
+
* For example:
|
912
|
+
* @code auto ex = my_io_context.get_executor();
|
913
|
+
* if (asio::query(ex, asio::execution::relationship)
|
914
|
+
* == asio::execution::relationship.continuation)
|
915
|
+
* ... @endcode
|
916
|
+
*/
|
917
|
+
ASIO_CONSTEXPR execution::relationship_t query(
|
918
|
+
execution::relationship_t) const ASIO_NOEXCEPT
|
919
|
+
{
|
920
|
+
return (bits_ & relationship_continuation)
|
921
|
+
? execution::relationship_t(execution::relationship.continuation)
|
922
|
+
: execution::relationship_t(execution::relationship.fork);
|
923
|
+
}
|
924
|
+
|
925
|
+
/// Query the current value of the @c outstanding_work property.
|
926
|
+
/**
|
927
|
+
* Do not call this function directly. It is intended for use with the
|
928
|
+
* asio::query customisation point.
|
929
|
+
*
|
930
|
+
* For example:
|
931
|
+
* @code auto ex = my_io_context.get_executor();
|
932
|
+
* if (asio::query(ex, asio::execution::outstanding_work)
|
933
|
+
* == asio::execution::outstanding_work.tracked)
|
934
|
+
* ... @endcode
|
935
|
+
*/
|
936
|
+
static ASIO_CONSTEXPR execution::outstanding_work_t query(
|
937
|
+
execution::outstanding_work_t) ASIO_NOEXCEPT
|
938
|
+
{
|
939
|
+
return (Bits & outstanding_work_tracked)
|
940
|
+
? execution::outstanding_work_t(execution::outstanding_work.tracked)
|
941
|
+
: execution::outstanding_work_t(execution::outstanding_work.untracked);
|
942
|
+
}
|
943
|
+
|
944
|
+
/// Query the current value of the @c allocator property.
|
945
|
+
/**
|
946
|
+
* Do not call this function directly. It is intended for use with the
|
947
|
+
* asio::query customisation point.
|
948
|
+
*
|
949
|
+
* For example:
|
950
|
+
* @code auto ex = my_io_context.get_executor();
|
951
|
+
* auto alloc = asio::query(ex,
|
952
|
+
* asio::execution::allocator); @endcode
|
953
|
+
*/
|
954
|
+
template <typename OtherAllocator>
|
955
|
+
ASIO_CONSTEXPR Allocator query(
|
956
|
+
execution::allocator_t<OtherAllocator>) const ASIO_NOEXCEPT
|
957
|
+
{
|
958
|
+
return allocator_;
|
959
|
+
}
|
960
|
+
|
961
|
+
/// Query the current value of the @c allocator property.
|
962
|
+
/**
|
963
|
+
* Do not call this function directly. It is intended for use with the
|
964
|
+
* asio::query customisation point.
|
965
|
+
*
|
966
|
+
* For example:
|
967
|
+
* @code auto ex = my_io_context.get_executor();
|
968
|
+
* auto alloc = asio::query(ex,
|
969
|
+
* asio::execution::allocator); @endcode
|
970
|
+
*/
|
971
|
+
ASIO_CONSTEXPR Allocator query(
|
972
|
+
execution::allocator_t<void>) const ASIO_NOEXCEPT
|
973
|
+
{
|
974
|
+
return allocator_;
|
975
|
+
}
|
976
|
+
|
977
|
+
/// Determine whether the io_context is running in the current thread.
|
978
|
+
/**
|
979
|
+
* @return @c true if the current thread is running the io_context. Otherwise
|
980
|
+
* returns @c false.
|
981
|
+
*/
|
982
|
+
bool running_in_this_thread() const ASIO_NOEXCEPT;
|
983
|
+
|
984
|
+
/// Compare two executors for equality.
|
985
|
+
/**
|
986
|
+
* Two executors are equal if they refer to the same underlying io_context.
|
987
|
+
*/
|
988
|
+
friend bool operator==(const basic_executor_type& a,
|
989
|
+
const basic_executor_type& b) ASIO_NOEXCEPT
|
990
|
+
{
|
991
|
+
return a.io_context_ == b.io_context_
|
992
|
+
&& a.allocator_ == b.allocator_
|
993
|
+
&& a.bits_ == b.bits_;
|
994
|
+
}
|
995
|
+
|
996
|
+
/// Compare two executors for inequality.
|
997
|
+
/**
|
998
|
+
* Two executors are equal if they refer to the same underlying io_context.
|
999
|
+
*/
|
1000
|
+
friend bool operator!=(const basic_executor_type& a,
|
1001
|
+
const basic_executor_type& b) ASIO_NOEXCEPT
|
1002
|
+
{
|
1003
|
+
return a.io_context_ != b.io_context_
|
1004
|
+
|| a.allocator_ != b.allocator_
|
1005
|
+
|| a.bits_ != b.bits_;
|
1006
|
+
}
|
1007
|
+
|
1008
|
+
/// Execution function.
|
1009
|
+
/**
|
1010
|
+
* Do not call this function directly. It is intended for use with the
|
1011
|
+
* execution::execute customisation point.
|
1012
|
+
*
|
1013
|
+
* For example:
|
1014
|
+
* @code auto ex = my_io_context.get_executor();
|
1015
|
+
* execution::execute(ex, my_function_object); @endcode
|
1016
|
+
*/
|
1017
|
+
template <typename Function>
|
1018
|
+
void execute(ASIO_MOVE_ARG(Function) f) const;
|
1019
|
+
|
1020
|
+
#if !defined(ASIO_NO_TS_EXECUTORS)
|
625
1021
|
/// Obtain the underlying execution context.
|
626
1022
|
io_context& context() const ASIO_NOEXCEPT;
|
627
1023
|
|
@@ -655,8 +1051,9 @@ public:
|
|
655
1051
|
* @param a An allocator that may be used by the executor to allocate the
|
656
1052
|
* internal storage needed for function invocation.
|
657
1053
|
*/
|
658
|
-
template <typename Function, typename
|
659
|
-
void dispatch(ASIO_MOVE_ARG(Function) f,
|
1054
|
+
template <typename Function, typename OtherAllocator>
|
1055
|
+
void dispatch(ASIO_MOVE_ARG(Function) f,
|
1056
|
+
const OtherAllocator& a) const;
|
660
1057
|
|
661
1058
|
/// Request the io_context to invoke the given function object.
|
662
1059
|
/**
|
@@ -671,8 +1068,9 @@ public:
|
|
671
1068
|
* @param a An allocator that may be used by the executor to allocate the
|
672
1069
|
* internal storage needed for function invocation.
|
673
1070
|
*/
|
674
|
-
template <typename Function, typename
|
675
|
-
void post(ASIO_MOVE_ARG(Function) f,
|
1071
|
+
template <typename Function, typename OtherAllocator>
|
1072
|
+
void post(ASIO_MOVE_ARG(Function) f,
|
1073
|
+
const OtherAllocator& a) const;
|
676
1074
|
|
677
1075
|
/// Request the io_context to invoke the given function object.
|
678
1076
|
/**
|
@@ -691,44 +1089,45 @@ public:
|
|
691
1089
|
* @param a An allocator that may be used by the executor to allocate the
|
692
1090
|
* internal storage needed for function invocation.
|
693
1091
|
*/
|
694
|
-
template <typename Function, typename
|
695
|
-
void defer(ASIO_MOVE_ARG(Function) f,
|
1092
|
+
template <typename Function, typename OtherAllocator>
|
1093
|
+
void defer(ASIO_MOVE_ARG(Function) f,
|
1094
|
+
const OtherAllocator& a) const;
|
1095
|
+
#endif // !defined(ASIO_NO_TS_EXECUTORS)
|
696
1096
|
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
* returns @c false.
|
701
|
-
*/
|
702
|
-
bool running_in_this_thread() const ASIO_NOEXCEPT;
|
1097
|
+
private:
|
1098
|
+
friend class io_context;
|
1099
|
+
template <typename, unsigned int> friend class basic_executor_type;
|
703
1100
|
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
const executor_type& b) ASIO_NOEXCEPT
|
1101
|
+
// Constructor used by io_context::get_executor().
|
1102
|
+
explicit basic_executor_type(io_context& i) ASIO_NOEXCEPT
|
1103
|
+
: io_context_(&i),
|
1104
|
+
allocator_(),
|
1105
|
+
bits_(0)
|
710
1106
|
{
|
711
|
-
|
1107
|
+
if (Bits & outstanding_work_tracked)
|
1108
|
+
io_context_->impl_.work_started();
|
712
1109
|
}
|
713
1110
|
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
|
1111
|
+
// Constructor used by require().
|
1112
|
+
basic_executor_type(io_context* i,
|
1113
|
+
const Allocator& a, unsigned int bits) ASIO_NOEXCEPT
|
1114
|
+
: io_context_(i),
|
1115
|
+
allocator_(a),
|
1116
|
+
bits_(bits)
|
720
1117
|
{
|
721
|
-
|
1118
|
+
if (Bits & outstanding_work_tracked)
|
1119
|
+
if (io_context_)
|
1120
|
+
io_context_->impl_.work_started();
|
722
1121
|
}
|
723
1122
|
|
724
|
-
|
725
|
-
|
1123
|
+
// The underlying io_context.
|
1124
|
+
io_context* io_context_;
|
726
1125
|
|
727
|
-
//
|
728
|
-
|
1126
|
+
// The allocator used for execution functions.
|
1127
|
+
Allocator allocator_;
|
729
1128
|
|
730
|
-
// The
|
731
|
-
|
1129
|
+
// The runtime-switched properties of the io_context executor.
|
1130
|
+
unsigned int bits_;
|
732
1131
|
};
|
733
1132
|
|
734
1133
|
#if !defined(ASIO_NO_DEPRECATED)
|
@@ -852,6 +1251,265 @@ template <typename Type>
|
|
852
1251
|
asio::detail::service_id<Type> service_base<Type>::id;
|
853
1252
|
|
854
1253
|
} // namespace detail
|
1254
|
+
|
1255
|
+
#if !defined(GENERATING_DOCUMENTATION)
|
1256
|
+
|
1257
|
+
namespace traits {
|
1258
|
+
|
1259
|
+
#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
|
1260
|
+
|
1261
|
+
template <typename Allocator, unsigned int Bits>
|
1262
|
+
struct equality_comparable<
|
1263
|
+
asio::io_context::basic_executor_type<Allocator, Bits>
|
1264
|
+
>
|
1265
|
+
{
|
1266
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1267
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
1268
|
+
};
|
1269
|
+
|
1270
|
+
#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
|
1271
|
+
|
1272
|
+
#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
|
1273
|
+
|
1274
|
+
template <typename Allocator, unsigned int Bits, typename Function>
|
1275
|
+
struct execute_member<
|
1276
|
+
asio::io_context::basic_executor_type<Allocator, Bits>,
|
1277
|
+
Function
|
1278
|
+
>
|
1279
|
+
{
|
1280
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1281
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
|
1282
|
+
typedef void result_type;
|
1283
|
+
};
|
1284
|
+
|
1285
|
+
#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
|
1286
|
+
|
1287
|
+
#if !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
|
1288
|
+
|
1289
|
+
template <typename Allocator, unsigned int Bits>
|
1290
|
+
struct require_member<
|
1291
|
+
asio::io_context::basic_executor_type<Allocator, Bits>,
|
1292
|
+
asio::execution::blocking_t::possibly_t
|
1293
|
+
>
|
1294
|
+
{
|
1295
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1296
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
|
1297
|
+
typedef asio::io_context::basic_executor_type<
|
1298
|
+
Allocator, Bits> result_type;
|
1299
|
+
};
|
1300
|
+
|
1301
|
+
template <typename Allocator, unsigned int Bits>
|
1302
|
+
struct require_member<
|
1303
|
+
asio::io_context::basic_executor_type<Allocator, Bits>,
|
1304
|
+
asio::execution::blocking_t::never_t
|
1305
|
+
>
|
1306
|
+
{
|
1307
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1308
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
|
1309
|
+
typedef asio::io_context::basic_executor_type<
|
1310
|
+
Allocator, Bits> result_type;
|
1311
|
+
};
|
1312
|
+
|
1313
|
+
template <typename Allocator, unsigned int Bits>
|
1314
|
+
struct require_member<
|
1315
|
+
asio::io_context::basic_executor_type<Allocator, Bits>,
|
1316
|
+
asio::execution::relationship_t::fork_t
|
1317
|
+
>
|
1318
|
+
{
|
1319
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1320
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
|
1321
|
+
typedef asio::io_context::basic_executor_type<
|
1322
|
+
Allocator, Bits> result_type;
|
1323
|
+
};
|
1324
|
+
|
1325
|
+
template <typename Allocator, unsigned int Bits>
|
1326
|
+
struct require_member<
|
1327
|
+
asio::io_context::basic_executor_type<Allocator, Bits>,
|
1328
|
+
asio::execution::relationship_t::continuation_t
|
1329
|
+
>
|
1330
|
+
{
|
1331
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1332
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
|
1333
|
+
typedef asio::io_context::basic_executor_type<
|
1334
|
+
Allocator, Bits> result_type;
|
1335
|
+
};
|
1336
|
+
|
1337
|
+
template <typename Allocator, unsigned int Bits>
|
1338
|
+
struct require_member<
|
1339
|
+
asio::io_context::basic_executor_type<Allocator, Bits>,
|
1340
|
+
asio::execution::outstanding_work_t::tracked_t
|
1341
|
+
> : asio::detail::io_context_bits
|
1342
|
+
{
|
1343
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1344
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
|
1345
|
+
typedef asio::io_context::basic_executor_type<
|
1346
|
+
Allocator, Bits | outstanding_work_tracked> result_type;
|
1347
|
+
};
|
1348
|
+
|
1349
|
+
template <typename Allocator, unsigned int Bits>
|
1350
|
+
struct require_member<
|
1351
|
+
asio::io_context::basic_executor_type<Allocator, Bits>,
|
1352
|
+
asio::execution::outstanding_work_t::untracked_t
|
1353
|
+
> : asio::detail::io_context_bits
|
1354
|
+
{
|
1355
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1356
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
|
1357
|
+
typedef asio::io_context::basic_executor_type<
|
1358
|
+
Allocator, Bits & ~outstanding_work_tracked> result_type;
|
1359
|
+
};
|
1360
|
+
|
1361
|
+
template <typename Allocator, unsigned int Bits>
|
1362
|
+
struct require_member<
|
1363
|
+
asio::io_context::basic_executor_type<Allocator, Bits>,
|
1364
|
+
asio::execution::allocator_t<void>
|
1365
|
+
>
|
1366
|
+
{
|
1367
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1368
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
|
1369
|
+
typedef asio::io_context::basic_executor_type<
|
1370
|
+
std::allocator<void>, Bits> result_type;
|
1371
|
+
};
|
1372
|
+
|
1373
|
+
template <unsigned int Bits,
|
1374
|
+
typename Allocator, typename OtherAllocator>
|
1375
|
+
struct require_member<
|
1376
|
+
asio::io_context::basic_executor_type<Allocator, Bits>,
|
1377
|
+
asio::execution::allocator_t<OtherAllocator>
|
1378
|
+
>
|
1379
|
+
{
|
1380
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1381
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
|
1382
|
+
typedef asio::io_context::basic_executor_type<
|
1383
|
+
OtherAllocator, Bits> result_type;
|
1384
|
+
};
|
1385
|
+
|
1386
|
+
#endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
|
1387
|
+
|
1388
|
+
#if !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
|
1389
|
+
|
1390
|
+
template <typename Allocator, unsigned int Bits, typename Property>
|
1391
|
+
struct query_static_constexpr_member<
|
1392
|
+
asio::io_context::basic_executor_type<Allocator, Bits>,
|
1393
|
+
Property,
|
1394
|
+
typename asio::enable_if<
|
1395
|
+
asio::is_convertible<
|
1396
|
+
Property,
|
1397
|
+
asio::execution::outstanding_work_t
|
1398
|
+
>::value
|
1399
|
+
>::type
|
1400
|
+
> : asio::detail::io_context_bits
|
1401
|
+
{
|
1402
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1403
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
1404
|
+
typedef asio::execution::outstanding_work_t result_type;
|
1405
|
+
|
1406
|
+
static ASIO_CONSTEXPR result_type value() ASIO_NOEXCEPT
|
1407
|
+
{
|
1408
|
+
return (Bits & outstanding_work_tracked)
|
1409
|
+
? execution::outstanding_work_t(execution::outstanding_work.tracked)
|
1410
|
+
: execution::outstanding_work_t(execution::outstanding_work.untracked);
|
1411
|
+
}
|
1412
|
+
};
|
1413
|
+
|
1414
|
+
template <typename Allocator, unsigned int Bits, typename Property>
|
1415
|
+
struct query_static_constexpr_member<
|
1416
|
+
asio::io_context::basic_executor_type<Allocator, Bits>,
|
1417
|
+
Property,
|
1418
|
+
typename asio::enable_if<
|
1419
|
+
asio::is_convertible<
|
1420
|
+
Property,
|
1421
|
+
asio::execution::mapping_t
|
1422
|
+
>::value
|
1423
|
+
>::type
|
1424
|
+
>
|
1425
|
+
{
|
1426
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1427
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
1428
|
+
typedef asio::execution::mapping_t::thread_t result_type;
|
1429
|
+
|
1430
|
+
static ASIO_CONSTEXPR result_type value() ASIO_NOEXCEPT
|
1431
|
+
{
|
1432
|
+
return result_type();
|
1433
|
+
}
|
1434
|
+
};
|
1435
|
+
|
1436
|
+
#endif // !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
|
1437
|
+
|
1438
|
+
#if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
|
1439
|
+
|
1440
|
+
template <typename Allocator, unsigned int Bits, typename Property>
|
1441
|
+
struct query_member<
|
1442
|
+
asio::io_context::basic_executor_type<Allocator, Bits>,
|
1443
|
+
Property,
|
1444
|
+
typename asio::enable_if<
|
1445
|
+
asio::is_convertible<
|
1446
|
+
Property,
|
1447
|
+
asio::execution::blocking_t
|
1448
|
+
>::value
|
1449
|
+
>::type
|
1450
|
+
>
|
1451
|
+
{
|
1452
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1453
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
1454
|
+
typedef asio::execution::blocking_t result_type;
|
1455
|
+
};
|
1456
|
+
|
1457
|
+
template <typename Allocator, unsigned int Bits, typename Property>
|
1458
|
+
struct query_member<
|
1459
|
+
asio::io_context::basic_executor_type<Allocator, Bits>,
|
1460
|
+
Property,
|
1461
|
+
typename asio::enable_if<
|
1462
|
+
asio::is_convertible<
|
1463
|
+
Property,
|
1464
|
+
asio::execution::relationship_t
|
1465
|
+
>::value
|
1466
|
+
>::type
|
1467
|
+
>
|
1468
|
+
{
|
1469
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1470
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
1471
|
+
typedef asio::execution::relationship_t result_type;
|
1472
|
+
};
|
1473
|
+
|
1474
|
+
template <typename Allocator, unsigned int Bits>
|
1475
|
+
struct query_member<
|
1476
|
+
asio::io_context::basic_executor_type<Allocator, Bits>,
|
1477
|
+
asio::execution::context_t
|
1478
|
+
>
|
1479
|
+
{
|
1480
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1481
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
1482
|
+
typedef asio::io_context& result_type;
|
1483
|
+
};
|
1484
|
+
|
1485
|
+
template <typename Allocator, unsigned int Bits>
|
1486
|
+
struct query_member<
|
1487
|
+
asio::io_context::basic_executor_type<Allocator, Bits>,
|
1488
|
+
asio::execution::allocator_t<void>
|
1489
|
+
>
|
1490
|
+
{
|
1491
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1492
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
1493
|
+
typedef Allocator result_type;
|
1494
|
+
};
|
1495
|
+
|
1496
|
+
template <typename Allocator, unsigned int Bits, typename OtherAllocator>
|
1497
|
+
struct query_member<
|
1498
|
+
asio::io_context::basic_executor_type<Allocator, Bits>,
|
1499
|
+
asio::execution::allocator_t<OtherAllocator>
|
1500
|
+
>
|
1501
|
+
{
|
1502
|
+
ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
|
1503
|
+
ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
|
1504
|
+
typedef Allocator result_type;
|
1505
|
+
};
|
1506
|
+
|
1507
|
+
#endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
|
1508
|
+
|
1509
|
+
} // namespace traits
|
1510
|
+
|
1511
|
+
#endif // !defined(GENERATING_DOCUMENTATION)
|
1512
|
+
|
855
1513
|
} // namespace asio
|
856
1514
|
|
857
1515
|
#include "asio/detail/pop_options.hpp"
|