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
@@ -1,163 +0,0 @@
|
|
1
|
-
[/
|
2
|
-
/ Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
3
|
-
/
|
4
|
-
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
|
5
|
-
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
6
|
-
/]
|
7
|
-
|
8
|
-
[section:buffers Buffers]
|
9
|
-
|
10
|
-
Fundamentally, I/O involves the transfer of data to and from contiguous regions
|
11
|
-
of memory, called buffers. These buffers can be simply expressed as a tuple
|
12
|
-
consisting of a pointer and a size in bytes. However, to allow the development
|
13
|
-
of efficient network applications, Asio includes support for scatter-gather
|
14
|
-
operations. These operations involve one or more buffers:
|
15
|
-
|
16
|
-
* A scatter-read receives data into multiple buffers.
|
17
|
-
* A gather-write transmits multiple buffers.
|
18
|
-
|
19
|
-
Therefore we require an abstraction to represent a collection of buffers. The
|
20
|
-
approach used in Asio is to define a type (actually two types) to
|
21
|
-
represent a single buffer. These can be stored in a container, which may be
|
22
|
-
passed to the scatter-gather operations.
|
23
|
-
|
24
|
-
In addition to specifying buffers as a pointer and size in bytes, Asio makes a
|
25
|
-
distinction between modifiable memory (called mutable) and non-modifiable
|
26
|
-
memory (where the latter is created from the storage for a const-qualified
|
27
|
-
variable). These two types could therefore be defined as follows:
|
28
|
-
|
29
|
-
typedef std::pair<void*, std::size_t> mutable_buffer;
|
30
|
-
typedef std::pair<const void*, std::size_t> const_buffer;
|
31
|
-
|
32
|
-
Here, a mutable_buffer would be convertible to a const_buffer, but conversion
|
33
|
-
in the opposite direction is not valid.
|
34
|
-
|
35
|
-
However, Asio does not use the above definitions as-is, but instead defines two
|
36
|
-
classes: `mutable_buffer` and `const_buffer`. The goal of these is to provide
|
37
|
-
an opaque representation of contiguous memory, where:
|
38
|
-
|
39
|
-
* Types behave as std::pair would in conversions. That is, a `mutable_buffer` is
|
40
|
-
convertible to a `const_buffer`, but the opposite conversion is disallowed.
|
41
|
-
|
42
|
-
* There is protection against buffer overruns. Given a buffer instance, a user
|
43
|
-
can only create another buffer representing the same range of memory or a
|
44
|
-
sub-range of it. To provide further safety, the library also includes
|
45
|
-
mechanisms for automatically determining the size of a buffer from an array,
|
46
|
-
`boost::array` or `std::vector` of POD elements, or from a `std::string`.
|
47
|
-
|
48
|
-
* The underlying memory is explicitly accessed using the `data()` member
|
49
|
-
function. In general an application should never need to do this, but it is
|
50
|
-
required by the library implementation to pass the raw memory to the
|
51
|
-
underlying operating system functions.
|
52
|
-
|
53
|
-
Finally, multiple buffers can be passed to scatter-gather operations (such as
|
54
|
-
[link asio.reference.read read()] or [link asio.reference.write write()]) by
|
55
|
-
putting the buffer objects into a container. The `MutableBufferSequence` and
|
56
|
-
`ConstBufferSequence` concepts have been defined so that containers such as
|
57
|
-
`std::vector`, `std::list`, `std::array` or `boost::array` can be used.
|
58
|
-
|
59
|
-
[heading Streambuf for Integration with Iostreams]
|
60
|
-
|
61
|
-
The class `asio::basic_streambuf` is derived from `std::basic_streambuf` to
|
62
|
-
associate the input sequence and output sequence with one or more objects of
|
63
|
-
some character array type, whose elements store arbitrary values. These
|
64
|
-
character array objects are internal to the streambuf object, but direct access
|
65
|
-
to the array elements is provided to permit them to be used with I/O
|
66
|
-
operations, such as the send or receive operations of a socket:
|
67
|
-
|
68
|
-
* The input sequence of the streambuf is accessible via the [link
|
69
|
-
asio.reference.basic_streambuf.data data()] member function. The return type
|
70
|
-
of this function meets the `ConstBufferSequence` requirements.
|
71
|
-
|
72
|
-
* The output sequence of the streambuf is accessible via the [link
|
73
|
-
asio.reference.basic_streambuf.prepare prepare()] member function. The return
|
74
|
-
type of this function meets the `MutableBufferSequence` requirements.
|
75
|
-
|
76
|
-
* Data is transferred from the front of the output sequence to the back of the
|
77
|
-
input sequence by calling the [link asio.reference.basic_streambuf.commit
|
78
|
-
commit()] member function.
|
79
|
-
|
80
|
-
* Data is removed from the front of the input sequence by calling the [link
|
81
|
-
asio.reference.basic_streambuf.consume consume()] member function.
|
82
|
-
|
83
|
-
The streambuf constructor accepts a `size_t` argument specifying the maximum of
|
84
|
-
the sum of the sizes of the input sequence and output sequence. Any operation
|
85
|
-
that would, if successful, grow the internal data beyond this limit will throw
|
86
|
-
a `std::length_error` exception.
|
87
|
-
|
88
|
-
[heading Bytewise Traversal of Buffer Sequences]
|
89
|
-
|
90
|
-
The `buffers_iterator<>` class template allows buffer sequences (i.e. types
|
91
|
-
meeting `MutableBufferSequence` or `ConstBufferSequence` requirements) to be
|
92
|
-
traversed as though they were a contiguous sequence of bytes. Helper functions
|
93
|
-
called buffers_begin() and buffers_end() are also provided, where the
|
94
|
-
buffers_iterator<> template parameter is automatically deduced.
|
95
|
-
|
96
|
-
As an example, to read a single line from a socket and into a `std::string`,
|
97
|
-
you may write:
|
98
|
-
|
99
|
-
asio::streambuf sb;
|
100
|
-
...
|
101
|
-
std::size_t n = asio::read_until(sock, sb, '\n');
|
102
|
-
asio::streambuf::const_buffers_type bufs = sb.data();
|
103
|
-
std::string line(
|
104
|
-
asio::buffers_begin(bufs),
|
105
|
-
asio::buffers_begin(bufs) + n);
|
106
|
-
|
107
|
-
[heading Buffer Debugging]
|
108
|
-
|
109
|
-
Some standard library implementations, such as the one that ships with
|
110
|
-
Microsoft Visual C++ 8.0 and later, provide a feature called iterator
|
111
|
-
debugging. What this means is that the validity of iterators is checked at
|
112
|
-
runtime. If a program tries to use an iterator that has been invalidated, an
|
113
|
-
assertion will be triggered. For example:
|
114
|
-
|
115
|
-
std::vector<int> v(1)
|
116
|
-
std::vector<int>::iterator i = v.begin();
|
117
|
-
v.clear(); // invalidates iterators
|
118
|
-
*i = 0; // assertion!
|
119
|
-
|
120
|
-
Asio takes advantage of this feature to add buffer debugging. Consider the
|
121
|
-
following code:
|
122
|
-
|
123
|
-
void dont_do_this()
|
124
|
-
{
|
125
|
-
std::string msg = "Hello, world!";
|
126
|
-
asio::async_write(sock, asio::buffer(msg), my_handler);
|
127
|
-
}
|
128
|
-
|
129
|
-
When you call an asynchronous read or write you need to ensure that the buffers
|
130
|
-
for the operation are valid until the completion handler is called. In the
|
131
|
-
above example, the buffer is the `std::string` variable `msg`. This variable is
|
132
|
-
on the stack, and so it goes out of scope before the asynchronous operation
|
133
|
-
completes. If you're lucky then the application will crash, but random failures
|
134
|
-
are more likely.
|
135
|
-
|
136
|
-
When buffer debugging is enabled, Asio stores an iterator into the string until
|
137
|
-
the asynchronous operation completes, and then dereferences it to check its
|
138
|
-
validity. In the above example you would observe an assertion failure just
|
139
|
-
before Asio tries to call the completion handler.
|
140
|
-
|
141
|
-
This feature is automatically made available for Microsoft Visual Studio 8.0 or
|
142
|
-
later and for GCC when `_GLIBCXX_DEBUG` is defined. There is a performance cost
|
143
|
-
to this checking, so buffer debugging is only enabled in debug builds. For
|
144
|
-
other compilers it may be enabled by defining `ASIO_ENABLE_BUFFER_DEBUGGING`.
|
145
|
-
It can also be explicitly disabled by defining `ASIO_DISABLE_BUFFER_DEBUGGING`.
|
146
|
-
|
147
|
-
[heading See Also]
|
148
|
-
|
149
|
-
[link asio.reference.buffer buffer],
|
150
|
-
[link asio.reference.buffers_begin buffers_begin],
|
151
|
-
[link asio.reference.buffers_end buffers_end],
|
152
|
-
[link asio.reference.buffers_iterator buffers_iterator],
|
153
|
-
[link asio.reference.const_buffer const_buffer],
|
154
|
-
[link asio.reference.const_buffers_1 const_buffers_1],
|
155
|
-
[link asio.reference.mutable_buffer mutable_buffer],
|
156
|
-
[link asio.reference.mutable_buffers_1 mutable_buffers_1],
|
157
|
-
[link asio.reference.streambuf streambuf],
|
158
|
-
[link asio.reference.ConstBufferSequence ConstBufferSequence],
|
159
|
-
[link asio.reference.MutableBufferSequence MutableBufferSequence],
|
160
|
-
[link asio.examples.cpp03_examples.buffers buffers example (C++03)],
|
161
|
-
[link asio.examples.cpp11_examples.buffers buffers example (c++11)].
|
162
|
-
|
163
|
-
[endsect]
|
@@ -1,88 +0,0 @@
|
|
1
|
-
[/
|
2
|
-
/ Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
3
|
-
/
|
4
|
-
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
|
5
|
-
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
6
|
-
/]
|
7
|
-
|
8
|
-
[section:concurrency_hint Concurrency Hints]
|
9
|
-
|
10
|
-
The [link asio.reference.io_context.io_context `io_context` constructor]
|
11
|
-
allows programs to specify a concurrency hint. This is a suggestion to the
|
12
|
-
`io_context` implementation as to the number of active threads that should be
|
13
|
-
used for running completion handlers.
|
14
|
-
|
15
|
-
When the Windows I/O completion port backend is in use, this value is passed
|
16
|
-
to [^CreateIoCompletionPort].
|
17
|
-
|
18
|
-
When a reactor-based backend is used, the implementation recognises the
|
19
|
-
following special concurrency hint values:
|
20
|
-
|
21
|
-
[table
|
22
|
-
[[Value][Description]]
|
23
|
-
[
|
24
|
-
[`1`]
|
25
|
-
[
|
26
|
-
The implementation assumes that the `io_context` will be run from a
|
27
|
-
single thread, and applies several optimisations based on this
|
28
|
-
assumption.
|
29
|
-
|
30
|
-
For example, when a handler is posted from within another handler, the
|
31
|
-
new handler is added to a fast thread-local queue (with the consequence
|
32
|
-
that the new handler is held back until the currently executing handler
|
33
|
-
finishes).
|
34
|
-
]
|
35
|
-
]
|
36
|
-
[
|
37
|
-
[`ASIO_CONCURRENCY_HINT_UNSAFE`]
|
38
|
-
[
|
39
|
-
This special concurrency hint disables locking in both the scheduler and
|
40
|
-
reactor I/O. This hint has the following restrictions:
|
41
|
-
|
42
|
-
[mdash] Care must be taken to ensure that all operations on the
|
43
|
-
`io_context` and any of its associated I/O objects (such as sockets and
|
44
|
-
timers) occur in only one thread at a time.
|
45
|
-
|
46
|
-
[mdash] Asynchronous resolve operations fail with `operation_not_supported`.
|
47
|
-
|
48
|
-
[mdash] If a `signal_set` is used with the `io_context`, `signal_set`
|
49
|
-
objects cannot be used with any other io_context in the program.
|
50
|
-
]
|
51
|
-
]
|
52
|
-
[
|
53
|
-
[`ASIO_CONCURRENCY_HINT_UNSAFE_IO`]
|
54
|
-
[
|
55
|
-
This special concurrency hint disables locking in the reactor I/O. This
|
56
|
-
hint has the following restrictions:
|
57
|
-
|
58
|
-
[mdash] Care must be taken to ensure that run functions on the
|
59
|
-
`io_context`, and all operations on the context's associated I/O objects
|
60
|
-
(such as sockets and timers), occur in only one thread at a time.
|
61
|
-
]
|
62
|
-
]
|
63
|
-
[
|
64
|
-
[`ASIO_CONCURRENCY_HINT_SAFE`]
|
65
|
-
[
|
66
|
-
The default. The `io_context` provides full thread safety, and distinct
|
67
|
-
I/O objects may be used from any thread.
|
68
|
-
]
|
69
|
-
]
|
70
|
-
]
|
71
|
-
|
72
|
-
[teletype]
|
73
|
-
The concurrency hint used by default-constructed `io_context` objects can be
|
74
|
-
overridden at compile time by defining the `ASIO_CONCURRENCY_HINT_DEFAULT`
|
75
|
-
macro. For example, specifying
|
76
|
-
|
77
|
-
-DASIO_CONCURRENCY_HINT_DEFAULT=1
|
78
|
-
|
79
|
-
on the compiler command line means that a concurrency hint of `1` is used for
|
80
|
-
all default-constructed `io_context` objects in the program. Similarly, the
|
81
|
-
concurrency hint used by `io_context` objects constructed with `1` can be
|
82
|
-
overridden by defining `ASIO_CONCURRENCY_HINT_1`. For example, passing
|
83
|
-
|
84
|
-
-DASIO_CONCURRENCY_HINT_1=ASIO_CONCURRENCY_HINT_UNSAFE
|
85
|
-
|
86
|
-
to the compiler will disable thread safety for all of these objects.
|
87
|
-
|
88
|
-
[endsect]
|
@@ -1,51 +0,0 @@
|
|
1
|
-
[/
|
2
|
-
/ Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
3
|
-
/
|
4
|
-
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
|
5
|
-
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
6
|
-
/]
|
7
|
-
|
8
|
-
[section:coroutine Stackless Coroutines]
|
9
|
-
|
10
|
-
The [link asio.reference.coroutine `coroutine`] class provides support for
|
11
|
-
stackless coroutines. Stackless coroutines enable programs to implement
|
12
|
-
asynchronous logic in a synchronous manner, with minimal overhead, as shown in
|
13
|
-
the following example:
|
14
|
-
|
15
|
-
struct session : asio::coroutine
|
16
|
-
{
|
17
|
-
boost::shared_ptr<tcp::socket> socket_;
|
18
|
-
boost::shared_ptr<std::vector<char> > buffer_;
|
19
|
-
|
20
|
-
session(boost::shared_ptr<tcp::socket> socket)
|
21
|
-
: socket_(socket),
|
22
|
-
buffer_(new std::vector<char>(1024))
|
23
|
-
{
|
24
|
-
}
|
25
|
-
|
26
|
-
void operator()(asio::error_code ec = asio::error_code(), std::size_t n = 0)
|
27
|
-
{
|
28
|
-
if (!ec) reenter (this)
|
29
|
-
{
|
30
|
-
for (;;)
|
31
|
-
{
|
32
|
-
yield socket_->async_read_some(asio::buffer(*buffer_), *this);
|
33
|
-
yield asio::async_write(*socket_, asio::buffer(*buffer_, n), *this);
|
34
|
-
}
|
35
|
-
}
|
36
|
-
}
|
37
|
-
};
|
38
|
-
|
39
|
-
The `coroutine` class is used in conjunction with the pseudo-keywords
|
40
|
-
`reenter`, `yield` and `fork`. These are preprocessor macros, and are
|
41
|
-
implemented in terms of a `switch` statement using a technique similar to
|
42
|
-
Duff's Device. The [link asio.reference.coroutine `coroutine`] class's
|
43
|
-
documentation provides a complete description of these pseudo-keywords.
|
44
|
-
|
45
|
-
[heading See Also]
|
46
|
-
|
47
|
-
[link asio.reference.coroutine coroutine],
|
48
|
-
[link asio.examples.cpp03_examples.http_server_4 HTTP Server 4 example],
|
49
|
-
[link asio.overview.core.spawn Stackful Coroutines].
|
50
|
-
|
51
|
-
[endsect]
|
@@ -1,97 +0,0 @@
|
|
1
|
-
[/
|
2
|
-
/ Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
3
|
-
/
|
4
|
-
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
|
5
|
-
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
6
|
-
/]
|
7
|
-
|
8
|
-
[section:coroutines_ts Coroutines TS Support]
|
9
|
-
|
10
|
-
Support for the Coroutines TS is provided via the [link
|
11
|
-
asio.reference.awaitable `awaitable`] class template, the [link
|
12
|
-
asio.reference.use_awaitable_t `use_awaitable`] completion token, and the [link
|
13
|
-
asio.reference.co_spawn `co_spawn()`] function. These facilities allow programs
|
14
|
-
to implement asynchronous logic in a synchronous manner, in conjunction with
|
15
|
-
the `co_await` keyword, as shown in the following example:
|
16
|
-
|
17
|
-
asio::co_spawn(executor,
|
18
|
-
[socket = std::move(socket)]() mutable
|
19
|
-
{
|
20
|
-
return echo(std::move(socket));
|
21
|
-
},
|
22
|
-
asio::detached);
|
23
|
-
|
24
|
-
// ...
|
25
|
-
|
26
|
-
asio::awaitable<void> echo(tcp::socket socket)
|
27
|
-
{
|
28
|
-
try
|
29
|
-
{
|
30
|
-
char data[1024];
|
31
|
-
for (;;)
|
32
|
-
{
|
33
|
-
std::size_t n = co_await socket.async_read_some(asio::buffer(data), asio::use_awaitable);
|
34
|
-
co_await async_write(socket, asio::buffer(data, n), asio::use_awaitable);
|
35
|
-
}
|
36
|
-
}
|
37
|
-
catch (std::exception& e)
|
38
|
-
{
|
39
|
-
std::printf("echo Exception: %s\n", e.what());
|
40
|
-
}
|
41
|
-
}
|
42
|
-
|
43
|
-
The first argument to `co_spawn()` is an [link asio.reference.Executor1
|
44
|
-
executor] that determines the context in which the coroutine is permitted to
|
45
|
-
execute. For example, a server's per-client object may consist of multiple
|
46
|
-
coroutines; they should all run on the same `strand` so that no explicit
|
47
|
-
synchronisation is required.
|
48
|
-
|
49
|
-
The second argument is a nullary function object that returns a [link
|
50
|
-
asio.reference.awaitable `asio::awaitable<R>`],
|
51
|
-
where `R` is the type of return value produced by the coroutine. In the above
|
52
|
-
example, the coroutine returns `void`.
|
53
|
-
|
54
|
-
The third argument is a completion token, and this is used by `co_spawn()` to
|
55
|
-
produce a completion handler with signature `void(std::exception_ptr, R)`. This
|
56
|
-
completion handler is invoked with the result of the coroutine once it has
|
57
|
-
finished. In the above example we pass a completion token type, [link
|
58
|
-
asio.reference.detached `asio::detached`], which is used to explicitly ignore
|
59
|
-
the result of an asynchronous operation.
|
60
|
-
|
61
|
-
In this example the body of the coroutine is implemented in the `echo`
|
62
|
-
function. When the `use_awaitable` completion token is passed to an
|
63
|
-
asynchronous operation, the operation's initiating function returns an
|
64
|
-
`awaitable` that may be used with the `co_await` keyword:
|
65
|
-
|
66
|
-
std::size_t n = co_await socket.async_read_some(asio::buffer(data), asio::use_awaitable);
|
67
|
-
|
68
|
-
Where an asynchronous operation's handler signature has the form:
|
69
|
-
|
70
|
-
void handler(asio::error_code ec, result_type result);
|
71
|
-
|
72
|
-
the resulting type of the `co_await` expression is `result_type`. In the
|
73
|
-
`async_read_some` example above, this is `size_t`. If the asynchronous
|
74
|
-
operation fails, the `error_code` is converted into a `system_error` exception
|
75
|
-
and thrown.
|
76
|
-
|
77
|
-
Where a handler signature has the form:
|
78
|
-
|
79
|
-
void handler(asio::error_code ec);
|
80
|
-
|
81
|
-
the `co_await` expression produces a `void` result. As above, an error is
|
82
|
-
passed back to the coroutine as a `system_error` exception.
|
83
|
-
|
84
|
-
[heading See Also]
|
85
|
-
|
86
|
-
[link asio.reference.co_spawn co_spawn],
|
87
|
-
[link asio.reference.detached detached],
|
88
|
-
[link asio.reference.redirect_error redirect_error],
|
89
|
-
[link asio.reference.awaitable awaitable],
|
90
|
-
[link asio.reference.use_awaitable_t use_awaitable_t],
|
91
|
-
[link asio.reference.use_awaitable use_awaitable],
|
92
|
-
[link asio.reference.this_coro__executor this_coro::executor],
|
93
|
-
[link asio.examples.cpp17_examples.coroutines_ts_support Coroutines TS examples],
|
94
|
-
[link asio.overview.core.spawn Stackful Coroutines],
|
95
|
-
[link asio.overview.core.coroutine Stackless Coroutines].
|
96
|
-
|
97
|
-
[endsect]
|
@@ -1,271 +0,0 @@
|
|
1
|
-
[/
|
2
|
-
/ Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
3
|
-
/
|
4
|
-
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
|
5
|
-
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
6
|
-
/]
|
7
|
-
|
8
|
-
[section:cpp2011 C++ 2011 Support]
|
9
|
-
|
10
|
-
[/boostify: non-boost docs start here]
|
11
|
-
|
12
|
-
[link asio.overview.cpp2011.system_error System Errors and Error Codes]
|
13
|
-
|
14
|
-
[/boostify: non-boost docs end here]
|
15
|
-
|
16
|
-
[link asio.overview.cpp2011.move_objects Movable I/O Objects]
|
17
|
-
|
18
|
-
[link asio.overview.cpp2011.move_handlers Movable Handlers]
|
19
|
-
|
20
|
-
[link asio.overview.cpp2011.variadic Variadic Templates]
|
21
|
-
|
22
|
-
[link asio.overview.cpp2011.array Array Container]
|
23
|
-
|
24
|
-
[link asio.overview.cpp2011.atomic Atomics]
|
25
|
-
|
26
|
-
[link asio.overview.cpp2011.shared_ptr Shared Pointers]
|
27
|
-
|
28
|
-
[link asio.overview.cpp2011.chrono Chrono]
|
29
|
-
|
30
|
-
[link asio.overview.cpp2011.futures Futures]
|
31
|
-
|
32
|
-
[/boostify: non-boost docs start here]
|
33
|
-
|
34
|
-
[section:system_error System Errors and Error Codes]
|
35
|
-
|
36
|
-
When available, Asio can use the `std::error_code` and `std::system_error`
|
37
|
-
classes for reporting errors. In this case, the names `asio::error_code` and
|
38
|
-
`asio::system_error` will be typedefs for these standard classes.
|
39
|
-
|
40
|
-
System error support is automatically enabled for [^g++] 4.6 and later, when
|
41
|
-
the [^-std=c++0x] or [^-std=gnu++0x] compiler options are used. It may be
|
42
|
-
disabled by defining `ASIO_DISABLE_STD_SYSTEM_ERROR`, or explicitly enabled for
|
43
|
-
other compilers by defining `ASIO_HAS_STD_SYSTEM_ERROR`.
|
44
|
-
|
45
|
-
[endsect]
|
46
|
-
|
47
|
-
[/boostify: non-boost docs end here]
|
48
|
-
|
49
|
-
[section:move_objects Movable I/O Objects]
|
50
|
-
|
51
|
-
When move support is available (via rvalue references), Asio allows move
|
52
|
-
construction and assignment of sockets, serial ports, POSIX descriptors and
|
53
|
-
Windows handles.
|
54
|
-
|
55
|
-
Move support allows you to write code like:
|
56
|
-
|
57
|
-
tcp::socket make_socket(io_context& i)
|
58
|
-
{
|
59
|
-
tcp::socket s(i);
|
60
|
-
...
|
61
|
-
std::move(s);
|
62
|
-
}
|
63
|
-
|
64
|
-
or:
|
65
|
-
|
66
|
-
class connection : public enable_shared_from_this<connection>
|
67
|
-
{
|
68
|
-
private:
|
69
|
-
tcp::socket socket_;
|
70
|
-
...
|
71
|
-
public:
|
72
|
-
connection(tcp::socket&& s) : socket_(std::move(s)) {}
|
73
|
-
...
|
74
|
-
};
|
75
|
-
|
76
|
-
...
|
77
|
-
|
78
|
-
class server
|
79
|
-
{
|
80
|
-
private:
|
81
|
-
tcp::acceptor acceptor_;
|
82
|
-
...
|
83
|
-
void handle_accept(error_code ec, tcp::socket socket)
|
84
|
-
{
|
85
|
-
if (!ec)
|
86
|
-
std::make_shared<connection>(std::move(socket))->go();
|
87
|
-
acceptor_.async_accept(...);
|
88
|
-
}
|
89
|
-
...
|
90
|
-
};
|
91
|
-
|
92
|
-
as well as:
|
93
|
-
|
94
|
-
std::vector<tcp::socket> sockets;
|
95
|
-
sockets.push_back(tcp::socket(...));
|
96
|
-
|
97
|
-
A word of warning: There is nothing stopping you from moving these objects
|
98
|
-
while there are pending asynchronous operations, but it is unlikely to be a
|
99
|
-
good idea to do so. In particular, composed operations like [link
|
100
|
-
asio.reference.async_read async_read()] store a reference to the stream object.
|
101
|
-
Moving during the composed operation means that the composed operation may
|
102
|
-
attempt to access a moved-from object.
|
103
|
-
|
104
|
-
Move support is automatically enabled for [^g++] 4.5 and later, when the
|
105
|
-
[^-std=c++0x] or [^-std=gnu++0x] compiler options are used. It may be disabled
|
106
|
-
by defining `ASIO_DISABLE_MOVE`, or explicitly enabled for other compilers by
|
107
|
-
defining `ASIO_HAS_MOVE`. Note that these macros also affect the availability
|
108
|
-
of [link asio.overview.cpp2011.move_handlers movable handlers].
|
109
|
-
|
110
|
-
[endsect]
|
111
|
-
|
112
|
-
[section:move_handlers Movable Handlers]
|
113
|
-
|
114
|
-
With C++11 and later, user-defined completion handlers are only required to be
|
115
|
-
move constructible, and are not required to be copy constructible.
|
116
|
-
|
117
|
-
When move support is enabled, asynchronous that are documented as follows:
|
118
|
-
|
119
|
-
template <typename Handler>
|
120
|
-
void async_XYZ(..., Handler handler);
|
121
|
-
|
122
|
-
are actually declared as:
|
123
|
-
|
124
|
-
template <typename Handler>
|
125
|
-
void async_XYZ(..., Handler&& handler);
|
126
|
-
|
127
|
-
The handler argument is perfectly forwarded and the move construction occurs
|
128
|
-
within the body of `async_XYZ()`. This ensures that all other function
|
129
|
-
arguments are evaluated prior to the move. This is critical when the other
|
130
|
-
arguments to `async_XYZ()` are members of the handler. For example:
|
131
|
-
|
132
|
-
struct my_operation
|
133
|
-
{
|
134
|
-
unique_ptr<tcp::socket> socket;
|
135
|
-
unique_ptr<vector<char>> buffer;
|
136
|
-
...
|
137
|
-
void operator(error_code ec, size_t length)
|
138
|
-
{
|
139
|
-
...
|
140
|
-
socket->async_read_some(asio::buffer(*buffer), std::move(*this));
|
141
|
-
...
|
142
|
-
}
|
143
|
-
};
|
144
|
-
|
145
|
-
Move support is automatically enabled for [^g++] 4.5 and later, when the
|
146
|
-
[^-std=c++0x] or [^-std=gnu++0x] compiler options are used. It may be disabled
|
147
|
-
by defining `ASIO_DISABLE_MOVE`, or explicitly enabled for other compilers by
|
148
|
-
defining `ASIO_HAS_MOVE`. Note that these macros also affect the availability
|
149
|
-
of [link asio.overview.cpp2011.move_objects movable I/O objects].
|
150
|
-
|
151
|
-
[endsect]
|
152
|
-
|
153
|
-
[section:variadic Variadic Templates]
|
154
|
-
|
155
|
-
When supported by a compiler, Asio can use variadic templates to implement the
|
156
|
-
[link asio.reference.basic_socket_streambuf.connect
|
157
|
-
basic_socket_streambuf::connect()] and [link
|
158
|
-
asio.reference.basic_socket_iostream.connect basic_socket_iostream::connect()]
|
159
|
-
functions.
|
160
|
-
|
161
|
-
Support for variadic templates is automatically enabled for [^g++] 4.3 and
|
162
|
-
later, when the [^-std=c++0x] or [^-std=gnu++0x] compiler options are used. It
|
163
|
-
may be disabled by defining `ASIO_DISABLE_VARIADIC_TEMPLATES`, or explicitly
|
164
|
-
enabled for other compilers by defining `ASIO_HAS_VARIADIC_TEMPLATES`.
|
165
|
-
|
166
|
-
[endsect]
|
167
|
-
|
168
|
-
[section:array Array Container]
|
169
|
-
|
170
|
-
Where the standard library provides `std::array<>`, Asio:
|
171
|
-
|
172
|
-
* Provides overloads for the [link asio.reference.buffer buffer()] function.
|
173
|
-
|
174
|
-
* Uses it in preference to `boost::array<>` for the
|
175
|
-
[link asio.reference.ip__address_v4.bytes_type ip::address_v4::bytes_type] and
|
176
|
-
[link asio.reference.ip__address_v6.bytes_type ip::address_v6::bytes_type]
|
177
|
-
types.
|
178
|
-
|
179
|
-
* Uses it in preference to `boost::array<>` where a fixed size array type is
|
180
|
-
needed in the implementation.
|
181
|
-
|
182
|
-
Support for `std::array<>` is automatically enabled for [^g++] 4.3 and later,
|
183
|
-
when the [^-std=c++0x] or [^-std=gnu++0x] compiler options are used, as well as
|
184
|
-
for Microsoft Visual C++ 10. It may be disabled by defining
|
185
|
-
`ASIO_DISABLE_STD_ARRAY`, or explicitly enabled for other compilers by
|
186
|
-
defining `ASIO_HAS_STD_ARRAY`.
|
187
|
-
|
188
|
-
[endsect]
|
189
|
-
|
190
|
-
[section:atomic Atomics]
|
191
|
-
|
192
|
-
Asio's implementation can use `std::atomic<>` in preference to
|
193
|
-
`boost::detail::atomic_count`.
|
194
|
-
|
195
|
-
Support for the standard atomic integer template is automatically enabled for
|
196
|
-
[^g++] 4.5 and later, when the [^-std=c++0x] or [^-std=gnu++0x] compiler
|
197
|
-
options are used. It may be disabled by defining `ASIO_DISABLE_STD_ATOMIC`, or
|
198
|
-
explicitly enabled for other compilers by defining `ASIO_HAS_STD_ATOMIC`.
|
199
|
-
|
200
|
-
[endsect]
|
201
|
-
|
202
|
-
[section:shared_ptr Shared Pointers]
|
203
|
-
|
204
|
-
Asio's implementation can use `std::shared_ptr<>` and `std::weak_ptr<>` in
|
205
|
-
preference to the Boost equivalents.
|
206
|
-
|
207
|
-
Support for the standard smart pointers is automatically enabled for [^g++] 4.3
|
208
|
-
and later, when the [^-std=c++0x] or [^-std=gnu++0x] compiler options are used,
|
209
|
-
as well as for Microsoft Visual C++ 10. It may be disabled by defining
|
210
|
-
`ASIO_DISABLE_STD_SHARED_PTR`, or explicitly enabled for other compilers by
|
211
|
-
defining `ASIO_HAS_STD_SHARED_PTR`.
|
212
|
-
|
213
|
-
[endsect]
|
214
|
-
|
215
|
-
[section:chrono Chrono]
|
216
|
-
|
217
|
-
Asio provides timers based on the `std::chrono` facilities via the [link
|
218
|
-
asio.reference.basic_waitable_timer basic_waitable_timer] class template.
|
219
|
-
The typedefs [link asio.reference.system_timer system_timer], [link
|
220
|
-
asio.reference.steady_timer steady_timer] and [link
|
221
|
-
asio.reference.high_resolution_timer high_resolution_timer] utilise the
|
222
|
-
standard clocks `system_clock`, `steady_clock` and `high_resolution_clock`
|
223
|
-
respectively.
|
224
|
-
|
225
|
-
Support for the `std::chrono` facilities is automatically enabled for [^g++]
|
226
|
-
4.6 and later, when the [^-std=c++0x] or [^-std=gnu++0x] compiler options are
|
227
|
-
used. (Note that, for [^g++], the draft-standard `monotonic_clock` is used in
|
228
|
-
place of `steady_clock`.) Support may be disabled by defining
|
229
|
-
`ASIO_DISABLE_STD_CHRONO`, or explicitly enabled for other compilers by
|
230
|
-
defining `ASIO_HAS_STD_CHRONO`.
|
231
|
-
|
232
|
-
When standard `chrono` is unavailable, Asio will otherwise use the Boost.Chrono
|
233
|
-
library. The [link asio.reference.basic_waitable_timer basic_waitable_timer]
|
234
|
-
class template may be used with either.
|
235
|
-
|
236
|
-
[endsect]
|
237
|
-
|
238
|
-
[section:futures Futures]
|
239
|
-
|
240
|
-
The `asio::use_future` special value provides first-class support for returning a
|
241
|
-
C++11 `std::future` from an asynchronous operation's initiating function.
|
242
|
-
|
243
|
-
To use `asio::use_future`, pass it to an asynchronous operation instead of
|
244
|
-
a normal completion handler. For example:
|
245
|
-
|
246
|
-
std::future<std::size_t> length =
|
247
|
-
my_socket.async_read_some(my_buffer, asio::use_future);
|
248
|
-
|
249
|
-
Where a handler signature has the form:
|
250
|
-
|
251
|
-
void handler(asio::error_code ec, result_type result);
|
252
|
-
|
253
|
-
the initiating function returns a `std::future` templated on `result_type`.
|
254
|
-
In the above example, this is `std::size_t`. If the asynchronous operation
|
255
|
-
fails, the `error_code` is converted into a `system_error` exception and
|
256
|
-
passed back to the caller through the future.
|
257
|
-
|
258
|
-
Where a handler signature has the form:
|
259
|
-
|
260
|
-
void handler(asio::error_code ec);
|
261
|
-
|
262
|
-
the initiating function returns `std::future<void>`. As above, an error
|
263
|
-
is passed back in the future as a `system_error` exception.
|
264
|
-
|
265
|
-
[link asio.reference.use_future use_future],
|
266
|
-
[link asio.reference.use_future_t use_future_t],
|
267
|
-
[link asio.examples.cpp11_examples.futures Futures example (C++11)].
|
268
|
-
|
269
|
-
[endsect]
|
270
|
-
|
271
|
-
[endsect]
|