couchbase 3.5.2 → 3.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1998) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/ext/CMakeLists.txt +8 -2
  4. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/any_completion_executor.hpp +336 -0
  5. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/any_completion_handler.hpp +822 -0
  6. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/any_io_executor.hpp +351 -0
  7. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/append.hpp +65 -0
  8. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/as_tuple.hpp +152 -0
  9. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/associated_allocator.hpp +214 -0
  10. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/associated_cancellation_slot.hpp +221 -0
  11. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/associated_executor.hpp +235 -0
  12. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/associated_immediate_executor.hpp +281 -0
  13. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/associator.hpp +35 -0
  14. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/async_result.hpp +948 -0
  15. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/awaitable.hpp +142 -0
  16. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_datagram_socket.hpp +1362 -0
  17. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_deadline_timer.hpp +710 -0
  18. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_file.hpp +824 -0
  19. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_io_object.hpp +286 -0
  20. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_random_access_file.hpp +689 -0
  21. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_raw_socket.hpp +1356 -0
  22. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_readable_pipe.hpp +626 -0
  23. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_seq_packet_socket.hpp +823 -0
  24. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_serial_port.hpp +987 -0
  25. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_signal_set.hpp +648 -0
  26. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_socket.hpp +1936 -0
  27. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_socket_acceptor.hpp +2708 -0
  28. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_socket_iostream.hpp +331 -0
  29. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_socket_streambuf.hpp +642 -0
  30. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_stream_file.hpp +744 -0
  31. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_stream_socket.hpp +1163 -0
  32. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_streambuf.hpp +450 -0
  33. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_streambuf_fwd.hpp +36 -0
  34. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_waitable_timer.hpp +824 -0
  35. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/basic_writable_pipe.hpp +622 -0
  36. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/bind_allocator.hpp +596 -0
  37. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/bind_cancellation_slot.hpp +613 -0
  38. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/bind_executor.hpp +664 -0
  39. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/bind_immediate_executor.hpp +616 -0
  40. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/buffer.hpp +2751 -0
  41. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/buffer_registration.hpp +318 -0
  42. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/buffered_read_stream.hpp +273 -0
  43. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/buffered_read_stream_fwd.hpp +25 -0
  44. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/buffered_stream.hpp +292 -0
  45. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/buffered_stream_fwd.hpp +25 -0
  46. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/buffered_write_stream.hpp +265 -0
  47. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/buffered_write_stream_fwd.hpp +25 -0
  48. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/buffers_iterator.hpp +521 -0
  49. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/cancel_after.hpp +301 -0
  50. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/cancel_at.hpp +294 -0
  51. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/cancellation_signal.hpp +245 -0
  52. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/cancellation_state.hpp +235 -0
  53. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/cancellation_type.hpp +157 -0
  54. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/co_composed.hpp +1319 -0
  55. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/co_spawn.hpp +523 -0
  56. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/completion_condition.hpp +267 -0
  57. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/compose.hpp +128 -0
  58. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/composed.hpp +413 -0
  59. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/connect.hpp +1346 -0
  60. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/connect_pipe.hpp +83 -0
  61. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/consign.hpp +75 -0
  62. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/coroutine.hpp +328 -0
  63. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/deadline_timer.hpp +38 -0
  64. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/default_completion_token.hpp +89 -0
  65. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/defer.hpp +218 -0
  66. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/deferred.hpp +719 -0
  67. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detached.hpp +105 -0
  68. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/array.hpp +30 -0
  69. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/array_fwd.hpp +32 -0
  70. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/assert.hpp +32 -0
  71. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/atomic_count.hpp +59 -0
  72. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/base_from_cancellation_state.hpp +164 -0
  73. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/base_from_completion_cond.hpp +69 -0
  74. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/bind_handler.hpp +711 -0
  75. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/blocking_executor_op.hpp +107 -0
  76. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/buffer_resize_guard.hpp +66 -0
  77. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +837 -0
  78. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/buffered_stream_storage.hpp +126 -0
  79. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/call_stack.hpp +125 -0
  80. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/chrono.hpp +45 -0
  81. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/chrono_time_traits.hpp +190 -0
  82. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/completion_handler.hpp +88 -0
  83. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/completion_message.hpp +127 -0
  84. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/completion_payload.hpp +220 -0
  85. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/completion_payload_handler.hpp +79 -0
  86. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/composed_work.hpp +252 -0
  87. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/concurrency_hint.hpp +94 -0
  88. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +120 -0
  89. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/conditionally_enabled_mutex.hpp +149 -0
  90. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/config.hpp +1422 -0
  91. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/consuming_buffers.hpp +443 -0
  92. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/cstddef.hpp +27 -0
  93. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/cstdint.hpp +40 -0
  94. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/date_time_fwd.hpp +34 -0
  95. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/deadline_timer_service.hpp +339 -0
  96. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/dependent_type.hpp +36 -0
  97. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/descriptor_ops.hpp +179 -0
  98. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/descriptor_read_op.hpp +188 -0
  99. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/descriptor_write_op.hpp +187 -0
  100. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/dev_poll_reactor.hpp +247 -0
  101. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/epoll_reactor.hpp +295 -0
  102. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/event.hpp +46 -0
  103. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/eventfd_select_interrupter.hpp +83 -0
  104. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/exception.hpp +29 -0
  105. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/executor_function.hpp +152 -0
  106. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/executor_op.hpp +84 -0
  107. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/fd_set_adapter.hpp +39 -0
  108. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/fenced_block.hpp +40 -0
  109. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/functional.hpp +33 -0
  110. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/future.hpp +32 -0
  111. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/global.hpp +50 -0
  112. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +123 -0
  113. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/handler_cont_helpers.hpp +45 -0
  114. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/handler_tracking.hpp +264 -0
  115. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/handler_type_requirements.hpp +553 -0
  116. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/handler_work.hpp +511 -0
  117. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/hash_map.hpp +331 -0
  118. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp +118 -0
  119. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +994 -0
  120. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/dev_poll_reactor.hpp +111 -0
  121. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/dev_poll_reactor.ipp +469 -0
  122. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/epoll_reactor.hpp +109 -0
  123. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/epoll_reactor.ipp +826 -0
  124. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp +171 -0
  125. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/handler_tracking.ipp +398 -0
  126. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/io_uring_descriptor_service.ipp +205 -0
  127. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/io_uring_file_service.ipp +140 -0
  128. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/io_uring_service.hpp +112 -0
  129. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/io_uring_service.ipp +914 -0
  130. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/io_uring_socket_service_base.ipp +249 -0
  131. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/kqueue_reactor.hpp +113 -0
  132. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/kqueue_reactor.ipp +608 -0
  133. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/null_event.ipp +74 -0
  134. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/pipe_select_interrupter.ipp +129 -0
  135. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/posix_event.ipp +63 -0
  136. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/posix_mutex.ipp +46 -0
  137. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/posix_serial_port_service.ipp +168 -0
  138. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/posix_thread.ipp +84 -0
  139. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/posix_tss_ptr.ipp +46 -0
  140. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/reactive_descriptor_service.ipp +232 -0
  141. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/reactive_socket_service_base.ipp +312 -0
  142. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/resolver_service_base.ipp +158 -0
  143. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/scheduler.ipp +675 -0
  144. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/select_reactor.hpp +124 -0
  145. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/select_reactor.ipp +400 -0
  146. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/service_registry.hpp +93 -0
  147. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/service_registry.ipp +197 -0
  148. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/signal_set_service.ipp +826 -0
  149. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/socket_ops.ipp +4038 -0
  150. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/socket_select_interrupter.ipp +185 -0
  151. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +346 -0
  152. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/strand_executor_service.ipp +158 -0
  153. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/strand_service.hpp +86 -0
  154. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/strand_service.ipp +202 -0
  155. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/thread_context.ipp +35 -0
  156. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/throw_error.ipp +49 -0
  157. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/timer_queue_ptime.ipp +97 -0
  158. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/timer_queue_set.ipp +101 -0
  159. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/win_event.ipp +76 -0
  160. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/win_iocp_file_service.ipp +280 -0
  161. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/win_iocp_handle_service.ipp +619 -0
  162. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/win_iocp_io_context.hpp +119 -0
  163. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +614 -0
  164. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp +200 -0
  165. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp +821 -0
  166. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/win_mutex.ipp +84 -0
  167. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/win_object_handle_service.ipp +452 -0
  168. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/win_static_mutex.ipp +136 -0
  169. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/win_thread.ipp +150 -0
  170. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/win_tss_ptr.ipp +57 -0
  171. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp +626 -0
  172. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp +92 -0
  173. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp +121 -0
  174. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/impl/winsock_init.ipp +82 -0
  175. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/initiate_defer.hpp +207 -0
  176. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/initiate_dispatch.hpp +193 -0
  177. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/initiate_post.hpp +207 -0
  178. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/initiation_base.hpp +62 -0
  179. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_control.hpp +84 -0
  180. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_object_impl.hpp +177 -0
  181. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_descriptor_read_at_op.hpp +195 -0
  182. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_descriptor_read_op.hpp +190 -0
  183. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_descriptor_service.hpp +687 -0
  184. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_descriptor_write_at_op.hpp +189 -0
  185. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_descriptor_write_op.hpp +185 -0
  186. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_file_service.hpp +261 -0
  187. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_null_buffers_op.hpp +114 -0
  188. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_operation.hpp +84 -0
  189. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_service.hpp +319 -0
  190. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_socket_accept_op.hpp +280 -0
  191. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_socket_connect_op.hpp +140 -0
  192. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_socket_recv_op.hpp +205 -0
  193. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_socket_recvfrom_op.hpp +206 -0
  194. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_socket_recvmsg_op.hpp +192 -0
  195. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_socket_send_op.hpp +191 -0
  196. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_socket_sendto_op.hpp +194 -0
  197. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_socket_service.hpp +629 -0
  198. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_socket_service_base.hpp +663 -0
  199. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/io_uring_wait_op.hpp +112 -0
  200. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/is_buffer_sequence.hpp +296 -0
  201. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/is_executor.hpp +126 -0
  202. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/keyword_tss_ptr.hpp +70 -0
  203. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/kqueue_reactor.hpp +271 -0
  204. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/local_free_on_block_exit.hpp +59 -0
  205. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/memory.hpp +126 -0
  206. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/mutex.hpp +46 -0
  207. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/non_const_lvalue.hpp +43 -0
  208. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/noncopyable.hpp +43 -0
  209. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/null_event.hpp +106 -0
  210. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/null_fenced_block.hpp +47 -0
  211. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/null_global.hpp +59 -0
  212. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/null_mutex.hpp +60 -0
  213. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/null_reactor.hpp +83 -0
  214. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/null_signal_blocker.hpp +69 -0
  215. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/null_socket_service.hpp +519 -0
  216. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/null_static_mutex.hpp +60 -0
  217. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/null_thread.hpp +67 -0
  218. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/null_tss_ptr.hpp +68 -0
  219. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/object_pool.hpp +171 -0
  220. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/old_win_sdk_compat.hpp +214 -0
  221. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/op_queue.hpp +162 -0
  222. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/operation.hpp +38 -0
  223. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/pipe_select_interrupter.hpp +89 -0
  224. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/pop_options.hpp +157 -0
  225. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/posix_event.hpp +175 -0
  226. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/posix_fd_set_adapter.hpp +118 -0
  227. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/posix_global.hpp +80 -0
  228. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/posix_mutex.hpp +76 -0
  229. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/posix_serial_port_service.hpp +249 -0
  230. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/posix_signal_blocker.hpp +85 -0
  231. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/posix_static_mutex.hpp +64 -0
  232. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/posix_thread.hpp +109 -0
  233. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/posix_tss_ptr.hpp +79 -0
  234. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/push_options.hpp +228 -0
  235. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +570 -0
  236. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +131 -0
  237. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +323 -0
  238. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +162 -0
  239. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +197 -0
  240. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +203 -0
  241. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +184 -0
  242. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +200 -0
  243. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +194 -0
  244. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/reactive_socket_service.hpp +633 -0
  245. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +755 -0
  246. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/reactive_wait_op.hpp +131 -0
  247. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/reactor.hpp +54 -0
  248. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/reactor_op.hpp +71 -0
  249. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/reactor_op_queue.hpp +212 -0
  250. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/recycling_allocator.hpp +114 -0
  251. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/regex_fwd.hpp +35 -0
  252. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +140 -0
  253. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/resolve_op.hpp +45 -0
  254. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/resolve_query_op.hpp +150 -0
  255. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/resolver_service.hpp +147 -0
  256. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/resolver_service_base.hpp +158 -0
  257. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/scheduler.hpp +241 -0
  258. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/scheduler_operation.hpp +78 -0
  259. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/scheduler_task.hpp +49 -0
  260. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/scheduler_thread_info.hpp +40 -0
  261. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/scoped_lock.hpp +101 -0
  262. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/scoped_ptr.hpp +87 -0
  263. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/select_interrupter.hpp +46 -0
  264. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/select_reactor.hpp +291 -0
  265. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/service_registry.hpp +163 -0
  266. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/signal_blocker.hpp +44 -0
  267. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/signal_handler.hpp +90 -0
  268. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/signal_init.hpp +47 -0
  269. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/signal_op.hpp +53 -0
  270. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/signal_set_service.hpp +292 -0
  271. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/socket_holder.hpp +98 -0
  272. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/socket_ops.hpp +375 -0
  273. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/socket_option.hpp +316 -0
  274. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/socket_select_interrupter.hpp +91 -0
  275. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/socket_types.hpp +427 -0
  276. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/source_location.hpp +45 -0
  277. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/static_mutex.hpp +50 -0
  278. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/std_event.hpp +183 -0
  279. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/std_fenced_block.hpp +57 -0
  280. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/std_global.hpp +65 -0
  281. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/std_mutex.hpp +68 -0
  282. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/std_static_mutex.hpp +76 -0
  283. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/std_thread.hpp +66 -0
  284. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/strand_executor_service.hpp +173 -0
  285. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/strand_service.hpp +144 -0
  286. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/string_view.hpp +47 -0
  287. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/thread.hpp +58 -0
  288. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/thread_context.hpp +51 -0
  289. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/thread_group.hpp +99 -0
  290. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/thread_info_base.hpp +260 -0
  291. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/throw_error.hpp +62 -0
  292. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/throw_exception.hpp +55 -0
  293. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/timed_cancel_op.hpp +361 -0
  294. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/timer_queue.hpp +389 -0
  295. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/timer_queue_base.hpp +68 -0
  296. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/timer_queue_ptime.hpp +103 -0
  297. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/timer_queue_set.hpp +66 -0
  298. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/timer_scheduler.hpp +37 -0
  299. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/timer_scheduler_fwd.hpp +42 -0
  300. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/tss_ptr.hpp +69 -0
  301. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/type_traits.hpp +178 -0
  302. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/utility.hpp +83 -0
  303. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/wait_handler.hpp +90 -0
  304. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/wait_op.hpp +49 -0
  305. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_event.hpp +164 -0
  306. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_fd_set_adapter.hpp +149 -0
  307. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_global.hpp +71 -0
  308. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_file_service.hpp +287 -0
  309. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +119 -0
  310. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_handle_service.hpp +431 -0
  311. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +114 -0
  312. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_io_context.hpp +347 -0
  313. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +129 -0
  314. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_operation.hpp +96 -0
  315. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +100 -0
  316. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +171 -0
  317. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_serial_port_service.hpp +233 -0
  318. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +339 -0
  319. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +138 -0
  320. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +126 -0
  321. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +135 -0
  322. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +127 -0
  323. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +120 -0
  324. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_socket_service.hpp +680 -0
  325. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_socket_service_base.hpp +829 -0
  326. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_thread_info.hpp +34 -0
  327. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +130 -0
  328. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_mutex.hpp +78 -0
  329. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_object_handle_service.hpp +194 -0
  330. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_static_mutex.hpp +74 -0
  331. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_thread.hpp +147 -0
  332. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/win_tss_ptr.hpp +79 -0
  333. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/winapp_thread.hpp +124 -0
  334. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/wince_thread.hpp +124 -0
  335. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/winrt_async_manager.hpp +305 -0
  336. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/winrt_async_op.hpp +65 -0
  337. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/winrt_resolve_op.hpp +125 -0
  338. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/winrt_resolver_service.hpp +212 -0
  339. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +98 -0
  340. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +119 -0
  341. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +110 -0
  342. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/winrt_ssocket_service.hpp +250 -0
  343. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/winrt_ssocket_service_base.hpp +362 -0
  344. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/winrt_timer_scheduler.hpp +147 -0
  345. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/winrt_utils.hpp +106 -0
  346. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/winsock_init.hpp +128 -0
  347. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/work_dispatcher.hpp +143 -0
  348. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/detail/wrapped_handler.hpp +217 -0
  349. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/dispatch.hpp +197 -0
  350. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/error.hpp +389 -0
  351. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/error_code.hpp +39 -0
  352. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/execution/allocator.hpp +278 -0
  353. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/execution/any_executor.hpp +1933 -0
  354. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/execution/bad_executor.hpp +46 -0
  355. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/execution/blocking.hpp +1360 -0
  356. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/execution/blocking_adaptation.hpp +1080 -0
  357. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/execution/context.hpp +191 -0
  358. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/execution/context_as.hpp +190 -0
  359. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/execution/executor.hpp +116 -0
  360. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/execution/impl/bad_executor.ipp +40 -0
  361. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/execution/invocable_archetype.hpp +43 -0
  362. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/execution/mapping.hpp +1002 -0
  363. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/execution/occupancy.hpp +184 -0
  364. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/execution/outstanding_work.hpp +753 -0
  365. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/execution/prefer_only.hpp +328 -0
  366. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/execution/relationship.hpp +751 -0
  367. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/execution.hpp +33 -0
  368. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/execution_context.hpp +388 -0
  369. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/executor.hpp +363 -0
  370. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/executor_work_guard.hpp +362 -0
  371. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/append.hpp +36 -0
  372. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/as_single.hpp +132 -0
  373. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/as_tuple.hpp +36 -0
  374. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/awaitable_operators.hpp +536 -0
  375. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/basic_channel.hpp +514 -0
  376. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/basic_concurrent_channel.hpp +514 -0
  377. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/cancellation_condition.hpp +152 -0
  378. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/channel.hpp +70 -0
  379. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/channel_error.hpp +82 -0
  380. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/channel_traits.hpp +301 -0
  381. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/co_composed.hpp +33 -0
  382. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/concurrent_channel.hpp +70 -0
  383. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/deferred.hpp +36 -0
  384. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/detail/channel_operation.hpp +361 -0
  385. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/detail/channel_receive_op.hpp +126 -0
  386. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/detail/channel_send_functions.hpp +200 -0
  387. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/detail/channel_send_op.hpp +147 -0
  388. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/detail/channel_service.hpp +679 -0
  389. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/detail/coro_promise_allocator.hpp +140 -0
  390. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/detail/has_signature.hpp +54 -0
  391. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/detail/impl/channel_service.hpp +623 -0
  392. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/detail/partial_promise.hpp +195 -0
  393. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/impl/as_single.hpp +181 -0
  394. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/impl/channel_error.ipp +61 -0
  395. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/impl/parallel_group.hpp +788 -0
  396. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/parallel_group.hpp +455 -0
  397. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/prepend.hpp +36 -0
  398. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/promise.hpp +224 -0
  399. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/experimental/use_coro.hpp +189 -0
  400. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/file_base.hpp +166 -0
  401. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/generic/basic_endpoint.hpp +189 -0
  402. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/generic/datagram_protocol.hpp +123 -0
  403. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/generic/detail/endpoint.hpp +133 -0
  404. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/generic/detail/impl/endpoint.ipp +110 -0
  405. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/generic/raw_protocol.hpp +121 -0
  406. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/generic/seq_packet_protocol.hpp +122 -0
  407. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/generic/stream_protocol.hpp +127 -0
  408. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/handler_continuation_hook.hpp +54 -0
  409. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/high_resolution_timer.hpp +39 -0
  410. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/immediate.hpp +142 -0
  411. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/any_completion_executor.ipp +126 -0
  412. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/any_io_executor.ipp +134 -0
  413. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/append.hpp +169 -0
  414. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/as_tuple.hpp +276 -0
  415. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/awaitable.hpp +1196 -0
  416. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/buffered_read_stream.hpp +404 -0
  417. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/buffered_write_stream.hpp +384 -0
  418. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/cancel_after.hpp +268 -0
  419. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/cancel_at.hpp +268 -0
  420. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/cancellation_signal.ipp +96 -0
  421. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/co_spawn.hpp +449 -0
  422. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/connect.hpp +703 -0
  423. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/connect_pipe.hpp +73 -0
  424. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/connect_pipe.ipp +149 -0
  425. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/consign.hpp +144 -0
  426. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/deferred.hpp +147 -0
  427. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/detached.hpp +77 -0
  428. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/error.ipp +128 -0
  429. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/error_code.ipp +206 -0
  430. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/execution_context.hpp +77 -0
  431. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/execution_context.ipp +82 -0
  432. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/executor.hpp +317 -0
  433. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/executor.ipp +43 -0
  434. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/io_context.hpp +433 -0
  435. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/io_context.ipp +176 -0
  436. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/multiple_exceptions.ipp +45 -0
  437. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/prepend.hpp +170 -0
  438. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/read.hpp +902 -0
  439. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/read_at.hpp +562 -0
  440. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/read_until.hpp +2668 -0
  441. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/redirect_error.hpp +287 -0
  442. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/serial_port_base.hpp +59 -0
  443. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/serial_port_base.ipp +554 -0
  444. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/spawn.hpp +1399 -0
  445. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/src.hpp +94 -0
  446. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/system_context.hpp +34 -0
  447. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/system_context.ipp +92 -0
  448. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/system_executor.hpp +179 -0
  449. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/thread_pool.hpp +277 -0
  450. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/thread_pool.ipp +142 -0
  451. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/use_awaitable.hpp +301 -0
  452. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/use_future.hpp +707 -0
  453. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/write.hpp +780 -0
  454. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/impl/write_at.hpp +480 -0
  455. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/io_context.hpp +1505 -0
  456. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/io_context_strand.hpp +396 -0
  457. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/io_service.hpp +33 -0
  458. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/io_service_strand.hpp +20 -0
  459. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/address.hpp +281 -0
  460. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/address_v4.hpp +421 -0
  461. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/address_v4_iterator.hpp +156 -0
  462. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/address_v4_range.hpp +128 -0
  463. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/address_v6.hpp +407 -0
  464. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/address_v6_iterator.hpp +178 -0
  465. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/address_v6_range.hpp +124 -0
  466. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/bad_address_cast.hpp +63 -0
  467. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/basic_endpoint.hpp +282 -0
  468. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/basic_resolver.hpp +1112 -0
  469. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/basic_resolver_entry.hpp +113 -0
  470. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/basic_resolver_iterator.hpp +188 -0
  471. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/basic_resolver_query.hpp +260 -0
  472. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/basic_resolver_results.hpp +307 -0
  473. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/detail/endpoint.hpp +141 -0
  474. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/detail/impl/endpoint.ipp +195 -0
  475. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/detail/socket_option.hpp +566 -0
  476. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/host_name.hpp +42 -0
  477. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/icmp.hpp +115 -0
  478. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/impl/address.hpp +67 -0
  479. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/impl/address.ipp +235 -0
  480. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/impl/address_v4.hpp +67 -0
  481. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/impl/address_v4.ipp +206 -0
  482. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/impl/address_v6.hpp +67 -0
  483. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/impl/address_v6.ipp +342 -0
  484. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/impl/basic_endpoint.hpp +43 -0
  485. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/impl/host_name.ipp +54 -0
  486. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/impl/network_v4.hpp +54 -0
  487. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/impl/network_v4.ipp +218 -0
  488. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/impl/network_v6.hpp +53 -0
  489. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/impl/network_v6.ipp +187 -0
  490. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/multicast.hpp +191 -0
  491. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/network_v4.hpp +257 -0
  492. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/network_v6.hpp +231 -0
  493. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/resolver_base.hpp +129 -0
  494. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/resolver_query_base.hpp +43 -0
  495. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/tcp.hpp +155 -0
  496. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/udp.hpp +111 -0
  497. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/unicast.hpp +70 -0
  498. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ip/v6_only.hpp +69 -0
  499. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/is_applicable_property.hpp +61 -0
  500. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/is_contiguous_iterator.hpp +45 -0
  501. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/is_executor.hpp +46 -0
  502. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/is_read_buffered.hpp +59 -0
  503. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/is_write_buffered.hpp +59 -0
  504. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/local/basic_endpoint.hpp +243 -0
  505. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/local/connect_pair.hpp +101 -0
  506. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/local/datagram_protocol.hpp +80 -0
  507. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/local/detail/endpoint.hpp +139 -0
  508. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/local/detail/impl/endpoint.ipp +131 -0
  509. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/local/seq_packet_protocol.hpp +84 -0
  510. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/local/stream_protocol.hpp +90 -0
  511. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/multiple_exceptions.hpp +52 -0
  512. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/packaged_task.hpp +66 -0
  513. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/placeholders.hpp +75 -0
  514. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/posix/basic_descriptor.hpp +773 -0
  515. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +559 -0
  516. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/posix/descriptor.hpp +37 -0
  517. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/posix/descriptor_base.hpp +90 -0
  518. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/posix/stream_descriptor.hpp +37 -0
  519. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/post.hpp +213 -0
  520. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/prefer.hpp +577 -0
  521. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/prepend.hpp +66 -0
  522. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/query.hpp +311 -0
  523. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/random_access_file.hpp +35 -0
  524. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/read.hpp +1547 -0
  525. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/read_at.hpp +828 -0
  526. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/read_until.hpp +3202 -0
  527. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/readable_pipe.hpp +35 -0
  528. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/recycling_allocator.hpp +138 -0
  529. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/redirect_error.hpp +104 -0
  530. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/registered_buffer.hpp +344 -0
  531. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/require.hpp +433 -0
  532. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/require_concept.hpp +343 -0
  533. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/serial_port.hpp +36 -0
  534. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/serial_port_base.hpp +167 -0
  535. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/signal_set.hpp +28 -0
  536. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/signal_set_base.hpp +171 -0
  537. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/socket_base.hpp +559 -0
  538. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/spawn.hpp +871 -0
  539. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/context.hpp +762 -0
  540. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/context_base.hpp +209 -0
  541. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +119 -0
  542. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/detail/engine.hpp +169 -0
  543. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/detail/handshake_op.hpp +67 -0
  544. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/detail/impl/engine.ipp +377 -0
  545. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/detail/impl/openssl_init.ipp +169 -0
  546. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/detail/io.hpp +376 -0
  547. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/detail/openssl_init.hpp +101 -0
  548. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/detail/openssl_types.hpp +34 -0
  549. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/detail/password_callback.hpp +66 -0
  550. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/detail/read_op.hpp +72 -0
  551. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +69 -0
  552. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/detail/stream_core.hpp +217 -0
  553. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/detail/verify_callback.hpp +62 -0
  554. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/detail/write_op.hpp +76 -0
  555. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/error.hpp +123 -0
  556. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/host_name_verification.hpp +90 -0
  557. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/impl/context.hpp +67 -0
  558. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/impl/context.ipp +1319 -0
  559. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/impl/error.ipp +124 -0
  560. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/impl/host_name_verification.ipp +73 -0
  561. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/impl/rfc2818_verification.ipp +164 -0
  562. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/impl/src.hpp +29 -0
  563. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/rfc2818_verification.hpp +98 -0
  564. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/stream.hpp +1042 -0
  565. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/stream_base.hpp +52 -0
  566. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/verify_context.hpp +67 -0
  567. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl/verify_mode.hpp +63 -0
  568. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ssl.hpp +28 -0
  569. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/static_thread_pool.hpp +31 -0
  570. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/steady_timer.hpp +37 -0
  571. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/strand.hpp +557 -0
  572. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/stream_file.hpp +35 -0
  573. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/streambuf.hpp +33 -0
  574. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/system_context.hpp +90 -0
  575. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/system_error.hpp +31 -0
  576. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/system_executor.hpp +671 -0
  577. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/system_timer.hpp +37 -0
  578. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/this_coro.hpp +267 -0
  579. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/thread.hpp +92 -0
  580. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/thread_pool.hpp +963 -0
  581. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/time_traits.hpp +86 -0
  582. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/traits/equality_comparable.hpp +100 -0
  583. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/traits/execute_member.hpp +104 -0
  584. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/traits/prefer_free.hpp +104 -0
  585. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/traits/prefer_member.hpp +104 -0
  586. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/traits/query_free.hpp +104 -0
  587. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/traits/query_member.hpp +104 -0
  588. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/traits/query_static_constexpr_member.hpp +101 -0
  589. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/traits/require_concept_free.hpp +104 -0
  590. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/traits/require_concept_member.hpp +104 -0
  591. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/traits/require_free.hpp +104 -0
  592. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/traits/require_member.hpp +104 -0
  593. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/traits/static_query.hpp +102 -0
  594. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/traits/static_require.hpp +115 -0
  595. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/traits/static_require_concept.hpp +116 -0
  596. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ts/buffer.hpp +24 -0
  597. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ts/executor.hpp +35 -0
  598. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ts/internet.hpp +40 -0
  599. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ts/io_context.hpp +20 -0
  600. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ts/net.hpp +26 -0
  601. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ts/netfwd.hpp +236 -0
  602. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ts/socket.hpp +27 -0
  603. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/ts/timer.hpp +26 -0
  604. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/unyield.hpp +21 -0
  605. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/use_awaitable.hpp +161 -0
  606. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/use_future.hpp +159 -0
  607. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/uses_executor.hpp +67 -0
  608. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/version.hpp +23 -0
  609. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/wait_traits.hpp +56 -0
  610. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/windows/basic_object_handle.hpp +485 -0
  611. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +455 -0
  612. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/windows/basic_random_access_handle.hpp +567 -0
  613. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/windows/basic_stream_handle.hpp +551 -0
  614. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/windows/object_handle.hpp +38 -0
  615. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/windows/overlapped_handle.hpp +39 -0
  616. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/windows/overlapped_ptr.hpp +145 -0
  617. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/windows/random_access_handle.hpp +37 -0
  618. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/windows/stream_handle.hpp +37 -0
  619. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/writable_pipe.hpp +35 -0
  620. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/write.hpp +1526 -0
  621. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/write_at.hpp +841 -0
  622. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio/yield.hpp +23 -0
  623. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/include/asio.hpp +205 -0
  624. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/src/asio.cpp +11 -0
  625. data/ext/cache/asio/b710bc0ca14b231d20e983b02d27485125c7860e/asio/asio/src/asio_ssl.cpp +11 -0
  626. data/ext/cache/extconf_include.rb +3 -3
  627. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/CMakeLists.txt +520 -0
  628. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/ChangeLog.md +2598 -0
  629. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/README.md +484 -0
  630. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt/args.h +228 -0
  631. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt/base.h +3061 -0
  632. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt/chrono.h +2432 -0
  633. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt/color.h +612 -0
  634. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt/compile.h +529 -0
  635. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt/core.h +5 -0
  636. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt/format-inl.h +1904 -0
  637. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt/format.h +4419 -0
  638. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt/os.h +439 -0
  639. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt/ostream.h +211 -0
  640. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt/printf.h +656 -0
  641. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt/ranges.h +882 -0
  642. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt/std.h +699 -0
  643. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt/xchar.h +322 -0
  644. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/fmt.cc +135 -0
  645. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/os.cc +403 -0
  646. data/ext/cache/llhttp/c67596e14f24b689a867a26fa36e02bdba733b9b/llhttp/CMakeLists.txt +117 -0
  647. data/ext/cache/llhttp/c67596e14f24b689a867a26fa36e02bdba733b9b/llhttp/include/llhttp.h +903 -0
  648. data/ext/cache/llhttp/c67596e14f24b689a867a26fa36e02bdba733b9b/llhttp/src/llhttp.c +10168 -0
  649. data/ext/cache/mozilla-ca-bundle.crt +100 -2
  650. data/ext/cache/mozilla-ca-bundle.sha256 +1 -1
  651. data/ext/cache/snappy/585305c8dbb8f762f2c2e17f937f1cf3ac6cbc9c/snappy/CMakeLists.txt +438 -0
  652. data/ext/cache/snappy/585305c8dbb8f762f2c2e17f937f1cf3ac6cbc9c/snappy/cmake/config.h.in +69 -0
  653. data/ext/cache/snappy/585305c8dbb8f762f2c2e17f937f1cf3ac6cbc9c/snappy/snappy-internal.h +424 -0
  654. data/ext/cache/snappy/585305c8dbb8f762f2c2e17f937f1cf3ac6cbc9c/snappy/snappy-stubs-internal.h +531 -0
  655. data/ext/cache/snappy/585305c8dbb8f762f2c2e17f937f1cf3ac6cbc9c/snappy/snappy.cc +2645 -0
  656. data/ext/cache/snappy/585305c8dbb8f762f2c2e17f937f1cf3ac6cbc9c/snappy/snappy.h +257 -0
  657. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/CMakeLists.txt +359 -0
  658. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/async_logger-inl.h +86 -0
  659. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/common.h +411 -0
  660. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/details/circular_q.h +115 -0
  661. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/details/file_helper-inl.h +152 -0
  662. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/details/os-inl.h +594 -0
  663. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/details/periodic_worker.h +58 -0
  664. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/details/registry-inl.h +261 -0
  665. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/details/registry.h +129 -0
  666. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/details/thread_pool-inl.h +132 -0
  667. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/details/thread_pool.h +128 -0
  668. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/fmt.h +30 -0
  669. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/mdc.h +46 -0
  670. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/pattern_formatter-inl.h +1324 -0
  671. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/sinks/qt_sinks.h +304 -0
  672. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/stopwatch.h +66 -0
  673. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/version.h +11 -0
  674. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/src/bundled_fmtlib_format.cpp +46 -0
  675. data/ext/couchbase/CMakeLists.txt +155 -82
  676. data/ext/couchbase/cmake/0001-fix-build-for-mingw-w64-ucrt-x86_64-toolchain.patch +4 -3
  677. data/ext/couchbase/cmake/CompilerWarnings.cmake +1 -0
  678. data/ext/couchbase/cmake/OpenSSL.cmake +15 -8
  679. data/ext/couchbase/cmake/Packaging.cmake +147 -17
  680. data/ext/couchbase/cmake/StandardProjectSettings.cmake +1 -1
  681. data/ext/couchbase/cmake/StaticAnalyzers.cmake +28 -6
  682. data/ext/couchbase/cmake/Testing.cmake +57 -9
  683. data/ext/couchbase/cmake/ThirdPartyDependencies.cmake +36 -20
  684. data/ext/couchbase/cmake/VersionInfo.cmake +27 -13
  685. data/ext/couchbase/cmake/build_config.hxx.in +1 -0
  686. data/ext/couchbase/cmake/couchbase-cxx-client.spec.in +104 -0
  687. data/ext/couchbase/cmake/couchbase_cxx_client-config.cmake.in +3 -0
  688. data/ext/couchbase/cmake/tarball_glob.txt +91 -0
  689. data/ext/couchbase/core/agent.cxx +148 -121
  690. data/ext/couchbase/core/agent.hxx +39 -36
  691. data/ext/couchbase/core/agent_config.cxx +2 -2
  692. data/ext/couchbase/core/agent_group.cxx +61 -32
  693. data/ext/couchbase/core/agent_group.hxx +12 -7
  694. data/ext/couchbase/core/agent_group_config.cxx +2 -2
  695. data/ext/couchbase/core/analytics_query_options.cxx +6 -0
  696. data/ext/couchbase/core/bucket.cxx +118 -76
  697. data/ext/couchbase/core/bucket.hxx +15 -14
  698. data/ext/couchbase/core/cluster.cxx +477 -76
  699. data/ext/couchbase/core/cluster.hxx +11 -0
  700. data/ext/couchbase/core/cluster_agent.cxx +44 -4
  701. data/ext/couchbase/core/cluster_agent.hxx +19 -1
  702. data/ext/couchbase/core/cluster_agent_config.cxx +2 -2
  703. data/ext/couchbase/core/cluster_options.cxx +5 -4
  704. data/ext/couchbase/core/cluster_options.hxx +3 -0
  705. data/ext/couchbase/core/collections_component.cxx +58 -34
  706. data/ext/couchbase/core/collections_component.hxx +2 -2
  707. data/ext/couchbase/core/columnar/agent.cxx +147 -0
  708. data/ext/couchbase/core/columnar/agent.hxx +71 -0
  709. data/ext/couchbase/core/columnar/agent_config.cxx +48 -0
  710. data/ext/couchbase/core/columnar/agent_config.hxx +59 -0
  711. data/ext/couchbase/core/columnar/background_bootstrap_listener.hxx +42 -0
  712. data/ext/couchbase/core/columnar/backoff_calculator.cxx +62 -0
  713. data/ext/couchbase/core/columnar/backoff_calculator.hxx +34 -0
  714. data/ext/couchbase/core/columnar/bootstrap_notification_subscriber.hxx +32 -0
  715. data/ext/couchbase/core/columnar/database_management_options.hxx +56 -0
  716. data/ext/couchbase/core/columnar/error.cxx +50 -0
  717. data/ext/couchbase/core/columnar/error.hxx +52 -0
  718. data/ext/couchbase/core/columnar/error_codes.cxx +107 -0
  719. data/ext/couchbase/core/columnar/error_codes.hxx +75 -0
  720. data/ext/couchbase/core/columnar/management_component.cxx +300 -0
  721. data/ext/couchbase/core/columnar/management_component.hxx +56 -0
  722. data/ext/couchbase/core/columnar/query_component.cxx +523 -0
  723. data/ext/couchbase/core/columnar/query_component.hxx +57 -0
  724. data/ext/couchbase/core/columnar/query_options.hxx +59 -0
  725. data/ext/couchbase/core/columnar/query_result.cxx +130 -0
  726. data/ext/couchbase/core/columnar/query_result.hxx +78 -0
  727. data/ext/couchbase/core/columnar/retry_info.hxx +34 -0
  728. data/ext/couchbase/core/columnar/security_options.hxx +34 -0
  729. data/ext/couchbase/core/config_profiles.cxx +6 -3
  730. data/ext/couchbase/core/core_sdk_shim.cxx +3 -1
  731. data/ext/couchbase/core/crud_component.cxx +50 -33
  732. data/ext/couchbase/core/crud_component.hxx +4 -4
  733. data/ext/couchbase/core/crypto/cbcrypto.cc +159 -141
  734. data/ext/couchbase/core/crypto/cbcrypto.h +16 -14
  735. data/ext/couchbase/core/diagnostics.hxx +3 -3
  736. data/ext/couchbase/core/diagnostics_json.hxx +1 -1
  737. data/ext/couchbase/core/dispatcher.cxx +8 -0
  738. data/ext/couchbase/core/document_id.cxx +25 -13
  739. data/ext/couchbase/core/error_context/analytics_json.hxx +2 -2
  740. data/ext/couchbase/core/error_context/http_json.hxx +2 -3
  741. data/ext/couchbase/core/error_context/key_value.cxx +9 -0
  742. data/ext/couchbase/core/error_context/query_json.hxx +2 -2
  743. data/ext/couchbase/core/error_context/query_public_json.hxx +1 -0
  744. data/ext/couchbase/core/error_context/search_json.hxx +2 -2
  745. data/ext/couchbase/core/error_context/subdocument_json.hxx +2 -3
  746. data/ext/couchbase/core/free_form_http_request.cxx +121 -17
  747. data/ext/couchbase/core/free_form_http_request.hxx +60 -16
  748. data/ext/couchbase/core/http_component.cxx +711 -0
  749. data/ext/couchbase/core/http_component.hxx +65 -0
  750. data/ext/couchbase/core/impl/analytics.cxx +19 -10
  751. data/ext/couchbase/core/impl/analytics_error_category.cxx +1 -0
  752. data/ext/couchbase/core/impl/analytics_index_manager.cxx +90 -66
  753. data/ext/couchbase/core/impl/best_effort_retry_strategy.cxx +13 -7
  754. data/ext/couchbase/core/impl/binary_collection.cxx +73 -54
  755. data/ext/couchbase/core/impl/boolean_field_query.cxx +3 -1
  756. data/ext/couchbase/core/impl/boolean_query.cxx +4 -2
  757. data/ext/couchbase/core/impl/bootstrap_error.hxx +42 -0
  758. data/ext/couchbase/core/impl/bucket.cxx +12 -2
  759. data/ext/couchbase/core/impl/bucket_manager.cxx +27 -28
  760. data/ext/couchbase/core/impl/cluster.cxx +82 -48
  761. data/ext/couchbase/core/impl/collection.cxx +64 -16
  762. data/ext/couchbase/core/impl/collection_manager.cxx +21 -6
  763. data/ext/couchbase/core/impl/common_error_category.cxx +1 -0
  764. data/ext/couchbase/core/impl/configuration_profiles_registry.cxx +11 -4
  765. data/ext/couchbase/core/impl/conjunction_query.cxx +2 -1
  766. data/ext/couchbase/core/impl/date_range.cxx +7 -0
  767. data/ext/couchbase/core/impl/date_range_facet.cxx +2 -0
  768. data/ext/couchbase/core/impl/date_range_facet_result.cxx +9 -1
  769. data/ext/couchbase/core/impl/date_range_query.cxx +7 -2
  770. data/ext/couchbase/core/impl/diagnostics.cxx +14 -10
  771. data/ext/couchbase/core/impl/disjunction_query.cxx +4 -2
  772. data/ext/couchbase/core/impl/dns_srv_tracker.cxx +22 -8
  773. data/ext/couchbase/core/impl/dns_srv_tracker.hxx +3 -3
  774. data/ext/couchbase/core/impl/doc_id_query.cxx +2 -1
  775. data/ext/couchbase/core/impl/encoded_search_query.hxx +2 -1
  776. data/ext/couchbase/core/impl/error.cxx +20 -5
  777. data/ext/couchbase/core/impl/error_context.cxx +1 -0
  778. data/ext/couchbase/core/impl/expiry.cxx +14 -6
  779. data/ext/couchbase/core/impl/fail_fast_retry_strategy.cxx +7 -0
  780. data/ext/couchbase/core/impl/field_level_encryption_error_category.cxx +1 -0
  781. data/ext/couchbase/core/impl/geo_bounding_box_query.cxx +1 -0
  782. data/ext/couchbase/core/impl/geo_distance_query.cxx +1 -0
  783. data/ext/couchbase/core/impl/geo_polygon_query.cxx +1 -0
  784. data/ext/couchbase/core/impl/get_replica.cxx +6 -2
  785. data/ext/couchbase/core/impl/get_replica.hxx +1 -1
  786. data/ext/couchbase/core/impl/internal_date_range_facet_result.cxx +11 -1
  787. data/ext/couchbase/core/impl/internal_error_context.cxx +2 -2
  788. data/ext/couchbase/core/impl/internal_error_context.hxx +3 -2
  789. data/ext/couchbase/core/impl/internal_numeric_range_facet_result.cxx +11 -1
  790. data/ext/couchbase/core/impl/internal_scan_result.hxx +6 -0
  791. data/ext/couchbase/core/impl/internal_search_error_context.cxx +11 -0
  792. data/ext/couchbase/core/impl/internal_search_meta_data.cxx +10 -1
  793. data/ext/couchbase/core/impl/internal_search_result.cxx +19 -7
  794. data/ext/couchbase/core/impl/internal_search_row.cxx +6 -0
  795. data/ext/couchbase/core/impl/internal_search_row.hxx +2 -0
  796. data/ext/couchbase/core/impl/internal_term_facet_result.cxx +4 -1
  797. data/ext/couchbase/core/impl/lookup_in_replica.cxx +4 -0
  798. data/ext/couchbase/core/impl/observe_poll.cxx +25 -17
  799. data/ext/couchbase/core/impl/observe_poll.hxx +2 -4
  800. data/ext/couchbase/core/impl/observe_seqno.cxx +1 -1
  801. data/ext/couchbase/core/impl/observe_seqno.hxx +4 -4
  802. data/ext/couchbase/core/impl/query.cxx +22 -18
  803. data/ext/couchbase/core/impl/query_index_manager.cxx +43 -38
  804. data/ext/couchbase/core/impl/replica_utils.cxx +1 -1
  805. data/ext/couchbase/core/impl/scan_result.cxx +2 -2
  806. data/ext/couchbase/core/impl/scope.cxx +8 -6
  807. data/ext/couchbase/core/impl/search.cxx +14 -16
  808. data/ext/couchbase/core/impl/search_index_manager.cxx +12 -12
  809. data/ext/couchbase/core/impl/search_meta_data.cxx +7 -0
  810. data/ext/couchbase/core/impl/search_request.cxx +1 -1
  811. data/ext/couchbase/core/impl/search_row.cxx +5 -0
  812. data/ext/couchbase/core/impl/search_row_locations.cxx +6 -0
  813. data/ext/couchbase/core/impl/subdoc/join_values.cxx +2 -2
  814. data/ext/couchbase/core/impl/subdoc/lookup_in_macro.cxx +15 -12
  815. data/ext/couchbase/core/impl/subdoc/lookup_in_specs.cxx +1 -1
  816. data/ext/couchbase/core/impl/subdoc/mutate_in_macro.cxx +3 -3
  817. data/ext/couchbase/core/impl/subdoc/mutate_in_specs.cxx +1 -1
  818. data/ext/couchbase/core/impl/transaction_get_result.cxx +9 -3
  819. data/ext/couchbase/core/impl/vector_query.cxx +1 -1
  820. data/ext/couchbase/core/io/config_tracker.cxx +685 -0
  821. data/ext/couchbase/core/io/config_tracker.hxx +122 -0
  822. data/ext/couchbase/core/io/dns_client.cxx +12 -5
  823. data/ext/couchbase/core/io/dns_config.cxx +5 -3
  824. data/ext/couchbase/core/io/http_command.hxx +90 -22
  825. data/ext/couchbase/core/io/http_message.hxx +4 -1
  826. data/ext/couchbase/core/io/http_session.cxx +809 -0
  827. data/ext/couchbase/core/io/http_session.hxx +97 -547
  828. data/ext/couchbase/core/io/http_session_manager.hxx +514 -54
  829. data/ext/couchbase/core/io/http_streaming_parser.cxx +166 -0
  830. data/ext/couchbase/core/io/http_streaming_parser.hxx +62 -0
  831. data/ext/couchbase/core/io/http_streaming_response.cxx +227 -0
  832. data/ext/couchbase/core/io/http_streaming_response.hxx +73 -0
  833. data/ext/couchbase/core/io/mcbp_command.hxx +15 -14
  834. data/ext/couchbase/core/io/mcbp_message.hxx +1 -1
  835. data/ext/couchbase/core/io/mcbp_parser.cxx +5 -5
  836. data/ext/couchbase/core/io/mcbp_session.cxx +401 -178
  837. data/ext/couchbase/core/io/mcbp_session.hxx +21 -5
  838. data/ext/couchbase/core/io/streams.cxx +256 -0
  839. data/ext/couchbase/core/io/streams.hxx +44 -162
  840. data/ext/couchbase/core/logger/configuration.hxx +5 -0
  841. data/ext/couchbase/core/logger/custom_rotating_file_sink.cxx +14 -12
  842. data/ext/couchbase/core/logger/custom_rotating_file_sink.hxx +1 -1
  843. data/ext/couchbase/core/logger/logger.cxx +77 -35
  844. data/ext/couchbase/core/logger/logger.hxx +8 -1
  845. data/ext/couchbase/core/management/search_index.cxx +6 -7
  846. data/ext/couchbase/core/mcbp/buffer_writer.cxx +1 -1
  847. data/ext/couchbase/core/mcbp/codec.cxx +25 -23
  848. data/ext/couchbase/core/mcbp/codec.hxx +5 -4
  849. data/ext/couchbase/core/mcbp/operation_queue.cxx +12 -10
  850. data/ext/couchbase/core/mcbp/operation_queue.hxx +4 -4
  851. data/ext/couchbase/core/mcbp/packet.cxx +2 -0
  852. data/ext/couchbase/core/mcbp/queue_request.cxx +10 -7
  853. data/ext/couchbase/core/meta/version.cxx +22 -13
  854. data/ext/couchbase/core/metrics/logging_meter.cxx +6 -6
  855. data/ext/couchbase/core/metrics/meter_wrapper.cxx +188 -0
  856. data/ext/couchbase/core/metrics/meter_wrapper.hxx +73 -0
  857. data/ext/couchbase/core/mozilla_ca_bundle.hxx +2 -1
  858. data/ext/couchbase/core/operations/document_analytics.cxx +3 -1
  859. data/ext/couchbase/core/operations/document_get_projected.cxx +16 -12
  860. data/ext/couchbase/core/operations/document_lookup_in.cxx +4 -0
  861. data/ext/couchbase/core/operations/document_lookup_in.hxx +1 -0
  862. data/ext/couchbase/core/operations/document_lookup_in_all_replicas.hxx +2 -2
  863. data/ext/couchbase/core/operations/document_lookup_in_any_replica.hxx +4 -14
  864. data/ext/couchbase/core/operations/document_query.cxx +12 -3
  865. data/ext/couchbase/core/operations/document_view.cxx +2 -0
  866. data/ext/couchbase/core/operations/http_noop.hxx +1 -1
  867. data/ext/couchbase/core/operations/management/analytics_dataset_create.cxx +9 -5
  868. data/ext/couchbase/core/operations/management/analytics_dataset_drop.cxx +9 -5
  869. data/ext/couchbase/core/operations/management/analytics_dataset_get_all.cxx +8 -5
  870. data/ext/couchbase/core/operations/management/analytics_dataverse_create.cxx +9 -5
  871. data/ext/couchbase/core/operations/management/analytics_dataverse_drop.cxx +9 -5
  872. data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.cxx +6 -3
  873. data/ext/couchbase/core/operations/management/analytics_index_create.cxx +10 -5
  874. data/ext/couchbase/core/operations/management/analytics_index_drop.cxx +9 -5
  875. data/ext/couchbase/core/operations/management/analytics_index_get_all.cxx +8 -5
  876. data/ext/couchbase/core/operations/management/analytics_link_connect.cxx +9 -5
  877. data/ext/couchbase/core/operations/management/analytics_link_create.cxx +9 -7
  878. data/ext/couchbase/core/operations/management/analytics_link_disconnect.cxx +9 -5
  879. data/ext/couchbase/core/operations/management/analytics_link_drop.cxx +9 -5
  880. data/ext/couchbase/core/operations/management/analytics_link_get_all.cxx +8 -4
  881. data/ext/couchbase/core/operations/management/analytics_link_replace.cxx +9 -7
  882. data/ext/couchbase/core/operations/management/bucket_create.cxx +7 -3
  883. data/ext/couchbase/core/operations/management/bucket_describe.cxx +18 -14
  884. data/ext/couchbase/core/operations/management/bucket_drop.cxx +9 -6
  885. data/ext/couchbase/core/operations/management/bucket_flush.cxx +9 -6
  886. data/ext/couchbase/core/operations/management/bucket_get.cxx +9 -5
  887. data/ext/couchbase/core/operations/management/bucket_get_all.cxx +7 -3
  888. data/ext/couchbase/core/operations/management/bucket_update.cxx +10 -4
  889. data/ext/couchbase/core/operations/management/change_password.cxx +5 -3
  890. data/ext/couchbase/core/operations/management/cluster_describe.cxx +6 -3
  891. data/ext/couchbase/core/operations/management/cluster_developer_preview_enable.cxx +4 -2
  892. data/ext/couchbase/core/operations/management/collection_create.cxx +13 -9
  893. data/ext/couchbase/core/operations/management/collection_drop.cxx +15 -9
  894. data/ext/couchbase/core/operations/management/collection_update.cxx +12 -7
  895. data/ext/couchbase/core/operations/management/collections_manifest_get.cxx +4 -3
  896. data/ext/couchbase/core/operations/management/error_utils.cxx +21 -12
  897. data/ext/couchbase/core/operations/management/eventing_deploy_function.cxx +5 -3
  898. data/ext/couchbase/core/operations/management/eventing_drop_function.cxx +5 -3
  899. data/ext/couchbase/core/operations/management/eventing_get_all_functions.cxx +6 -3
  900. data/ext/couchbase/core/operations/management/eventing_get_function.cxx +5 -3
  901. data/ext/couchbase/core/operations/management/eventing_get_status.cxx +6 -3
  902. data/ext/couchbase/core/operations/management/eventing_pause_function.cxx +5 -3
  903. data/ext/couchbase/core/operations/management/eventing_resume_function.cxx +5 -3
  904. data/ext/couchbase/core/operations/management/eventing_undeploy_function.cxx +5 -3
  905. data/ext/couchbase/core/operations/management/eventing_upsert_function.cxx +18 -13
  906. data/ext/couchbase/core/operations/management/freeform.cxx +5 -4
  907. data/ext/couchbase/core/operations/management/freeform.hxx +1 -1
  908. data/ext/couchbase/core/operations/management/group_drop.cxx +5 -4
  909. data/ext/couchbase/core/operations/management/group_get.cxx +6 -4
  910. data/ext/couchbase/core/operations/management/group_get_all.cxx +7 -3
  911. data/ext/couchbase/core/operations/management/group_upsert.cxx +12 -9
  912. data/ext/couchbase/core/operations/management/query_index_build.cxx +8 -5
  913. data/ext/couchbase/core/operations/management/query_index_create.cxx +6 -3
  914. data/ext/couchbase/core/operations/management/query_index_drop.cxx +7 -3
  915. data/ext/couchbase/core/operations/management/query_index_get_all.cxx +14 -7
  916. data/ext/couchbase/core/operations/management/query_index_get_all_deferred.cxx +11 -6
  917. data/ext/couchbase/core/operations/management/role_get_all.cxx +8 -5
  918. data/ext/couchbase/core/operations/management/scope_create.cxx +10 -7
  919. data/ext/couchbase/core/operations/management/scope_drop.cxx +13 -8
  920. data/ext/couchbase/core/operations/management/scope_get_all.cxx +9 -4
  921. data/ext/couchbase/core/operations/management/search_get_stats.cxx +4 -3
  922. data/ext/couchbase/core/operations/management/search_index_analyze_document.cxx +8 -4
  923. data/ext/couchbase/core/operations/management/search_index_control_ingest.cxx +8 -5
  924. data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.cxx +8 -4
  925. data/ext/couchbase/core/operations/management/search_index_control_query.cxx +8 -5
  926. data/ext/couchbase/core/operations/management/search_index_drop.cxx +10 -5
  927. data/ext/couchbase/core/operations/management/search_index_get.cxx +10 -5
  928. data/ext/couchbase/core/operations/management/search_index_get_all.cxx +9 -5
  929. data/ext/couchbase/core/operations/management/search_index_get_documents_count.cxx +10 -4
  930. data/ext/couchbase/core/operations/management/search_index_get_stats.cxx +7 -3
  931. data/ext/couchbase/core/operations/management/search_index_upsert.cxx +10 -5
  932. data/ext/couchbase/core/operations/management/user_drop.cxx +5 -4
  933. data/ext/couchbase/core/operations/management/user_get.cxx +7 -4
  934. data/ext/couchbase/core/operations/management/user_get_all.cxx +8 -5
  935. data/ext/couchbase/core/operations/management/user_upsert.cxx +10 -7
  936. data/ext/couchbase/core/operations/management/view_index_drop.cxx +8 -4
  937. data/ext/couchbase/core/operations/management/view_index_get.cxx +8 -4
  938. data/ext/couchbase/core/operations/management/view_index_get_all.cxx +8 -4
  939. data/ext/couchbase/core/operations/management/view_index_upsert.cxx +7 -4
  940. data/ext/couchbase/core/origin.cxx +67 -42
  941. data/ext/couchbase/core/origin.hxx +1 -1
  942. data/ext/couchbase/core/pending_operation_connection_info.hxx +32 -0
  943. data/ext/couchbase/core/platform/CMakeLists.txt +0 -19
  944. data/ext/couchbase/core/platform/base64.cc +32 -23
  945. data/ext/couchbase/core/platform/dirutils.cc +24 -14
  946. data/ext/couchbase/core/platform/random.cc +22 -12
  947. data/ext/couchbase/core/platform/random.h +1 -1
  948. data/ext/couchbase/core/platform/string_hex.cc +37 -28
  949. data/ext/couchbase/core/platform/string_hex.h +1 -0
  950. data/ext/couchbase/core/platform/terminate_handler.cc +15 -12
  951. data/ext/couchbase/core/platform/uuid.cc +18 -11
  952. data/ext/couchbase/core/platform/uuid.h +6 -6
  953. data/ext/couchbase/core/protocol/client_request.cxx +1 -1
  954. data/ext/couchbase/core/protocol/client_request.hxx +1 -3
  955. data/ext/couchbase/core/protocol/client_response.cxx +1 -0
  956. data/ext/couchbase/core/protocol/cmd_cluster_map_change_notification.cxx +5 -3
  957. data/ext/couchbase/core/protocol/cmd_get_and_lock.hxx +1 -1
  958. data/ext/couchbase/core/protocol/cmd_get_and_touch.hxx +1 -1
  959. data/ext/couchbase/core/protocol/cmd_get_cluster_config.cxx +2 -1
  960. data/ext/couchbase/core/protocol/cmd_get_cluster_config.hxx +2 -2
  961. data/ext/couchbase/core/protocol/cmd_get_collections_manifest.cxx +2 -1
  962. data/ext/couchbase/core/protocol/cmd_get_error_map.cxx +2 -1
  963. data/ext/couchbase/core/protocol/cmd_hello.cxx +5 -5
  964. data/ext/couchbase/core/protocol/cmd_mutate_in.cxx +2 -2
  965. data/ext/couchbase/core/protocol/cmd_observe_seqno.cxx +3 -2
  966. data/ext/couchbase/core/protocol/cmd_observe_seqno.hxx +1 -1
  967. data/ext/couchbase/core/protocol/status.cxx +0 -1
  968. data/ext/couchbase/core/range_scan_load_balancer.cxx +10 -9
  969. data/ext/couchbase/core/range_scan_load_balancer.hxx +3 -4
  970. data/ext/couchbase/core/range_scan_orchestrator.cxx +44 -27
  971. data/ext/couchbase/core/retry_orchestrator.cxx +1 -1
  972. data/ext/couchbase/core/retry_orchestrator.hxx +1 -1
  973. data/ext/couchbase/core/row_streamer.cxx +239 -0
  974. data/ext/couchbase/core/row_streamer.hxx +68 -0
  975. data/ext/couchbase/core/sasl/context.cc +2 -2
  976. data/ext/couchbase/core/sasl/mechanism.cc +3 -5
  977. data/ext/couchbase/core/sasl/mechanism.h +2 -5
  978. data/ext/couchbase/core/sasl/plain/plain.cc +2 -2
  979. data/ext/couchbase/core/sasl/scram-sha/scram-sha.cc +21 -20
  980. data/ext/couchbase/core/sasl/scram-sha/stringutils.cc +4 -4
  981. data/ext/couchbase/core/sasl/scram-sha/stringutils.h +4 -4
  982. data/ext/couchbase/core/scan_result.cxx +4 -4
  983. data/ext/couchbase/core/scan_result.hxx +1 -1
  984. data/ext/couchbase/core/timeout_defaults.hxx +1 -0
  985. data/ext/couchbase/core/topology/collections_manifest.hxx +3 -3
  986. data/ext/couchbase/core/topology/configuration.hxx +2 -0
  987. data/ext/couchbase/core/topology/configuration_json.hxx +10 -2
  988. data/ext/couchbase/core/tracing/constants.hxx +3 -0
  989. data/ext/couchbase/core/tracing/threshold_logging_tracer.cxx +22 -26
  990. data/ext/couchbase/core/tracing/threshold_logging_tracer.hxx +1 -1
  991. data/ext/couchbase/core/tracing/tracer_wrapper.cxx +87 -0
  992. data/ext/couchbase/core/tracing/tracer_wrapper.hxx +57 -0
  993. data/ext/couchbase/core/transactions/active_transaction_record.cxx +31 -32
  994. data/ext/couchbase/core/transactions/async_attempt_context.hxx +3 -3
  995. data/ext/couchbase/core/transactions/atr_cleanup_entry.cxx +68 -56
  996. data/ext/couchbase/core/transactions/atr_ids.cxx +3 -2
  997. data/ext/couchbase/core/transactions/attempt_context_impl.cxx +512 -408
  998. data/ext/couchbase/core/transactions/attempt_context_impl.hxx +40 -67
  999. data/ext/couchbase/core/transactions/attempt_context_testing_hooks.cxx +3 -0
  1000. data/ext/couchbase/core/transactions/binary.cxx +1 -1
  1001. data/ext/couchbase/core/transactions/cleanup_testing_hooks.cxx +2 -1
  1002. data/ext/couchbase/core/transactions/document_metadata.hxx +4 -4
  1003. data/ext/couchbase/core/transactions/exceptions.cxx +11 -12
  1004. data/ext/couchbase/core/transactions/forward_compat.cxx +40 -29
  1005. data/ext/couchbase/core/transactions/internal/atr_cleanup_entry.hxx +12 -11
  1006. data/ext/couchbase/core/transactions/internal/doc_record.cxx +7 -7
  1007. data/ext/couchbase/core/transactions/internal/transaction_context.hxx +46 -96
  1008. data/ext/couchbase/core/transactions/internal/transactions_cleanup.hxx +34 -33
  1009. data/ext/couchbase/core/transactions/internal/utils.hxx +3 -2
  1010. data/ext/couchbase/core/transactions/result.cxx +1 -1
  1011. data/ext/couchbase/core/transactions/staged_mutation.cxx +105 -97
  1012. data/ext/couchbase/core/transactions/staged_mutation.hxx +28 -26
  1013. data/ext/couchbase/core/transactions/transaction_context.cxx +118 -8
  1014. data/ext/couchbase/core/transactions/transaction_get_result.cxx +5 -1
  1015. data/ext/couchbase/core/transactions/transaction_get_result.hxx +9 -17
  1016. data/ext/couchbase/core/transactions/transaction_keyspace.cxx +1 -1
  1017. data/ext/couchbase/core/transactions/transaction_links.cxx +87 -2
  1018. data/ext/couchbase/core/transactions/transaction_links.hxx +6 -65
  1019. data/ext/couchbase/core/transactions/transaction_options.cxx +3 -2
  1020. data/ext/couchbase/core/transactions/transactions.cxx +12 -9
  1021. data/ext/couchbase/core/transactions/transactions_cleanup.cxx +59 -68
  1022. data/ext/couchbase/core/transactions/transactions_config.cxx +1 -3
  1023. data/ext/couchbase/core/transactions/uid_generator.cxx +3 -1
  1024. data/ext/couchbase/core/transactions/utils.cxx +14 -14
  1025. data/ext/couchbase/core/transactions.hxx +3 -4
  1026. data/ext/couchbase/core/utils/connection_string.cxx +135 -47
  1027. data/ext/couchbase/core/utils/duration_parser.cxx +11 -9
  1028. data/ext/couchbase/core/utils/json.cxx +14 -4
  1029. data/ext/couchbase/core/utils/json.hxx +1 -1
  1030. data/ext/couchbase/core/utils/json_streaming_lexer.cxx +44 -9
  1031. data/ext/couchbase/core/utils/json_streaming_lexer.hxx +4 -0
  1032. data/ext/couchbase/core/utils/movable_function.hxx +0 -1
  1033. data/ext/couchbase/core/utils/url_codec.cxx +7 -4
  1034. data/ext/couchbase/couchbase/analytics_index_manager.hxx +24 -24
  1035. data/ext/couchbase/couchbase/analytics_meta_data.hxx +2 -1
  1036. data/ext/couchbase/couchbase/analytics_options.hxx +32 -15
  1037. data/ext/couchbase/couchbase/analytics_result.hxx +7 -9
  1038. data/ext/couchbase/couchbase/behavior_options.hxx +1 -10
  1039. data/ext/couchbase/couchbase/boolean_query.hxx +1 -1
  1040. data/ext/couchbase/couchbase/bucket_manager.hxx +1 -0
  1041. data/ext/couchbase/couchbase/codec/codec_flags.hxx +0 -1
  1042. data/ext/couchbase/couchbase/codec/default_json_transcoder.hxx +1 -1
  1043. data/ext/couchbase/couchbase/codec/tao_json_serializer.hxx +1 -1
  1044. data/ext/couchbase/couchbase/collection.hxx +14 -0
  1045. data/ext/couchbase/couchbase/conjunction_query.hxx +1 -1
  1046. data/ext/couchbase/couchbase/create_bucket_options.hxx +1 -0
  1047. data/ext/couchbase/couchbase/date_range_facet_result.hxx +1 -0
  1048. data/ext/couchbase/couchbase/date_range_query.hxx +2 -2
  1049. data/ext/couchbase/couchbase/disjunction_query.hxx +1 -1
  1050. data/ext/couchbase/couchbase/drop_bucket_options.hxx +3 -3
  1051. data/ext/couchbase/couchbase/expiry.hxx +2 -2
  1052. data/ext/couchbase/couchbase/flush_bucket_options.hxx +2 -4
  1053. data/ext/couchbase/couchbase/geo_bounding_box_query.hxx +1 -1
  1054. data/ext/couchbase/couchbase/geo_distance_query.hxx +1 -1
  1055. data/ext/couchbase/couchbase/geo_polygon_query.hxx +1 -1
  1056. data/ext/couchbase/couchbase/get_all_buckets_options.hxx +2 -3
  1057. data/ext/couchbase/couchbase/get_bucket_options.hxx +2 -3
  1058. data/ext/couchbase/couchbase/get_replica_result.hxx +2 -2
  1059. data/ext/couchbase/couchbase/get_result.hxx +2 -2
  1060. data/ext/couchbase/couchbase/lookup_in_result.hxx +20 -7
  1061. data/ext/couchbase/couchbase/match_phrase_query.hxx +1 -1
  1062. data/ext/couchbase/couchbase/match_query.hxx +2 -2
  1063. data/ext/couchbase/couchbase/mutate_in_result.hxx +17 -6
  1064. data/ext/couchbase/couchbase/mutate_in_specs.hxx +16 -12
  1065. data/ext/couchbase/couchbase/network_options.hxx +11 -1
  1066. data/ext/couchbase/couchbase/numeric_range_query.hxx +2 -1
  1067. data/ext/couchbase/couchbase/phrase_query.hxx +1 -1
  1068. data/ext/couchbase/couchbase/prefix_query.hxx +1 -1
  1069. data/ext/couchbase/couchbase/query_index_manager.hxx +14 -14
  1070. data/ext/couchbase/couchbase/query_options.hxx +32 -14
  1071. data/ext/couchbase/couchbase/query_result.hxx +9 -10
  1072. data/ext/couchbase/couchbase/query_string_query.hxx +3 -3
  1073. data/ext/couchbase/couchbase/regexp_query.hxx +1 -1
  1074. data/ext/couchbase/couchbase/search_meta_data.hxx +3 -0
  1075. data/ext/couchbase/couchbase/search_numeric_range.hxx +1 -0
  1076. data/ext/couchbase/couchbase/search_options.hxx +9 -3
  1077. data/ext/couchbase/couchbase/search_row.hxx +3 -0
  1078. data/ext/couchbase/couchbase/search_row_location.hxx +2 -1
  1079. data/ext/couchbase/couchbase/search_row_locations.hxx +4 -0
  1080. data/ext/couchbase/couchbase/search_sort_field.hxx +2 -2
  1081. data/ext/couchbase/couchbase/subdoc/lookup_in_macro.hxx +1 -1
  1082. data/ext/couchbase/couchbase/term_query.hxx +1 -1
  1083. data/ext/couchbase/couchbase/term_range_query.hxx +1 -1
  1084. data/ext/couchbase/couchbase/transactions/async_attempt_context.hxx +7 -1
  1085. data/ext/couchbase/couchbase/transactions/attempt_context.hxx +36 -10
  1086. data/ext/couchbase/couchbase/transactions/transaction_get_result.hxx +26 -3
  1087. data/ext/couchbase/couchbase/transactions/transaction_keyspace.hxx +1 -1
  1088. data/ext/couchbase/couchbase/update_bucket_options.hxx +3 -3
  1089. data/ext/couchbase/couchbase/vector_query.hxx +1 -1
  1090. data/ext/couchbase/couchbase/wildcard_query.hxx +1 -1
  1091. data/ext/extconf.rb +3 -0
  1092. data/ext/rcb_backend.cxx +0 -1
  1093. data/ext/rcb_crud.cxx +2 -0
  1094. data/ext/rcb_version.cxx +4 -1
  1095. data/lib/active_support/cache/couchbase_store.rb +2 -2
  1096. data/lib/couchbase/version.rb +1 -1
  1097. metadata +852 -910
  1098. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/any_completion_executor.hpp +0 -336
  1099. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/any_completion_handler.hpp +0 -812
  1100. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/any_io_executor.hpp +0 -351
  1101. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/append.hpp +0 -65
  1102. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/as_tuple.hpp +0 -126
  1103. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/associated_allocator.hpp +0 -214
  1104. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/associated_cancellation_slot.hpp +0 -221
  1105. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/associated_executor.hpp +0 -235
  1106. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/associated_immediate_executor.hpp +0 -280
  1107. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/associator.hpp +0 -35
  1108. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/async_result.hpp +0 -893
  1109. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/awaitable.hpp +0 -142
  1110. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_datagram_socket.hpp +0 -1362
  1111. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_deadline_timer.hpp +0 -710
  1112. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_file.hpp +0 -824
  1113. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_io_object.hpp +0 -286
  1114. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_random_access_file.hpp +0 -689
  1115. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_raw_socket.hpp +0 -1356
  1116. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_readable_pipe.hpp +0 -626
  1117. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_seq_packet_socket.hpp +0 -823
  1118. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_serial_port.hpp +0 -987
  1119. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_signal_set.hpp +0 -648
  1120. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_socket.hpp +0 -1936
  1121. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_socket_acceptor.hpp +0 -2708
  1122. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_socket_iostream.hpp +0 -331
  1123. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_socket_streambuf.hpp +0 -642
  1124. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_stream_file.hpp +0 -744
  1125. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_stream_socket.hpp +0 -1163
  1126. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_streambuf.hpp +0 -450
  1127. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_streambuf_fwd.hpp +0 -36
  1128. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_waitable_timer.hpp +0 -824
  1129. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/basic_writable_pipe.hpp +0 -622
  1130. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/bind_allocator.hpp +0 -524
  1131. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/bind_cancellation_slot.hpp +0 -536
  1132. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/bind_executor.hpp +0 -576
  1133. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/bind_immediate_executor.hpp +0 -543
  1134. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/buffer.hpp +0 -2751
  1135. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/buffer_registration.hpp +0 -318
  1136. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/buffered_read_stream.hpp +0 -273
  1137. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/buffered_read_stream_fwd.hpp +0 -25
  1138. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/buffered_stream.hpp +0 -292
  1139. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/buffered_stream_fwd.hpp +0 -25
  1140. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/buffered_write_stream.hpp +0 -265
  1141. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/buffered_write_stream_fwd.hpp +0 -25
  1142. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/buffers_iterator.hpp +0 -521
  1143. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/cancellation_signal.hpp +0 -245
  1144. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/cancellation_state.hpp +0 -235
  1145. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/cancellation_type.hpp +0 -157
  1146. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/co_spawn.hpp +0 -523
  1147. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/completion_condition.hpp +0 -218
  1148. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/compose.hpp +0 -319
  1149. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/connect.hpp +0 -1180
  1150. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/connect_pipe.hpp +0 -83
  1151. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/consign.hpp +0 -75
  1152. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/coroutine.hpp +0 -328
  1153. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/deadline_timer.hpp +0 -38
  1154. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/defer.hpp +0 -218
  1155. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/deferred.hpp +0 -715
  1156. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detached.hpp +0 -105
  1157. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/array.hpp +0 -30
  1158. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/array_fwd.hpp +0 -32
  1159. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/assert.hpp +0 -32
  1160. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/atomic_count.hpp +0 -59
  1161. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/base_from_cancellation_state.hpp +0 -164
  1162. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/base_from_completion_cond.hpp +0 -69
  1163. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/bind_handler.hpp +0 -711
  1164. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/blocking_executor_op.hpp +0 -107
  1165. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/buffer_resize_guard.hpp +0 -66
  1166. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +0 -837
  1167. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/buffered_stream_storage.hpp +0 -126
  1168. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/call_stack.hpp +0 -125
  1169. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/chrono.hpp +0 -45
  1170. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/chrono_time_traits.hpp +0 -190
  1171. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/completion_handler.hpp +0 -88
  1172. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/composed_work.hpp +0 -252
  1173. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/concurrency_hint.hpp +0 -94
  1174. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +0 -120
  1175. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/conditionally_enabled_mutex.hpp +0 -149
  1176. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/config.hpp +0 -1422
  1177. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/consuming_buffers.hpp +0 -443
  1178. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/cstddef.hpp +0 -27
  1179. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/cstdint.hpp +0 -40
  1180. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/date_time_fwd.hpp +0 -34
  1181. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/deadline_timer_service.hpp +0 -335
  1182. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/dependent_type.hpp +0 -36
  1183. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/descriptor_ops.hpp +0 -179
  1184. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/descriptor_read_op.hpp +0 -188
  1185. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/descriptor_write_op.hpp +0 -187
  1186. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/dev_poll_reactor.hpp +0 -247
  1187. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/epoll_reactor.hpp +0 -295
  1188. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/event.hpp +0 -46
  1189. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/eventfd_select_interrupter.hpp +0 -83
  1190. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/exception.hpp +0 -29
  1191. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/executor_function.hpp +0 -152
  1192. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/executor_op.hpp +0 -84
  1193. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/fd_set_adapter.hpp +0 -39
  1194. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/fenced_block.hpp +0 -40
  1195. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/functional.hpp +0 -33
  1196. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/future.hpp +0 -32
  1197. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/global.hpp +0 -50
  1198. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +0 -225
  1199. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/handler_cont_helpers.hpp +0 -45
  1200. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/handler_tracking.hpp +0 -264
  1201. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/handler_type_requirements.hpp +0 -553
  1202. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/handler_work.hpp +0 -511
  1203. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/hash_map.hpp +0 -331
  1204. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp +0 -118
  1205. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +0 -970
  1206. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/dev_poll_reactor.hpp +0 -111
  1207. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/dev_poll_reactor.ipp +0 -469
  1208. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/epoll_reactor.hpp +0 -109
  1209. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/epoll_reactor.ipp +0 -826
  1210. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp +0 -171
  1211. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/handler_tracking.ipp +0 -398
  1212. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/io_uring_descriptor_service.ipp +0 -205
  1213. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/io_uring_file_service.ipp +0 -140
  1214. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/io_uring_service.hpp +0 -112
  1215. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/io_uring_service.ipp +0 -914
  1216. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/io_uring_socket_service_base.ipp +0 -249
  1217. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/kqueue_reactor.hpp +0 -113
  1218. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/kqueue_reactor.ipp +0 -608
  1219. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/null_event.ipp +0 -74
  1220. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/pipe_select_interrupter.ipp +0 -129
  1221. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/posix_event.ipp +0 -63
  1222. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/posix_mutex.ipp +0 -46
  1223. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/posix_serial_port_service.ipp +0 -168
  1224. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/posix_thread.ipp +0 -84
  1225. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/posix_tss_ptr.ipp +0 -46
  1226. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/reactive_descriptor_service.ipp +0 -230
  1227. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/reactive_socket_service_base.ipp +0 -310
  1228. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/resolver_service_base.ipp +0 -158
  1229. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/scheduler.ipp +0 -675
  1230. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/select_reactor.hpp +0 -124
  1231. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/select_reactor.ipp +0 -400
  1232. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/service_registry.hpp +0 -93
  1233. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/service_registry.ipp +0 -197
  1234. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/signal_set_service.ipp +0 -826
  1235. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/socket_ops.ipp +0 -3977
  1236. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/socket_select_interrupter.ipp +0 -185
  1237. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +0 -346
  1238. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/strand_executor_service.ipp +0 -158
  1239. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/strand_service.hpp +0 -86
  1240. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/strand_service.ipp +0 -202
  1241. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/thread_context.ipp +0 -35
  1242. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/throw_error.ipp +0 -49
  1243. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/timer_queue_ptime.ipp +0 -97
  1244. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/timer_queue_set.ipp +0 -101
  1245. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/win_event.ipp +0 -76
  1246. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/win_iocp_file_service.ipp +0 -265
  1247. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/win_iocp_handle_service.ipp +0 -619
  1248. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/win_iocp_io_context.hpp +0 -119
  1249. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +0 -614
  1250. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp +0 -200
  1251. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp +0 -821
  1252. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/win_mutex.ipp +0 -84
  1253. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/win_object_handle_service.ipp +0 -452
  1254. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/win_static_mutex.ipp +0 -136
  1255. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/win_thread.ipp +0 -150
  1256. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/win_tss_ptr.ipp +0 -57
  1257. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp +0 -626
  1258. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp +0 -92
  1259. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp +0 -121
  1260. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/impl/winsock_init.ipp +0 -82
  1261. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/initiate_defer.hpp +0 -207
  1262. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/initiate_dispatch.hpp +0 -193
  1263. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/initiate_post.hpp +0 -207
  1264. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_control.hpp +0 -84
  1265. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_object_impl.hpp +0 -177
  1266. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_descriptor_read_at_op.hpp +0 -195
  1267. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_descriptor_read_op.hpp +0 -190
  1268. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_descriptor_service.hpp +0 -687
  1269. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_descriptor_write_at_op.hpp +0 -189
  1270. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_descriptor_write_op.hpp +0 -185
  1271. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_file_service.hpp +0 -261
  1272. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_null_buffers_op.hpp +0 -114
  1273. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_operation.hpp +0 -84
  1274. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_service.hpp +0 -319
  1275. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_socket_accept_op.hpp +0 -280
  1276. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_socket_connect_op.hpp +0 -140
  1277. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_socket_recv_op.hpp +0 -205
  1278. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_socket_recvfrom_op.hpp +0 -206
  1279. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_socket_recvmsg_op.hpp +0 -192
  1280. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_socket_send_op.hpp +0 -191
  1281. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_socket_sendto_op.hpp +0 -194
  1282. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_socket_service.hpp +0 -629
  1283. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_socket_service_base.hpp +0 -663
  1284. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/io_uring_wait_op.hpp +0 -112
  1285. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/is_buffer_sequence.hpp +0 -296
  1286. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/is_executor.hpp +0 -126
  1287. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/keyword_tss_ptr.hpp +0 -70
  1288. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/kqueue_reactor.hpp +0 -271
  1289. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/local_free_on_block_exit.hpp +0 -59
  1290. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/memory.hpp +0 -126
  1291. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/mutex.hpp +0 -46
  1292. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/non_const_lvalue.hpp +0 -43
  1293. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/noncopyable.hpp +0 -43
  1294. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/null_event.hpp +0 -106
  1295. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/null_fenced_block.hpp +0 -47
  1296. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/null_global.hpp +0 -59
  1297. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/null_mutex.hpp +0 -60
  1298. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/null_reactor.hpp +0 -83
  1299. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/null_signal_blocker.hpp +0 -69
  1300. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/null_socket_service.hpp +0 -519
  1301. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/null_static_mutex.hpp +0 -60
  1302. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/null_thread.hpp +0 -67
  1303. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/null_tss_ptr.hpp +0 -68
  1304. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/object_pool.hpp +0 -171
  1305. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/old_win_sdk_compat.hpp +0 -214
  1306. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/op_queue.hpp +0 -162
  1307. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/operation.hpp +0 -38
  1308. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/pipe_select_interrupter.hpp +0 -89
  1309. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/pop_options.hpp +0 -157
  1310. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/posix_event.hpp +0 -175
  1311. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/posix_fd_set_adapter.hpp +0 -118
  1312. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/posix_global.hpp +0 -80
  1313. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/posix_mutex.hpp +0 -76
  1314. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/posix_serial_port_service.hpp +0 -249
  1315. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/posix_signal_blocker.hpp +0 -85
  1316. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/posix_static_mutex.hpp +0 -64
  1317. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/posix_thread.hpp +0 -109
  1318. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/posix_tss_ptr.hpp +0 -79
  1319. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/push_options.hpp +0 -228
  1320. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +0 -566
  1321. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +0 -131
  1322. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +0 -323
  1323. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +0 -162
  1324. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +0 -197
  1325. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +0 -203
  1326. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +0 -184
  1327. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +0 -201
  1328. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +0 -194
  1329. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/reactive_socket_service.hpp +0 -633
  1330. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +0 -750
  1331. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/reactive_wait_op.hpp +0 -131
  1332. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/reactor.hpp +0 -54
  1333. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/reactor_op.hpp +0 -71
  1334. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/reactor_op_queue.hpp +0 -212
  1335. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/recycling_allocator.hpp +0 -105
  1336. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/regex_fwd.hpp +0 -35
  1337. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +0 -140
  1338. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/resolve_op.hpp +0 -45
  1339. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/resolve_query_op.hpp +0 -150
  1340. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/resolver_service.hpp +0 -147
  1341. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/resolver_service_base.hpp +0 -158
  1342. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/scheduler.hpp +0 -241
  1343. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/scheduler_operation.hpp +0 -78
  1344. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/scheduler_task.hpp +0 -49
  1345. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/scheduler_thread_info.hpp +0 -40
  1346. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/scoped_lock.hpp +0 -101
  1347. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/scoped_ptr.hpp +0 -87
  1348. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/select_interrupter.hpp +0 -46
  1349. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/select_reactor.hpp +0 -291
  1350. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/service_registry.hpp +0 -163
  1351. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/signal_blocker.hpp +0 -44
  1352. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/signal_handler.hpp +0 -90
  1353. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/signal_init.hpp +0 -47
  1354. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/signal_op.hpp +0 -53
  1355. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/signal_set_service.hpp +0 -292
  1356. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/socket_holder.hpp +0 -98
  1357. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/socket_ops.hpp +0 -375
  1358. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/socket_option.hpp +0 -316
  1359. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/socket_select_interrupter.hpp +0 -91
  1360. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/socket_types.hpp +0 -427
  1361. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/source_location.hpp +0 -45
  1362. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/static_mutex.hpp +0 -50
  1363. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/std_event.hpp +0 -183
  1364. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/std_fenced_block.hpp +0 -57
  1365. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/std_global.hpp +0 -65
  1366. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/std_mutex.hpp +0 -68
  1367. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/std_static_mutex.hpp +0 -76
  1368. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/std_thread.hpp +0 -66
  1369. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/strand_executor_service.hpp +0 -173
  1370. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/strand_service.hpp +0 -144
  1371. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/string_view.hpp +0 -47
  1372. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/thread.hpp +0 -58
  1373. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/thread_context.hpp +0 -51
  1374. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/thread_group.hpp +0 -99
  1375. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/thread_info_base.hpp +0 -250
  1376. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/throw_error.hpp +0 -62
  1377. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/throw_exception.hpp +0 -55
  1378. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/timer_queue.hpp +0 -389
  1379. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/timer_queue_base.hpp +0 -68
  1380. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/timer_queue_ptime.hpp +0 -103
  1381. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/timer_queue_set.hpp +0 -66
  1382. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/timer_scheduler.hpp +0 -37
  1383. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/timer_scheduler_fwd.hpp +0 -42
  1384. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/tss_ptr.hpp +0 -69
  1385. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/type_traits.hpp +0 -178
  1386. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/utility.hpp +0 -83
  1387. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/wait_handler.hpp +0 -90
  1388. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/wait_op.hpp +0 -49
  1389. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_event.hpp +0 -164
  1390. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_fd_set_adapter.hpp +0 -149
  1391. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_global.hpp +0 -71
  1392. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_file_service.hpp +0 -287
  1393. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +0 -119
  1394. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_handle_service.hpp +0 -431
  1395. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +0 -114
  1396. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_io_context.hpp +0 -347
  1397. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +0 -129
  1398. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_operation.hpp +0 -96
  1399. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +0 -100
  1400. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +0 -171
  1401. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_serial_port_service.hpp +0 -233
  1402. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +0 -339
  1403. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +0 -138
  1404. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +0 -126
  1405. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +0 -135
  1406. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +0 -127
  1407. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +0 -120
  1408. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_socket_service.hpp +0 -680
  1409. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_socket_service_base.hpp +0 -829
  1410. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_thread_info.hpp +0 -34
  1411. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +0 -130
  1412. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_mutex.hpp +0 -78
  1413. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_object_handle_service.hpp +0 -194
  1414. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_static_mutex.hpp +0 -74
  1415. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_thread.hpp +0 -147
  1416. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/win_tss_ptr.hpp +0 -79
  1417. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/winapp_thread.hpp +0 -124
  1418. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/wince_thread.hpp +0 -124
  1419. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/winrt_async_manager.hpp +0 -305
  1420. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/winrt_async_op.hpp +0 -65
  1421. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/winrt_resolve_op.hpp +0 -125
  1422. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/winrt_resolver_service.hpp +0 -212
  1423. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +0 -98
  1424. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +0 -119
  1425. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +0 -110
  1426. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/winrt_ssocket_service.hpp +0 -250
  1427. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/winrt_ssocket_service_base.hpp +0 -362
  1428. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/winrt_timer_scheduler.hpp +0 -147
  1429. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/winrt_utils.hpp +0 -106
  1430. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/winsock_init.hpp +0 -128
  1431. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/work_dispatcher.hpp +0 -143
  1432. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/detail/wrapped_handler.hpp +0 -217
  1433. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/dispatch.hpp +0 -197
  1434. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/error.hpp +0 -389
  1435. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/error_code.hpp +0 -39
  1436. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/execution/allocator.hpp +0 -278
  1437. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/execution/any_executor.hpp +0 -1933
  1438. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/execution/bad_executor.hpp +0 -46
  1439. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/execution/blocking.hpp +0 -1360
  1440. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/execution/blocking_adaptation.hpp +0 -1080
  1441. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/execution/context.hpp +0 -191
  1442. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/execution/context_as.hpp +0 -190
  1443. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/execution/executor.hpp +0 -116
  1444. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/execution/impl/bad_executor.ipp +0 -40
  1445. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/execution/invocable_archetype.hpp +0 -43
  1446. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/execution/mapping.hpp +0 -1002
  1447. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/execution/occupancy.hpp +0 -184
  1448. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/execution/outstanding_work.hpp +0 -753
  1449. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/execution/prefer_only.hpp +0 -328
  1450. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/execution/relationship.hpp +0 -751
  1451. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/execution.hpp +0 -33
  1452. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/execution_context.hpp +0 -388
  1453. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/executor.hpp +0 -343
  1454. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/executor_work_guard.hpp +0 -362
  1455. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/append.hpp +0 -36
  1456. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/as_single.hpp +0 -132
  1457. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/as_tuple.hpp +0 -36
  1458. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/awaitable_operators.hpp +0 -536
  1459. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/basic_channel.hpp +0 -513
  1460. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/basic_concurrent_channel.hpp +0 -513
  1461. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/cancellation_condition.hpp +0 -152
  1462. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/channel.hpp +0 -70
  1463. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/channel_error.hpp +0 -82
  1464. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/channel_traits.hpp +0 -301
  1465. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/co_composed.hpp +0 -145
  1466. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/concurrent_channel.hpp +0 -70
  1467. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/deferred.hpp +0 -36
  1468. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/detail/channel_handler.hpp +0 -77
  1469. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/detail/channel_message.hpp +0 -129
  1470. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/detail/channel_operation.hpp +0 -361
  1471. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/detail/channel_payload.hpp +0 -222
  1472. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/detail/channel_receive_op.hpp +0 -127
  1473. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/detail/channel_send_functions.hpp +0 -192
  1474. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/detail/channel_send_op.hpp +0 -148
  1475. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/detail/channel_service.hpp +0 -677
  1476. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/detail/coro_promise_allocator.hpp +0 -141
  1477. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/detail/has_signature.hpp +0 -54
  1478. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/detail/impl/channel_service.hpp +0 -620
  1479. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/detail/partial_promise.hpp +0 -197
  1480. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/impl/as_single.hpp +0 -176
  1481. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/impl/channel_error.ipp +0 -61
  1482. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/impl/co_composed.hpp +0 -1174
  1483. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/impl/parallel_group.hpp +0 -787
  1484. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/parallel_group.hpp +0 -456
  1485. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/prepend.hpp +0 -36
  1486. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/promise.hpp +0 -224
  1487. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/experimental/use_coro.hpp +0 -189
  1488. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/file_base.hpp +0 -166
  1489. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/generic/basic_endpoint.hpp +0 -189
  1490. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/generic/datagram_protocol.hpp +0 -123
  1491. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/generic/detail/endpoint.hpp +0 -133
  1492. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/generic/detail/impl/endpoint.ipp +0 -110
  1493. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/generic/raw_protocol.hpp +0 -121
  1494. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/generic/seq_packet_protocol.hpp +0 -122
  1495. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/generic/stream_protocol.hpp +0 -127
  1496. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/handler_continuation_hook.hpp +0 -54
  1497. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/high_resolution_timer.hpp +0 -39
  1498. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/any_completion_executor.ipp +0 -126
  1499. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/any_io_executor.ipp +0 -134
  1500. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/append.hpp +0 -162
  1501. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/as_tuple.hpp +0 -245
  1502. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/awaitable.hpp +0 -1195
  1503. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/buffered_read_stream.hpp +0 -404
  1504. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/buffered_write_stream.hpp +0 -384
  1505. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/cancellation_signal.ipp +0 -96
  1506. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/co_spawn.hpp +0 -440
  1507. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/connect.hpp +0 -809
  1508. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/connect_pipe.hpp +0 -73
  1509. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/connect_pipe.ipp +0 -149
  1510. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/consign.hpp +0 -137
  1511. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/deferred.hpp +0 -147
  1512. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/detached.hpp +0 -77
  1513. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/error.ipp +0 -128
  1514. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/error_code.ipp +0 -206
  1515. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/execution_context.hpp +0 -77
  1516. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/execution_context.ipp +0 -82
  1517. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/executor.hpp +0 -300
  1518. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/executor.ipp +0 -43
  1519. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/io_context.hpp +0 -433
  1520. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/io_context.ipp +0 -176
  1521. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/multiple_exceptions.ipp +0 -45
  1522. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/prepend.hpp +0 -163
  1523. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/read.hpp +0 -1053
  1524. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/read_at.hpp +0 -628
  1525. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/read_until.hpp +0 -2941
  1526. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/redirect_error.hpp +0 -250
  1527. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/serial_port_base.hpp +0 -59
  1528. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/serial_port_base.ipp +0 -554
  1529. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/spawn.hpp +0 -1400
  1530. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/src.hpp +0 -94
  1531. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/system_context.hpp +0 -34
  1532. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/system_context.ipp +0 -92
  1533. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/system_executor.hpp +0 -179
  1534. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/thread_pool.hpp +0 -277
  1535. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/thread_pool.ipp +0 -142
  1536. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/use_awaitable.hpp +0 -301
  1537. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/use_future.hpp +0 -707
  1538. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/write.hpp +0 -939
  1539. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/impl/write_at.hpp +0 -551
  1540. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/io_context.hpp +0 -1509
  1541. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/io_context_strand.hpp +0 -385
  1542. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/io_service.hpp +0 -33
  1543. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/io_service_strand.hpp +0 -20
  1544. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/address.hpp +0 -281
  1545. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/address_v4.hpp +0 -421
  1546. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/address_v4_iterator.hpp +0 -156
  1547. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/address_v4_range.hpp +0 -128
  1548. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/address_v6.hpp +0 -407
  1549. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/address_v6_iterator.hpp +0 -178
  1550. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/address_v6_range.hpp +0 -124
  1551. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/bad_address_cast.hpp +0 -63
  1552. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/basic_endpoint.hpp +0 -282
  1553. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/basic_resolver.hpp +0 -1112
  1554. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/basic_resolver_entry.hpp +0 -113
  1555. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/basic_resolver_iterator.hpp +0 -188
  1556. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/basic_resolver_query.hpp +0 -244
  1557. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/basic_resolver_results.hpp +0 -307
  1558. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/detail/endpoint.hpp +0 -141
  1559. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/detail/impl/endpoint.ipp +0 -195
  1560. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/detail/socket_option.hpp +0 -566
  1561. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/host_name.hpp +0 -42
  1562. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/icmp.hpp +0 -115
  1563. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/impl/address.hpp +0 -67
  1564. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/impl/address.ipp +0 -235
  1565. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/impl/address_v4.hpp +0 -67
  1566. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/impl/address_v4.ipp +0 -206
  1567. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/impl/address_v6.hpp +0 -67
  1568. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/impl/address_v6.ipp +0 -342
  1569. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/impl/basic_endpoint.hpp +0 -43
  1570. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/impl/host_name.ipp +0 -54
  1571. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/impl/network_v4.hpp +0 -54
  1572. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/impl/network_v4.ipp +0 -218
  1573. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/impl/network_v6.hpp +0 -53
  1574. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/impl/network_v6.ipp +0 -187
  1575. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/multicast.hpp +0 -191
  1576. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/network_v4.hpp +0 -257
  1577. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/network_v6.hpp +0 -231
  1578. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/resolver_base.hpp +0 -129
  1579. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/resolver_query_base.hpp +0 -43
  1580. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/tcp.hpp +0 -155
  1581. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/udp.hpp +0 -111
  1582. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/unicast.hpp +0 -70
  1583. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ip/v6_only.hpp +0 -69
  1584. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/is_applicable_property.hpp +0 -61
  1585. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/is_contiguous_iterator.hpp +0 -45
  1586. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/is_executor.hpp +0 -46
  1587. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/is_read_buffered.hpp +0 -59
  1588. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/is_write_buffered.hpp +0 -59
  1589. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/local/basic_endpoint.hpp +0 -243
  1590. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/local/connect_pair.hpp +0 -101
  1591. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/local/datagram_protocol.hpp +0 -80
  1592. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/local/detail/endpoint.hpp +0 -139
  1593. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/local/detail/impl/endpoint.ipp +0 -131
  1594. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/local/seq_packet_protocol.hpp +0 -84
  1595. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/local/stream_protocol.hpp +0 -90
  1596. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/multiple_exceptions.hpp +0 -52
  1597. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/packaged_task.hpp +0 -66
  1598. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/placeholders.hpp +0 -75
  1599. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/posix/basic_descriptor.hpp +0 -773
  1600. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +0 -559
  1601. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/posix/descriptor.hpp +0 -37
  1602. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/posix/descriptor_base.hpp +0 -90
  1603. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/posix/stream_descriptor.hpp +0 -37
  1604. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/post.hpp +0 -213
  1605. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/prefer.hpp +0 -577
  1606. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/prepend.hpp +0 -66
  1607. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/query.hpp +0 -311
  1608. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/random_access_file.hpp +0 -35
  1609. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/read.hpp +0 -1448
  1610. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/read_at.hpp +0 -778
  1611. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/read_until.hpp +0 -3124
  1612. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/readable_pipe.hpp +0 -35
  1613. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/recycling_allocator.hpp +0 -138
  1614. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/redirect_error.hpp +0 -64
  1615. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/registered_buffer.hpp +0 -344
  1616. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/require.hpp +0 -433
  1617. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/require_concept.hpp +0 -343
  1618. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/serial_port.hpp +0 -36
  1619. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/serial_port_base.hpp +0 -167
  1620. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/signal_set.hpp +0 -28
  1621. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/signal_set_base.hpp +0 -171
  1622. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/socket_base.hpp +0 -559
  1623. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/spawn.hpp +0 -872
  1624. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/context.hpp +0 -762
  1625. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/context_base.hpp +0 -209
  1626. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +0 -119
  1627. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/detail/engine.hpp +0 -169
  1628. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/detail/handshake_op.hpp +0 -67
  1629. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/detail/impl/engine.ipp +0 -377
  1630. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/detail/impl/openssl_init.ipp +0 -169
  1631. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/detail/io.hpp +0 -376
  1632. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/detail/openssl_init.hpp +0 -101
  1633. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/detail/openssl_types.hpp +0 -34
  1634. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/detail/password_callback.hpp +0 -66
  1635. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/detail/read_op.hpp +0 -72
  1636. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +0 -69
  1637. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/detail/stream_core.hpp +0 -217
  1638. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/detail/verify_callback.hpp +0 -62
  1639. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/detail/write_op.hpp +0 -76
  1640. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/error.hpp +0 -123
  1641. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/host_name_verification.hpp +0 -90
  1642. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/impl/context.hpp +0 -67
  1643. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/impl/context.ipp +0 -1319
  1644. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/impl/error.ipp +0 -124
  1645. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/impl/host_name_verification.ipp +0 -73
  1646. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/impl/rfc2818_verification.ipp +0 -164
  1647. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/impl/src.hpp +0 -29
  1648. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/rfc2818_verification.hpp +0 -98
  1649. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/stream.hpp +0 -1038
  1650. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/stream_base.hpp +0 -52
  1651. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/verify_context.hpp +0 -67
  1652. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl/verify_mode.hpp +0 -63
  1653. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ssl.hpp +0 -28
  1654. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/static_thread_pool.hpp +0 -31
  1655. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/steady_timer.hpp +0 -37
  1656. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/strand.hpp +0 -557
  1657. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/stream_file.hpp +0 -35
  1658. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/streambuf.hpp +0 -33
  1659. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/system_context.hpp +0 -90
  1660. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/system_error.hpp +0 -31
  1661. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/system_executor.hpp +0 -671
  1662. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/system_timer.hpp +0 -37
  1663. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/this_coro.hpp +0 -267
  1664. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/thread.hpp +0 -92
  1665. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/thread_pool.hpp +0 -963
  1666. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/time_traits.hpp +0 -86
  1667. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/traits/equality_comparable.hpp +0 -100
  1668. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/traits/execute_member.hpp +0 -104
  1669. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/traits/prefer_free.hpp +0 -104
  1670. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/traits/prefer_member.hpp +0 -104
  1671. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/traits/query_free.hpp +0 -104
  1672. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/traits/query_member.hpp +0 -104
  1673. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/traits/query_static_constexpr_member.hpp +0 -101
  1674. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/traits/require_concept_free.hpp +0 -104
  1675. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/traits/require_concept_member.hpp +0 -104
  1676. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/traits/require_free.hpp +0 -104
  1677. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/traits/require_member.hpp +0 -104
  1678. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/traits/static_query.hpp +0 -102
  1679. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/traits/static_require.hpp +0 -115
  1680. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/traits/static_require_concept.hpp +0 -116
  1681. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ts/buffer.hpp +0 -24
  1682. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ts/executor.hpp +0 -35
  1683. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ts/internet.hpp +0 -40
  1684. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ts/io_context.hpp +0 -20
  1685. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ts/net.hpp +0 -26
  1686. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ts/netfwd.hpp +0 -236
  1687. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ts/socket.hpp +0 -27
  1688. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/ts/timer.hpp +0 -26
  1689. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/unyield.hpp +0 -21
  1690. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/use_awaitable.hpp +0 -161
  1691. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/use_future.hpp +0 -159
  1692. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/uses_executor.hpp +0 -67
  1693. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/version.hpp +0 -23
  1694. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/wait_traits.hpp +0 -56
  1695. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/windows/basic_object_handle.hpp +0 -485
  1696. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +0 -455
  1697. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/windows/basic_random_access_handle.hpp +0 -567
  1698. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/windows/basic_stream_handle.hpp +0 -551
  1699. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/windows/object_handle.hpp +0 -38
  1700. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/windows/overlapped_handle.hpp +0 -39
  1701. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/windows/overlapped_ptr.hpp +0 -145
  1702. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/windows/random_access_handle.hpp +0 -37
  1703. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/windows/stream_handle.hpp +0 -37
  1704. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/writable_pipe.hpp +0 -35
  1705. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/write.hpp +0 -1414
  1706. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/write_at.hpp +0 -789
  1707. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio/yield.hpp +0 -23
  1708. data/ext/cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/include/asio.hpp +0 -199
  1709. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/CMakeLists.txt +0 -338
  1710. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/gtest-assertion-result.h +0 -237
  1711. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/gtest-death-test.h +0 -345
  1712. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/gtest-matchers.h +0 -923
  1713. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/gtest-message.h +0 -220
  1714. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/gtest-param-test.h +0 -546
  1715. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/gtest-printers.h +0 -1139
  1716. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/gtest-spi.h +0 -250
  1717. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/gtest-test-part.h +0 -192
  1718. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/gtest-typed-test.h +0 -331
  1719. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/gtest.h +0 -2318
  1720. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/gtest_pred_impl.h +0 -279
  1721. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/gtest_prod.h +0 -60
  1722. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/internal/custom/gtest-port.h +0 -37
  1723. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/internal/custom/gtest-printers.h +0 -42
  1724. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/internal/custom/gtest.h +0 -37
  1725. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/internal/gtest-death-test-internal.h +0 -307
  1726. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/internal/gtest-filepath.h +0 -227
  1727. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/internal/gtest-internal.h +0 -1559
  1728. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/internal/gtest-param-util.h +0 -1026
  1729. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/internal/gtest-port-arch.h +0 -118
  1730. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/internal/gtest-port.h +0 -2529
  1731. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/internal/gtest-string.h +0 -178
  1732. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/include/gtest/internal/gtest-type-util.h +0 -220
  1733. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/samples/prime_tables.h +0 -125
  1734. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/samples/sample1.cc +0 -66
  1735. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/samples/sample1.h +0 -41
  1736. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/samples/sample10_unittest.cc +0 -138
  1737. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/samples/sample1_unittest.cc +0 -148
  1738. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/samples/sample2.cc +0 -54
  1739. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/samples/sample2.h +0 -79
  1740. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/samples/sample2_unittest.cc +0 -107
  1741. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/samples/sample3-inl.h +0 -171
  1742. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/samples/sample3_unittest.cc +0 -146
  1743. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/samples/sample4.cc +0 -50
  1744. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/samples/sample4.h +0 -53
  1745. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/samples/sample4_unittest.cc +0 -53
  1746. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/samples/sample5_unittest.cc +0 -189
  1747. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/samples/sample6_unittest.cc +0 -214
  1748. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/samples/sample7_unittest.cc +0 -113
  1749. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/samples/sample8_unittest.cc +0 -154
  1750. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/samples/sample9_unittest.cc +0 -148
  1751. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/src/gtest-all.cc +0 -49
  1752. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/src/gtest-assertion-result.cc +0 -77
  1753. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/src/gtest-death-test.cc +0 -1585
  1754. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/src/gtest-filepath.cc +0 -412
  1755. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/src/gtest-internal-inl.h +0 -1218
  1756. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/src/gtest-matchers.cc +0 -98
  1757. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/src/gtest-port.cc +0 -1392
  1758. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/src/gtest-printers.cc +0 -555
  1759. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/src/gtest-test-part.cc +0 -106
  1760. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/src/gtest-typed-test.cc +0 -108
  1761. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/src/gtest.cc +0 -6919
  1762. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/src/gtest_main.cc +0 -65
  1763. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-break-on-failure-unittest_.cc +0 -83
  1764. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-catch-exceptions-test_.cc +0 -289
  1765. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-color-test_.cc +0 -60
  1766. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-death-test-test.cc +0 -1508
  1767. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-death-test_ex_test.cc +0 -91
  1768. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-env-var-test_.cc +0 -130
  1769. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-failfast-unittest_.cc +0 -166
  1770. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-filepath-test.cc +0 -671
  1771. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-filter-unittest_.cc +0 -106
  1772. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-global-environment-unittest_.cc +0 -58
  1773. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-list-tests-unittest_.cc +0 -143
  1774. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-listener-test.cc +0 -509
  1775. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-message-test.cc +0 -161
  1776. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-options-test.cc +0 -222
  1777. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-output-test_.cc +0 -1052
  1778. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-param-test-invalid-name1-test_.cc +0 -46
  1779. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-param-test-invalid-name2-test_.cc +0 -52
  1780. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-param-test-test.cc +0 -1173
  1781. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-param-test-test.h +0 -49
  1782. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-param-test2-test.cc +0 -58
  1783. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-port-test.cc +0 -1301
  1784. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-printers-test.cc +0 -1990
  1785. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-setuptestsuite-test_.cc +0 -44
  1786. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-shuffle-test_.cc +0 -99
  1787. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-test-part-test.cc +0 -220
  1788. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-throw-on-failure-test_.cc +0 -71
  1789. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/googletest-uninitialized-test_.cc +0 -39
  1790. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest-typed-test2_test.cc +0 -39
  1791. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest-typed-test_test.cc +0 -423
  1792. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest-typed-test_test.h +0 -57
  1793. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest-unittest-api_test.cc +0 -328
  1794. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_all_test.cc +0 -46
  1795. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_assert_by_exception_test.cc +0 -112
  1796. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_dirs_test.cc +0 -101
  1797. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_environment_test.cc +0 -179
  1798. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_help_test_.cc +0 -44
  1799. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_list_output_unittest_.cc +0 -77
  1800. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_main_unittest.cc +0 -42
  1801. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_no_test_unittest.cc +0 -54
  1802. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_pred_impl_unittest.cc +0 -2070
  1803. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_premature_exit_test.cc +0 -128
  1804. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_prod_test.cc +0 -56
  1805. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_repeat_test.cc +0 -222
  1806. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_skip_in_environment_setup_test.cc +0 -50
  1807. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_skip_test.cc +0 -51
  1808. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_sole_header_test.cc +0 -54
  1809. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_stress_test.cc +0 -245
  1810. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_test_macro_stack_footprint_test.cc +0 -89
  1811. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_testbridge_test_.cc +0 -42
  1812. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_throw_on_failure_ex_test.cc +0 -90
  1813. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_unittest.cc +0 -7767
  1814. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_xml_outfile1_test_.cc +0 -43
  1815. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_xml_outfile2_test_.cc +0 -77
  1816. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/gtest_xml_output_unittest_.cc +0 -197
  1817. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/production.cc +0 -35
  1818. data/ext/cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/googletest/test/production.h +0 -55
  1819. data/ext/cache/fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/CMakeLists.txt +0 -453
  1820. data/ext/cache/fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/ChangeLog.md +0 -5533
  1821. data/ext/cache/fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/README.md +0 -490
  1822. data/ext/cache/fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/src/fmt.cc +0 -108
  1823. data/ext/cache/fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/src/os.cc +0 -402
  1824. data/ext/cache/llhttp/b74a6759ffeff2e9b72f62f790afbc73362a526b/llhttp/CMakeLists.txt +0 -117
  1825. data/ext/cache/llhttp/b74a6759ffeff2e9b72f62f790afbc73362a526b/llhttp/include/llhttp.h +0 -903
  1826. data/ext/cache/llhttp/b74a6759ffeff2e9b72f62f790afbc73362a526b/llhttp/src/llhttp.c +0 -10149
  1827. data/ext/cache/snappy/76d5cfe9eb57e13784ae53647f505edbe9341bdf/snappy/CMakeLists.txt +0 -420
  1828. data/ext/cache/snappy/76d5cfe9eb57e13784ae53647f505edbe9341bdf/snappy/cmake/config.h.in +0 -66
  1829. data/ext/cache/snappy/76d5cfe9eb57e13784ae53647f505edbe9341bdf/snappy/snappy-internal.h +0 -395
  1830. data/ext/cache/snappy/76d5cfe9eb57e13784ae53647f505edbe9341bdf/snappy/snappy-stubs-internal.h +0 -525
  1831. data/ext/cache/snappy/76d5cfe9eb57e13784ae53647f505edbe9341bdf/snappy/snappy.cc +0 -2427
  1832. data/ext/cache/snappy/76d5cfe9eb57e13784ae53647f505edbe9341bdf/snappy/snappy.h +0 -222
  1833. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/CMakeLists.txt +0 -359
  1834. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/async_logger-inl.h +0 -84
  1835. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/common.h +0 -411
  1836. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/details/circular_q.h +0 -113
  1837. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/details/file_helper-inl.h +0 -152
  1838. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/details/os-inl.h +0 -585
  1839. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/details/periodic_worker.h +0 -57
  1840. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/details/registry-inl.h +0 -265
  1841. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/details/registry.h +0 -122
  1842. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/details/thread_pool-inl.h +0 -127
  1843. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/details/thread_pool.h +0 -117
  1844. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/fmt/bundled/args.h +0 -234
  1845. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/fmt/bundled/chrono.h +0 -2069
  1846. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/fmt/bundled/color.h +0 -651
  1847. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/fmt/bundled/compile.h +0 -611
  1848. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/fmt/bundled/core.h +0 -3323
  1849. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/fmt/bundled/format-inl.h +0 -1723
  1850. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/fmt/bundled/format.h +0 -4217
  1851. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/fmt/bundled/os.h +0 -478
  1852. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/fmt/bundled/ostream.h +0 -237
  1853. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/fmt/bundled/printf.h +0 -640
  1854. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/fmt/bundled/ranges.h +0 -722
  1855. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/fmt/bundled/std.h +0 -171
  1856. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/fmt/bundled/xchar.h +0 -229
  1857. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/fmt/fmt.h +0 -34
  1858. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/pattern_formatter-inl.h +0 -1268
  1859. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/sinks/qt_sinks.h +0 -304
  1860. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/stopwatch.h +0 -62
  1861. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/include/spdlog/version.h +0 -11
  1862. data/ext/cache/spdlog/25435891d500fa18cdfc40bd923333e006159907/spdlog/src/bundled_fmtlib_format.cpp +0 -49
  1863. data/ext/couchbase/core/logger/CMakeLists.txt +0 -10
  1864. data/ext/couchbase/core/meta/CMakeLists.txt +0 -27
  1865. data/ext/couchbase/core/metrics/CMakeLists.txt +0 -14
  1866. data/ext/couchbase/core/tracing/CMakeLists.txt +0 -12
  1867. /data/ext/cache/asio/{41f31469d0dd420500b334dc8c2fd3ffe7320d8e → b710bc0ca14b231d20e983b02d27485125c7860e}/asio/asio/include/asio/detail/limits.hpp +0 -0
  1868. /data/ext/cache/asio/{41f31469d0dd420500b334dc8c2fd3ffe7320d8e → b710bc0ca14b231d20e983b02d27485125c7860e}/asio/asio/include/asio/experimental/co_spawn.hpp +0 -0
  1869. /data/ext/cache/asio/{41f31469d0dd420500b334dc8c2fd3ffe7320d8e → b710bc0ca14b231d20e983b02d27485125c7860e}/asio/asio/include/asio/experimental/coro.hpp +0 -0
  1870. /data/ext/cache/asio/{41f31469d0dd420500b334dc8c2fd3ffe7320d8e → b710bc0ca14b231d20e983b02d27485125c7860e}/asio/asio/include/asio/experimental/coro_traits.hpp +0 -0
  1871. /data/ext/cache/asio/{41f31469d0dd420500b334dc8c2fd3ffe7320d8e → b710bc0ca14b231d20e983b02d27485125c7860e}/asio/asio/include/asio/experimental/detail/coro_completion_handler.hpp +0 -0
  1872. /data/ext/cache/asio/{41f31469d0dd420500b334dc8c2fd3ffe7320d8e → b710bc0ca14b231d20e983b02d27485125c7860e}/asio/asio/include/asio/experimental/impl/coro.hpp +0 -0
  1873. /data/ext/cache/asio/{41f31469d0dd420500b334dc8c2fd3ffe7320d8e → b710bc0ca14b231d20e983b02d27485125c7860e}/asio/asio/include/asio/experimental/impl/promise.hpp +0 -0
  1874. /data/ext/cache/asio/{41f31469d0dd420500b334dc8c2fd3ffe7320d8e → b710bc0ca14b231d20e983b02d27485125c7860e}/asio/asio/include/asio/experimental/impl/use_coro.hpp +0 -0
  1875. /data/ext/cache/asio/{41f31469d0dd420500b334dc8c2fd3ffe7320d8e → b710bc0ca14b231d20e983b02d27485125c7860e}/asio/asio/include/asio/experimental/impl/use_promise.hpp +0 -0
  1876. /data/ext/cache/asio/{41f31469d0dd420500b334dc8c2fd3ffe7320d8e → b710bc0ca14b231d20e983b02d27485125c7860e}/asio/asio/include/asio/experimental/use_promise.hpp +0 -0
  1877. /data/ext/cache/fmt/{d3c862243fcf1c41b4c09903f35479bd42f135b7 → 141a17a028e6c29914e109691389f6cf87f9cfe3}/fmt/LICENSE +0 -0
  1878. /data/ext/cache/fmt/{d3c862243fcf1c41b4c09903f35479bd42f135b7 → 141a17a028e6c29914e109691389f6cf87f9cfe3}/fmt/src/format.cc +0 -0
  1879. /data/ext/cache/fmt/{d3c862243fcf1c41b4c09903f35479bd42f135b7 → 141a17a028e6c29914e109691389f6cf87f9cfe3}/fmt/support/cmake/FindSetEnv.cmake +0 -0
  1880. /data/ext/cache/fmt/{d3c862243fcf1c41b4c09903f35479bd42f135b7 → 141a17a028e6c29914e109691389f6cf87f9cfe3}/fmt/support/cmake/JoinPaths.cmake +0 -0
  1881. /data/ext/cache/fmt/{d3c862243fcf1c41b4c09903f35479bd42f135b7 → 141a17a028e6c29914e109691389f6cf87f9cfe3}/fmt/support/cmake/fmt-config.cmake.in +0 -0
  1882. /data/ext/cache/fmt/{d3c862243fcf1c41b4c09903f35479bd42f135b7 → 141a17a028e6c29914e109691389f6cf87f9cfe3}/fmt/support/cmake/fmt.pc.in +0 -0
  1883. /data/ext/cache/llhttp/{b74a6759ffeff2e9b72f62f790afbc73362a526b → c67596e14f24b689a867a26fa36e02bdba733b9b}/llhttp/LICENSE-MIT +0 -0
  1884. /data/ext/cache/llhttp/{b74a6759ffeff2e9b72f62f790afbc73362a526b → c67596e14f24b689a867a26fa36e02bdba733b9b}/llhttp/libllhttp.pc.in +0 -0
  1885. /data/ext/cache/llhttp/{b74a6759ffeff2e9b72f62f790afbc73362a526b → c67596e14f24b689a867a26fa36e02bdba733b9b}/llhttp/src/api.c +0 -0
  1886. /data/ext/cache/llhttp/{b74a6759ffeff2e9b72f62f790afbc73362a526b → c67596e14f24b689a867a26fa36e02bdba733b9b}/llhttp/src/http.c +0 -0
  1887. /data/ext/cache/snappy/{76d5cfe9eb57e13784ae53647f505edbe9341bdf → 585305c8dbb8f762f2c2e17f937f1cf3ac6cbc9c}/snappy/COPYING +0 -0
  1888. /data/ext/cache/snappy/{76d5cfe9eb57e13784ae53647f505edbe9341bdf → 585305c8dbb8f762f2c2e17f937f1cf3ac6cbc9c}/snappy/cmake/SnappyConfig.cmake.in +0 -0
  1889. /data/ext/cache/snappy/{76d5cfe9eb57e13784ae53647f505edbe9341bdf → 585305c8dbb8f762f2c2e17f937f1cf3ac6cbc9c}/snappy/snappy-c.cc +0 -0
  1890. /data/ext/cache/snappy/{76d5cfe9eb57e13784ae53647f505edbe9341bdf → 585305c8dbb8f762f2c2e17f937f1cf3ac6cbc9c}/snappy/snappy-c.h +0 -0
  1891. /data/ext/cache/snappy/{76d5cfe9eb57e13784ae53647f505edbe9341bdf → 585305c8dbb8f762f2c2e17f937f1cf3ac6cbc9c}/snappy/snappy-sinksource.cc +0 -0
  1892. /data/ext/cache/snappy/{76d5cfe9eb57e13784ae53647f505edbe9341bdf → 585305c8dbb8f762f2c2e17f937f1cf3ac6cbc9c}/snappy/snappy-sinksource.h +0 -0
  1893. /data/ext/cache/snappy/{76d5cfe9eb57e13784ae53647f505edbe9341bdf → 585305c8dbb8f762f2c2e17f937f1cf3ac6cbc9c}/snappy/snappy-stubs-internal.cc +0 -0
  1894. /data/ext/cache/snappy/{76d5cfe9eb57e13784ae53647f505edbe9341bdf → 585305c8dbb8f762f2c2e17f937f1cf3ac6cbc9c}/snappy/snappy-stubs-public.h.in +0 -0
  1895. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/LICENSE +0 -0
  1896. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/cmake/ide.cmake +0 -0
  1897. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/cmake/pch.h.in +0 -0
  1898. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/cmake/spdlog.pc.in +0 -0
  1899. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/cmake/spdlogCPack.cmake +0 -0
  1900. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/cmake/spdlogConfig.cmake.in +0 -0
  1901. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/cmake/utils.cmake +0 -0
  1902. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/cmake/version.rc.in +0 -0
  1903. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/async.h +0 -0
  1904. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/async_logger.h +0 -0
  1905. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/cfg/argv.h +0 -0
  1906. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/cfg/env.h +0 -0
  1907. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/cfg/helpers-inl.h +0 -0
  1908. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/cfg/helpers.h +0 -0
  1909. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/common-inl.h +0 -0
  1910. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/backtracer-inl.h +0 -0
  1911. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/backtracer.h +0 -0
  1912. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/console_globals.h +0 -0
  1913. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/file_helper.h +0 -0
  1914. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/fmt_helper.h +0 -0
  1915. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/log_msg-inl.h +0 -0
  1916. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/log_msg.h +0 -0
  1917. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/log_msg_buffer-inl.h +0 -0
  1918. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/log_msg_buffer.h +0 -0
  1919. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/mpmc_blocking_q.h +0 -0
  1920. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/null_mutex.h +0 -0
  1921. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/os.h +0 -0
  1922. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/periodic_worker-inl.h +0 -0
  1923. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/synchronous_factory.h +0 -0
  1924. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/tcp_client-windows.h +0 -0
  1925. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/tcp_client.h +0 -0
  1926. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/udp_client-windows.h +0 -0
  1927. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/udp_client.h +0 -0
  1928. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/details/windows_include.h +0 -0
  1929. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/fmt/bin_to_hex.h +0 -0
  1930. /data/ext/cache/{fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/include/fmt → spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled}/args.h +0 -0
  1931. /data/ext/cache/{fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/include/fmt → spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled}/chrono.h +0 -0
  1932. /data/ext/cache/{fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/include/fmt → spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled}/color.h +0 -0
  1933. /data/ext/cache/{fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/include/fmt → spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled}/compile.h +0 -0
  1934. /data/ext/cache/{fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/include/fmt → spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled}/core.h +0 -0
  1935. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/fmt/bundled/fmt.license.rst +0 -0
  1936. /data/ext/cache/{fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/include/fmt → spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled}/format-inl.h +0 -0
  1937. /data/ext/cache/{fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/include/fmt → spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled}/format.h +0 -0
  1938. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/fmt/bundled/locale.h +0 -0
  1939. /data/ext/cache/{fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/include/fmt → spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled}/os.h +0 -0
  1940. /data/ext/cache/{fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/include/fmt → spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled}/ostream.h +0 -0
  1941. /data/ext/cache/{fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/include/fmt → spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled}/printf.h +0 -0
  1942. /data/ext/cache/{fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/include/fmt → spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled}/ranges.h +0 -0
  1943. /data/ext/cache/{fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/include/fmt → spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled}/std.h +0 -0
  1944. /data/ext/cache/{fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/include/fmt → spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled}/xchar.h +0 -0
  1945. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/fmt/chrono.h +0 -0
  1946. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/fmt/compile.h +0 -0
  1947. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/fmt/ostr.h +0 -0
  1948. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/fmt/ranges.h +0 -0
  1949. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/fmt/std.h +0 -0
  1950. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/fmt/xchar.h +0 -0
  1951. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/formatter.h +0 -0
  1952. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/fwd.h +0 -0
  1953. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/logger-inl.h +0 -0
  1954. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/logger.h +0 -0
  1955. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/pattern_formatter.h +0 -0
  1956. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/android_sink.h +0 -0
  1957. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h +0 -0
  1958. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/ansicolor_sink.h +0 -0
  1959. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/base_sink-inl.h +0 -0
  1960. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/base_sink.h +0 -0
  1961. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/basic_file_sink-inl.h +0 -0
  1962. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/basic_file_sink.h +0 -0
  1963. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/callback_sink.h +0 -0
  1964. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/daily_file_sink.h +0 -0
  1965. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/dist_sink.h +0 -0
  1966. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/dup_filter_sink.h +0 -0
  1967. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/hourly_file_sink.h +0 -0
  1968. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/kafka_sink.h +0 -0
  1969. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/mongo_sink.h +0 -0
  1970. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/msvc_sink.h +0 -0
  1971. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/null_sink.h +0 -0
  1972. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/ostream_sink.h +0 -0
  1973. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/ringbuffer_sink.h +0 -0
  1974. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h +0 -0
  1975. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/rotating_file_sink.h +0 -0
  1976. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/sink-inl.h +0 -0
  1977. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/sink.h +0 -0
  1978. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h +0 -0
  1979. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/stdout_color_sinks.h +0 -0
  1980. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +0 -0
  1981. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/stdout_sinks.h +0 -0
  1982. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/syslog_sink.h +0 -0
  1983. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/systemd_sink.h +0 -0
  1984. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/tcp_sink.h +0 -0
  1985. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/udp_sink.h +0 -0
  1986. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/win_eventlog_sink.h +0 -0
  1987. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +0 -0
  1988. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/sinks/wincolor_sink.h +0 -0
  1989. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/spdlog-inl.h +0 -0
  1990. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/spdlog.h +0 -0
  1991. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/include/spdlog/tweakme.h +0 -0
  1992. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/src/async.cpp +0 -0
  1993. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/src/cfg.cpp +0 -0
  1994. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/src/color_sinks.cpp +0 -0
  1995. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/src/file_sinks.cpp +0 -0
  1996. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/src/spdlog.cpp +0 -0
  1997. /data/ext/cache/spdlog/{25435891d500fa18cdfc40bd923333e006159907 → 19df5d3d8e5526c255d27414e09568671ef87483}/spdlog/src/stdout_sinks.cpp +0 -0
  1998. /data/ext/couchbase/cmake/{couchbase-cxx-client.pc.in → couchbase_cxx_client.pc.in} +0 -0
@@ -1,2427 +0,0 @@
1
- // Copyright 2005 Google Inc. All Rights Reserved.
2
- //
3
- // Redistribution and use in source and binary forms, with or without
4
- // modification, are permitted provided that the following conditions are
5
- // met:
6
- //
7
- // * Redistributions of source code must retain the above copyright
8
- // notice, this list of conditions and the following disclaimer.
9
- // * Redistributions in binary form must reproduce the above
10
- // copyright notice, this list of conditions and the following disclaimer
11
- // in the documentation and/or other materials provided with the
12
- // distribution.
13
- // * Neither the name of Google Inc. nor the names of its
14
- // contributors may be used to endorse or promote products derived from
15
- // this software without specific prior written permission.
16
- //
17
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18
- // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19
- // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20
- // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21
- // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22
- // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23
- // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24
- // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25
- // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
-
29
- #include "snappy-internal.h"
30
- #include "snappy-sinksource.h"
31
- #include "snappy.h"
32
- #if !defined(SNAPPY_HAVE_BMI2)
33
- // __BMI2__ is defined by GCC and Clang. Visual Studio doesn't target BMI2
34
- // specifically, but it does define __AVX2__ when AVX2 support is available.
35
- // Fortunately, AVX2 was introduced in Haswell, just like BMI2.
36
- //
37
- // BMI2 is not defined as a subset of AVX2 (unlike SSSE3 and AVX above). So,
38
- // GCC and Clang can build code with AVX2 enabled but BMI2 disabled, in which
39
- // case issuing BMI2 instructions results in a compiler error.
40
- #if defined(__BMI2__) || (defined(_MSC_VER) && defined(__AVX2__))
41
- #define SNAPPY_HAVE_BMI2 1
42
- #else
43
- #define SNAPPY_HAVE_BMI2 0
44
- #endif
45
- #endif // !defined(SNAPPY_HAVE_BMI2)
46
-
47
- #if !defined(SNAPPY_HAVE_X86_CRC32)
48
- #if defined(__SSE4_2__)
49
- #define SNAPPY_HAVE_X86_CRC32 1
50
- #else
51
- #define SNAPPY_HAVE_X86_CRC32 0
52
- #endif
53
- #endif // !defined(SNAPPY_HAVE_X86_CRC32)
54
-
55
- #if !defined(SNAPPY_HAVE_NEON_CRC32)
56
- #if SNAPPY_HAVE_NEON && defined(__ARM_FEATURE_CRC32)
57
- #define SNAPPY_HAVE_NEON_CRC32 1
58
- #else
59
- #define SNAPPY_HAVE_NEON_CRC32 0
60
- #endif
61
- #endif // !defined(SNAPPY_HAVE_NEON_CRC32)
62
-
63
- #if SNAPPY_HAVE_BMI2 || SNAPPY_HAVE_X86_CRC32
64
- // Please do not replace with <x86intrin.h>. or with headers that assume more
65
- // advanced SSE versions without checking with all the OWNERS.
66
- #include <immintrin.h>
67
- #elif SNAPPY_HAVE_NEON_CRC32
68
- #include <arm_acle.h>
69
- #endif
70
-
71
- #if defined(__GNUC__)
72
- #define SNAPPY_PREFETCH(ptr) __builtin_prefetch(ptr, 0, 3)
73
- #else
74
- #define SNAPPY_PREFETCH(ptr) (void)(ptr)
75
- #endif
76
-
77
- #include <algorithm>
78
- #include <array>
79
- #include <cstddef>
80
- #include <cstdint>
81
- #include <cstdio>
82
- #include <cstring>
83
- #include <string>
84
- #include <utility>
85
- #include <vector>
86
-
87
- namespace snappy {
88
-
89
- namespace {
90
-
91
- // The amount of slop bytes writers are using for unconditional copies.
92
- constexpr int kSlopBytes = 64;
93
-
94
- using internal::char_table;
95
- using internal::COPY_1_BYTE_OFFSET;
96
- using internal::COPY_2_BYTE_OFFSET;
97
- using internal::COPY_4_BYTE_OFFSET;
98
- using internal::kMaximumTagLength;
99
- using internal::LITERAL;
100
- #if SNAPPY_HAVE_VECTOR_BYTE_SHUFFLE
101
- using internal::V128;
102
- using internal::V128_Load;
103
- using internal::V128_LoadU;
104
- using internal::V128_Shuffle;
105
- using internal::V128_StoreU;
106
- using internal::V128_DupChar;
107
- #endif
108
-
109
- // We translate the information encoded in a tag through a lookup table to a
110
- // format that requires fewer instructions to decode. Effectively we store
111
- // the length minus the tag part of the offset. The lowest significant byte
112
- // thus stores the length. While total length - offset is given by
113
- // entry - ExtractOffset(type). The nice thing is that the subtraction
114
- // immediately sets the flags for the necessary check that offset >= length.
115
- // This folds the cmp with sub. We engineer the long literals and copy-4 to
116
- // always fail this check, so their presence doesn't affect the fast path.
117
- // To prevent literals from triggering the guard against offset < length (offset
118
- // does not apply to literals) the table is giving them a spurious offset of
119
- // 256.
120
- inline constexpr int16_t MakeEntry(int16_t len, int16_t offset) {
121
- return len - (offset << 8);
122
- }
123
-
124
- inline constexpr int16_t LengthMinusOffset(int data, int type) {
125
- return type == 3 ? 0xFF // copy-4 (or type == 3)
126
- : type == 2 ? MakeEntry(data + 1, 0) // copy-2
127
- : type == 1 ? MakeEntry((data & 7) + 4, data >> 3) // copy-1
128
- : data < 60 ? MakeEntry(data + 1, 1) // note spurious offset.
129
- : 0xFF; // long literal
130
- }
131
-
132
- inline constexpr int16_t LengthMinusOffset(uint8_t tag) {
133
- return LengthMinusOffset(tag >> 2, tag & 3);
134
- }
135
-
136
- template <size_t... Ints>
137
- struct index_sequence {};
138
-
139
- template <std::size_t N, size_t... Is>
140
- struct make_index_sequence : make_index_sequence<N - 1, N - 1, Is...> {};
141
-
142
- template <size_t... Is>
143
- struct make_index_sequence<0, Is...> : index_sequence<Is...> {};
144
-
145
- template <size_t... seq>
146
- constexpr std::array<int16_t, 256> MakeTable(index_sequence<seq...>) {
147
- return std::array<int16_t, 256>{LengthMinusOffset(seq)...};
148
- }
149
-
150
- alignas(64) const std::array<int16_t, 256> kLengthMinusOffset =
151
- MakeTable(make_index_sequence<256>{});
152
-
153
- // Given a table of uint16_t whose size is mask / 2 + 1, return a pointer to the
154
- // relevant entry, if any, for the given bytes. Any hash function will do,
155
- // but a good hash function reduces the number of collisions and thus yields
156
- // better compression for compressible input.
157
- //
158
- // REQUIRES: mask is 2 * (table_size - 1), and table_size is a power of two.
159
- inline uint16_t* TableEntry(uint16_t* table, uint32_t bytes, uint32_t mask) {
160
- // Our choice is quicker-and-dirtier than the typical hash function;
161
- // empirically, that seems beneficial. The upper bits of kMagic * bytes are a
162
- // higher-quality hash than the lower bits, so when using kMagic * bytes we
163
- // also shift right to get a higher-quality end result. There's no similar
164
- // issue with a CRC because all of the output bits of a CRC are equally good
165
- // "hashes." So, a CPU instruction for CRC, if available, tends to be a good
166
- // choice.
167
- #if SNAPPY_HAVE_NEON_CRC32
168
- // We use mask as the second arg to the CRC function, as it's about to
169
- // be used anyway; it'd be equally correct to use 0 or some constant.
170
- // Mathematically, _mm_crc32_u32 (or similar) is a function of the
171
- // xor of its arguments.
172
- const uint32_t hash = __crc32cw(bytes, mask);
173
- #elif SNAPPY_HAVE_X86_CRC32
174
- const uint32_t hash = _mm_crc32_u32(bytes, mask);
175
- #else
176
- constexpr uint32_t kMagic = 0x1e35a7bd;
177
- const uint32_t hash = (kMagic * bytes) >> (31 - kMaxHashTableBits);
178
- #endif
179
- return reinterpret_cast<uint16_t*>(reinterpret_cast<uintptr_t>(table) +
180
- (hash & mask));
181
- }
182
-
183
- } // namespace
184
-
185
- size_t MaxCompressedLength(size_t source_bytes) {
186
- // Compressed data can be defined as:
187
- // compressed := item* literal*
188
- // item := literal* copy
189
- //
190
- // The trailing literal sequence has a space blowup of at most 62/60
191
- // since a literal of length 60 needs one tag byte + one extra byte
192
- // for length information.
193
- //
194
- // Item blowup is trickier to measure. Suppose the "copy" op copies
195
- // 4 bytes of data. Because of a special check in the encoding code,
196
- // we produce a 4-byte copy only if the offset is < 65536. Therefore
197
- // the copy op takes 3 bytes to encode, and this type of item leads
198
- // to at most the 62/60 blowup for representing literals.
199
- //
200
- // Suppose the "copy" op copies 5 bytes of data. If the offset is big
201
- // enough, it will take 5 bytes to encode the copy op. Therefore the
202
- // worst case here is a one-byte literal followed by a five-byte copy.
203
- // I.e., 6 bytes of input turn into 7 bytes of "compressed" data.
204
- //
205
- // This last factor dominates the blowup, so the final estimate is:
206
- return 32 + source_bytes + source_bytes / 6;
207
- }
208
-
209
- namespace {
210
-
211
- void UnalignedCopy64(const void* src, void* dst) {
212
- char tmp[8];
213
- std::memcpy(tmp, src, 8);
214
- std::memcpy(dst, tmp, 8);
215
- }
216
-
217
- void UnalignedCopy128(const void* src, void* dst) {
218
- // std::memcpy() gets vectorized when the appropriate compiler options are
219
- // used. For example, x86 compilers targeting SSE2+ will optimize to an SSE2
220
- // load and store.
221
- char tmp[16];
222
- std::memcpy(tmp, src, 16);
223
- std::memcpy(dst, tmp, 16);
224
- }
225
-
226
- template <bool use_16bytes_chunk>
227
- inline void ConditionalUnalignedCopy128(const char* src, char* dst) {
228
- if (use_16bytes_chunk) {
229
- UnalignedCopy128(src, dst);
230
- } else {
231
- UnalignedCopy64(src, dst);
232
- UnalignedCopy64(src + 8, dst + 8);
233
- }
234
- }
235
-
236
- // Copy [src, src+(op_limit-op)) to [op, (op_limit-op)) a byte at a time. Used
237
- // for handling COPY operations where the input and output regions may overlap.
238
- // For example, suppose:
239
- // src == "ab"
240
- // op == src + 2
241
- // op_limit == op + 20
242
- // After IncrementalCopySlow(src, op, op_limit), the result will have eleven
243
- // copies of "ab"
244
- // ababababababababababab
245
- // Note that this does not match the semantics of either std::memcpy() or
246
- // std::memmove().
247
- inline char* IncrementalCopySlow(const char* src, char* op,
248
- char* const op_limit) {
249
- // TODO: Remove pragma when LLVM is aware this
250
- // function is only called in cold regions and when cold regions don't get
251
- // vectorized or unrolled.
252
- #ifdef __clang__
253
- #pragma clang loop unroll(disable)
254
- #endif
255
- while (op < op_limit) {
256
- *op++ = *src++;
257
- }
258
- return op_limit;
259
- }
260
-
261
- #if SNAPPY_HAVE_VECTOR_BYTE_SHUFFLE
262
-
263
- // Computes the bytes for shuffle control mask (please read comments on
264
- // 'pattern_generation_masks' as well) for the given index_offset and
265
- // pattern_size. For example, when the 'offset' is 6, it will generate a
266
- // repeating pattern of size 6. So, the first 16 byte indexes will correspond to
267
- // the pattern-bytes {0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3} and the
268
- // next 16 byte indexes will correspond to the pattern-bytes {4, 5, 0, 1, 2, 3,
269
- // 4, 5, 0, 1, 2, 3, 4, 5, 0, 1}. These byte index sequences are generated by
270
- // calling MakePatternMaskBytes(0, 6, index_sequence<16>()) and
271
- // MakePatternMaskBytes(16, 6, index_sequence<16>()) respectively.
272
- template <size_t... indexes>
273
- inline constexpr std::array<char, sizeof...(indexes)> MakePatternMaskBytes(
274
- int index_offset, int pattern_size, index_sequence<indexes...>) {
275
- return {static_cast<char>((index_offset + indexes) % pattern_size)...};
276
- }
277
-
278
- // Computes the shuffle control mask bytes array for given pattern-sizes and
279
- // returns an array.
280
- template <size_t... pattern_sizes_minus_one>
281
- inline constexpr std::array<std::array<char, sizeof(V128)>,
282
- sizeof...(pattern_sizes_minus_one)>
283
- MakePatternMaskBytesTable(int index_offset,
284
- index_sequence<pattern_sizes_minus_one...>) {
285
- return {
286
- MakePatternMaskBytes(index_offset, pattern_sizes_minus_one + 1,
287
- make_index_sequence</*indexes=*/sizeof(V128)>())...};
288
- }
289
-
290
- // This is an array of shuffle control masks that can be used as the source
291
- // operand for PSHUFB to permute the contents of the destination XMM register
292
- // into a repeating byte pattern.
293
- alignas(16) constexpr std::array<std::array<char, sizeof(V128)>,
294
- 16> pattern_generation_masks =
295
- MakePatternMaskBytesTable(
296
- /*index_offset=*/0,
297
- /*pattern_sizes_minus_one=*/make_index_sequence<16>());
298
-
299
- // Similar to 'pattern_generation_masks', this table is used to "rotate" the
300
- // pattern so that we can copy the *next 16 bytes* consistent with the pattern.
301
- // Basically, pattern_reshuffle_masks is a continuation of
302
- // pattern_generation_masks. It follows that, pattern_reshuffle_masks is same as
303
- // pattern_generation_masks for offsets 1, 2, 4, 8 and 16.
304
- alignas(16) constexpr std::array<std::array<char, sizeof(V128)>,
305
- 16> pattern_reshuffle_masks =
306
- MakePatternMaskBytesTable(
307
- /*index_offset=*/16,
308
- /*pattern_sizes_minus_one=*/make_index_sequence<16>());
309
-
310
- SNAPPY_ATTRIBUTE_ALWAYS_INLINE
311
- static inline V128 LoadPattern(const char* src, const size_t pattern_size) {
312
- V128 generation_mask = V128_Load(reinterpret_cast<const V128*>(
313
- pattern_generation_masks[pattern_size - 1].data()));
314
- // Uninitialized bytes are masked out by the shuffle mask.
315
- // TODO: remove annotation and macro defs once MSan is fixed.
316
- SNAPPY_ANNOTATE_MEMORY_IS_INITIALIZED(src + pattern_size, 16 - pattern_size);
317
- return V128_Shuffle(V128_LoadU(reinterpret_cast<const V128*>(src)),
318
- generation_mask);
319
- }
320
-
321
- SNAPPY_ATTRIBUTE_ALWAYS_INLINE
322
- static inline std::pair<V128 /* pattern */, V128 /* reshuffle_mask */>
323
- LoadPatternAndReshuffleMask(const char* src, const size_t pattern_size) {
324
- V128 pattern = LoadPattern(src, pattern_size);
325
-
326
- // This mask will generate the next 16 bytes in-place. Doing so enables us to
327
- // write data by at most 4 V128_StoreU.
328
- //
329
- // For example, suppose pattern is: abcdefabcdefabcd
330
- // Shuffling with this mask will generate: efabcdefabcdefab
331
- // Shuffling again will generate: cdefabcdefabcdef
332
- V128 reshuffle_mask = V128_Load(reinterpret_cast<const V128*>(
333
- pattern_reshuffle_masks[pattern_size - 1].data()));
334
- return {pattern, reshuffle_mask};
335
- }
336
-
337
- #endif // SNAPPY_HAVE_VECTOR_BYTE_SHUFFLE
338
-
339
- // Fallback for when we need to copy while extending the pattern, for example
340
- // copying 10 bytes from 3 positions back abc -> abcabcabcabca.
341
- //
342
- // REQUIRES: [dst - offset, dst + 64) is a valid address range.
343
- SNAPPY_ATTRIBUTE_ALWAYS_INLINE
344
- static inline bool Copy64BytesWithPatternExtension(char* dst, size_t offset) {
345
- #if SNAPPY_HAVE_VECTOR_BYTE_SHUFFLE
346
- if (SNAPPY_PREDICT_TRUE(offset <= 16)) {
347
- switch (offset) {
348
- case 0:
349
- return false;
350
- case 1: {
351
- // TODO: Ideally we should memset, move back once the
352
- // codegen issues are fixed.
353
- V128 pattern = V128_DupChar(dst[-1]);
354
- for (int i = 0; i < 4; i++) {
355
- V128_StoreU(reinterpret_cast<V128*>(dst + 16 * i), pattern);
356
- }
357
- return true;
358
- }
359
- case 2:
360
- case 4:
361
- case 8:
362
- case 16: {
363
- V128 pattern = LoadPattern(dst - offset, offset);
364
- for (int i = 0; i < 4; i++) {
365
- V128_StoreU(reinterpret_cast<V128*>(dst + 16 * i), pattern);
366
- }
367
- return true;
368
- }
369
- default: {
370
- auto pattern_and_reshuffle_mask =
371
- LoadPatternAndReshuffleMask(dst - offset, offset);
372
- V128 pattern = pattern_and_reshuffle_mask.first;
373
- V128 reshuffle_mask = pattern_and_reshuffle_mask.second;
374
- for (int i = 0; i < 4; i++) {
375
- V128_StoreU(reinterpret_cast<V128*>(dst + 16 * i), pattern);
376
- pattern = V128_Shuffle(pattern, reshuffle_mask);
377
- }
378
- return true;
379
- }
380
- }
381
- }
382
- #else
383
- if (SNAPPY_PREDICT_TRUE(offset < 16)) {
384
- if (SNAPPY_PREDICT_FALSE(offset == 0)) return false;
385
- // Extend the pattern to the first 16 bytes.
386
- // The simpler formulation of `dst[i - offset]` induces undefined behavior.
387
- for (int i = 0; i < 16; i++) dst[i] = (dst - offset)[i];
388
- // Find a multiple of pattern >= 16.
389
- static std::array<uint8_t, 16> pattern_sizes = []() {
390
- std::array<uint8_t, 16> res;
391
- for (int i = 1; i < 16; i++) res[i] = (16 / i + 1) * i;
392
- return res;
393
- }();
394
- offset = pattern_sizes[offset];
395
- for (int i = 1; i < 4; i++) {
396
- std::memcpy(dst + i * 16, dst + i * 16 - offset, 16);
397
- }
398
- return true;
399
- }
400
- #endif // SNAPPY_HAVE_VECTOR_BYTE_SHUFFLE
401
-
402
- // Very rare.
403
- for (int i = 0; i < 4; i++) {
404
- std::memcpy(dst + i * 16, dst + i * 16 - offset, 16);
405
- }
406
- return true;
407
- }
408
-
409
- // Copy [src, src+(op_limit-op)) to [op, op_limit) but faster than
410
- // IncrementalCopySlow. buf_limit is the address past the end of the writable
411
- // region of the buffer.
412
- inline char* IncrementalCopy(const char* src, char* op, char* const op_limit,
413
- char* const buf_limit) {
414
- #if SNAPPY_HAVE_VECTOR_BYTE_SHUFFLE
415
- constexpr int big_pattern_size_lower_bound = 16;
416
- #else
417
- constexpr int big_pattern_size_lower_bound = 8;
418
- #endif
419
-
420
- // Terminology:
421
- //
422
- // slop = buf_limit - op
423
- // pat = op - src
424
- // len = op_limit - op
425
- assert(src < op);
426
- assert(op < op_limit);
427
- assert(op_limit <= buf_limit);
428
- // NOTE: The copy tags use 3 or 6 bits to store the copy length, so len <= 64.
429
- assert(op_limit - op <= 64);
430
- // NOTE: In practice the compressor always emits len >= 4, so it is ok to
431
- // assume that to optimize this function, but this is not guaranteed by the
432
- // compression format, so we have to also handle len < 4 in case the input
433
- // does not satisfy these conditions.
434
-
435
- size_t pattern_size = op - src;
436
- // The cases are split into different branches to allow the branch predictor,
437
- // FDO, and static prediction hints to work better. For each input we list the
438
- // ratio of invocations that match each condition.
439
- //
440
- // input slop < 16 pat < 8 len > 16
441
- // ------------------------------------------
442
- // html|html4|cp 0% 1.01% 27.73%
443
- // urls 0% 0.88% 14.79%
444
- // jpg 0% 64.29% 7.14%
445
- // pdf 0% 2.56% 58.06%
446
- // txt[1-4] 0% 0.23% 0.97%
447
- // pb 0% 0.96% 13.88%
448
- // bin 0.01% 22.27% 41.17%
449
- //
450
- // It is very rare that we don't have enough slop for doing block copies. It
451
- // is also rare that we need to expand a pattern. Small patterns are common
452
- // for incompressible formats and for those we are plenty fast already.
453
- // Lengths are normally not greater than 16 but they vary depending on the
454
- // input. In general if we always predict len <= 16 it would be an ok
455
- // prediction.
456
- //
457
- // In order to be fast we want a pattern >= 16 bytes (or 8 bytes in non-SSE)
458
- // and an unrolled loop copying 1x 16 bytes (or 2x 8 bytes in non-SSE) at a
459
- // time.
460
-
461
- // Handle the uncommon case where pattern is less than 16 (or 8 in non-SSE)
462
- // bytes.
463
- if (pattern_size < big_pattern_size_lower_bound) {
464
- #if SNAPPY_HAVE_VECTOR_BYTE_SHUFFLE
465
- // Load the first eight bytes into an 128-bit XMM register, then use PSHUFB
466
- // to permute the register's contents in-place into a repeating sequence of
467
- // the first "pattern_size" bytes.
468
- // For example, suppose:
469
- // src == "abc"
470
- // op == op + 3
471
- // After V128_Shuffle(), "pattern" will have five copies of "abc"
472
- // followed by one byte of slop: abcabcabcabcabca.
473
- //
474
- // The non-SSE fallback implementation suffers from store-forwarding stalls
475
- // because its loads and stores partly overlap. By expanding the pattern
476
- // in-place, we avoid the penalty.
477
-
478
- // Typically, the op_limit is the gating factor so try to simplify the loop
479
- // based on that.
480
- if (SNAPPY_PREDICT_TRUE(op_limit <= buf_limit - 15)) {
481
- auto pattern_and_reshuffle_mask =
482
- LoadPatternAndReshuffleMask(src, pattern_size);
483
- V128 pattern = pattern_and_reshuffle_mask.first;
484
- V128 reshuffle_mask = pattern_and_reshuffle_mask.second;
485
-
486
- // There is at least one, and at most four 16-byte blocks. Writing four
487
- // conditionals instead of a loop allows FDO to layout the code with
488
- // respect to the actual probabilities of each length.
489
- // TODO: Replace with loop with trip count hint.
490
- V128_StoreU(reinterpret_cast<V128*>(op), pattern);
491
-
492
- if (op + 16 < op_limit) {
493
- pattern = V128_Shuffle(pattern, reshuffle_mask);
494
- V128_StoreU(reinterpret_cast<V128*>(op + 16), pattern);
495
- }
496
- if (op + 32 < op_limit) {
497
- pattern = V128_Shuffle(pattern, reshuffle_mask);
498
- V128_StoreU(reinterpret_cast<V128*>(op + 32), pattern);
499
- }
500
- if (op + 48 < op_limit) {
501
- pattern = V128_Shuffle(pattern, reshuffle_mask);
502
- V128_StoreU(reinterpret_cast<V128*>(op + 48), pattern);
503
- }
504
- return op_limit;
505
- }
506
- char* const op_end = buf_limit - 15;
507
- if (SNAPPY_PREDICT_TRUE(op < op_end)) {
508
- auto pattern_and_reshuffle_mask =
509
- LoadPatternAndReshuffleMask(src, pattern_size);
510
- V128 pattern = pattern_and_reshuffle_mask.first;
511
- V128 reshuffle_mask = pattern_and_reshuffle_mask.second;
512
-
513
- // This code path is relatively cold however so we save code size
514
- // by avoiding unrolling and vectorizing.
515
- //
516
- // TODO: Remove pragma when when cold regions don't get
517
- // vectorized or unrolled.
518
- #ifdef __clang__
519
- #pragma clang loop unroll(disable)
520
- #endif
521
- do {
522
- V128_StoreU(reinterpret_cast<V128*>(op), pattern);
523
- pattern = V128_Shuffle(pattern, reshuffle_mask);
524
- op += 16;
525
- } while (SNAPPY_PREDICT_TRUE(op < op_end));
526
- }
527
- return IncrementalCopySlow(op - pattern_size, op, op_limit);
528
- #else // !SNAPPY_HAVE_VECTOR_BYTE_SHUFFLE
529
- // If plenty of buffer space remains, expand the pattern to at least 8
530
- // bytes. The way the following loop is written, we need 8 bytes of buffer
531
- // space if pattern_size >= 4, 11 bytes if pattern_size is 1 or 3, and 10
532
- // bytes if pattern_size is 2. Precisely encoding that is probably not
533
- // worthwhile; instead, invoke the slow path if we cannot write 11 bytes
534
- // (because 11 are required in the worst case).
535
- if (SNAPPY_PREDICT_TRUE(op <= buf_limit - 11)) {
536
- while (pattern_size < 8) {
537
- UnalignedCopy64(src, op);
538
- op += pattern_size;
539
- pattern_size *= 2;
540
- }
541
- if (SNAPPY_PREDICT_TRUE(op >= op_limit)) return op_limit;
542
- } else {
543
- return IncrementalCopySlow(src, op, op_limit);
544
- }
545
- #endif // SNAPPY_HAVE_VECTOR_BYTE_SHUFFLE
546
- }
547
- assert(pattern_size >= big_pattern_size_lower_bound);
548
- constexpr bool use_16bytes_chunk = big_pattern_size_lower_bound == 16;
549
-
550
- // Copy 1x 16 bytes (or 2x 8 bytes in non-SSE) at a time. Because op - src can
551
- // be < 16 in non-SSE, a single UnalignedCopy128 might overwrite data in op.
552
- // UnalignedCopy64 is safe because expanding the pattern to at least 8 bytes
553
- // guarantees that op - src >= 8.
554
- //
555
- // Typically, the op_limit is the gating factor so try to simplify the loop
556
- // based on that.
557
- if (SNAPPY_PREDICT_TRUE(op_limit <= buf_limit - 15)) {
558
- // There is at least one, and at most four 16-byte blocks. Writing four
559
- // conditionals instead of a loop allows FDO to layout the code with respect
560
- // to the actual probabilities of each length.
561
- // TODO: Replace with loop with trip count hint.
562
- ConditionalUnalignedCopy128<use_16bytes_chunk>(src, op);
563
- if (op + 16 < op_limit) {
564
- ConditionalUnalignedCopy128<use_16bytes_chunk>(src + 16, op + 16);
565
- }
566
- if (op + 32 < op_limit) {
567
- ConditionalUnalignedCopy128<use_16bytes_chunk>(src + 32, op + 32);
568
- }
569
- if (op + 48 < op_limit) {
570
- ConditionalUnalignedCopy128<use_16bytes_chunk>(src + 48, op + 48);
571
- }
572
- return op_limit;
573
- }
574
-
575
- // Fall back to doing as much as we can with the available slop in the
576
- // buffer. This code path is relatively cold however so we save code size by
577
- // avoiding unrolling and vectorizing.
578
- //
579
- // TODO: Remove pragma when when cold regions don't get vectorized
580
- // or unrolled.
581
- #ifdef __clang__
582
- #pragma clang loop unroll(disable)
583
- #endif
584
- for (char* op_end = buf_limit - 16; op < op_end; op += 16, src += 16) {
585
- ConditionalUnalignedCopy128<use_16bytes_chunk>(src, op);
586
- }
587
- if (op >= op_limit) return op_limit;
588
-
589
- // We only take this branch if we didn't have enough slop and we can do a
590
- // single 8 byte copy.
591
- if (SNAPPY_PREDICT_FALSE(op <= buf_limit - 8)) {
592
- UnalignedCopy64(src, op);
593
- src += 8;
594
- op += 8;
595
- }
596
- return IncrementalCopySlow(src, op, op_limit);
597
- }
598
-
599
- } // namespace
600
-
601
- template <bool allow_fast_path>
602
- static inline char* EmitLiteral(char* op, const char* literal, int len) {
603
- // The vast majority of copies are below 16 bytes, for which a
604
- // call to std::memcpy() is overkill. This fast path can sometimes
605
- // copy up to 15 bytes too much, but that is okay in the
606
- // main loop, since we have a bit to go on for both sides:
607
- //
608
- // - The input will always have kInputMarginBytes = 15 extra
609
- // available bytes, as long as we're in the main loop, and
610
- // if not, allow_fast_path = false.
611
- // - The output will always have 32 spare bytes (see
612
- // MaxCompressedLength).
613
- assert(len > 0); // Zero-length literals are disallowed
614
- int n = len - 1;
615
- if (allow_fast_path && len <= 16) {
616
- // Fits in tag byte
617
- *op++ = LITERAL | (n << 2);
618
-
619
- UnalignedCopy128(literal, op);
620
- return op + len;
621
- }
622
-
623
- if (n < 60) {
624
- // Fits in tag byte
625
- *op++ = LITERAL | (n << 2);
626
- } else {
627
- int count = (Bits::Log2Floor(n) >> 3) + 1;
628
- assert(count >= 1);
629
- assert(count <= 4);
630
- *op++ = LITERAL | ((59 + count) << 2);
631
- // Encode in upcoming bytes.
632
- // Write 4 bytes, though we may care about only 1 of them. The output buffer
633
- // is guaranteed to have at least 3 more spaces left as 'len >= 61' holds
634
- // here and there is a std::memcpy() of size 'len' below.
635
- LittleEndian::Store32(op, n);
636
- op += count;
637
- }
638
- // When allow_fast_path is true, we can overwrite up to 16 bytes.
639
- if (allow_fast_path) {
640
- char* destination = op;
641
- const char* source = literal;
642
- const char* end = destination + len;
643
- do {
644
- std::memcpy(destination, source, 16);
645
- destination += 16;
646
- source += 16;
647
- } while (destination < end);
648
- } else {
649
- std::memcpy(op, literal, len);
650
- }
651
- return op + len;
652
- }
653
-
654
- template <bool len_less_than_12>
655
- static inline char* EmitCopyAtMost64(char* op, size_t offset, size_t len) {
656
- assert(len <= 64);
657
- assert(len >= 4);
658
- assert(offset < 65536);
659
- assert(len_less_than_12 == (len < 12));
660
-
661
- if (len_less_than_12) {
662
- uint32_t u = (len << 2) + (offset << 8);
663
- uint32_t copy1 = COPY_1_BYTE_OFFSET - (4 << 2) + ((offset >> 3) & 0xe0);
664
- uint32_t copy2 = COPY_2_BYTE_OFFSET - (1 << 2);
665
- // It turns out that offset < 2048 is a difficult to predict branch.
666
- // `perf record` shows this is the highest percentage of branch misses in
667
- // benchmarks. This code produces branch free code, the data dependency
668
- // chain that bottlenecks the throughput is so long that a few extra
669
- // instructions are completely free (IPC << 6 because of data deps).
670
- u += offset < 2048 ? copy1 : copy2;
671
- LittleEndian::Store32(op, u);
672
- op += offset < 2048 ? 2 : 3;
673
- } else {
674
- // Write 4 bytes, though we only care about 3 of them. The output buffer
675
- // is required to have some slack, so the extra byte won't overrun it.
676
- uint32_t u = COPY_2_BYTE_OFFSET + ((len - 1) << 2) + (offset << 8);
677
- LittleEndian::Store32(op, u);
678
- op += 3;
679
- }
680
- return op;
681
- }
682
-
683
- template <bool len_less_than_12>
684
- static inline char* EmitCopy(char* op, size_t offset, size_t len) {
685
- assert(len_less_than_12 == (len < 12));
686
- if (len_less_than_12) {
687
- return EmitCopyAtMost64</*len_less_than_12=*/true>(op, offset, len);
688
- } else {
689
- // A special case for len <= 64 might help, but so far measurements suggest
690
- // it's in the noise.
691
-
692
- // Emit 64 byte copies but make sure to keep at least four bytes reserved.
693
- while (SNAPPY_PREDICT_FALSE(len >= 68)) {
694
- op = EmitCopyAtMost64</*len_less_than_12=*/false>(op, offset, 64);
695
- len -= 64;
696
- }
697
-
698
- // One or two copies will now finish the job.
699
- if (len > 64) {
700
- op = EmitCopyAtMost64</*len_less_than_12=*/false>(op, offset, 60);
701
- len -= 60;
702
- }
703
-
704
- // Emit remainder.
705
- if (len < 12) {
706
- op = EmitCopyAtMost64</*len_less_than_12=*/true>(op, offset, len);
707
- } else {
708
- op = EmitCopyAtMost64</*len_less_than_12=*/false>(op, offset, len);
709
- }
710
- return op;
711
- }
712
- }
713
-
714
- bool GetUncompressedLength(const char* start, size_t n, size_t* result) {
715
- uint32_t v = 0;
716
- const char* limit = start + n;
717
- if (Varint::Parse32WithLimit(start, limit, &v) != NULL) {
718
- *result = v;
719
- return true;
720
- } else {
721
- return false;
722
- }
723
- }
724
-
725
- namespace {
726
- uint32_t CalculateTableSize(uint32_t input_size) {
727
- static_assert(
728
- kMaxHashTableSize >= kMinHashTableSize,
729
- "kMaxHashTableSize should be greater or equal to kMinHashTableSize.");
730
- if (input_size > kMaxHashTableSize) {
731
- return kMaxHashTableSize;
732
- }
733
- if (input_size < kMinHashTableSize) {
734
- return kMinHashTableSize;
735
- }
736
- // This is equivalent to Log2Ceiling(input_size), assuming input_size > 1.
737
- // 2 << Log2Floor(x - 1) is equivalent to 1 << (1 + Log2Floor(x - 1)).
738
- return 2u << Bits::Log2Floor(input_size - 1);
739
- }
740
- } // namespace
741
-
742
- namespace internal {
743
- WorkingMemory::WorkingMemory(size_t input_size) {
744
- const size_t max_fragment_size = std::min(input_size, kBlockSize);
745
- const size_t table_size = CalculateTableSize(max_fragment_size);
746
- size_ = table_size * sizeof(*table_) + max_fragment_size +
747
- MaxCompressedLength(max_fragment_size);
748
- mem_ = std::allocator<char>().allocate(size_);
749
- table_ = reinterpret_cast<uint16_t*>(mem_);
750
- input_ = mem_ + table_size * sizeof(*table_);
751
- output_ = input_ + max_fragment_size;
752
- }
753
-
754
- WorkingMemory::~WorkingMemory() {
755
- std::allocator<char>().deallocate(mem_, size_);
756
- }
757
-
758
- uint16_t* WorkingMemory::GetHashTable(size_t fragment_size,
759
- int* table_size) const {
760
- const size_t htsize = CalculateTableSize(fragment_size);
761
- memset(table_, 0, htsize * sizeof(*table_));
762
- *table_size = htsize;
763
- return table_;
764
- }
765
- } // end namespace internal
766
-
767
- // Flat array compression that does not emit the "uncompressed length"
768
- // prefix. Compresses "input" string to the "*op" buffer.
769
- //
770
- // REQUIRES: "input" is at most "kBlockSize" bytes long.
771
- // REQUIRES: "op" points to an array of memory that is at least
772
- // "MaxCompressedLength(input.size())" in size.
773
- // REQUIRES: All elements in "table[0..table_size-1]" are initialized to zero.
774
- // REQUIRES: "table_size" is a power of two
775
- //
776
- // Returns an "end" pointer into "op" buffer.
777
- // "end - op" is the compressed size of "input".
778
- namespace internal {
779
- char* CompressFragment(const char* input, size_t input_size, char* op,
780
- uint16_t* table, const int table_size) {
781
- // "ip" is the input pointer, and "op" is the output pointer.
782
- const char* ip = input;
783
- assert(input_size <= kBlockSize);
784
- assert((table_size & (table_size - 1)) == 0); // table must be power of two
785
- const uint32_t mask = 2 * (table_size - 1);
786
- const char* ip_end = input + input_size;
787
- const char* base_ip = ip;
788
-
789
- const size_t kInputMarginBytes = 15;
790
- if (SNAPPY_PREDICT_TRUE(input_size >= kInputMarginBytes)) {
791
- const char* ip_limit = input + input_size - kInputMarginBytes;
792
-
793
- for (uint32_t preload = LittleEndian::Load32(ip + 1);;) {
794
- // Bytes in [next_emit, ip) will be emitted as literal bytes. Or
795
- // [next_emit, ip_end) after the main loop.
796
- const char* next_emit = ip++;
797
- uint64_t data = LittleEndian::Load64(ip);
798
- // The body of this loop calls EmitLiteral once and then EmitCopy one or
799
- // more times. (The exception is that when we're close to exhausting
800
- // the input we goto emit_remainder.)
801
- //
802
- // In the first iteration of this loop we're just starting, so
803
- // there's nothing to copy, so calling EmitLiteral once is
804
- // necessary. And we only start a new iteration when the
805
- // current iteration has determined that a call to EmitLiteral will
806
- // precede the next call to EmitCopy (if any).
807
- //
808
- // Step 1: Scan forward in the input looking for a 4-byte-long match.
809
- // If we get close to exhausting the input then goto emit_remainder.
810
- //
811
- // Heuristic match skipping: If 32 bytes are scanned with no matches
812
- // found, start looking only at every other byte. If 32 more bytes are
813
- // scanned (or skipped), look at every third byte, etc.. When a match is
814
- // found, immediately go back to looking at every byte. This is a small
815
- // loss (~5% performance, ~0.1% density) for compressible data due to more
816
- // bookkeeping, but for non-compressible data (such as JPEG) it's a huge
817
- // win since the compressor quickly "realizes" the data is incompressible
818
- // and doesn't bother looking for matches everywhere.
819
- //
820
- // The "skip" variable keeps track of how many bytes there are since the
821
- // last match; dividing it by 32 (ie. right-shifting by five) gives the
822
- // number of bytes to move ahead for each iteration.
823
- uint32_t skip = 32;
824
-
825
- const char* candidate;
826
- if (ip_limit - ip >= 16) {
827
- auto delta = ip - base_ip;
828
- for (int j = 0; j < 4; ++j) {
829
- for (int k = 0; k < 4; ++k) {
830
- int i = 4 * j + k;
831
- // These for-loops are meant to be unrolled. So we can freely
832
- // special case the first iteration to use the value already
833
- // loaded in preload.
834
- uint32_t dword = i == 0 ? preload : static_cast<uint32_t>(data);
835
- assert(dword == LittleEndian::Load32(ip + i));
836
- uint16_t* table_entry = TableEntry(table, dword, mask);
837
- candidate = base_ip + *table_entry;
838
- assert(candidate >= base_ip);
839
- assert(candidate < ip + i);
840
- *table_entry = delta + i;
841
- if (SNAPPY_PREDICT_FALSE(LittleEndian::Load32(candidate) == dword)) {
842
- *op = LITERAL | (i << 2);
843
- UnalignedCopy128(next_emit, op + 1);
844
- ip += i;
845
- op = op + i + 2;
846
- goto emit_match;
847
- }
848
- data >>= 8;
849
- }
850
- data = LittleEndian::Load64(ip + 4 * j + 4);
851
- }
852
- ip += 16;
853
- skip += 16;
854
- }
855
- while (true) {
856
- assert(static_cast<uint32_t>(data) == LittleEndian::Load32(ip));
857
- uint16_t* table_entry = TableEntry(table, data, mask);
858
- uint32_t bytes_between_hash_lookups = skip >> 5;
859
- skip += bytes_between_hash_lookups;
860
- const char* next_ip = ip + bytes_between_hash_lookups;
861
- if (SNAPPY_PREDICT_FALSE(next_ip > ip_limit)) {
862
- ip = next_emit;
863
- goto emit_remainder;
864
- }
865
- candidate = base_ip + *table_entry;
866
- assert(candidate >= base_ip);
867
- assert(candidate < ip);
868
-
869
- *table_entry = ip - base_ip;
870
- if (SNAPPY_PREDICT_FALSE(static_cast<uint32_t>(data) ==
871
- LittleEndian::Load32(candidate))) {
872
- break;
873
- }
874
- data = LittleEndian::Load32(next_ip);
875
- ip = next_ip;
876
- }
877
-
878
- // Step 2: A 4-byte match has been found. We'll later see if more
879
- // than 4 bytes match. But, prior to the match, input
880
- // bytes [next_emit, ip) are unmatched. Emit them as "literal bytes."
881
- assert(next_emit + 16 <= ip_end);
882
- op = EmitLiteral</*allow_fast_path=*/true>(op, next_emit, ip - next_emit);
883
-
884
- // Step 3: Call EmitCopy, and then see if another EmitCopy could
885
- // be our next move. Repeat until we find no match for the
886
- // input immediately after what was consumed by the last EmitCopy call.
887
- //
888
- // If we exit this loop normally then we need to call EmitLiteral next,
889
- // though we don't yet know how big the literal will be. We handle that
890
- // by proceeding to the next iteration of the main loop. We also can exit
891
- // this loop via goto if we get close to exhausting the input.
892
- emit_match:
893
- do {
894
- // We have a 4-byte match at ip, and no need to emit any
895
- // "literal bytes" prior to ip.
896
- const char* base = ip;
897
- std::pair<size_t, bool> p =
898
- FindMatchLength(candidate + 4, ip + 4, ip_end, &data);
899
- size_t matched = 4 + p.first;
900
- ip += matched;
901
- size_t offset = base - candidate;
902
- assert(0 == memcmp(base, candidate, matched));
903
- if (p.second) {
904
- op = EmitCopy</*len_less_than_12=*/true>(op, offset, matched);
905
- } else {
906
- op = EmitCopy</*len_less_than_12=*/false>(op, offset, matched);
907
- }
908
- if (SNAPPY_PREDICT_FALSE(ip >= ip_limit)) {
909
- goto emit_remainder;
910
- }
911
- // Expect 5 bytes to match
912
- assert((data & 0xFFFFFFFFFF) ==
913
- (LittleEndian::Load64(ip) & 0xFFFFFFFFFF));
914
- // We are now looking for a 4-byte match again. We read
915
- // table[Hash(ip, mask)] for that. To improve compression,
916
- // we also update table[Hash(ip - 1, mask)] and table[Hash(ip, mask)].
917
- *TableEntry(table, LittleEndian::Load32(ip - 1), mask) =
918
- ip - base_ip - 1;
919
- uint16_t* table_entry = TableEntry(table, data, mask);
920
- candidate = base_ip + *table_entry;
921
- *table_entry = ip - base_ip;
922
- // Measurements on the benchmarks have shown the following probabilities
923
- // for the loop to exit (ie. avg. number of iterations is reciprocal).
924
- // BM_Flat/6 txt1 p = 0.3-0.4
925
- // BM_Flat/7 txt2 p = 0.35
926
- // BM_Flat/8 txt3 p = 0.3-0.4
927
- // BM_Flat/9 txt3 p = 0.34-0.4
928
- // BM_Flat/10 pb p = 0.4
929
- // BM_Flat/11 gaviota p = 0.1
930
- // BM_Flat/12 cp p = 0.5
931
- // BM_Flat/13 c p = 0.3
932
- } while (static_cast<uint32_t>(data) == LittleEndian::Load32(candidate));
933
- // Because the least significant 5 bytes matched, we can utilize data
934
- // for the next iteration.
935
- preload = data >> 8;
936
- }
937
- }
938
-
939
- emit_remainder:
940
- // Emit the remaining bytes as a literal
941
- if (ip < ip_end) {
942
- op = EmitLiteral</*allow_fast_path=*/false>(op, ip, ip_end - ip);
943
- }
944
-
945
- return op;
946
- }
947
- } // end namespace internal
948
-
949
- // Called back at avery compression call to trace parameters and sizes.
950
- static inline void Report(const char *algorithm, size_t compressed_size,
951
- size_t uncompressed_size) {
952
- // TODO: Switch to [[maybe_unused]] when we can assume C++17.
953
- (void)algorithm;
954
- (void)compressed_size;
955
- (void)uncompressed_size;
956
- }
957
-
958
- // Signature of output types needed by decompression code.
959
- // The decompression code is templatized on a type that obeys this
960
- // signature so that we do not pay virtual function call overhead in
961
- // the middle of a tight decompression loop.
962
- //
963
- // class DecompressionWriter {
964
- // public:
965
- // // Called before decompression
966
- // void SetExpectedLength(size_t length);
967
- //
968
- // // For performance a writer may choose to donate the cursor variable to the
969
- // // decompression function. The decompression will inject it in all its
970
- // // function calls to the writer. Keeping the important output cursor as a
971
- // // function local stack variable allows the compiler to keep it in
972
- // // register, which greatly aids performance by avoiding loads and stores of
973
- // // this variable in the fast path loop iterations.
974
- // T GetOutputPtr() const;
975
- //
976
- // // At end of decompression the loop donates the ownership of the cursor
977
- // // variable back to the writer by calling this function.
978
- // void SetOutputPtr(T op);
979
- //
980
- // // Called after decompression
981
- // bool CheckLength() const;
982
- //
983
- // // Called repeatedly during decompression
984
- // // Each function get a pointer to the op (output pointer), that the writer
985
- // // can use and update. Note it's important that these functions get fully
986
- // // inlined so that no actual address of the local variable needs to be
987
- // // taken.
988
- // bool Append(const char* ip, size_t length, T* op);
989
- // bool AppendFromSelf(uint32_t offset, size_t length, T* op);
990
- //
991
- // // The rules for how TryFastAppend differs from Append are somewhat
992
- // // convoluted:
993
- // //
994
- // // - TryFastAppend is allowed to decline (return false) at any
995
- // // time, for any reason -- just "return false" would be
996
- // // a perfectly legal implementation of TryFastAppend.
997
- // // The intention is for TryFastAppend to allow a fast path
998
- // // in the common case of a small append.
999
- // // - TryFastAppend is allowed to read up to <available> bytes
1000
- // // from the input buffer, whereas Append is allowed to read
1001
- // // <length>. However, if it returns true, it must leave
1002
- // // at least five (kMaximumTagLength) bytes in the input buffer
1003
- // // afterwards, so that there is always enough space to read the
1004
- // // next tag without checking for a refill.
1005
- // // - TryFastAppend must always return decline (return false)
1006
- // // if <length> is 61 or more, as in this case the literal length is not
1007
- // // decoded fully. In practice, this should not be a big problem,
1008
- // // as it is unlikely that one would implement a fast path accepting
1009
- // // this much data.
1010
- // //
1011
- // bool TryFastAppend(const char* ip, size_t available, size_t length, T* op);
1012
- // };
1013
-
1014
- static inline uint32_t ExtractLowBytes(const uint32_t& v, int n) {
1015
- assert(n >= 0);
1016
- assert(n <= 4);
1017
- #if SNAPPY_HAVE_BMI2
1018
- return _bzhi_u32(v, 8 * n);
1019
- #else
1020
- // This needs to be wider than uint32_t otherwise `mask << 32` will be
1021
- // undefined.
1022
- uint64_t mask = 0xffffffff;
1023
- return v & ~(mask << (8 * n));
1024
- #endif
1025
- }
1026
-
1027
- static inline bool LeftShiftOverflows(uint8_t value, uint32_t shift) {
1028
- assert(shift < 32);
1029
- static const uint8_t masks[] = {
1030
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //
1031
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //
1032
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //
1033
- 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe};
1034
- return (value & masks[shift]) != 0;
1035
- }
1036
-
1037
- inline bool Copy64BytesWithPatternExtension(ptrdiff_t dst, size_t offset) {
1038
- // TODO: Switch to [[maybe_unused]] when we can assume C++17.
1039
- (void)dst;
1040
- return offset != 0;
1041
- }
1042
-
1043
- // Copies between size bytes and 64 bytes from src to dest. size cannot exceed
1044
- // 64. More than size bytes, but never exceeding 64, might be copied if doing
1045
- // so gives better performance. [src, src + size) must not overlap with
1046
- // [dst, dst + size), but [src, src + 64) may overlap with [dst, dst + 64).
1047
- void MemCopy64(char* dst, const void* src, size_t size) {
1048
- // Always copy this many bytes. If that's below size then copy the full 64.
1049
- constexpr int kShortMemCopy = 32;
1050
-
1051
- assert(size <= 64);
1052
- assert(std::less_equal<const void*>()(static_cast<const char*>(src) + size,
1053
- dst) ||
1054
- std::less_equal<const void*>()(dst + size, src));
1055
-
1056
- // We know that src and dst are at least size bytes apart. However, because we
1057
- // might copy more than size bytes the copy still might overlap past size.
1058
- // E.g. if src and dst appear consecutively in memory (src + size >= dst).
1059
- // TODO: Investigate wider copies on other platforms.
1060
- #if defined(__x86_64__) && defined(__AVX__)
1061
- assert(kShortMemCopy <= 32);
1062
- __m256i data = _mm256_lddqu_si256(static_cast<const __m256i *>(src));
1063
- _mm256_storeu_si256(reinterpret_cast<__m256i *>(dst), data);
1064
- // Profiling shows that nearly all copies are short.
1065
- if (SNAPPY_PREDICT_FALSE(size > kShortMemCopy)) {
1066
- data = _mm256_lddqu_si256(static_cast<const __m256i *>(src) + 1);
1067
- _mm256_storeu_si256(reinterpret_cast<__m256i *>(dst) + 1, data);
1068
- }
1069
- #else
1070
- std::memmove(dst, src, kShortMemCopy);
1071
- // Profiling shows that nearly all copies are short.
1072
- if (SNAPPY_PREDICT_FALSE(size > kShortMemCopy)) {
1073
- std::memmove(dst + kShortMemCopy,
1074
- static_cast<const uint8_t*>(src) + kShortMemCopy,
1075
- 64 - kShortMemCopy);
1076
- }
1077
- #endif
1078
- }
1079
-
1080
- void MemCopy64(ptrdiff_t dst, const void* src, size_t size) {
1081
- // TODO: Switch to [[maybe_unused]] when we can assume C++17.
1082
- (void)dst;
1083
- (void)src;
1084
- (void)size;
1085
- }
1086
-
1087
- void ClearDeferred(const void** deferred_src, size_t* deferred_length,
1088
- uint8_t* safe_source) {
1089
- *deferred_src = safe_source;
1090
- *deferred_length = 0;
1091
- }
1092
-
1093
- void DeferMemCopy(const void** deferred_src, size_t* deferred_length,
1094
- const void* src, size_t length) {
1095
- *deferred_src = src;
1096
- *deferred_length = length;
1097
- }
1098
-
1099
- SNAPPY_ATTRIBUTE_ALWAYS_INLINE
1100
- inline size_t AdvanceToNextTagARMOptimized(const uint8_t** ip_p, size_t* tag) {
1101
- const uint8_t*& ip = *ip_p;
1102
- // This section is crucial for the throughput of the decompression loop.
1103
- // The latency of an iteration is fundamentally constrained by the
1104
- // following data chain on ip.
1105
- // ip -> c = Load(ip) -> delta1 = (c & 3) -> ip += delta1 or delta2
1106
- // delta2 = ((c >> 2) + 1) ip++
1107
- // This is different from X86 optimizations because ARM has conditional add
1108
- // instruction (csinc) and it removes several register moves.
1109
- const size_t tag_type = *tag & 3;
1110
- const bool is_literal = (tag_type == 0);
1111
- if (is_literal) {
1112
- size_t next_literal_tag = (*tag >> 2) + 1;
1113
- *tag = ip[next_literal_tag];
1114
- ip += next_literal_tag + 1;
1115
- } else {
1116
- *tag = ip[tag_type];
1117
- ip += tag_type + 1;
1118
- }
1119
- return tag_type;
1120
- }
1121
-
1122
- SNAPPY_ATTRIBUTE_ALWAYS_INLINE
1123
- inline size_t AdvanceToNextTagX86Optimized(const uint8_t** ip_p, size_t* tag) {
1124
- const uint8_t*& ip = *ip_p;
1125
- // This section is crucial for the throughput of the decompression loop.
1126
- // The latency of an iteration is fundamentally constrained by the
1127
- // following data chain on ip.
1128
- // ip -> c = Load(ip) -> ip1 = ip + 1 + (c & 3) -> ip = ip1 or ip2
1129
- // ip2 = ip + 2 + (c >> 2)
1130
- // This amounts to 8 cycles.
1131
- // 5 (load) + 1 (c & 3) + 1 (lea ip1, [ip + (c & 3) + 1]) + 1 (cmov)
1132
- size_t literal_len = *tag >> 2;
1133
- size_t tag_type = *tag;
1134
- bool is_literal;
1135
- #if defined(__GCC_ASM_FLAG_OUTPUTS__) && defined(__x86_64__)
1136
- // TODO clang misses the fact that the (c & 3) already correctly
1137
- // sets the zero flag.
1138
- asm("and $3, %k[tag_type]\n\t"
1139
- : [tag_type] "+r"(tag_type), "=@ccz"(is_literal)
1140
- :: "cc");
1141
- #else
1142
- tag_type &= 3;
1143
- is_literal = (tag_type == 0);
1144
- #endif
1145
- // TODO
1146
- // This is code is subtle. Loading the values first and then cmov has less
1147
- // latency then cmov ip and then load. However clang would move the loads
1148
- // in an optimization phase, volatile prevents this transformation.
1149
- // Note that we have enough slop bytes (64) that the loads are always valid.
1150
- size_t tag_literal =
1151
- static_cast<const volatile uint8_t*>(ip)[1 + literal_len];
1152
- size_t tag_copy = static_cast<const volatile uint8_t*>(ip)[tag_type];
1153
- *tag = is_literal ? tag_literal : tag_copy;
1154
- const uint8_t* ip_copy = ip + 1 + tag_type;
1155
- const uint8_t* ip_literal = ip + 2 + literal_len;
1156
- ip = is_literal ? ip_literal : ip_copy;
1157
- #if defined(__GNUC__) && defined(__x86_64__)
1158
- // TODO Clang is "optimizing" zero-extension (a totally free
1159
- // operation) this means that after the cmov of tag, it emits another movzb
1160
- // tag, byte(tag). It really matters as it's on the core chain. This dummy
1161
- // asm, persuades clang to do the zero-extension at the load (it's automatic)
1162
- // removing the expensive movzb.
1163
- asm("" ::"r"(tag_copy));
1164
- #endif
1165
- return tag_type;
1166
- }
1167
-
1168
- // Extract the offset for copy-1 and copy-2 returns 0 for literals or copy-4.
1169
- inline uint32_t ExtractOffset(uint32_t val, size_t tag_type) {
1170
- // For x86 non-static storage works better. For ARM static storage is better.
1171
- // TODO: Once the array is recognized as a register, improve the
1172
- // readability for x86.
1173
- #if defined(__x86_64__)
1174
- constexpr uint64_t kExtractMasksCombined = 0x0000FFFF00FF0000ull;
1175
- uint16_t result;
1176
- memcpy(&result,
1177
- reinterpret_cast<const char*>(&kExtractMasksCombined) + 2 * tag_type,
1178
- sizeof(result));
1179
- return val & result;
1180
- #elif defined(__aarch64__)
1181
- constexpr uint64_t kExtractMasksCombined = 0x0000FFFF00FF0000ull;
1182
- return val & static_cast<uint32_t>(
1183
- (kExtractMasksCombined >> (tag_type * 16)) & 0xFFFF);
1184
- #else
1185
- static constexpr uint32_t kExtractMasks[4] = {0, 0xFF, 0xFFFF, 0};
1186
- return val & kExtractMasks[tag_type];
1187
- #endif
1188
- };
1189
-
1190
- // Core decompression loop, when there is enough data available.
1191
- // Decompresses the input buffer [ip, ip_limit) into the output buffer
1192
- // [op, op_limit_min_slop). Returning when either we are too close to the end
1193
- // of the input buffer, or we exceed op_limit_min_slop or when a exceptional
1194
- // tag is encountered (literal of length > 60) or a copy-4.
1195
- // Returns {ip, op} at the points it stopped decoding.
1196
- // TODO This function probably does not need to be inlined, as it
1197
- // should decode large chunks at a time. This allows runtime dispatch to
1198
- // implementations based on CPU capability (BMI2 / perhaps 32 / 64 byte memcpy).
1199
- template <typename T>
1200
- std::pair<const uint8_t*, ptrdiff_t> DecompressBranchless(
1201
- const uint8_t* ip, const uint8_t* ip_limit, ptrdiff_t op, T op_base,
1202
- ptrdiff_t op_limit_min_slop) {
1203
- // If deferred_src is invalid point it here.
1204
- uint8_t safe_source[64];
1205
- const void* deferred_src;
1206
- size_t deferred_length;
1207
- ClearDeferred(&deferred_src, &deferred_length, safe_source);
1208
-
1209
- // We unroll the inner loop twice so we need twice the spare room.
1210
- op_limit_min_slop -= kSlopBytes;
1211
- if (2 * (kSlopBytes + 1) < ip_limit - ip && op < op_limit_min_slop) {
1212
- const uint8_t* const ip_limit_min_slop = ip_limit - 2 * kSlopBytes - 1;
1213
- ip++;
1214
- // ip points just past the tag and we are touching at maximum kSlopBytes
1215
- // in an iteration.
1216
- size_t tag = ip[-1];
1217
- #if defined(__clang__) && defined(__aarch64__)
1218
- // Workaround for https://bugs.llvm.org/show_bug.cgi?id=51317
1219
- // when loading 1 byte, clang for aarch64 doesn't realize that it(ldrb)
1220
- // comes with free zero-extension, so clang generates another
1221
- // 'and xn, xm, 0xff' before it use that as the offset. This 'and' is
1222
- // redundant and can be removed by adding this dummy asm, which gives
1223
- // clang a hint that we're doing the zero-extension at the load.
1224
- asm("" ::"r"(tag));
1225
- #endif
1226
- do {
1227
- // The throughput is limited by instructions, unrolling the inner loop
1228
- // twice reduces the amount of instructions checking limits and also
1229
- // leads to reduced mov's.
1230
-
1231
- SNAPPY_PREFETCH(ip + 128);
1232
- for (int i = 0; i < 2; i++) {
1233
- const uint8_t* old_ip = ip;
1234
- assert(tag == ip[-1]);
1235
- // For literals tag_type = 0, hence we will always obtain 0 from
1236
- // ExtractLowBytes. For literals offset will thus be kLiteralOffset.
1237
- ptrdiff_t len_min_offset = kLengthMinusOffset[tag];
1238
- #if defined(__aarch64__)
1239
- size_t tag_type = AdvanceToNextTagARMOptimized(&ip, &tag);
1240
- #else
1241
- size_t tag_type = AdvanceToNextTagX86Optimized(&ip, &tag);
1242
- #endif
1243
- uint32_t next = LittleEndian::Load32(old_ip);
1244
- size_t len = len_min_offset & 0xFF;
1245
- len_min_offset -= ExtractOffset(next, tag_type);
1246
- if (SNAPPY_PREDICT_FALSE(len_min_offset > 0)) {
1247
- if (SNAPPY_PREDICT_FALSE(len & 0x80)) {
1248
- // Exceptional case (long literal or copy 4).
1249
- // Actually doing the copy here is negatively impacting the main
1250
- // loop due to compiler incorrectly allocating a register for
1251
- // this fallback. Hence we just break.
1252
- break_loop:
1253
- ip = old_ip;
1254
- goto exit;
1255
- }
1256
- // Only copy-1 or copy-2 tags can get here.
1257
- assert(tag_type == 1 || tag_type == 2);
1258
- std::ptrdiff_t delta = (op + deferred_length) + len_min_offset - len;
1259
- // Guard against copies before the buffer start.
1260
- // Execute any deferred MemCopy since we write to dst here.
1261
- MemCopy64(op_base + op, deferred_src, deferred_length);
1262
- op += deferred_length;
1263
- ClearDeferred(&deferred_src, &deferred_length, safe_source);
1264
- if (SNAPPY_PREDICT_FALSE(delta < 0 ||
1265
- !Copy64BytesWithPatternExtension(
1266
- op_base + op, len - len_min_offset))) {
1267
- goto break_loop;
1268
- }
1269
- // We aren't deferring this copy so add length right away.
1270
- op += len;
1271
- continue;
1272
- }
1273
- std::ptrdiff_t delta = (op + deferred_length) + len_min_offset - len;
1274
- if (SNAPPY_PREDICT_FALSE(delta < 0)) {
1275
- // Due to the spurious offset in literals have this will trigger
1276
- // at the start of a block when op is still smaller than 256.
1277
- if (tag_type != 0) goto break_loop;
1278
- MemCopy64(op_base + op, deferred_src, deferred_length);
1279
- op += deferred_length;
1280
- DeferMemCopy(&deferred_src, &deferred_length, old_ip, len);
1281
- continue;
1282
- }
1283
-
1284
- // For copies we need to copy from op_base + delta, for literals
1285
- // we need to copy from ip instead of from the stream.
1286
- const void* from =
1287
- tag_type ? reinterpret_cast<void*>(op_base + delta) : old_ip;
1288
- MemCopy64(op_base + op, deferred_src, deferred_length);
1289
- op += deferred_length;
1290
- DeferMemCopy(&deferred_src, &deferred_length, from, len);
1291
- }
1292
- } while (ip < ip_limit_min_slop &&
1293
- (op + deferred_length) < op_limit_min_slop);
1294
- exit:
1295
- ip--;
1296
- assert(ip <= ip_limit);
1297
- }
1298
- // If we deferred a copy then we can perform. If we are up to date then we
1299
- // might not have enough slop bytes and could run past the end.
1300
- if (deferred_length) {
1301
- MemCopy64(op_base + op, deferred_src, deferred_length);
1302
- op += deferred_length;
1303
- ClearDeferred(&deferred_src, &deferred_length, safe_source);
1304
- }
1305
- return {ip, op};
1306
- }
1307
-
1308
- // Helper class for decompression
1309
- class SnappyDecompressor {
1310
- private:
1311
- Source* reader_; // Underlying source of bytes to decompress
1312
- const char* ip_; // Points to next buffered byte
1313
- const char* ip_limit_; // Points just past buffered bytes
1314
- // If ip < ip_limit_min_maxtaglen_ it's safe to read kMaxTagLength from
1315
- // buffer.
1316
- const char* ip_limit_min_maxtaglen_;
1317
- uint32_t peeked_; // Bytes peeked from reader (need to skip)
1318
- bool eof_; // Hit end of input without an error?
1319
- char scratch_[kMaximumTagLength]; // See RefillTag().
1320
-
1321
- // Ensure that all of the tag metadata for the next tag is available
1322
- // in [ip_..ip_limit_-1]. Also ensures that [ip,ip+4] is readable even
1323
- // if (ip_limit_ - ip_ < 5).
1324
- //
1325
- // Returns true on success, false on error or end of input.
1326
- bool RefillTag();
1327
-
1328
- void ResetLimit(const char* ip) {
1329
- ip_limit_min_maxtaglen_ =
1330
- ip_limit_ - std::min<ptrdiff_t>(ip_limit_ - ip, kMaximumTagLength - 1);
1331
- }
1332
-
1333
- public:
1334
- explicit SnappyDecompressor(Source* reader)
1335
- : reader_(reader), ip_(NULL), ip_limit_(NULL), peeked_(0), eof_(false) {}
1336
-
1337
- ~SnappyDecompressor() {
1338
- // Advance past any bytes we peeked at from the reader
1339
- reader_->Skip(peeked_);
1340
- }
1341
-
1342
- // Returns true iff we have hit the end of the input without an error.
1343
- bool eof() const { return eof_; }
1344
-
1345
- // Read the uncompressed length stored at the start of the compressed data.
1346
- // On success, stores the length in *result and returns true.
1347
- // On failure, returns false.
1348
- bool ReadUncompressedLength(uint32_t* result) {
1349
- assert(ip_ == NULL); // Must not have read anything yet
1350
- // Length is encoded in 1..5 bytes
1351
- *result = 0;
1352
- uint32_t shift = 0;
1353
- while (true) {
1354
- if (shift >= 32) return false;
1355
- size_t n;
1356
- const char* ip = reader_->Peek(&n);
1357
- if (n == 0) return false;
1358
- const unsigned char c = *(reinterpret_cast<const unsigned char*>(ip));
1359
- reader_->Skip(1);
1360
- uint32_t val = c & 0x7f;
1361
- if (LeftShiftOverflows(static_cast<uint8_t>(val), shift)) return false;
1362
- *result |= val << shift;
1363
- if (c < 128) {
1364
- break;
1365
- }
1366
- shift += 7;
1367
- }
1368
- return true;
1369
- }
1370
-
1371
- // Process the next item found in the input.
1372
- // Returns true if successful, false on error or end of input.
1373
- template <class Writer>
1374
- #if defined(__GNUC__) && defined(__x86_64__)
1375
- __attribute__((aligned(32)))
1376
- #endif
1377
- void
1378
- DecompressAllTags(Writer* writer) {
1379
- const char* ip = ip_;
1380
- ResetLimit(ip);
1381
- auto op = writer->GetOutputPtr();
1382
- // We could have put this refill fragment only at the beginning of the loop.
1383
- // However, duplicating it at the end of each branch gives the compiler more
1384
- // scope to optimize the <ip_limit_ - ip> expression based on the local
1385
- // context, which overall increases speed.
1386
- #define MAYBE_REFILL() \
1387
- if (SNAPPY_PREDICT_FALSE(ip >= ip_limit_min_maxtaglen_)) { \
1388
- ip_ = ip; \
1389
- if (SNAPPY_PREDICT_FALSE(!RefillTag())) goto exit; \
1390
- ip = ip_; \
1391
- ResetLimit(ip); \
1392
- } \
1393
- preload = static_cast<uint8_t>(*ip)
1394
-
1395
- // At the start of the for loop below the least significant byte of preload
1396
- // contains the tag.
1397
- uint32_t preload;
1398
- MAYBE_REFILL();
1399
- for (;;) {
1400
- {
1401
- ptrdiff_t op_limit_min_slop;
1402
- auto op_base = writer->GetBase(&op_limit_min_slop);
1403
- if (op_base) {
1404
- auto res =
1405
- DecompressBranchless(reinterpret_cast<const uint8_t*>(ip),
1406
- reinterpret_cast<const uint8_t*>(ip_limit_),
1407
- op - op_base, op_base, op_limit_min_slop);
1408
- ip = reinterpret_cast<const char*>(res.first);
1409
- op = op_base + res.second;
1410
- MAYBE_REFILL();
1411
- }
1412
- }
1413
- const uint8_t c = static_cast<uint8_t>(preload);
1414
- ip++;
1415
-
1416
- // Ratio of iterations that have LITERAL vs non-LITERAL for different
1417
- // inputs.
1418
- //
1419
- // input LITERAL NON_LITERAL
1420
- // -----------------------------------
1421
- // html|html4|cp 23% 77%
1422
- // urls 36% 64%
1423
- // jpg 47% 53%
1424
- // pdf 19% 81%
1425
- // txt[1-4] 25% 75%
1426
- // pb 24% 76%
1427
- // bin 24% 76%
1428
- if (SNAPPY_PREDICT_FALSE((c & 0x3) == LITERAL)) {
1429
- size_t literal_length = (c >> 2) + 1u;
1430
- if (writer->TryFastAppend(ip, ip_limit_ - ip, literal_length, &op)) {
1431
- assert(literal_length < 61);
1432
- ip += literal_length;
1433
- // NOTE: There is no MAYBE_REFILL() here, as TryFastAppend()
1434
- // will not return true unless there's already at least five spare
1435
- // bytes in addition to the literal.
1436
- preload = static_cast<uint8_t>(*ip);
1437
- continue;
1438
- }
1439
- if (SNAPPY_PREDICT_FALSE(literal_length >= 61)) {
1440
- // Long literal.
1441
- const size_t literal_length_length = literal_length - 60;
1442
- literal_length =
1443
- ExtractLowBytes(LittleEndian::Load32(ip), literal_length_length) +
1444
- 1;
1445
- ip += literal_length_length;
1446
- }
1447
-
1448
- size_t avail = ip_limit_ - ip;
1449
- while (avail < literal_length) {
1450
- if (!writer->Append(ip, avail, &op)) goto exit;
1451
- literal_length -= avail;
1452
- reader_->Skip(peeked_);
1453
- size_t n;
1454
- ip = reader_->Peek(&n);
1455
- avail = n;
1456
- peeked_ = avail;
1457
- if (avail == 0) goto exit;
1458
- ip_limit_ = ip + avail;
1459
- ResetLimit(ip);
1460
- }
1461
- if (!writer->Append(ip, literal_length, &op)) goto exit;
1462
- ip += literal_length;
1463
- MAYBE_REFILL();
1464
- } else {
1465
- if (SNAPPY_PREDICT_FALSE((c & 3) == COPY_4_BYTE_OFFSET)) {
1466
- const size_t copy_offset = LittleEndian::Load32(ip);
1467
- const size_t length = (c >> 2) + 1;
1468
- ip += 4;
1469
-
1470
- if (!writer->AppendFromSelf(copy_offset, length, &op)) goto exit;
1471
- } else {
1472
- const ptrdiff_t entry = kLengthMinusOffset[c];
1473
- preload = LittleEndian::Load32(ip);
1474
- const uint32_t trailer = ExtractLowBytes(preload, c & 3);
1475
- const uint32_t length = entry & 0xff;
1476
- assert(length > 0);
1477
-
1478
- // copy_offset/256 is encoded in bits 8..10. By just fetching
1479
- // those bits, we get copy_offset (since the bit-field starts at
1480
- // bit 8).
1481
- const uint32_t copy_offset = trailer - entry + length;
1482
- if (!writer->AppendFromSelf(copy_offset, length, &op)) goto exit;
1483
-
1484
- ip += (c & 3);
1485
- // By using the result of the previous load we reduce the critical
1486
- // dependency chain of ip to 4 cycles.
1487
- preload >>= (c & 3) * 8;
1488
- if (ip < ip_limit_min_maxtaglen_) continue;
1489
- }
1490
- MAYBE_REFILL();
1491
- }
1492
- }
1493
- #undef MAYBE_REFILL
1494
- exit:
1495
- writer->SetOutputPtr(op);
1496
- }
1497
- };
1498
-
1499
- constexpr uint32_t CalculateNeeded(uint8_t tag) {
1500
- return ((tag & 3) == 0 && tag >= (60 * 4))
1501
- ? (tag >> 2) - 58
1502
- : (0x05030201 >> ((tag * 8) & 31)) & 0xFF;
1503
- }
1504
-
1505
- #if __cplusplus >= 201402L
1506
- constexpr bool VerifyCalculateNeeded() {
1507
- for (int i = 0; i < 1; i++) {
1508
- if (CalculateNeeded(i) != (char_table[i] >> 11) + 1) return false;
1509
- }
1510
- return true;
1511
- }
1512
-
1513
- // Make sure CalculateNeeded is correct by verifying it against the established
1514
- // table encoding the number of added bytes needed.
1515
- static_assert(VerifyCalculateNeeded(), "");
1516
- #endif // c++14
1517
-
1518
- bool SnappyDecompressor::RefillTag() {
1519
- const char* ip = ip_;
1520
- if (ip == ip_limit_) {
1521
- // Fetch a new fragment from the reader
1522
- reader_->Skip(peeked_); // All peeked bytes are used up
1523
- size_t n;
1524
- ip = reader_->Peek(&n);
1525
- peeked_ = n;
1526
- eof_ = (n == 0);
1527
- if (eof_) return false;
1528
- ip_limit_ = ip + n;
1529
- }
1530
-
1531
- // Read the tag character
1532
- assert(ip < ip_limit_);
1533
- const unsigned char c = *(reinterpret_cast<const unsigned char*>(ip));
1534
- // At this point make sure that the data for the next tag is consecutive.
1535
- // For copy 1 this means the next 2 bytes (tag and 1 byte offset)
1536
- // For copy 2 the next 3 bytes (tag and 2 byte offset)
1537
- // For copy 4 the next 5 bytes (tag and 4 byte offset)
1538
- // For all small literals we only need 1 byte buf for literals 60...63 the
1539
- // length is encoded in 1...4 extra bytes.
1540
- const uint32_t needed = CalculateNeeded(c);
1541
- assert(needed <= sizeof(scratch_));
1542
-
1543
- // Read more bytes from reader if needed
1544
- uint32_t nbuf = ip_limit_ - ip;
1545
- if (nbuf < needed) {
1546
- // Stitch together bytes from ip and reader to form the word
1547
- // contents. We store the needed bytes in "scratch_". They
1548
- // will be consumed immediately by the caller since we do not
1549
- // read more than we need.
1550
- std::memmove(scratch_, ip, nbuf);
1551
- reader_->Skip(peeked_); // All peeked bytes are used up
1552
- peeked_ = 0;
1553
- while (nbuf < needed) {
1554
- size_t length;
1555
- const char* src = reader_->Peek(&length);
1556
- if (length == 0) return false;
1557
- uint32_t to_add = std::min<uint32_t>(needed - nbuf, length);
1558
- std::memcpy(scratch_ + nbuf, src, to_add);
1559
- nbuf += to_add;
1560
- reader_->Skip(to_add);
1561
- }
1562
- assert(nbuf == needed);
1563
- ip_ = scratch_;
1564
- ip_limit_ = scratch_ + needed;
1565
- } else if (nbuf < kMaximumTagLength) {
1566
- // Have enough bytes, but move into scratch_ so that we do not
1567
- // read past end of input
1568
- std::memmove(scratch_, ip, nbuf);
1569
- reader_->Skip(peeked_); // All peeked bytes are used up
1570
- peeked_ = 0;
1571
- ip_ = scratch_;
1572
- ip_limit_ = scratch_ + nbuf;
1573
- } else {
1574
- // Pass pointer to buffer returned by reader_.
1575
- ip_ = ip;
1576
- }
1577
- return true;
1578
- }
1579
-
1580
- template <typename Writer>
1581
- static bool InternalUncompress(Source* r, Writer* writer) {
1582
- // Read the uncompressed length from the front of the compressed input
1583
- SnappyDecompressor decompressor(r);
1584
- uint32_t uncompressed_len = 0;
1585
- if (!decompressor.ReadUncompressedLength(&uncompressed_len)) return false;
1586
-
1587
- return InternalUncompressAllTags(&decompressor, writer, r->Available(),
1588
- uncompressed_len);
1589
- }
1590
-
1591
- template <typename Writer>
1592
- static bool InternalUncompressAllTags(SnappyDecompressor* decompressor,
1593
- Writer* writer, uint32_t compressed_len,
1594
- uint32_t uncompressed_len) {
1595
- Report("snappy_uncompress", compressed_len, uncompressed_len);
1596
-
1597
- writer->SetExpectedLength(uncompressed_len);
1598
-
1599
- // Process the entire input
1600
- decompressor->DecompressAllTags(writer);
1601
- writer->Flush();
1602
- return (decompressor->eof() && writer->CheckLength());
1603
- }
1604
-
1605
- bool GetUncompressedLength(Source* source, uint32_t* result) {
1606
- SnappyDecompressor decompressor(source);
1607
- return decompressor.ReadUncompressedLength(result);
1608
- }
1609
-
1610
- size_t Compress(Source* reader, Sink* writer) {
1611
- size_t written = 0;
1612
- size_t N = reader->Available();
1613
- const size_t uncompressed_size = N;
1614
- char ulength[Varint::kMax32];
1615
- char* p = Varint::Encode32(ulength, N);
1616
- writer->Append(ulength, p - ulength);
1617
- written += (p - ulength);
1618
-
1619
- internal::WorkingMemory wmem(N);
1620
-
1621
- while (N > 0) {
1622
- // Get next block to compress (without copying if possible)
1623
- size_t fragment_size;
1624
- const char* fragment = reader->Peek(&fragment_size);
1625
- assert(fragment_size != 0); // premature end of input
1626
- const size_t num_to_read = std::min(N, kBlockSize);
1627
- size_t bytes_read = fragment_size;
1628
-
1629
- size_t pending_advance = 0;
1630
- if (bytes_read >= num_to_read) {
1631
- // Buffer returned by reader is large enough
1632
- pending_advance = num_to_read;
1633
- fragment_size = num_to_read;
1634
- } else {
1635
- char* scratch = wmem.GetScratchInput();
1636
- std::memcpy(scratch, fragment, bytes_read);
1637
- reader->Skip(bytes_read);
1638
-
1639
- while (bytes_read < num_to_read) {
1640
- fragment = reader->Peek(&fragment_size);
1641
- size_t n = std::min<size_t>(fragment_size, num_to_read - bytes_read);
1642
- std::memcpy(scratch + bytes_read, fragment, n);
1643
- bytes_read += n;
1644
- reader->Skip(n);
1645
- }
1646
- assert(bytes_read == num_to_read);
1647
- fragment = scratch;
1648
- fragment_size = num_to_read;
1649
- }
1650
- assert(fragment_size == num_to_read);
1651
-
1652
- // Get encoding table for compression
1653
- int table_size;
1654
- uint16_t* table = wmem.GetHashTable(num_to_read, &table_size);
1655
-
1656
- // Compress input_fragment and append to dest
1657
- const int max_output = MaxCompressedLength(num_to_read);
1658
-
1659
- // Need a scratch buffer for the output, in case the byte sink doesn't
1660
- // have room for us directly.
1661
-
1662
- // Since we encode kBlockSize regions followed by a region
1663
- // which is <= kBlockSize in length, a previously allocated
1664
- // scratch_output[] region is big enough for this iteration.
1665
- char* dest = writer->GetAppendBuffer(max_output, wmem.GetScratchOutput());
1666
- char* end = internal::CompressFragment(fragment, fragment_size, dest, table,
1667
- table_size);
1668
- writer->Append(dest, end - dest);
1669
- written += (end - dest);
1670
-
1671
- N -= num_to_read;
1672
- reader->Skip(pending_advance);
1673
- }
1674
-
1675
- Report("snappy_compress", written, uncompressed_size);
1676
-
1677
- return written;
1678
- }
1679
-
1680
- // -----------------------------------------------------------------------
1681
- // IOVec interfaces
1682
- // -----------------------------------------------------------------------
1683
-
1684
- // A `Source` implementation that yields the contents of an `iovec` array. Note
1685
- // that `total_size` is the total number of bytes to be read from the elements
1686
- // of `iov` (_not_ the total number of elements in `iov`).
1687
- class SnappyIOVecReader : public Source {
1688
- public:
1689
- SnappyIOVecReader(const struct iovec* iov, size_t total_size)
1690
- : curr_iov_(iov),
1691
- curr_pos_(total_size > 0 ? reinterpret_cast<const char*>(iov->iov_base)
1692
- : nullptr),
1693
- curr_size_remaining_(total_size > 0 ? iov->iov_len : 0),
1694
- total_size_remaining_(total_size) {
1695
- // Skip empty leading `iovec`s.
1696
- if (total_size > 0 && curr_size_remaining_ == 0) Advance();
1697
- }
1698
-
1699
- ~SnappyIOVecReader() = default;
1700
-
1701
- size_t Available() const { return total_size_remaining_; }
1702
-
1703
- const char* Peek(size_t* len) {
1704
- *len = curr_size_remaining_;
1705
- return curr_pos_;
1706
- }
1707
-
1708
- void Skip(size_t n) {
1709
- while (n >= curr_size_remaining_ && n > 0) {
1710
- n -= curr_size_remaining_;
1711
- Advance();
1712
- }
1713
- curr_size_remaining_ -= n;
1714
- total_size_remaining_ -= n;
1715
- curr_pos_ += n;
1716
- }
1717
-
1718
- private:
1719
- // Advances to the next nonempty `iovec` and updates related variables.
1720
- void Advance() {
1721
- do {
1722
- assert(total_size_remaining_ >= curr_size_remaining_);
1723
- total_size_remaining_ -= curr_size_remaining_;
1724
- if (total_size_remaining_ == 0) {
1725
- curr_pos_ = nullptr;
1726
- curr_size_remaining_ = 0;
1727
- return;
1728
- }
1729
- ++curr_iov_;
1730
- curr_pos_ = reinterpret_cast<const char*>(curr_iov_->iov_base);
1731
- curr_size_remaining_ = curr_iov_->iov_len;
1732
- } while (curr_size_remaining_ == 0);
1733
- }
1734
-
1735
- // The `iovec` currently being read.
1736
- const struct iovec* curr_iov_;
1737
- // The location in `curr_iov_` currently being read.
1738
- const char* curr_pos_;
1739
- // The amount of unread data in `curr_iov_`.
1740
- size_t curr_size_remaining_;
1741
- // The amount of unread data in the entire input array.
1742
- size_t total_size_remaining_;
1743
- };
1744
-
1745
- // A type that writes to an iovec.
1746
- // Note that this is not a "ByteSink", but a type that matches the
1747
- // Writer template argument to SnappyDecompressor::DecompressAllTags().
1748
- class SnappyIOVecWriter {
1749
- private:
1750
- // output_iov_end_ is set to iov + count and used to determine when
1751
- // the end of the iovs is reached.
1752
- const struct iovec* output_iov_end_;
1753
-
1754
- #if !defined(NDEBUG)
1755
- const struct iovec* output_iov_;
1756
- #endif // !defined(NDEBUG)
1757
-
1758
- // Current iov that is being written into.
1759
- const struct iovec* curr_iov_;
1760
-
1761
- // Pointer to current iov's write location.
1762
- char* curr_iov_output_;
1763
-
1764
- // Remaining bytes to write into curr_iov_output.
1765
- size_t curr_iov_remaining_;
1766
-
1767
- // Total bytes decompressed into output_iov_ so far.
1768
- size_t total_written_;
1769
-
1770
- // Maximum number of bytes that will be decompressed into output_iov_.
1771
- size_t output_limit_;
1772
-
1773
- static inline char* GetIOVecPointer(const struct iovec* iov, size_t offset) {
1774
- return reinterpret_cast<char*>(iov->iov_base) + offset;
1775
- }
1776
-
1777
- public:
1778
- // Does not take ownership of iov. iov must be valid during the
1779
- // entire lifetime of the SnappyIOVecWriter.
1780
- inline SnappyIOVecWriter(const struct iovec* iov, size_t iov_count)
1781
- : output_iov_end_(iov + iov_count),
1782
- #if !defined(NDEBUG)
1783
- output_iov_(iov),
1784
- #endif // !defined(NDEBUG)
1785
- curr_iov_(iov),
1786
- curr_iov_output_(iov_count ? reinterpret_cast<char*>(iov->iov_base)
1787
- : nullptr),
1788
- curr_iov_remaining_(iov_count ? iov->iov_len : 0),
1789
- total_written_(0),
1790
- output_limit_(-1) {
1791
- }
1792
-
1793
- inline void SetExpectedLength(size_t len) { output_limit_ = len; }
1794
-
1795
- inline bool CheckLength() const { return total_written_ == output_limit_; }
1796
-
1797
- inline bool Append(const char* ip, size_t len, char**) {
1798
- if (total_written_ + len > output_limit_) {
1799
- return false;
1800
- }
1801
-
1802
- return AppendNoCheck(ip, len);
1803
- }
1804
-
1805
- char* GetOutputPtr() { return nullptr; }
1806
- char* GetBase(ptrdiff_t*) { return nullptr; }
1807
- void SetOutputPtr(char* op) {
1808
- // TODO: Switch to [[maybe_unused]] when we can assume C++17.
1809
- (void)op;
1810
- }
1811
-
1812
- inline bool AppendNoCheck(const char* ip, size_t len) {
1813
- while (len > 0) {
1814
- if (curr_iov_remaining_ == 0) {
1815
- // This iovec is full. Go to the next one.
1816
- if (curr_iov_ + 1 >= output_iov_end_) {
1817
- return false;
1818
- }
1819
- ++curr_iov_;
1820
- curr_iov_output_ = reinterpret_cast<char*>(curr_iov_->iov_base);
1821
- curr_iov_remaining_ = curr_iov_->iov_len;
1822
- }
1823
-
1824
- const size_t to_write = std::min(len, curr_iov_remaining_);
1825
- std::memcpy(curr_iov_output_, ip, to_write);
1826
- curr_iov_output_ += to_write;
1827
- curr_iov_remaining_ -= to_write;
1828
- total_written_ += to_write;
1829
- ip += to_write;
1830
- len -= to_write;
1831
- }
1832
-
1833
- return true;
1834
- }
1835
-
1836
- inline bool TryFastAppend(const char* ip, size_t available, size_t len,
1837
- char**) {
1838
- const size_t space_left = output_limit_ - total_written_;
1839
- if (len <= 16 && available >= 16 + kMaximumTagLength && space_left >= 16 &&
1840
- curr_iov_remaining_ >= 16) {
1841
- // Fast path, used for the majority (about 95%) of invocations.
1842
- UnalignedCopy128(ip, curr_iov_output_);
1843
- curr_iov_output_ += len;
1844
- curr_iov_remaining_ -= len;
1845
- total_written_ += len;
1846
- return true;
1847
- }
1848
-
1849
- return false;
1850
- }
1851
-
1852
- inline bool AppendFromSelf(size_t offset, size_t len, char**) {
1853
- // See SnappyArrayWriter::AppendFromSelf for an explanation of
1854
- // the "offset - 1u" trick.
1855
- if (offset - 1u >= total_written_) {
1856
- return false;
1857
- }
1858
- const size_t space_left = output_limit_ - total_written_;
1859
- if (len > space_left) {
1860
- return false;
1861
- }
1862
-
1863
- // Locate the iovec from which we need to start the copy.
1864
- const iovec* from_iov = curr_iov_;
1865
- size_t from_iov_offset = curr_iov_->iov_len - curr_iov_remaining_;
1866
- while (offset > 0) {
1867
- if (from_iov_offset >= offset) {
1868
- from_iov_offset -= offset;
1869
- break;
1870
- }
1871
-
1872
- offset -= from_iov_offset;
1873
- --from_iov;
1874
- #if !defined(NDEBUG)
1875
- assert(from_iov >= output_iov_);
1876
- #endif // !defined(NDEBUG)
1877
- from_iov_offset = from_iov->iov_len;
1878
- }
1879
-
1880
- // Copy <len> bytes starting from the iovec pointed to by from_iov_index to
1881
- // the current iovec.
1882
- while (len > 0) {
1883
- assert(from_iov <= curr_iov_);
1884
- if (from_iov != curr_iov_) {
1885
- const size_t to_copy =
1886
- std::min(from_iov->iov_len - from_iov_offset, len);
1887
- AppendNoCheck(GetIOVecPointer(from_iov, from_iov_offset), to_copy);
1888
- len -= to_copy;
1889
- if (len > 0) {
1890
- ++from_iov;
1891
- from_iov_offset = 0;
1892
- }
1893
- } else {
1894
- size_t to_copy = curr_iov_remaining_;
1895
- if (to_copy == 0) {
1896
- // This iovec is full. Go to the next one.
1897
- if (curr_iov_ + 1 >= output_iov_end_) {
1898
- return false;
1899
- }
1900
- ++curr_iov_;
1901
- curr_iov_output_ = reinterpret_cast<char*>(curr_iov_->iov_base);
1902
- curr_iov_remaining_ = curr_iov_->iov_len;
1903
- continue;
1904
- }
1905
- if (to_copy > len) {
1906
- to_copy = len;
1907
- }
1908
- assert(to_copy > 0);
1909
-
1910
- IncrementalCopy(GetIOVecPointer(from_iov, from_iov_offset),
1911
- curr_iov_output_, curr_iov_output_ + to_copy,
1912
- curr_iov_output_ + curr_iov_remaining_);
1913
- curr_iov_output_ += to_copy;
1914
- curr_iov_remaining_ -= to_copy;
1915
- from_iov_offset += to_copy;
1916
- total_written_ += to_copy;
1917
- len -= to_copy;
1918
- }
1919
- }
1920
-
1921
- return true;
1922
- }
1923
-
1924
- inline void Flush() {}
1925
- };
1926
-
1927
- bool RawUncompressToIOVec(const char* compressed, size_t compressed_length,
1928
- const struct iovec* iov, size_t iov_cnt) {
1929
- ByteArraySource reader(compressed, compressed_length);
1930
- return RawUncompressToIOVec(&reader, iov, iov_cnt);
1931
- }
1932
-
1933
- bool RawUncompressToIOVec(Source* compressed, const struct iovec* iov,
1934
- size_t iov_cnt) {
1935
- SnappyIOVecWriter output(iov, iov_cnt);
1936
- return InternalUncompress(compressed, &output);
1937
- }
1938
-
1939
- // -----------------------------------------------------------------------
1940
- // Flat array interfaces
1941
- // -----------------------------------------------------------------------
1942
-
1943
- // A type that writes to a flat array.
1944
- // Note that this is not a "ByteSink", but a type that matches the
1945
- // Writer template argument to SnappyDecompressor::DecompressAllTags().
1946
- class SnappyArrayWriter {
1947
- private:
1948
- char* base_;
1949
- char* op_;
1950
- char* op_limit_;
1951
- // If op < op_limit_min_slop_ then it's safe to unconditionally write
1952
- // kSlopBytes starting at op.
1953
- char* op_limit_min_slop_;
1954
-
1955
- public:
1956
- inline explicit SnappyArrayWriter(char* dst)
1957
- : base_(dst),
1958
- op_(dst),
1959
- op_limit_(dst),
1960
- op_limit_min_slop_(dst) {} // Safe default see invariant.
1961
-
1962
- inline void SetExpectedLength(size_t len) {
1963
- op_limit_ = op_ + len;
1964
- // Prevent pointer from being past the buffer.
1965
- op_limit_min_slop_ = op_limit_ - std::min<size_t>(kSlopBytes - 1, len);
1966
- }
1967
-
1968
- inline bool CheckLength() const { return op_ == op_limit_; }
1969
-
1970
- char* GetOutputPtr() { return op_; }
1971
- char* GetBase(ptrdiff_t* op_limit_min_slop) {
1972
- *op_limit_min_slop = op_limit_min_slop_ - base_;
1973
- return base_;
1974
- }
1975
- void SetOutputPtr(char* op) { op_ = op; }
1976
-
1977
- inline bool Append(const char* ip, size_t len, char** op_p) {
1978
- char* op = *op_p;
1979
- const size_t space_left = op_limit_ - op;
1980
- if (space_left < len) return false;
1981
- std::memcpy(op, ip, len);
1982
- *op_p = op + len;
1983
- return true;
1984
- }
1985
-
1986
- inline bool TryFastAppend(const char* ip, size_t available, size_t len,
1987
- char** op_p) {
1988
- char* op = *op_p;
1989
- const size_t space_left = op_limit_ - op;
1990
- if (len <= 16 && available >= 16 + kMaximumTagLength && space_left >= 16) {
1991
- // Fast path, used for the majority (about 95%) of invocations.
1992
- UnalignedCopy128(ip, op);
1993
- *op_p = op + len;
1994
- return true;
1995
- } else {
1996
- return false;
1997
- }
1998
- }
1999
-
2000
- SNAPPY_ATTRIBUTE_ALWAYS_INLINE
2001
- inline bool AppendFromSelf(size_t offset, size_t len, char** op_p) {
2002
- assert(len > 0);
2003
- char* const op = *op_p;
2004
- assert(op >= base_);
2005
- char* const op_end = op + len;
2006
-
2007
- // Check if we try to append from before the start of the buffer.
2008
- if (SNAPPY_PREDICT_FALSE(static_cast<size_t>(op - base_) < offset))
2009
- return false;
2010
-
2011
- if (SNAPPY_PREDICT_FALSE((kSlopBytes < 64 && len > kSlopBytes) ||
2012
- op >= op_limit_min_slop_ || offset < len)) {
2013
- if (op_end > op_limit_ || offset == 0) return false;
2014
- *op_p = IncrementalCopy(op - offset, op, op_end, op_limit_);
2015
- return true;
2016
- }
2017
- std::memmove(op, op - offset, kSlopBytes);
2018
- *op_p = op_end;
2019
- return true;
2020
- }
2021
- inline size_t Produced() const {
2022
- assert(op_ >= base_);
2023
- return op_ - base_;
2024
- }
2025
- inline void Flush() {}
2026
- };
2027
-
2028
- bool RawUncompress(const char* compressed, size_t compressed_length,
2029
- char* uncompressed) {
2030
- ByteArraySource reader(compressed, compressed_length);
2031
- return RawUncompress(&reader, uncompressed);
2032
- }
2033
-
2034
- bool RawUncompress(Source* compressed, char* uncompressed) {
2035
- SnappyArrayWriter output(uncompressed);
2036
- return InternalUncompress(compressed, &output);
2037
- }
2038
-
2039
- bool Uncompress(const char* compressed, size_t compressed_length,
2040
- std::string* uncompressed) {
2041
- size_t ulength;
2042
- if (!GetUncompressedLength(compressed, compressed_length, &ulength)) {
2043
- return false;
2044
- }
2045
- // On 32-bit builds: max_size() < kuint32max. Check for that instead
2046
- // of crashing (e.g., consider externally specified compressed data).
2047
- if (ulength > uncompressed->max_size()) {
2048
- return false;
2049
- }
2050
- STLStringResizeUninitialized(uncompressed, ulength);
2051
- return RawUncompress(compressed, compressed_length,
2052
- string_as_array(uncompressed));
2053
- }
2054
-
2055
- // A Writer that drops everything on the floor and just does validation
2056
- class SnappyDecompressionValidator {
2057
- private:
2058
- size_t expected_;
2059
- size_t produced_;
2060
-
2061
- public:
2062
- inline SnappyDecompressionValidator() : expected_(0), produced_(0) {}
2063
- inline void SetExpectedLength(size_t len) { expected_ = len; }
2064
- size_t GetOutputPtr() { return produced_; }
2065
- size_t GetBase(ptrdiff_t* op_limit_min_slop) {
2066
- *op_limit_min_slop = std::numeric_limits<ptrdiff_t>::max() - kSlopBytes + 1;
2067
- return 1;
2068
- }
2069
- void SetOutputPtr(size_t op) { produced_ = op; }
2070
- inline bool CheckLength() const { return expected_ == produced_; }
2071
- inline bool Append(const char* ip, size_t len, size_t* produced) {
2072
- // TODO: Switch to [[maybe_unused]] when we can assume C++17.
2073
- (void)ip;
2074
-
2075
- *produced += len;
2076
- return *produced <= expected_;
2077
- }
2078
- inline bool TryFastAppend(const char* ip, size_t available, size_t length,
2079
- size_t* produced) {
2080
- // TODO: Switch to [[maybe_unused]] when we can assume C++17.
2081
- (void)ip;
2082
- (void)available;
2083
- (void)length;
2084
- (void)produced;
2085
-
2086
- return false;
2087
- }
2088
- inline bool AppendFromSelf(size_t offset, size_t len, size_t* produced) {
2089
- // See SnappyArrayWriter::AppendFromSelf for an explanation of
2090
- // the "offset - 1u" trick.
2091
- if (*produced <= offset - 1u) return false;
2092
- *produced += len;
2093
- return *produced <= expected_;
2094
- }
2095
- inline void Flush() {}
2096
- };
2097
-
2098
- bool IsValidCompressedBuffer(const char* compressed, size_t compressed_length) {
2099
- ByteArraySource reader(compressed, compressed_length);
2100
- SnappyDecompressionValidator writer;
2101
- return InternalUncompress(&reader, &writer);
2102
- }
2103
-
2104
- bool IsValidCompressed(Source* compressed) {
2105
- SnappyDecompressionValidator writer;
2106
- return InternalUncompress(compressed, &writer);
2107
- }
2108
-
2109
- void RawCompress(const char* input, size_t input_length, char* compressed,
2110
- size_t* compressed_length) {
2111
- ByteArraySource reader(input, input_length);
2112
- UncheckedByteArraySink writer(compressed);
2113
- Compress(&reader, &writer);
2114
-
2115
- // Compute how many bytes were added
2116
- *compressed_length = (writer.CurrentDestination() - compressed);
2117
- }
2118
-
2119
- void RawCompressFromIOVec(const struct iovec* iov, size_t uncompressed_length,
2120
- char* compressed, size_t* compressed_length) {
2121
- SnappyIOVecReader reader(iov, uncompressed_length);
2122
- UncheckedByteArraySink writer(compressed);
2123
- Compress(&reader, &writer);
2124
-
2125
- // Compute how many bytes were added.
2126
- *compressed_length = writer.CurrentDestination() - compressed;
2127
- }
2128
-
2129
- size_t Compress(const char* input, size_t input_length,
2130
- std::string* compressed) {
2131
- // Pre-grow the buffer to the max length of the compressed output
2132
- STLStringResizeUninitialized(compressed, MaxCompressedLength(input_length));
2133
-
2134
- size_t compressed_length;
2135
- RawCompress(input, input_length, string_as_array(compressed),
2136
- &compressed_length);
2137
- compressed->erase(compressed_length);
2138
- return compressed_length;
2139
- }
2140
-
2141
- size_t CompressFromIOVec(const struct iovec* iov, size_t iov_cnt,
2142
- std::string* compressed) {
2143
- // Compute the number of bytes to be compressed.
2144
- size_t uncompressed_length = 0;
2145
- for (size_t i = 0; i < iov_cnt; ++i) {
2146
- uncompressed_length += iov[i].iov_len;
2147
- }
2148
-
2149
- // Pre-grow the buffer to the max length of the compressed output.
2150
- STLStringResizeUninitialized(compressed, MaxCompressedLength(
2151
- uncompressed_length));
2152
-
2153
- size_t compressed_length;
2154
- RawCompressFromIOVec(iov, uncompressed_length, string_as_array(compressed),
2155
- &compressed_length);
2156
- compressed->erase(compressed_length);
2157
- return compressed_length;
2158
- }
2159
-
2160
- // -----------------------------------------------------------------------
2161
- // Sink interface
2162
- // -----------------------------------------------------------------------
2163
-
2164
- // A type that decompresses into a Sink. The template parameter
2165
- // Allocator must export one method "char* Allocate(int size);", which
2166
- // allocates a buffer of "size" and appends that to the destination.
2167
- template <typename Allocator>
2168
- class SnappyScatteredWriter {
2169
- Allocator allocator_;
2170
-
2171
- // We need random access into the data generated so far. Therefore
2172
- // we keep track of all of the generated data as an array of blocks.
2173
- // All of the blocks except the last have length kBlockSize.
2174
- std::vector<char*> blocks_;
2175
- size_t expected_;
2176
-
2177
- // Total size of all fully generated blocks so far
2178
- size_t full_size_;
2179
-
2180
- // Pointer into current output block
2181
- char* op_base_; // Base of output block
2182
- char* op_ptr_; // Pointer to next unfilled byte in block
2183
- char* op_limit_; // Pointer just past block
2184
- // If op < op_limit_min_slop_ then it's safe to unconditionally write
2185
- // kSlopBytes starting at op.
2186
- char* op_limit_min_slop_;
2187
-
2188
- inline size_t Size() const { return full_size_ + (op_ptr_ - op_base_); }
2189
-
2190
- bool SlowAppend(const char* ip, size_t len);
2191
- bool SlowAppendFromSelf(size_t offset, size_t len);
2192
-
2193
- public:
2194
- inline explicit SnappyScatteredWriter(const Allocator& allocator)
2195
- : allocator_(allocator),
2196
- full_size_(0),
2197
- op_base_(NULL),
2198
- op_ptr_(NULL),
2199
- op_limit_(NULL),
2200
- op_limit_min_slop_(NULL) {}
2201
- char* GetOutputPtr() { return op_ptr_; }
2202
- char* GetBase(ptrdiff_t* op_limit_min_slop) {
2203
- *op_limit_min_slop = op_limit_min_slop_ - op_base_;
2204
- return op_base_;
2205
- }
2206
- void SetOutputPtr(char* op) { op_ptr_ = op; }
2207
-
2208
- inline void SetExpectedLength(size_t len) {
2209
- assert(blocks_.empty());
2210
- expected_ = len;
2211
- }
2212
-
2213
- inline bool CheckLength() const { return Size() == expected_; }
2214
-
2215
- // Return the number of bytes actually uncompressed so far
2216
- inline size_t Produced() const { return Size(); }
2217
-
2218
- inline bool Append(const char* ip, size_t len, char** op_p) {
2219
- char* op = *op_p;
2220
- size_t avail = op_limit_ - op;
2221
- if (len <= avail) {
2222
- // Fast path
2223
- std::memcpy(op, ip, len);
2224
- *op_p = op + len;
2225
- return true;
2226
- } else {
2227
- op_ptr_ = op;
2228
- bool res = SlowAppend(ip, len);
2229
- *op_p = op_ptr_;
2230
- return res;
2231
- }
2232
- }
2233
-
2234
- inline bool TryFastAppend(const char* ip, size_t available, size_t length,
2235
- char** op_p) {
2236
- char* op = *op_p;
2237
- const int space_left = op_limit_ - op;
2238
- if (length <= 16 && available >= 16 + kMaximumTagLength &&
2239
- space_left >= 16) {
2240
- // Fast path, used for the majority (about 95%) of invocations.
2241
- UnalignedCopy128(ip, op);
2242
- *op_p = op + length;
2243
- return true;
2244
- } else {
2245
- return false;
2246
- }
2247
- }
2248
-
2249
- inline bool AppendFromSelf(size_t offset, size_t len, char** op_p) {
2250
- char* op = *op_p;
2251
- assert(op >= op_base_);
2252
- // Check if we try to append from before the start of the buffer.
2253
- if (SNAPPY_PREDICT_FALSE((kSlopBytes < 64 && len > kSlopBytes) ||
2254
- static_cast<size_t>(op - op_base_) < offset ||
2255
- op >= op_limit_min_slop_ || offset < len)) {
2256
- if (offset == 0) return false;
2257
- if (SNAPPY_PREDICT_FALSE(static_cast<size_t>(op - op_base_) < offset ||
2258
- op + len > op_limit_)) {
2259
- op_ptr_ = op;
2260
- bool res = SlowAppendFromSelf(offset, len);
2261
- *op_p = op_ptr_;
2262
- return res;
2263
- }
2264
- *op_p = IncrementalCopy(op - offset, op, op + len, op_limit_);
2265
- return true;
2266
- }
2267
- // Fast path
2268
- char* const op_end = op + len;
2269
- std::memmove(op, op - offset, kSlopBytes);
2270
- *op_p = op_end;
2271
- return true;
2272
- }
2273
-
2274
- // Called at the end of the decompress. We ask the allocator
2275
- // write all blocks to the sink.
2276
- inline void Flush() { allocator_.Flush(Produced()); }
2277
- };
2278
-
2279
- template <typename Allocator>
2280
- bool SnappyScatteredWriter<Allocator>::SlowAppend(const char* ip, size_t len) {
2281
- size_t avail = op_limit_ - op_ptr_;
2282
- while (len > avail) {
2283
- // Completely fill this block
2284
- std::memcpy(op_ptr_, ip, avail);
2285
- op_ptr_ += avail;
2286
- assert(op_limit_ - op_ptr_ == 0);
2287
- full_size_ += (op_ptr_ - op_base_);
2288
- len -= avail;
2289
- ip += avail;
2290
-
2291
- // Bounds check
2292
- if (full_size_ + len > expected_) return false;
2293
-
2294
- // Make new block
2295
- size_t bsize = std::min<size_t>(kBlockSize, expected_ - full_size_);
2296
- op_base_ = allocator_.Allocate(bsize);
2297
- op_ptr_ = op_base_;
2298
- op_limit_ = op_base_ + bsize;
2299
- op_limit_min_slop_ = op_limit_ - std::min<size_t>(kSlopBytes - 1, bsize);
2300
-
2301
- blocks_.push_back(op_base_);
2302
- avail = bsize;
2303
- }
2304
-
2305
- std::memcpy(op_ptr_, ip, len);
2306
- op_ptr_ += len;
2307
- return true;
2308
- }
2309
-
2310
- template <typename Allocator>
2311
- bool SnappyScatteredWriter<Allocator>::SlowAppendFromSelf(size_t offset,
2312
- size_t len) {
2313
- // Overflow check
2314
- // See SnappyArrayWriter::AppendFromSelf for an explanation of
2315
- // the "offset - 1u" trick.
2316
- const size_t cur = Size();
2317
- if (offset - 1u >= cur) return false;
2318
- if (expected_ - cur < len) return false;
2319
-
2320
- // Currently we shouldn't ever hit this path because Compress() chops the
2321
- // input into blocks and does not create cross-block copies. However, it is
2322
- // nice if we do not rely on that, since we can get better compression if we
2323
- // allow cross-block copies and thus might want to change the compressor in
2324
- // the future.
2325
- // TODO Replace this with a properly optimized path. This is not
2326
- // triggered right now. But this is so super slow, that it would regress
2327
- // performance unacceptably if triggered.
2328
- size_t src = cur - offset;
2329
- char* op = op_ptr_;
2330
- while (len-- > 0) {
2331
- char c = blocks_[src >> kBlockLog][src & (kBlockSize - 1)];
2332
- if (!Append(&c, 1, &op)) {
2333
- op_ptr_ = op;
2334
- return false;
2335
- }
2336
- src++;
2337
- }
2338
- op_ptr_ = op;
2339
- return true;
2340
- }
2341
-
2342
- class SnappySinkAllocator {
2343
- public:
2344
- explicit SnappySinkAllocator(Sink* dest) : dest_(dest) {}
2345
- ~SnappySinkAllocator() {}
2346
-
2347
- char* Allocate(int size) {
2348
- Datablock block(new char[size], size);
2349
- blocks_.push_back(block);
2350
- return block.data;
2351
- }
2352
-
2353
- // We flush only at the end, because the writer wants
2354
- // random access to the blocks and once we hand the
2355
- // block over to the sink, we can't access it anymore.
2356
- // Also we don't write more than has been actually written
2357
- // to the blocks.
2358
- void Flush(size_t size) {
2359
- size_t size_written = 0;
2360
- for (Datablock& block : blocks_) {
2361
- size_t block_size = std::min<size_t>(block.size, size - size_written);
2362
- dest_->AppendAndTakeOwnership(block.data, block_size,
2363
- &SnappySinkAllocator::Deleter, NULL);
2364
- size_written += block_size;
2365
- }
2366
- blocks_.clear();
2367
- }
2368
-
2369
- private:
2370
- struct Datablock {
2371
- char* data;
2372
- size_t size;
2373
- Datablock(char* p, size_t s) : data(p), size(s) {}
2374
- };
2375
-
2376
- static void Deleter(void* arg, const char* bytes, size_t size) {
2377
- // TODO: Switch to [[maybe_unused]] when we can assume C++17.
2378
- (void)arg;
2379
- (void)size;
2380
-
2381
- delete[] bytes;
2382
- }
2383
-
2384
- Sink* dest_;
2385
- std::vector<Datablock> blocks_;
2386
-
2387
- // Note: copying this object is allowed
2388
- };
2389
-
2390
- size_t UncompressAsMuchAsPossible(Source* compressed, Sink* uncompressed) {
2391
- SnappySinkAllocator allocator(uncompressed);
2392
- SnappyScatteredWriter<SnappySinkAllocator> writer(allocator);
2393
- InternalUncompress(compressed, &writer);
2394
- return writer.Produced();
2395
- }
2396
-
2397
- bool Uncompress(Source* compressed, Sink* uncompressed) {
2398
- // Read the uncompressed length from the front of the compressed input
2399
- SnappyDecompressor decompressor(compressed);
2400
- uint32_t uncompressed_len = 0;
2401
- if (!decompressor.ReadUncompressedLength(&uncompressed_len)) {
2402
- return false;
2403
- }
2404
-
2405
- char c;
2406
- size_t allocated_size;
2407
- char* buf = uncompressed->GetAppendBufferVariable(1, uncompressed_len, &c, 1,
2408
- &allocated_size);
2409
-
2410
- const size_t compressed_len = compressed->Available();
2411
- // If we can get a flat buffer, then use it, otherwise do block by block
2412
- // uncompression
2413
- if (allocated_size >= uncompressed_len) {
2414
- SnappyArrayWriter writer(buf);
2415
- bool result = InternalUncompressAllTags(&decompressor, &writer,
2416
- compressed_len, uncompressed_len);
2417
- uncompressed->Append(buf, writer.Produced());
2418
- return result;
2419
- } else {
2420
- SnappySinkAllocator allocator(uncompressed);
2421
- SnappyScatteredWriter<SnappySinkAllocator> writer(allocator);
2422
- return InternalUncompressAllTags(&decompressor, &writer, compressed_len,
2423
- uncompressed_len);
2424
- }
2425
- }
2426
-
2427
- } // namespace snappy