From e1aa4e92ef20768d145c8c0527991a524d09110b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tam=C3=A1s=20Szelei?= Date: Sat, 26 Oct 2019 17:22:08 +0200 Subject: [PATCH 01/14] Fresh start :) --- .cmake-format.yaml | 31 + .editorconfig | 14 - .gitignore | 1 + .travis.yml | 36 - .ycm_extra_conf.py | 95 - CHANGELOG.md | 107 - CMakeLists.txt | 265 +- LICENSE.md | 46 - README.md | 99 - appveyor.yml | 29 - cmake/Findrpclib.cmake | 89 - cmake/check_warning_flag.cmake | 9 - cmake/coverage.cmake | 16 - cmake/find-deps.cmake | 6 + cmake/localbuild/FindSFML.cmake | 368 - cmake/localbuild/Findrpclib.cmake | 52 - cmake/msvc_support.cmake | 55 - cmake/policies.cmake | 2 - cmake/rpclibConfig.cmake.in | 10 - codecov.yml | 7 - conanfile.txt | 5 +- dependencies/include/asio.hpp | 122 - dependencies/include/asio/async_result.hpp | 94 - .../include/asio/basic_datagram_socket.hpp | 949 - .../include/asio/basic_deadline_timer.hpp | 518 - dependencies/include/asio/basic_io_object.hpp | 240 - .../include/asio/basic_raw_socket.hpp | 940 - .../include/asio/basic_seq_packet_socket.hpp | 565 - .../include/asio/basic_serial_port.hpp | 695 - .../include/asio/basic_signal_set.hpp | 384 - dependencies/include/asio/basic_socket.hpp | 1518 -- .../include/asio/basic_socket_acceptor.hpp | 1136 - .../include/asio/basic_socket_iostream.hpp | 286 - .../include/asio/basic_socket_streambuf.hpp | 567 - .../include/asio/basic_stream_socket.hpp | 852 - dependencies/include/asio/basic_streambuf.hpp | 369 - .../include/asio/basic_streambuf_fwd.hpp | 33 - .../include/asio/basic_waitable_timer.hpp | 519 - dependencies/include/asio/buffer.hpp | 2239 -- .../include/asio/buffered_read_stream.hpp | 244 - .../include/asio/buffered_read_stream_fwd.hpp | 25 - dependencies/include/asio/buffered_stream.hpp | 258 - .../include/asio/buffered_stream_fwd.hpp | 25 - .../include/asio/buffered_write_stream.hpp | 236 - .../asio/buffered_write_stream_fwd.hpp | 25 - .../include/asio/buffers_iterator.hpp | 481 - .../include/asio/completion_condition.hpp | 218 - dependencies/include/asio/connect.hpp | 823 - dependencies/include/asio/coroutine.hpp | 328 - .../include/asio/datagram_socket_service.hpp | 432 - dependencies/include/asio/deadline_timer.hpp | 38 - .../include/asio/deadline_timer_service.hpp | 171 - .../include/asio/detail/addressof.hpp | 38 - dependencies/include/asio/detail/array.hpp | 38 - .../include/asio/detail/array_fwd.hpp | 34 - dependencies/include/asio/detail/assert.hpp | 32 - .../include/asio/detail/atomic_count.hpp | 45 - .../asio/detail/base_from_completion_cond.hpp | 68 - .../include/asio/detail/bind_handler.hpp | 489 - .../asio/detail/buffer_resize_guard.hpp | 66 - .../asio/detail/buffer_sequence_adapter.hpp | 383 - .../asio/detail/buffered_stream_storage.hpp | 126 - .../include/asio/detail/call_stack.hpp | 125 - .../asio/detail/chrono_time_traits.hpp | 190 - .../asio/detail/completion_handler.hpp | 81 - dependencies/include/asio/detail/config.hpp | 973 - .../include/asio/detail/consuming_buffers.hpp | 292 - dependencies/include/asio/detail/cstdint.hpp | 46 - .../include/asio/detail/date_time_fwd.hpp | 34 - .../asio/detail/deadline_timer_service.hpp | 227 - .../include/asio/detail/dependent_type.hpp | 36 - .../include/asio/detail/descriptor_ops.hpp | 117 - .../asio/detail/descriptor_read_op.hpp | 119 - .../asio/detail/descriptor_write_op.hpp | 119 - .../include/asio/detail/dev_poll_reactor.hpp | 206 - .../include/asio/detail/epoll_reactor.hpp | 242 - dependencies/include/asio/detail/event.hpp | 48 - .../detail/eventfd_select_interrupter.hpp | 83 - .../include/asio/detail/fd_set_adapter.hpp | 39 - .../include/asio/detail/fenced_block.hpp | 76 - dependencies/include/asio/detail/function.hpp | 38 - .../asio/detail/gcc_arm_fenced_block.hpp | 89 - .../asio/detail/gcc_hppa_fenced_block.hpp | 66 - .../asio/detail/gcc_sync_fenced_block.hpp | 63 - .../asio/detail/gcc_x86_fenced_block.hpp | 97 - .../asio/detail/handler_alloc_helpers.hpp | 82 - .../asio/detail/handler_cont_helpers.hpp | 45 - .../asio/detail/handler_invoke_helpers.hpp | 57 - .../include/asio/detail/handler_tracking.hpp | 159 - .../asio/detail/handler_type_requirements.hpp | 488 - dependencies/include/asio/detail/hash_map.hpp | 331 - .../detail/impl/buffer_sequence_adapter.ipp | 118 - .../asio/detail/impl/descriptor_ops.ipp | 451 - .../asio/detail/impl/dev_poll_reactor.hpp | 78 - .../asio/detail/impl/dev_poll_reactor.ipp | 430 - .../asio/detail/impl/epoll_reactor.hpp | 76 - .../asio/detail/impl/epoll_reactor.ipp | 662 - .../impl/eventfd_select_interrupter.ipp | 165 - .../asio/detail/impl/handler_tracking.ipp | 305 - .../asio/detail/impl/kqueue_reactor.hpp | 80 - .../asio/detail/impl/kqueue_reactor.ipp | 496 - .../detail/impl/pipe_select_interrupter.ipp | 124 - .../include/asio/detail/impl/posix_event.ipp | 47 - .../include/asio/detail/impl/posix_mutex.ipp | 46 - .../include/asio/detail/impl/posix_thread.ipp | 74 - .../asio/detail/impl/posix_tss_ptr.ipp | 46 - .../impl/reactive_descriptor_service.ipp | 208 - .../impl/reactive_serial_port_service.ipp | 151 - .../impl/reactive_socket_service_base.ipp | 267 - .../detail/impl/resolver_service_base.ipp | 130 - .../asio/detail/impl/select_reactor.hpp | 87 - .../asio/detail/impl/select_reactor.ipp | 313 - .../asio/detail/impl/service_registry.hpp | 88 - .../asio/detail/impl/service_registry.ipp | 188 - .../asio/detail/impl/signal_set_service.ipp | 647 - .../include/asio/detail/impl/socket_ops.ipp | 3433 --- .../detail/impl/socket_select_interrupter.ipp | 175 - .../asio/detail/impl/strand_service.hpp | 118 - .../asio/detail/impl/strand_service.ipp | 176 - .../asio/detail/impl/task_io_service.hpp | 78 - .../asio/detail/impl/task_io_service.ipp | 474 - .../include/asio/detail/impl/throw_error.ipp | 60 - .../asio/detail/impl/timer_queue_ptime.ipp | 84 - .../asio/detail/impl/timer_queue_set.ipp | 101 - .../include/asio/detail/impl/win_event.ipp | 67 - .../detail/impl/win_iocp_handle_service.ipp | 525 - .../asio/detail/impl/win_iocp_io_service.hpp | 130 - .../asio/detail/impl/win_iocp_io_service.ipp | 538 - .../impl/win_iocp_serial_port_service.ipp | 180 - .../impl/win_iocp_socket_service_base.ipp | 734 - .../include/asio/detail/impl/win_mutex.ipp | 78 - .../detail/impl/win_object_handle_service.ipp | 445 - .../asio/detail/impl/win_static_mutex.ipp | 118 - .../include/asio/detail/impl/win_thread.ipp | 139 - .../include/asio/detail/impl/win_tss_ptr.ipp | 57 - .../impl/winrt_ssocket_service_base.ipp | 612 - .../detail/impl/winrt_timer_scheduler.hpp | 79 - .../detail/impl/winrt_timer_scheduler.ipp | 122 - .../include/asio/detail/impl/winsock_init.ipp | 82 - .../include/asio/detail/io_control.hpp | 134 - .../include/asio/detail/keyword_tss_ptr.hpp | 70 - .../include/asio/detail/kqueue_reactor.hpp | 220 - dependencies/include/asio/detail/limits.hpp | 26 - .../asio/detail/local_free_on_block_exit.hpp | 57 - .../asio/detail/macos_fenced_block.hpp | 61 - dependencies/include/asio/detail/mutex.hpp | 48 - .../include/asio/detail/noncopyable.hpp | 43 - .../include/asio/detail/null_event.hpp | 88 - .../include/asio/detail/null_fenced_block.hpp | 45 - .../include/asio/detail/null_mutex.hpp | 64 - .../include/asio/detail/null_reactor.hpp | 67 - .../asio/detail/null_signal_blocker.hpp | 69 - .../asio/detail/null_socket_service.hpp | 497 - .../include/asio/detail/null_static_mutex.hpp | 60 - .../include/asio/detail/null_thread.hpp | 61 - .../include/asio/detail/null_tss_ptr.hpp | 68 - .../include/asio/detail/object_pool.hpp | 146 - .../asio/detail/old_win_sdk_compat.hpp | 214 - dependencies/include/asio/detail/op_queue.hpp | 156 - .../include/asio/detail/operation.hpp | 38 - .../asio/detail/pipe_select_interrupter.hpp | 89 - .../include/asio/detail/pop_options.hpp | 131 - .../include/asio/detail/posix_event.hpp | 126 - .../asio/detail/posix_fd_set_adapter.hpp | 118 - .../include/asio/detail/posix_mutex.hpp | 76 - .../asio/detail/posix_signal_blocker.hpp | 85 - .../asio/detail/posix_static_mutex.hpp | 64 - .../include/asio/detail/posix_thread.hpp | 105 - .../include/asio/detail/posix_tss_ptr.hpp | 79 - .../include/asio/detail/push_options.hpp | 166 - .../detail/reactive_descriptor_service.hpp | 322 - .../asio/detail/reactive_null_buffers_op.hpp | 88 - .../detail/reactive_serial_port_service.hpp | 234 - .../asio/detail/reactive_socket_accept_op.hpp | 136 - .../detail/reactive_socket_connect_op.hpp | 106 - .../asio/detail/reactive_socket_recv_op.hpp | 123 - .../detail/reactive_socket_recvfrom_op.hpp | 133 - .../detail/reactive_socket_recvmsg_op.hpp | 125 - .../asio/detail/reactive_socket_send_op.hpp | 120 - .../asio/detail/reactive_socket_sendto_op.hpp | 123 - .../asio/detail/reactive_socket_service.hpp | 457 - .../detail/reactive_socket_service_base.hpp | 450 - dependencies/include/asio/detail/reactor.hpp | 32 - .../include/asio/detail/reactor_fwd.hpp | 40 - .../include/asio/detail/reactor_op.hpp | 61 - .../include/asio/detail/reactor_op_queue.hpp | 168 - .../include/asio/detail/regex_fwd.hpp | 35 - .../asio/detail/resolve_endpoint_op.hpp | 121 - .../include/asio/detail/resolve_op.hpp | 131 - .../include/asio/detail/resolver_service.hpp | 129 - .../asio/detail/resolver_service_base.hpp | 129 - .../include/asio/detail/scoped_lock.hpp | 101 - .../include/asio/detail/scoped_ptr.hpp | 79 - .../asio/detail/select_interrupter.hpp | 46 - .../include/asio/detail/select_reactor.hpp | 219 - .../include/asio/detail/service_registry.hpp | 144 - .../include/asio/detail/shared_ptr.hpp | 38 - .../include/asio/detail/signal_blocker.hpp | 44 - .../include/asio/detail/signal_handler.hpp | 82 - .../include/asio/detail/signal_init.hpp | 47 - .../include/asio/detail/signal_op.hpp | 49 - .../asio/detail/signal_set_service.hpp | 216 - .../include/asio/detail/socket_holder.hpp | 98 - .../include/asio/detail/socket_ops.hpp | 334 - .../include/asio/detail/socket_option.hpp | 316 - .../asio/detail/socket_select_interrupter.hpp | 91 - .../include/asio/detail/socket_types.hpp | 404 - .../asio/detail/solaris_fenced_block.hpp | 61 - .../include/asio/detail/static_mutex.hpp | 52 - .../include/asio/detail/std_event.hpp | 176 - .../include/asio/detail/std_mutex.hpp | 73 - .../include/asio/detail/std_static_mutex.hpp | 81 - .../include/asio/detail/std_thread.hpp | 65 - .../include/asio/detail/strand_service.hpp | 142 - .../include/asio/detail/task_io_service.hpp | 201 - .../asio/detail/task_io_service_operation.hpp | 76 - .../detail/task_io_service_thread_info.hpp | 40 - dependencies/include/asio/detail/thread.hpp | 56 - .../include/asio/detail/thread_info_base.hpp | 91 - .../include/asio/detail/throw_error.hpp | 53 - .../include/asio/detail/throw_exception.hpp | 51 - .../include/asio/detail/timer_queue.hpp | 331 - .../include/asio/detail/timer_queue_base.hpp | 68 - .../include/asio/detail/timer_queue_ptime.hpp | 93 - .../include/asio/detail/timer_queue_set.hpp | 66 - .../include/asio/detail/timer_scheduler.hpp | 35 - .../asio/detail/timer_scheduler_fwd.hpp | 40 - dependencies/include/asio/detail/tss_ptr.hpp | 69 - .../include/asio/detail/type_traits.hpp | 58 - .../asio/detail/variadic_templates.hpp | 63 - .../include/asio/detail/wait_handler.hpp | 83 - dependencies/include/asio/detail/wait_op.hpp | 45 - dependencies/include/asio/detail/weak_ptr.hpp | 38 - .../include/asio/detail/win_event.hpp | 126 - .../asio/detail/win_fd_set_adapter.hpp | 149 - .../include/asio/detail/win_fenced_block.hpp | 89 - .../asio/detail/win_iocp_handle_read_op.hpp | 109 - .../asio/detail/win_iocp_handle_service.hpp | 322 - .../asio/detail/win_iocp_handle_write_op.hpp | 101 - .../asio/detail/win_iocp_io_service.hpp | 315 - .../asio/detail/win_iocp_null_buffers_op.hpp | 119 - .../asio/detail/win_iocp_operation.hpp | 95 - .../asio/detail/win_iocp_overlapped_op.hpp | 88 - .../asio/detail/win_iocp_overlapped_ptr.hpp | 144 - .../detail/win_iocp_serial_port_service.hpp | 228 - .../asio/detail/win_iocp_socket_accept_op.hpp | 165 - .../detail/win_iocp_socket_connect_op.hpp | 124 - .../asio/detail/win_iocp_socket_recv_op.hpp | 115 - .../detail/win_iocp_socket_recvfrom_op.hpp | 123 - .../detail/win_iocp_socket_recvmsg_op.hpp | 116 - .../asio/detail/win_iocp_socket_send_op.hpp | 109 - .../asio/detail/win_iocp_socket_service.hpp | 525 - .../detail/win_iocp_socket_service_base.hpp | 524 - .../asio/detail/win_iocp_thread_info.hpp | 34 - .../include/asio/detail/win_mutex.hpp | 78 - .../asio/detail/win_object_handle_service.hpp | 183 - .../include/asio/detail/win_static_mutex.hpp | 74 - .../include/asio/detail/win_thread.hpp | 139 - .../include/asio/detail/win_tss_ptr.hpp | 79 - .../include/asio/detail/wince_thread.hpp | 116 - .../asio/detail/winrt_async_manager.hpp | 294 - .../include/asio/detail/winrt_async_op.hpp | 65 - .../include/asio/detail/winrt_resolve_op.hpp | 117 - .../asio/detail/winrt_resolver_service.hpp | 183 - .../asio/detail/winrt_socket_connect_op.hpp | 90 - .../asio/detail/winrt_socket_recv_op.hpp | 110 - .../asio/detail/winrt_socket_send_op.hpp | 101 - .../asio/detail/winrt_ssocket_service.hpp | 232 - .../detail/winrt_ssocket_service_base.hpp | 355 - .../asio/detail/winrt_timer_scheduler.hpp | 131 - .../include/asio/detail/winrt_utils.hpp | 106 - .../include/asio/detail/winsock_init.hpp | 128 - .../include/asio/detail/wrapped_handler.hpp | 291 - dependencies/include/asio/error.hpp | 336 - dependencies/include/asio/error_code.hpp | 188 - .../include/asio/generic/basic_endpoint.hpp | 193 - .../asio/generic/datagram_protocol.hpp | 123 - .../include/asio/generic/detail/endpoint.hpp | 133 - .../asio/generic/detail/impl/endpoint.ipp | 109 - .../include/asio/generic/raw_protocol.hpp | 121 - .../asio/generic/seq_packet_protocol.hpp | 122 - .../include/asio/generic/stream_protocol.hpp | 127 - .../include/asio/handler_alloc_hook.hpp | 81 - .../asio/handler_continuation_hook.hpp | 54 - .../include/asio/handler_invoke_hook.hpp | 85 - dependencies/include/asio/handler_type.hpp | 112 - .../include/asio/high_resolution_timer.hpp | 63 - .../asio/impl/buffered_read_stream.hpp | 358 - .../asio/impl/buffered_write_stream.hpp | 338 - dependencies/include/asio/impl/connect.hpp | 428 - dependencies/include/asio/impl/error.ipp | 128 - dependencies/include/asio/impl/error_code.ipp | 128 - .../include/asio/impl/handler_alloc_hook.ipp | 77 - dependencies/include/asio/impl/io_service.hpp | 152 - dependencies/include/asio/impl/io_service.ipp | 155 - dependencies/include/asio/impl/read.hpp | 753 - dependencies/include/asio/impl/read_at.hpp | 810 - dependencies/include/asio/impl/read_until.hpp | 1147 - .../include/asio/impl/serial_port_base.hpp | 59 - .../include/asio/impl/serial_port_base.ipp | 554 - dependencies/include/asio/impl/spawn.hpp | 353 - dependencies/include/asio/impl/src.cpp | 25 - dependencies/include/asio/impl/src.hpp | 74 - dependencies/include/asio/impl/use_future.hpp | 172 - dependencies/include/asio/impl/write.hpp | 765 - dependencies/include/asio/impl/write_at.hpp | 825 - dependencies/include/asio/io_service.hpp | 770 - dependencies/include/asio/ip/address.hpp | 200 - dependencies/include/asio/ip/address_v4.hpp | 241 - dependencies/include/asio/ip/address_v6.hpp | 246 - .../include/asio/ip/basic_endpoint.hpp | 263 - .../include/asio/ip/basic_resolver.hpp | 268 - .../include/asio/ip/basic_resolver_entry.hpp | 94 - .../asio/ip/basic_resolver_iterator.hpp | 260 - .../include/asio/ip/basic_resolver_query.hpp | 244 - .../include/asio/ip/detail/endpoint.hpp | 139 - .../include/asio/ip/detail/impl/endpoint.ipp | 204 - .../include/asio/ip/detail/socket_option.hpp | 569 - dependencies/include/asio/ip/host_name.hpp | 42 - dependencies/include/asio/ip/icmp.hpp | 115 - dependencies/include/asio/ip/impl/address.hpp | 53 - dependencies/include/asio/ip/impl/address.ipp | 226 - .../include/asio/ip/impl/address_v4.hpp | 53 - .../include/asio/ip/impl/address_v4.ipp | 178 - .../include/asio/ip/impl/address_v6.hpp | 53 - .../include/asio/ip/impl/address_v6.ipp | 298 - .../include/asio/ip/impl/basic_endpoint.hpp | 55 - .../include/asio/ip/impl/host_name.ipp | 54 - dependencies/include/asio/ip/multicast.hpp | 191 - .../include/asio/ip/resolver_query_base.hpp | 130 - .../include/asio/ip/resolver_service.hpp | 176 - dependencies/include/asio/ip/tcp.hpp | 155 - dependencies/include/asio/ip/udp.hpp | 111 - dependencies/include/asio/ip/unicast.hpp | 70 - dependencies/include/asio/ip/v6_only.hpp | 69 - .../include/asio/is_read_buffered.hpp | 59 - .../include/asio/is_write_buffered.hpp | 59 - .../include/asio/local/basic_endpoint.hpp | 239 - .../include/asio/local/connect_pair.hpp | 104 - .../include/asio/local/datagram_protocol.hpp | 80 - .../include/asio/local/detail/endpoint.hpp | 133 - .../asio/local/detail/impl/endpoint.ipp | 128 - .../include/asio/local/stream_protocol.hpp | 90 - dependencies/include/asio/placeholders.hpp | 123 - .../include/asio/posix/basic_descriptor.hpp | 490 - .../asio/posix/basic_stream_descriptor.hpp | 362 - .../include/asio/posix/descriptor_base.hpp | 97 - .../include/asio/posix/stream_descriptor.hpp | 37 - .../asio/posix/stream_descriptor_service.hpp | 260 - .../include/asio/raw_socket_service.hpp | 432 - dependencies/include/asio/read.hpp | 631 - dependencies/include/asio/read_at.hpp | 664 - dependencies/include/asio/read_until.hpp | 923 - .../asio/seq_packet_socket_service.hpp | 380 - dependencies/include/asio/serial_port.hpp | 36 - .../include/asio/serial_port_base.hpp | 167 - .../include/asio/serial_port_service.hpp | 253 - dependencies/include/asio/signal_set.hpp | 28 - .../include/asio/signal_set_service.hpp | 134 - .../include/asio/socket_acceptor_service.hpp | 302 - dependencies/include/asio/socket_base.hpp | 520 - dependencies/include/asio/spawn.hpp | 265 - dependencies/include/asio/ssl.hpp | 30 - .../include/asio/ssl/basic_context.hpp | 40 - dependencies/include/asio/ssl/context.hpp | 787 - .../include/asio/ssl/context_base.hpp | 183 - .../include/asio/ssl/context_service.hpp | 40 - .../asio/ssl/detail/buffered_handshake_op.hpp | 110 - .../include/asio/ssl/detail/engine.hpp | 164 - .../include/asio/ssl/detail/handshake_op.hpp | 68 - .../include/asio/ssl/detail/impl/engine.ipp | 327 - .../asio/ssl/detail/impl/openssl_init.ipp | 149 - dependencies/include/asio/ssl/detail/io.hpp | 349 - .../include/asio/ssl/detail/openssl_init.hpp | 101 - .../include/asio/ssl/detail/openssl_types.hpp | 28 - .../asio/ssl/detail/password_callback.hpp | 72 - .../include/asio/ssl/detail/read_op.hpp | 73 - .../include/asio/ssl/detail/shutdown_op.hpp | 60 - .../include/asio/ssl/detail/stream_core.hpp | 126 - .../asio/ssl/detail/verify_callback.hpp | 68 - .../include/asio/ssl/detail/write_op.hpp | 73 - dependencies/include/asio/ssl/error.hpp | 68 - .../include/asio/ssl/impl/context.hpp | 71 - .../include/asio/ssl/impl/context.ipp | 974 - dependencies/include/asio/ssl/impl/error.ipp | 57 - .../asio/ssl/impl/rfc2818_verification.ipp | 166 - dependencies/include/asio/ssl/impl/src.hpp | 28 - .../include/asio/ssl/old/basic_context.hpp | 434 - .../include/asio/ssl/old/context_service.hpp | 174 - .../old/detail/openssl_context_service.hpp | 386 - .../asio/ssl/old/detail/openssl_operation.hpp | 524 - .../ssl/old/detail/openssl_stream_service.hpp | 571 - dependencies/include/asio/ssl/old/stream.hpp | 501 - .../include/asio/ssl/old/stream_service.hpp | 184 - .../include/asio/ssl/rfc2818_verification.hpp | 100 - dependencies/include/asio/ssl/stream.hpp | 756 - dependencies/include/asio/ssl/stream_base.hpp | 52 - .../include/asio/ssl/stream_service.hpp | 40 - .../include/asio/ssl/verify_context.hpp | 73 - dependencies/include/asio/ssl/verify_mode.hpp | 63 - dependencies/include/asio/steady_timer.hpp | 61 - dependencies/include/asio/strand.hpp | 252 - .../include/asio/stream_socket_service.hpp | 376 - dependencies/include/asio/streambuf.hpp | 33 - dependencies/include/asio/system_error.hpp | 131 - dependencies/include/asio/system_timer.hpp | 57 - dependencies/include/asio/thread.hpp | 92 - dependencies/include/asio/time_traits.hpp | 86 - dependencies/include/asio/unyield.hpp | 21 - dependencies/include/asio/use_future.hpp | 92 - dependencies/include/asio/version.hpp | 23 - dependencies/include/asio/wait_traits.hpp | 41 - .../include/asio/waitable_timer_service.hpp | 168 - .../include/asio/windows/basic_handle.hpp | 281 - .../asio/windows/basic_object_handle.hpp | 178 - .../windows/basic_random_access_handle.hpp | 376 - .../asio/windows/basic_stream_handle.hpp | 359 - .../include/asio/windows/object_handle.hpp | 38 - .../asio/windows/object_handle_service.hpp | 177 - .../include/asio/windows/overlapped_ptr.hpp | 116 - .../asio/windows/random_access_handle.hpp | 37 - .../windows/random_access_handle_service.hpp | 220 - .../include/asio/windows/stream_handle.hpp | 37 - .../asio/windows/stream_handle_service.hpp | 218 - dependencies/include/asio/write.hpp | 618 - dependencies/include/asio/write_at.hpp | 670 - dependencies/include/asio/yield.hpp | 23 - dependencies/include/format.h | 3259 --- dependencies/include/gmock/gmock.h | 14978 ----------- dependencies/include/gtest/gtest.h | 21197 ---------------- dependencies/include/pimpl_ptr.hh | 5 - dependencies/include/posix.h | 344 - dependencies/src/asio.cpp | 11 - dependencies/src/asio_ssl.cpp | 11 - dependencies/src/format.cc | 1401 - dependencies/src/gmock-gtest-all.cc | 12225 --------- dependencies/src/posix.cc | 262 - doc/Doxyfile | 2388 -- doc/DoxygenLayout.xml | 194 - doc/Makefile | 16 - doc/artwork/artwork.svg | 107 - doc/artwork/favicon.ico | Bin 259 -> 0 bytes doc/artwork/logo.png | Bin 6412 -> 0 bytes doc/design.md | 15 + doc/mkdocs.yml | 37 - doc/pages/compiling.md | 32 - doc/pages/contributing.md | 91 - doc/pages/cookbook.md | 399 - doc/pages/extra.css | 3 - doc/pages/gettingstarted.md | 53 - doc/pages/glossary.md | 27 - doc/pages/index.md | 54 - doc/pages/internals.md | 86 - doc/pages/primer.md | 422 - doc/pages/reference.md | 556 - doc/pages/roadmap.md | 31 - doc/pages/spec.md | 119 - doc/pages/versions.md | 4 - doc/pages/versions.md.in | 4 - doc/reference.md.mako | 82 - doc/requirements.txt | 4 - doc/rpclib-cinder/404.html | 13 - doc/rpclib-cinder/__init__.py | 0 doc/rpclib-cinder/base.html | 123 - doc/rpclib-cinder/content.html | 9 - doc/rpclib-cinder/css/base.css | 168 - doc/rpclib-cinder/css/bootstrap-custom.css | 5249 ---- .../css/bootstrap-custom.min.css | 1 - doc/rpclib-cinder/css/cinder.css | 164 - doc/rpclib-cinder/css/font-awesome-4.0.3.css | 1338 - doc/rpclib-cinder/css/highlight.css | 125 - doc/rpclib-cinder/css/styles/agate.css | 108 - .../css/styles/androidstudio.css | 66 - .../css/styles/arduino-light.css | 88 - doc/rpclib-cinder/css/styles/arta.css | 73 - doc/rpclib-cinder/css/styles/ascetic.css | 45 - .../css/styles/atelier-cave-dark.css | 83 - .../css/styles/atelier-cave-light.css | 85 - .../css/styles/atelier-dune-dark.css | 69 - .../css/styles/atelier-dune-light.css | 69 - .../css/styles/atelier-estuary-dark.css | 84 - .../css/styles/atelier-estuary-light.css | 84 - .../css/styles/atelier-forest-dark.css | 69 - .../css/styles/atelier-forest-light.css | 69 - .../css/styles/atelier-heath-dark.css | 69 - .../css/styles/atelier-heath-light.css | 69 - .../css/styles/atelier-lakeside-dark.css | 69 - .../css/styles/atelier-lakeside-light.css | 69 - .../css/styles/atelier-plateau-dark.css | 84 - .../css/styles/atelier-plateau-light.css | 84 - .../css/styles/atelier-savanna-dark.css | 84 - .../css/styles/atelier-savanna-light.css | 84 - .../css/styles/atelier-seaside-dark.css | 69 - .../css/styles/atelier-seaside-light.css | 69 - .../css/styles/atelier-sulphurpool-dark.css | 69 - .../css/styles/atelier-sulphurpool-light.css | 69 - doc/rpclib-cinder/css/styles/brown-paper.css | 64 - .../css/styles/brown-papersq.png | Bin 18198 -> 0 bytes .../css/styles/codepen-embed.css | 60 - doc/rpclib-cinder/css/styles/color-brewer.css | 71 - doc/rpclib-cinder/css/styles/dark.css | 63 - doc/rpclib-cinder/css/styles/darkula.css | 74 - doc/rpclib-cinder/css/styles/default.css | 99 - doc/rpclib-cinder/css/styles/docco.css | 97 - doc/rpclib-cinder/css/styles/dracula.css | 76 - doc/rpclib-cinder/css/styles/far.css | 71 - doc/rpclib-cinder/css/styles/foundation.css | 88 - doc/rpclib-cinder/css/styles/github-gist.css | 71 - doc/rpclib-cinder/css/styles/github.css | 99 - doc/rpclib-cinder/css/styles/googlecode.css | 89 - doc/rpclib-cinder/css/styles/grayscale.css | 101 - doc/rpclib-cinder/css/styles/gruvbox-dark.css | 108 - .../css/styles/gruvbox-light.css | 108 - doc/rpclib-cinder/css/styles/hopscotch.css | 83 - doc/rpclib-cinder/css/styles/hybrid.css | 102 - doc/rpclib-cinder/css/styles/idea.css | 97 - doc/rpclib-cinder/css/styles/ir-black.css | 73 - doc/rpclib-cinder/css/styles/kimbie.dark.css | 74 - doc/rpclib-cinder/css/styles/kimbie.light.css | 74 - doc/rpclib-cinder/css/styles/magula.css | 70 - doc/rpclib-cinder/css/styles/mono-blue.css | 59 - .../css/styles/monokai-sublime.css | 83 - doc/rpclib-cinder/css/styles/monokai.css | 70 - doc/rpclib-cinder/css/styles/obsidian.css | 88 - doc/rpclib-cinder/css/styles/paraiso-dark.css | 72 - .../css/styles/paraiso-light.css | 72 - doc/rpclib-cinder/css/styles/pojoaque.css | 83 - doc/rpclib-cinder/css/styles/pojoaque.jpg | Bin 1186 -> 0 bytes doc/rpclib-cinder/css/styles/purebasic.css | 96 - .../css/styles/qtcreator_dark.css | 83 - .../css/styles/qtcreator_light.css | 83 - doc/rpclib-cinder/css/styles/railscasts.css | 106 - doc/rpclib-cinder/css/styles/rainbow.css | 85 - doc/rpclib-cinder/css/styles/school-book.css | 72 - doc/rpclib-cinder/css/styles/school-book.png | Bin 486 -> 0 bytes .../css/styles/solarized-dark.css | 84 - .../css/styles/solarized-light.css | 84 - doc/rpclib-cinder/css/styles/sunburst.css | 102 - .../css/styles/tomorrow-night-blue.css | 75 - .../css/styles/tomorrow-night-bright.css | 74 - .../css/styles/tomorrow-night-eighties.css | 74 - .../css/styles/tomorrow-night.css | 75 - doc/rpclib-cinder/css/styles/tomorrow.css | 72 - doc/rpclib-cinder/css/styles/vs.css | 68 - doc/rpclib-cinder/css/styles/xcode.css | 93 - doc/rpclib-cinder/css/styles/xt256.css | 92 - doc/rpclib-cinder/css/styles/zenburn.css | 80 - .../fonts/fontawesome-webfont.eot | Bin 38205 -> 0 bytes .../fonts/fontawesome-webfont.svg | 414 - .../fonts/fontawesome-webfont.ttf | Bin 80652 -> 0 bytes .../fonts/fontawesome-webfont.woff | Bin 44432 -> 0 bytes doc/rpclib-cinder/img/favicon.ico | Bin 259 -> 0 bytes doc/rpclib-cinder/img/grid1.png | Bin 251 -> 0 bytes doc/rpclib-cinder/img/grid10.png | Bin 495 -> 0 bytes doc/rpclib-cinder/img/grid11.png | Bin 253 -> 0 bytes doc/rpclib-cinder/img/grid12.png | Bin 260 -> 0 bytes doc/rpclib-cinder/img/grid13.png | Bin 266 -> 0 bytes doc/rpclib-cinder/img/grid14.png | Bin 240 -> 0 bytes doc/rpclib-cinder/img/grid15.png | Bin 442 -> 0 bytes doc/rpclib-cinder/img/grid16.png | Bin 442 -> 0 bytes doc/rpclib-cinder/img/grid17.png | Bin 442 -> 0 bytes doc/rpclib-cinder/img/grid18.png | Bin 457 -> 0 bytes doc/rpclib-cinder/img/grid19.png | Bin 427 -> 0 bytes doc/rpclib-cinder/img/grid2.png | Bin 271 -> 0 bytes doc/rpclib-cinder/img/grid20.png | Bin 493 -> 0 bytes doc/rpclib-cinder/img/grid3.png | Bin 266 -> 0 bytes doc/rpclib-cinder/img/grid4.png | Bin 244 -> 0 bytes doc/rpclib-cinder/img/grid5.png | Bin 442 -> 0 bytes doc/rpclib-cinder/img/grid6.png | Bin 460 -> 0 bytes doc/rpclib-cinder/img/grid7.png | Bin 442 -> 0 bytes doc/rpclib-cinder/img/grid8.png | Bin 457 -> 0 bytes doc/rpclib-cinder/img/grid9.png | Bin 456 -> 0 bytes doc/rpclib-cinder/js/base.js | 20 - doc/rpclib-cinder/js/bootstrap-3.0.3.min.js | 7 - doc/rpclib-cinder/js/highlight.pack.js | 2 - doc/rpclib-cinder/js/jquery-1.10.2.min.js | 6 - doc/rpclib-cinder/nav-sub.html | 14 - doc/rpclib-cinder/nav.html | 82 - doc/rpclib-cinder/toc.html | 13 - examples/calculator/CMakeLists.txt | 24 - examples/calculator/calculator_client.cc | 37 - examples/calculator/calculator_server.cc | 43 - examples/client/CMakeLists.txt | 16 - examples/client/main.cc | 9 - examples/echo/CMakeLists.txt | 24 - examples/echo/echo_client.cc | 15 - examples/echo/echo_server.cc | 12 - examples/mandelbrot/CMakeLists.txt | 28 - examples/mandelbrot/mandelbrot.h | 17 - examples/mandelbrot/mandelbrot_client.cc | 53 - examples/mandelbrot/mandelbrot_server.cc | 67 - examples/server/CMakeLists.txt | 17 - examples/server/main.cc | 35 - include/rpc/client.h | 147 - include/rpc/client.inl | 66 - include/rpc/compatibility.h | 20 - include/rpc/config.h | 38 - include/rpc/config.h.in | 38 - include/rpc/detail/all.h | 26 - include/rpc/detail/any.h | 21 - include/rpc/detail/async_writer.h | 99 - include/rpc/detail/bool.h | 21 - include/rpc/detail/call.h | 92 - include/rpc/detail/client_error.h | 39 - include/rpc/detail/constant.h | 17 - include/rpc/detail/dev_utils.h | 21 - include/rpc/detail/func_tools.h | 26 - include/rpc/detail/func_traits.h | 77 - include/rpc/detail/if.h | 16 - include/rpc/detail/invoke.h | 15 - include/rpc/detail/is_specialization_of.h | 20 - include/rpc/detail/log.h | 159 - include/rpc/detail/make_unique.h | 31 - include/rpc/detail/not.h | 17 - include/rpc/detail/pimpl.h | 10 - include/rpc/detail/response.h | 118 - include/rpc/detail/server_session.h | 48 - include/rpc/detail/thread_group.h | 40 - include/rpc/detail/util.h | 19 - include/rpc/dispatcher.h | 124 - include/rpc/dispatcher.inl | 79 - include/rpc/msgpack.hpp | 32 - include/rpc/msgpack/adaptor/adaptor_base.hpp | 18 - .../rpc/msgpack/adaptor/adaptor_base_decl.hpp | 16 - include/rpc/msgpack/adaptor/array_ref.hpp | 17 - .../rpc/msgpack/adaptor/array_ref_decl.hpp | 16 - include/rpc/msgpack/adaptor/bool.hpp | 15 - include/rpc/msgpack/adaptor/boost/fusion.hpp | 15 - .../msgpack/adaptor/boost/msgpack_variant.hpp | 18 - .../adaptor/boost/msgpack_variant_decl.hpp | 16 - .../rpc/msgpack/adaptor/boost/optional.hpp | 15 - .../rpc/msgpack/adaptor/boost/string_ref.hpp | 15 - .../rpc/msgpack/adaptor/boost/string_view.hpp | 15 - include/rpc/msgpack/adaptor/carray.hpp | 15 - include/rpc/msgpack/adaptor/char_ptr.hpp | 15 - .../msgpack/adaptor/check_container_size.hpp | 17 - .../adaptor/check_container_size_decl.hpp | 16 - include/rpc/msgpack/adaptor/cpp11/array.hpp | 16 - .../rpc/msgpack/adaptor/cpp11/array_char.hpp | 16 - .../adaptor/cpp11/array_unsigned_char.hpp | 16 - .../msgpack/adaptor/cpp11/forward_list.hpp | 16 - .../adaptor/cpp11/reference_wrapper.hpp | 16 - .../rpc/msgpack/adaptor/cpp11/shared_ptr.hpp | 16 - include/rpc/msgpack/adaptor/cpp11/tuple.hpp | 16 - .../rpc/msgpack/adaptor/cpp11/unique_ptr.hpp | 16 - .../msgpack/adaptor/cpp11/unordered_map.hpp | 16 - .../msgpack/adaptor/cpp11/unordered_set.hpp | 16 - .../rpc/msgpack/adaptor/cpp17/optional.hpp | 16 - .../rpc/msgpack/adaptor/cpp17/string_view.hpp | 16 - include/rpc/msgpack/adaptor/define.hpp | 17 - include/rpc/msgpack/adaptor/define_decl.hpp | 143 - include/rpc/msgpack/adaptor/deque.hpp | 15 - include/rpc/msgpack/adaptor/ext.hpp | 17 - include/rpc/msgpack/adaptor/ext_decl.hpp | 16 - include/rpc/msgpack/adaptor/fixint.hpp | 17 - include/rpc/msgpack/adaptor/fixint_decl.hpp | 16 - include/rpc/msgpack/adaptor/float.hpp | 15 - include/rpc/msgpack/adaptor/int.hpp | 17 - include/rpc/msgpack/adaptor/int_decl.hpp | 16 - include/rpc/msgpack/adaptor/list.hpp | 15 - include/rpc/msgpack/adaptor/map.hpp | 18 - include/rpc/msgpack/adaptor/map_decl.hpp | 16 - include/rpc/msgpack/adaptor/msgpack_tuple.hpp | 17 - .../msgpack/adaptor/msgpack_tuple_decl.hpp | 16 - include/rpc/msgpack/adaptor/nil.hpp | 17 - include/rpc/msgpack/adaptor/nil_decl.hpp | 16 - include/rpc/msgpack/adaptor/pair.hpp | 15 - include/rpc/msgpack/adaptor/raw.hpp | 17 - include/rpc/msgpack/adaptor/raw_decl.hpp | 16 - include/rpc/msgpack/adaptor/set.hpp | 15 - .../rpc/msgpack/adaptor/size_equal_only.hpp | 17 - .../msgpack/adaptor/size_equal_only_decl.hpp | 16 - include/rpc/msgpack/adaptor/string.hpp | 15 - .../rpc/msgpack/adaptor/tr1/unordered_map.hpp | 171 - .../rpc/msgpack/adaptor/tr1/unordered_set.hpp | 165 - include/rpc/msgpack/adaptor/v4raw.hpp | 17 - include/rpc/msgpack/adaptor/v4raw_decl.hpp | 16 - include/rpc/msgpack/adaptor/vector.hpp | 15 - include/rpc/msgpack/adaptor/vector_bool.hpp | 15 - include/rpc/msgpack/adaptor/vector_char.hpp | 15 - .../msgpack/adaptor/vector_unsigned_char.hpp | 15 - include/rpc/msgpack/cpp_config.hpp | 17 - include/rpc/msgpack/cpp_config_decl.hpp | 16 - include/rpc/msgpack/fbuffer.h | 38 - include/rpc/msgpack/fbuffer.hpp | 17 - include/rpc/msgpack/fbuffer_decl.hpp | 16 - include/rpc/msgpack/gcc_atomic.h | 25 - include/rpc/msgpack/gcc_atomic.hpp | 31 - include/rpc/msgpack/iterator.hpp | 18 - include/rpc/msgpack/iterator_decl.hpp | 17 - include/rpc/msgpack/meta.hpp | 18 - include/rpc/msgpack/meta_decl.hpp | 17 - include/rpc/msgpack/object.h | 116 - include/rpc/msgpack/object.hpp | 18 - include/rpc/msgpack/object_decl.hpp | 17 - include/rpc/msgpack/object_fwd.hpp | 19 - include/rpc/msgpack/object_fwd_decl.hpp | 17 - include/rpc/msgpack/pack.h | 147 - include/rpc/msgpack/pack.hpp | 17 - include/rpc/msgpack/pack_decl.hpp | 16 - include/rpc/msgpack/pack_define.h | 18 - include/rpc/msgpack/pack_template.h | 909 - include/rpc/msgpack/parse_return.hpp | 16 - include/rpc/msgpack/predef.h | 24 - include/rpc/msgpack/predef/architecture.h | 32 - .../rpc/msgpack/predef/architecture/alpha.h | 59 - include/rpc/msgpack/predef/architecture/arm.h | 70 - .../msgpack/predef/architecture/blackfin.h | 46 - .../rpc/msgpack/predef/architecture/convex.h | 65 - .../rpc/msgpack/predef/architecture/ia64.h | 49 - .../rpc/msgpack/predef/architecture/m68k.h | 82 - .../rpc/msgpack/predef/architecture/mips.h | 73 - .../rpc/msgpack/predef/architecture/parisc.h | 64 - include/rpc/msgpack/predef/architecture/ppc.h | 72 - .../rpc/msgpack/predef/architecture/pyramid.h | 42 - .../rpc/msgpack/predef/architecture/rs6k.h | 56 - .../rpc/msgpack/predef/architecture/sparc.h | 54 - .../rpc/msgpack/predef/architecture/superh.h | 67 - .../rpc/msgpack/predef/architecture/sys370.h | 43 - .../rpc/msgpack/predef/architecture/sys390.h | 43 - include/rpc/msgpack/predef/architecture/x86.h | 38 - .../rpc/msgpack/predef/architecture/x86/32.h | 87 - .../rpc/msgpack/predef/architecture/x86/64.h | 50 - include/rpc/msgpack/predef/architecture/z.h | 42 - include/rpc/msgpack/predef/compiler.h | 43 - include/rpc/msgpack/predef/compiler/borland.h | 63 - include/rpc/msgpack/predef/compiler/clang.h | 56 - include/rpc/msgpack/predef/compiler/comeau.h | 61 - include/rpc/msgpack/predef/compiler/compaq.h | 66 - include/rpc/msgpack/predef/compiler/diab.h | 56 - .../rpc/msgpack/predef/compiler/digitalmars.h | 56 - include/rpc/msgpack/predef/compiler/dignus.h | 56 - include/rpc/msgpack/predef/compiler/edg.h | 56 - include/rpc/msgpack/predef/compiler/ekopath.h | 57 - include/rpc/msgpack/predef/compiler/gcc.h | 68 - include/rpc/msgpack/predef/compiler/gcc_xml.h | 53 - .../rpc/msgpack/predef/compiler/greenhills.h | 66 - include/rpc/msgpack/predef/compiler/hp_acc.h | 61 - include/rpc/msgpack/predef/compiler/iar.h | 56 - include/rpc/msgpack/predef/compiler/ibm.h | 72 - include/rpc/msgpack/predef/compiler/intel.h | 65 - include/rpc/msgpack/predef/compiler/kai.h | 56 - include/rpc/msgpack/predef/compiler/llvm.h | 57 - .../rpc/msgpack/predef/compiler/metaware.h | 53 - .../rpc/msgpack/predef/compiler/metrowerks.h | 77 - .../rpc/msgpack/predef/compiler/microtec.h | 53 - include/rpc/msgpack/predef/compiler/mpw.h | 63 - include/rpc/msgpack/predef/compiler/palm.h | 56 - include/rpc/msgpack/predef/compiler/pgi.h | 60 - .../rpc/msgpack/predef/compiler/sgi_mipspro.h | 66 - include/rpc/msgpack/predef/compiler/sunpro.h | 76 - include/rpc/msgpack/predef/compiler/tendra.h | 53 - include/rpc/msgpack/predef/compiler/visualc.h | 91 - include/rpc/msgpack/predef/compiler/watcom.h | 56 - include/rpc/msgpack/predef/detail/_cassert.h | 17 - .../rpc/msgpack/predef/detail/_exception.h | 15 - .../rpc/msgpack/predef/detail/comp_detected.h | 10 - .../rpc/msgpack/predef/detail/endian_compat.h | 26 - .../rpc/msgpack/predef/detail/os_detected.h | 10 - .../msgpack/predef/detail/platform_detected.h | 10 - include/rpc/msgpack/predef/detail/test.h | 17 - include/rpc/msgpack/predef/detail/test_def.h | 71 - include/rpc/msgpack/predef/hardware.h | 16 - include/rpc/msgpack/predef/hardware/simd.h | 119 - .../rpc/msgpack/predef/hardware/simd/arm.h | 57 - .../predef/hardware/simd/arm/versions.h | 32 - .../rpc/msgpack/predef/hardware/simd/ppc.h | 69 - .../predef/hardware/simd/ppc/versions.h | 51 - .../rpc/msgpack/predef/hardware/simd/x86.h | 123 - .../predef/hardware/simd/x86/versions.h | 129 - .../msgpack/predef/hardware/simd/x86_amd.h | 87 - .../predef/hardware/simd/x86_amd/versions.h | 51 - include/rpc/msgpack/predef/language.h | 17 - include/rpc/msgpack/predef/language/objc.h | 42 - include/rpc/msgpack/predef/language/stdc.h | 53 - include/rpc/msgpack/predef/language/stdcpp.h | 121 - include/rpc/msgpack/predef/library.h | 16 - include/rpc/msgpack/predef/library/c.h | 20 - .../rpc/msgpack/predef/library/c/_prefix.h | 13 - include/rpc/msgpack/predef/library/c/gnu.h | 61 - include/rpc/msgpack/predef/library/c/uc.h | 47 - include/rpc/msgpack/predef/library/c/vms.h | 47 - include/rpc/msgpack/predef/library/c/zos.h | 56 - include/rpc/msgpack/predef/library/std.h | 25 - .../rpc/msgpack/predef/library/std/_prefix.h | 23 - include/rpc/msgpack/predef/library/std/cxx.h | 46 - .../msgpack/predef/library/std/dinkumware.h | 52 - .../rpc/msgpack/predef/library/std/libcomo.h | 47 - .../rpc/msgpack/predef/library/std/modena.h | 45 - include/rpc/msgpack/predef/library/std/msl.h | 53 - .../msgpack/predef/library/std/roguewave.h | 56 - include/rpc/msgpack/predef/library/std/sgi.h | 51 - .../rpc/msgpack/predef/library/std/stdcpp3.h | 53 - .../rpc/msgpack/predef/library/std/stlport.h | 59 - .../rpc/msgpack/predef/library/std/vacpp.h | 44 - include/rpc/msgpack/predef/make.h | 89 - include/rpc/msgpack/predef/os.h | 33 - include/rpc/msgpack/predef/os/aix.h | 66 - include/rpc/msgpack/predef/os/amigaos.h | 46 - include/rpc/msgpack/predef/os/android.h | 45 - include/rpc/msgpack/predef/os/beos.h | 45 - include/rpc/msgpack/predef/os/bsd.h | 103 - include/rpc/msgpack/predef/os/bsd/bsdi.h | 48 - include/rpc/msgpack/predef/os/bsd/dragonfly.h | 50 - include/rpc/msgpack/predef/os/bsd/free.h | 60 - include/rpc/msgpack/predef/os/bsd/net.h | 84 - include/rpc/msgpack/predef/os/bsd/open.h | 171 - include/rpc/msgpack/predef/os/cygwin.h | 45 - include/rpc/msgpack/predef/os/haiku.h | 46 - include/rpc/msgpack/predef/os/hpux.h | 47 - include/rpc/msgpack/predef/os/ios.h | 51 - include/rpc/msgpack/predef/os/irix.h | 46 - include/rpc/msgpack/predef/os/linux.h | 46 - include/rpc/msgpack/predef/os/macos.h | 65 - include/rpc/msgpack/predef/os/os400.h | 45 - include/rpc/msgpack/predef/os/qnxnto.h | 59 - include/rpc/msgpack/predef/os/solaris.h | 46 - include/rpc/msgpack/predef/os/unix.h | 76 - include/rpc/msgpack/predef/os/vms.h | 52 - include/rpc/msgpack/predef/os/windows.h | 51 - include/rpc/msgpack/predef/other.h | 16 - include/rpc/msgpack/predef/other/endian.h | 204 - include/rpc/msgpack/predef/platform.h | 21 - include/rpc/msgpack/predef/platform/mingw.h | 69 - .../msgpack/predef/platform/windows_desktop.h | 45 - .../msgpack/predef/platform/windows_phone.h | 43 - .../msgpack/predef/platform/windows_runtime.h | 45 - .../msgpack/predef/platform/windows_store.h | 43 - include/rpc/msgpack/predef/version.h | 15 - include/rpc/msgpack/predef/version_number.h | 53 - include/rpc/msgpack/preprocessor.hpp | 19 - .../rpc/msgpack/preprocessor/arithmetic.hpp | 25 - .../msgpack/preprocessor/arithmetic/add.hpp | 51 - .../msgpack/preprocessor/arithmetic/dec.hpp | 289 - .../arithmetic/detail/div_base.hpp | 61 - .../msgpack/preprocessor/arithmetic/div.hpp | 39 - .../msgpack/preprocessor/arithmetic/inc.hpp | 288 - .../msgpack/preprocessor/arithmetic/mod.hpp | 39 - .../msgpack/preprocessor/arithmetic/mul.hpp | 53 - .../msgpack/preprocessor/arithmetic/sub.hpp | 50 - include/rpc/msgpack/preprocessor/array.hpp | 32 - .../rpc/msgpack/preprocessor/array/data.hpp | 28 - .../preprocessor/array/detail/get_data.hpp | 55 - .../rpc/msgpack/preprocessor/array/elem.hpp | 29 - .../rpc/msgpack/preprocessor/array/enum.hpp | 33 - .../rpc/msgpack/preprocessor/array/insert.hpp | 55 - .../msgpack/preprocessor/array/pop_back.hpp | 37 - .../msgpack/preprocessor/array/pop_front.hpp | 38 - .../msgpack/preprocessor/array/push_back.hpp | 35 - .../msgpack/preprocessor/array/push_front.hpp | 35 - .../rpc/msgpack/preprocessor/array/remove.hpp | 54 - .../msgpack/preprocessor/array/replace.hpp | 49 - .../msgpack/preprocessor/array/reverse.hpp | 29 - .../rpc/msgpack/preprocessor/array/size.hpp | 28 - .../msgpack/preprocessor/array/to_list.hpp | 47 - .../rpc/msgpack/preprocessor/array/to_seq.hpp | 46 - .../msgpack/preprocessor/array/to_tuple.hpp | 33 - .../rpc/msgpack/preprocessor/assert_msg.hpp | 17 - include/rpc/msgpack/preprocessor/cat.hpp | 35 - include/rpc/msgpack/preprocessor/comma.hpp | 17 - include/rpc/msgpack/preprocessor/comma_if.hpp | 17 - .../rpc/msgpack/preprocessor/comparison.hpp | 24 - .../msgpack/preprocessor/comparison/equal.hpp | 34 - .../preprocessor/comparison/greater.hpp | 38 - .../preprocessor/comparison/greater_equal.hpp | 38 - .../msgpack/preprocessor/comparison/less.hpp | 46 - .../preprocessor/comparison/less_equal.hpp | 39 - .../preprocessor/comparison/not_equal.hpp | 814 - .../msgpack/preprocessor/config/config.hpp | 104 - .../msgpack/preprocessor/config/limits.hpp | 30 - include/rpc/msgpack/preprocessor/control.hpp | 22 - .../msgpack/preprocessor/control/deduce_d.hpp | 22 - .../preprocessor/control/detail/dmc/while.hpp | 536 - .../preprocessor/control/detail/edg/while.hpp | 534 - .../control/detail/msvc/while.hpp | 277 - .../preprocessor/control/detail/while.hpp | 536 - .../msgpack/preprocessor/control/expr_if.hpp | 30 - .../msgpack/preprocessor/control/expr_iif.hpp | 31 - .../rpc/msgpack/preprocessor/control/if.hpp | 30 - .../rpc/msgpack/preprocessor/control/iif.hpp | 34 - .../msgpack/preprocessor/control/while.hpp | 312 - include/rpc/msgpack/preprocessor/debug.hpp | 18 - .../rpc/msgpack/preprocessor/debug/assert.hpp | 44 - .../rpc/msgpack/preprocessor/debug/error.hpp | 33 - .../rpc/msgpack/preprocessor/debug/line.hpp | 35 - include/rpc/msgpack/preprocessor/dec.hpp | 17 - .../msgpack/preprocessor/detail/auto_rec.hpp | 293 - .../rpc/msgpack/preprocessor/detail/check.hpp | 48 - .../preprocessor/detail/dmc/auto_rec.hpp | 286 - .../msgpack/preprocessor/detail/is_binary.hpp | 30 - .../preprocessor/detail/is_nullary.hpp | 30 - .../msgpack/preprocessor/detail/is_unary.hpp | 30 - .../rpc/msgpack/preprocessor/detail/null.hpp | 17 - .../rpc/msgpack/preprocessor/detail/split.hpp | 35 - include/rpc/msgpack/preprocessor/empty.hpp | 17 - include/rpc/msgpack/preprocessor/enum.hpp | 17 - .../rpc/msgpack/preprocessor/enum_params.hpp | 17 - .../enum_params_with_a_default.hpp | 17 - .../enum_params_with_defaults.hpp | 17 - .../rpc/msgpack/preprocessor/enum_shifted.hpp | 17 - .../preprocessor/enum_shifted_params.hpp | 17 - include/rpc/msgpack/preprocessor/expand.hpp | 17 - include/rpc/msgpack/preprocessor/expr_if.hpp | 17 - .../rpc/msgpack/preprocessor/facilities.hpp | 23 - .../msgpack/preprocessor/facilities/apply.hpp | 34 - .../facilities/detail/is_empty.hpp | 55 - .../msgpack/preprocessor/facilities/empty.hpp | 23 - .../preprocessor/facilities/expand.hpp | 28 - .../preprocessor/facilities/identity.hpp | 27 - .../preprocessor/facilities/intercept.hpp | 277 - .../msgpack/preprocessor/facilities/is_1.hpp | 23 - .../preprocessor/facilities/is_empty.hpp | 56 - .../preprocessor/facilities/is_empty_or_1.hpp | 31 - .../facilities/is_empty_variadic.hpp | 57 - .../preprocessor/facilities/overload.hpp | 25 - include/rpc/msgpack/preprocessor/for.hpp | 17 - include/rpc/msgpack/preprocessor/identity.hpp | 17 - include/rpc/msgpack/preprocessor/if.hpp | 17 - include/rpc/msgpack/preprocessor/inc.hpp | 17 - include/rpc/msgpack/preprocessor/iterate.hpp | 17 - .../rpc/msgpack/preprocessor/iteration.hpp | 19 - .../iteration/detail/bounds/lower1.hpp | 99 - .../iteration/detail/bounds/lower2.hpp | 99 - .../iteration/detail/bounds/lower3.hpp | 99 - .../iteration/detail/bounds/lower4.hpp | 99 - .../iteration/detail/bounds/lower5.hpp | 99 - .../iteration/detail/bounds/upper1.hpp | 99 - .../iteration/detail/bounds/upper2.hpp | 99 - .../iteration/detail/bounds/upper3.hpp | 99 - .../iteration/detail/bounds/upper4.hpp | 99 - .../iteration/detail/bounds/upper5.hpp | 99 - .../preprocessor/iteration/detail/finish.hpp | 99 - .../iteration/detail/iter/forward1.hpp | 1342 - .../iteration/detail/iter/forward2.hpp | 1338 - .../iteration/detail/iter/forward3.hpp | 1338 - .../iteration/detail/iter/forward4.hpp | 1338 - .../iteration/detail/iter/forward5.hpp | 1338 - .../iteration/detail/iter/reverse1.hpp | 1296 - .../iteration/detail/iter/reverse2.hpp | 1296 - .../iteration/detail/iter/reverse3.hpp | 1296 - .../iteration/detail/iter/reverse4.hpp | 1296 - .../iteration/detail/iter/reverse5.hpp | 1296 - .../preprocessor/iteration/detail/local.hpp | 812 - .../preprocessor/iteration/detail/rlocal.hpp | 782 - .../preprocessor/iteration/detail/self.hpp | 21 - .../preprocessor/iteration/detail/start.hpp | 99 - .../preprocessor/iteration/iterate.hpp | 82 - .../msgpack/preprocessor/iteration/local.hpp | 26 - .../msgpack/preprocessor/iteration/self.hpp | 19 - include/rpc/msgpack/preprocessor/library.hpp | 37 - include/rpc/msgpack/preprocessor/limits.hpp | 17 - include/rpc/msgpack/preprocessor/list.hpp | 37 - include/rpc/msgpack/preprocessor/list/adt.hpp | 73 - .../rpc/msgpack/preprocessor/list/append.hpp | 40 - include/rpc/msgpack/preprocessor/list/at.hpp | 39 - include/rpc/msgpack/preprocessor/list/cat.hpp | 42 - .../list/detail/dmc/fold_left.hpp | 279 - .../list/detail/edg/fold_left.hpp | 536 - .../list/detail/edg/fold_right.hpp | 794 - .../preprocessor/list/detail/fold_left.hpp | 279 - .../preprocessor/list/detail/fold_right.hpp | 277 - .../rpc/msgpack/preprocessor/list/enum.hpp | 41 - .../rpc/msgpack/preprocessor/list/filter.hpp | 54 - .../rpc/msgpack/preprocessor/list/first_n.hpp | 58 - .../msgpack/preprocessor/list/fold_left.hpp | 303 - .../msgpack/preprocessor/list/fold_right.hpp | 40 - .../msgpack/preprocessor/list/for_each.hpp | 49 - .../msgpack/preprocessor/list/for_each_i.hpp | 65 - .../preprocessor/list/for_each_product.hpp | 141 - .../rpc/msgpack/preprocessor/list/rest_n.hpp | 55 - .../rpc/msgpack/preprocessor/list/reverse.hpp | 40 - .../rpc/msgpack/preprocessor/list/size.hpp | 58 - .../msgpack/preprocessor/list/to_array.hpp | 155 - .../rpc/msgpack/preprocessor/list/to_seq.hpp | 32 - .../msgpack/preprocessor/list/to_tuple.hpp | 61 - .../msgpack/preprocessor/list/transform.hpp | 49 - include/rpc/msgpack/preprocessor/logical.hpp | 29 - .../rpc/msgpack/preprocessor/logical/and.hpp | 30 - .../msgpack/preprocessor/logical/bitand.hpp | 38 - .../msgpack/preprocessor/logical/bitnor.hpp | 38 - .../msgpack/preprocessor/logical/bitor.hpp | 38 - .../msgpack/preprocessor/logical/bitxor.hpp | 38 - .../rpc/msgpack/preprocessor/logical/bool.hpp | 288 - .../msgpack/preprocessor/logical/compl.hpp | 36 - .../rpc/msgpack/preprocessor/logical/nor.hpp | 30 - .../rpc/msgpack/preprocessor/logical/not.hpp | 30 - .../rpc/msgpack/preprocessor/logical/or.hpp | 30 - .../rpc/msgpack/preprocessor/logical/xor.hpp | 30 - include/rpc/msgpack/preprocessor/max.hpp | 17 - include/rpc/msgpack/preprocessor/min.hpp | 17 - .../rpc/msgpack/preprocessor/punctuation.hpp | 22 - .../preprocessor/punctuation/comma.hpp | 21 - .../preprocessor/punctuation/comma_if.hpp | 31 - .../punctuation/detail/is_begin_parens.hpp | 48 - .../punctuation/is_begin_parens.hpp | 51 - .../preprocessor/punctuation/paren.hpp | 23 - .../preprocessor/punctuation/paren_if.hpp | 38 - .../punctuation/remove_parens.hpp | 39 - include/rpc/msgpack/preprocessor/repeat.hpp | 17 - .../rpc/msgpack/preprocessor/repeat_2nd.hpp | 17 - .../rpc/msgpack/preprocessor/repeat_3rd.hpp | 17 - .../msgpack/preprocessor/repeat_from_to.hpp | 17 - .../preprocessor/repeat_from_to_2nd.hpp | 17 - .../preprocessor/repeat_from_to_3rd.hpp | 17 - .../rpc/msgpack/preprocessor/repetition.hpp | 32 - .../preprocessor/repetition/deduce_r.hpp | 22 - .../preprocessor/repetition/deduce_z.hpp | 22 - .../repetition/detail/dmc/for.hpp | 536 - .../repetition/detail/edg/for.hpp | 534 - .../preprocessor/repetition/detail/for.hpp | 536 - .../repetition/detail/msvc/for.hpp | 277 - .../msgpack/preprocessor/repetition/enum.hpp | 66 - .../repetition/enum_binary_params.hpp | 54 - .../preprocessor/repetition/enum_params.hpp | 41 - .../repetition/enum_params_with_a_default.hpp | 25 - .../repetition/enum_params_with_defaults.hpp | 24 - .../preprocessor/repetition/enum_shifted.hpp | 68 - .../repetition/enum_shifted_binary_params.hpp | 51 - .../repetition/enum_shifted_params.hpp | 44 - .../preprocessor/repetition/enum_trailing.hpp | 63 - .../enum_trailing_binary_params.hpp | 53 - .../repetition/enum_trailing_params.hpp | 38 - .../msgpack/preprocessor/repetition/for.hpp | 324 - .../preprocessor/repetition/repeat.hpp | 825 - .../repetition/repeat_from_to.hpp | 87 - .../rpc/msgpack/preprocessor/selection.hpp | 18 - .../msgpack/preprocessor/selection/max.hpp | 39 - .../msgpack/preprocessor/selection/min.hpp | 39 - include/rpc/msgpack/preprocessor/seq.hpp | 44 - include/rpc/msgpack/preprocessor/seq/cat.hpp | 49 - .../seq/detail/binary_transform.hpp | 48 - .../preprocessor/seq/detail/is_empty.hpp | 49 - .../msgpack/preprocessor/seq/detail/split.hpp | 284 - include/rpc/msgpack/preprocessor/seq/elem.hpp | 304 - include/rpc/msgpack/preprocessor/seq/enum.hpp | 288 - .../rpc/msgpack/preprocessor/seq/filter.hpp | 54 - .../rpc/msgpack/preprocessor/seq/first_n.hpp | 30 - .../msgpack/preprocessor/seq/fold_left.hpp | 1070 - .../msgpack/preprocessor/seq/fold_right.hpp | 288 - .../rpc/msgpack/preprocessor/seq/for_each.hpp | 107 - .../msgpack/preprocessor/seq/for_each_i.hpp | 109 - .../preprocessor/seq/for_each_product.hpp | 126 - .../rpc/msgpack/preprocessor/seq/insert.hpp | 28 - .../rpc/msgpack/preprocessor/seq/pop_back.hpp | 29 - .../msgpack/preprocessor/seq/pop_front.hpp | 27 - .../msgpack/preprocessor/seq/push_back.hpp | 19 - .../msgpack/preprocessor/seq/push_front.hpp | 19 - .../rpc/msgpack/preprocessor/seq/remove.hpp | 29 - .../rpc/msgpack/preprocessor/seq/replace.hpp | 45 - .../rpc/msgpack/preprocessor/seq/rest_n.hpp | 46 - .../rpc/msgpack/preprocessor/seq/reverse.hpp | 39 - include/rpc/msgpack/preprocessor/seq/seq.hpp | 44 - include/rpc/msgpack/preprocessor/seq/size.hpp | 548 - .../rpc/msgpack/preprocessor/seq/subseq.hpp | 28 - .../rpc/msgpack/preprocessor/seq/to_array.hpp | 28 - .../rpc/msgpack/preprocessor/seq/to_list.hpp | 29 - .../rpc/msgpack/preprocessor/seq/to_tuple.hpp | 27 - .../msgpack/preprocessor/seq/transform.hpp | 48 - .../preprocessor/seq/variadic_seq_to_seq.hpp | 28 - include/rpc/msgpack/preprocessor/slot.hpp | 17 - .../rpc/msgpack/preprocessor/slot/counter.hpp | 25 - .../preprocessor/slot/detail/counter.hpp | 269 - .../msgpack/preprocessor/slot/detail/def.hpp | 49 - .../preprocessor/slot/detail/shared.hpp | 247 - .../preprocessor/slot/detail/slot1.hpp | 267 - .../preprocessor/slot/detail/slot2.hpp | 267 - .../preprocessor/slot/detail/slot3.hpp | 267 - .../preprocessor/slot/detail/slot4.hpp | 267 - .../preprocessor/slot/detail/slot5.hpp | 267 - .../rpc/msgpack/preprocessor/slot/slot.hpp | 32 - .../rpc/msgpack/preprocessor/stringize.hpp | 33 - include/rpc/msgpack/preprocessor/tuple.hpp | 35 - .../tuple/detail/is_single_return.hpp | 28 - .../rpc/msgpack/preprocessor/tuple/eat.hpp | 115 - .../rpc/msgpack/preprocessor/tuple/elem.hpp | 201 - .../rpc/msgpack/preprocessor/tuple/enum.hpp | 22 - .../rpc/msgpack/preprocessor/tuple/insert.hpp | 37 - .../msgpack/preprocessor/tuple/pop_back.hpp | 64 - .../msgpack/preprocessor/tuple/pop_front.hpp | 65 - .../msgpack/preprocessor/tuple/push_back.hpp | 31 - .../msgpack/preprocessor/tuple/push_front.hpp | 32 - .../rpc/msgpack/preprocessor/tuple/rem.hpp | 149 - .../rpc/msgpack/preprocessor/tuple/remove.hpp | 64 - .../msgpack/preprocessor/tuple/replace.hpp | 37 - .../msgpack/preprocessor/tuple/reverse.hpp | 117 - .../rpc/msgpack/preprocessor/tuple/size.hpp | 28 - .../msgpack/preprocessor/tuple/to_array.hpp | 39 - .../msgpack/preprocessor/tuple/to_list.hpp | 118 - .../rpc/msgpack/preprocessor/tuple/to_seq.hpp | 119 - include/rpc/msgpack/preprocessor/variadic.hpp | 23 - .../variadic/detail/is_single_return.hpp | 28 - .../msgpack/preprocessor/variadic/elem.hpp | 94 - .../msgpack/preprocessor/variadic/size.hpp | 30 - .../preprocessor/variadic/to_array.hpp | 32 - .../msgpack/preprocessor/variadic/to_list.hpp | 25 - .../msgpack/preprocessor/variadic/to_seq.hpp | 25 - .../preprocessor/variadic/to_tuple.hpp | 24 - include/rpc/msgpack/preprocessor/while.hpp | 17 - .../rpc/msgpack/preprocessor/wstringize.hpp | 29 - include/rpc/msgpack/sbuffer.h | 110 - include/rpc/msgpack/sbuffer.hpp | 17 - include/rpc/msgpack/sbuffer_decl.hpp | 17 - include/rpc/msgpack/sysdep.h | 201 - include/rpc/msgpack/type.hpp | 62 - include/rpc/msgpack/unpack.h | 281 - include/rpc/msgpack/unpack.hpp | 19 - include/rpc/msgpack/unpack_decl.hpp | 16 - include/rpc/msgpack/unpack_define.h | 89 - include/rpc/msgpack/unpack_exception.hpp | 15 - include/rpc/msgpack/unpack_template.h | 466 - include/rpc/msgpack/util.h | 15 - .../rpc/msgpack/v1/adaptor/adaptor_base.hpp | 116 - .../msgpack/v1/adaptor/adaptor_base_decl.hpp | 87 - include/rpc/msgpack/v1/adaptor/array_ref.hpp | 305 - .../rpc/msgpack/v1/adaptor/array_ref_decl.hpp | 55 - include/rpc/msgpack/v1/adaptor/bool.hpp | 66 - .../rpc/msgpack/v1/adaptor/boost/fusion.hpp | 203 - .../v1/adaptor/boost/msgpack_variant.hpp | 443 - .../v1/adaptor/boost/msgpack_variant_decl.hpp | 62 - .../rpc/msgpack/v1/adaptor/boost/optional.hpp | 96 - .../msgpack/v1/adaptor/boost/string_ref.hpp | 87 - .../msgpack/v1/adaptor/boost/string_view.hpp | 87 - include/rpc/msgpack/v1/adaptor/carray.hpp | 253 - include/rpc/msgpack/v1/adaptor/char_ptr.hpp | 92 - .../v1/adaptor/check_container_size.hpp | 67 - .../v1/adaptor/check_container_size_decl.hpp | 44 - .../rpc/msgpack/v1/adaptor/cpp11/array.hpp | 138 - .../msgpack/v1/adaptor/cpp11/array_char.hpp | 97 - .../v1/adaptor/cpp11/array_unsigned_char.hpp | 97 - .../msgpack/v1/adaptor/cpp11/forward_list.hpp | 94 - .../v1/adaptor/cpp11/reference_wrapper.hpp | 68 - .../msgpack/v1/adaptor/cpp11/shared_ptr.hpp | 82 - .../rpc/msgpack/v1/adaptor/cpp11/tuple.hpp | 175 - .../msgpack/v1/adaptor/cpp11/unique_ptr.hpp | 82 - .../v1/adaptor/cpp11/unordered_map.hpp | 182 - .../v1/adaptor/cpp11/unordered_set.hpp | 172 - .../rpc/msgpack/v1/adaptor/cpp17/optional.hpp | 90 - .../msgpack/v1/adaptor/cpp17/string_view.hpp | 86 - include/rpc/msgpack/v1/adaptor/define.hpp | 21 - .../rpc/msgpack/v1/adaptor/define_decl.hpp | 23 - include/rpc/msgpack/v1/adaptor/deque.hpp | 108 - .../v1/adaptor/detail/cpp03_define_array.hpp | 4481 ---- .../detail/cpp03_define_array_decl.hpp | 135 - .../v1/adaptor/detail/cpp03_define_map.hpp | 2737 -- .../adaptor/detail/cpp03_define_map_decl.hpp | 135 - .../v1/adaptor/detail/cpp03_msgpack_tuple.hpp | 14425 ----------- .../detail/cpp03_msgpack_tuple_decl.hpp | 317 - .../v1/adaptor/detail/cpp11_define_array.hpp | 127 - .../detail/cpp11_define_array_decl.hpp | 39 - .../v1/adaptor/detail/cpp11_define_map.hpp | 108 - .../adaptor/detail/cpp11_define_map_decl.hpp | 37 - .../v1/adaptor/detail/cpp11_msgpack_tuple.hpp | 220 - .../detail/cpp11_msgpack_tuple_decl.hpp | 120 - include/rpc/msgpack/v1/adaptor/ext.hpp | 236 - include/rpc/msgpack/v1/adaptor/ext_decl.hpp | 38 - include/rpc/msgpack/v1/adaptor/fixint.hpp | 283 - .../rpc/msgpack/v1/adaptor/fixint_decl.hpp | 46 - include/rpc/msgpack/v1/adaptor/float.hpp | 123 - include/rpc/msgpack/v1/adaptor/int.hpp | 426 - include/rpc/msgpack/v1/adaptor/int_decl.hpp | 49 - include/rpc/msgpack/v1/adaptor/list.hpp | 106 - include/rpc/msgpack/v1/adaptor/map.hpp | 314 - include/rpc/msgpack/v1/adaptor/map_decl.hpp | 36 - .../rpc/msgpack/v1/adaptor/msgpack_tuple.hpp | 21 - .../msgpack/v1/adaptor/msgpack_tuple_decl.hpp | 21 - include/rpc/msgpack/v1/adaptor/nil.hpp | 76 - include/rpc/msgpack/v1/adaptor/nil_decl.hpp | 44 - include/rpc/msgpack/v1/adaptor/pair.hpp | 83 - include/rpc/msgpack/v1/adaptor/raw.hpp | 106 - include/rpc/msgpack/v1/adaptor/raw_decl.hpp | 36 - include/rpc/msgpack/v1/adaptor/set.hpp | 188 - .../msgpack/v1/adaptor/size_equal_only.hpp | 118 - .../v1/adaptor/size_equal_only_decl.hpp | 52 - include/rpc/msgpack/v1/adaptor/string.hpp | 87 - .../msgpack/v1/adaptor/tr1/unordered_map.hpp | 171 - .../msgpack/v1/adaptor/tr1/unordered_set.hpp | 165 - include/rpc/msgpack/v1/adaptor/v4raw.hpp | 105 - include/rpc/msgpack/v1/adaptor/v4raw_decl.hpp | 34 - include/rpc/msgpack/v1/adaptor/vector.hpp | 121 - .../rpc/msgpack/v1/adaptor/vector_bool.hpp | 90 - .../rpc/msgpack/v1/adaptor/vector_char.hpp | 114 - .../v1/adaptor/vector_unsigned_char.hpp | 114 - include/rpc/msgpack/v1/cpp_config.hpp | 135 - include/rpc/msgpack/v1/cpp_config_decl.hpp | 131 - include/rpc/msgpack/v1/detail/cpp03_zone.hpp | 664 - .../rpc/msgpack/v1/detail/cpp03_zone_decl.hpp | 54 - include/rpc/msgpack/v1/detail/cpp11_zone.hpp | 366 - .../rpc/msgpack/v1/detail/cpp11_zone_decl.hpp | 55 - include/rpc/msgpack/v1/fbuffer.hpp | 60 - include/rpc/msgpack/v1/fbuffer_decl.hpp | 32 - include/rpc/msgpack/v1/iterator.hpp | 40 - include/rpc/msgpack/v1/iterator_decl.hpp | 40 - include/rpc/msgpack/v1/meta.hpp | 53 - include/rpc/msgpack/v1/meta_decl.hpp | 57 - include/rpc/msgpack/v1/object.hpp | 885 - include/rpc/msgpack/v1/object_decl.hpp | 115 - include/rpc/msgpack/v1/object_fwd.hpp | 255 - include/rpc/msgpack/v1/object_fwd_decl.hpp | 78 - include/rpc/msgpack/v1/pack.hpp | 1602 -- include/rpc/msgpack/v1/pack_decl.hpp | 91 - include/rpc/msgpack/v1/parse_return.hpp | 36 - include/rpc/msgpack/v1/preprocessor.hpp | 19 - include/rpc/msgpack/v1/sbuffer.hpp | 149 - include/rpc/msgpack/v1/sbuffer_decl.hpp | 33 - include/rpc/msgpack/v1/unpack.hpp | 1592 -- include/rpc/msgpack/v1/unpack_decl.hpp | 454 - include/rpc/msgpack/v1/unpack_exception.hpp | 122 - include/rpc/msgpack/v1/version.hpp | 36 - include/rpc/msgpack/v1/versioning.hpp | 69 - include/rpc/msgpack/v1/vrefbuffer.hpp | 292 - include/rpc/msgpack/v1/vrefbuffer_decl.hpp | 39 - include/rpc/msgpack/v1/zbuffer.hpp | 159 - include/rpc/msgpack/v1/zbuffer_decl.hpp | 37 - include/rpc/msgpack/v1/zone.hpp | 21 - include/rpc/msgpack/v1/zone_decl.hpp | 21 - .../rpc/msgpack/v2/adaptor/adaptor_base.hpp | 58 - .../msgpack/v2/adaptor/adaptor_base_decl.hpp | 52 - .../rpc/msgpack/v2/adaptor/array_ref_decl.hpp | 36 - .../v2/adaptor/boost/msgpack_variant_decl.hpp | 42 - .../v2/adaptor/check_container_size_decl.hpp | 39 - .../rpc/msgpack/v2/adaptor/define_decl.hpp | 23 - .../detail/cpp03_define_array_decl.hpp | 31 - .../adaptor/detail/cpp03_define_map_decl.hpp | 31 - .../detail/cpp03_msgpack_tuple_decl.hpp | 43 - .../detail/cpp11_define_array_decl.hpp | 32 - .../adaptor/detail/cpp11_define_map_decl.hpp | 31 - .../detail/cpp11_msgpack_tuple_decl.hpp | 59 - include/rpc/msgpack/v2/adaptor/ext_decl.hpp | 34 - .../rpc/msgpack/v2/adaptor/fixint_decl.hpp | 43 - include/rpc/msgpack/v2/adaptor/int_decl.hpp | 54 - include/rpc/msgpack/v2/adaptor/map_decl.hpp | 33 - .../msgpack/v2/adaptor/msgpack_tuple_decl.hpp | 21 - include/rpc/msgpack/v2/adaptor/nil_decl.hpp | 42 - include/rpc/msgpack/v2/adaptor/raw_decl.hpp | 33 - .../v2/adaptor/size_equal_only_decl.hpp | 35 - include/rpc/msgpack/v2/adaptor/v4raw_decl.hpp | 34 - include/rpc/msgpack/v2/cpp_config_decl.hpp | 84 - .../rpc/msgpack/v2/create_object_visitor.hpp | 249 - .../rpc/msgpack/v2/detail/cpp03_zone_decl.hpp | 31 - .../rpc/msgpack/v2/detail/cpp11_zone_decl.hpp | 31 - include/rpc/msgpack/v2/fbuffer_decl.hpp | 32 - include/rpc/msgpack/v2/iterator_decl.hpp | 33 - include/rpc/msgpack/v2/meta_decl.hpp | 50 - include/rpc/msgpack/v2/null_visitor.hpp | 97 - include/rpc/msgpack/v2/object.hpp | 33 - include/rpc/msgpack/v2/object_decl.hpp | 49 - include/rpc/msgpack/v2/object_fwd.hpp | 109 - include/rpc/msgpack/v2/object_fwd_decl.hpp | 75 - include/rpc/msgpack/v2/pack_decl.hpp | 55 - include/rpc/msgpack/v2/parse.hpp | 1061 - include/rpc/msgpack/v2/parse_return.hpp | 37 - include/rpc/msgpack/v2/sbuffer_decl.hpp | 33 - include/rpc/msgpack/v2/unpack.hpp | 345 - include/rpc/msgpack/v2/unpack_decl.hpp | 340 - include/rpc/msgpack/v2/vrefbuffer_decl.hpp | 29 - include/rpc/msgpack/v2/x3_parse.hpp | 874 - include/rpc/msgpack/v2/x3_unpack.hpp | 119 - include/rpc/msgpack/v2/zbuffer_decl.hpp | 29 - include/rpc/msgpack/v2/zone_decl.hpp | 21 - include/rpc/msgpack/version.h | 38 - include/rpc/msgpack/version.hpp | 36 - include/rpc/msgpack/version_master.h | 3 - include/rpc/msgpack/versioning.hpp | 69 - include/rpc/msgpack/vrefbuffer.h | 141 - include/rpc/msgpack/vrefbuffer.hpp | 17 - include/rpc/msgpack/vrefbuffer_decl.hpp | 16 - include/rpc/msgpack/zbuffer.h | 200 - include/rpc/msgpack/zbuffer.hpp | 17 - include/rpc/msgpack/zbuffer_decl.hpp | 16 - include/rpc/msgpack/zone.h | 163 - include/rpc/msgpack/zone.hpp | 17 - include/rpc/msgpack/zone_decl.hpp | 16 - include/rpc/nonstd/optional.hpp | 1083 - include/rpc/rpc_error.h | 55 - include/rpc/server.h | 123 - include/rpc/this_handler.h | 82 - include/rpc/this_handler.inl | 14 - include/rpc/this_server.h | 37 - include/rpc/this_session.h | 53 - include/rpc/version.h | 14 - include/rpc/version.h.in | 14 - installer/changelog.txt | 2 - installer/license.txt | 21 - installer/readme.txt | 3 - lib/rpc/client.cc | 249 - lib/rpc/detail/client_error.cc | 15 - lib/rpc/detail/response.cc | 65 - lib/rpc/detail/server_session.cc | 146 - lib/rpc/dispatcher.cc | 143 - lib/rpc/nonstd/optional.cc | 6 - lib/rpc/rpc_error.cc | 24 - lib/rpc/server.cc | 138 - lib/rpc/this_handler.cc | 27 - lib/rpc/this_server.cc | 19 - lib/rpc/this_session.cc | 28 - rpclib.pc.in | 10 - run_clang_check.sh | 3 - test/CMakeLists.txt | 5 + test/base.cpp | 13 + tests/CMakeLists.txt | 40 - tests/rpc/client_test.cc | 114 - tests/rpc/dispatcher_test.cc | 191 - tests/rpc/response_test.cc | 37 - tests/rpc/server_session_test.cc | 79 - tests/rpc/server_test.cc | 179 - tests/rpc/this_handler_test.cc | 97 - tests/rpc/this_server_test.cc | 37 - tests/rpc/this_session_test.cc | 55 - tests/testmain.cc | 8 - tests/testutils.h | 64 - utils/.style.yapf | 3 - utils/make_pack.py | 23 - utils/make_release_linux.sh | 40 - utils/make_release_windows.ps1 | 92 - utils/markygen.py | 111 - utils/pylint.conf | 407 - utils/renamesp.py | 50 - utils/reninclude.py | 22 - 1318 files changed, 82 insertions(+), 259887 deletions(-) create mode 100644 .cmake-format.yaml delete mode 100644 .editorconfig delete mode 100644 .travis.yml delete mode 100644 .ycm_extra_conf.py delete mode 100644 CHANGELOG.md delete mode 100644 LICENSE.md delete mode 100644 README.md delete mode 100644 appveyor.yml delete mode 100644 cmake/Findrpclib.cmake delete mode 100644 cmake/check_warning_flag.cmake delete mode 100644 cmake/coverage.cmake create mode 100644 cmake/find-deps.cmake delete mode 100644 cmake/localbuild/FindSFML.cmake delete mode 100644 cmake/localbuild/Findrpclib.cmake delete mode 100644 cmake/msvc_support.cmake delete mode 100644 cmake/policies.cmake delete mode 100644 cmake/rpclibConfig.cmake.in delete mode 100644 codecov.yml delete mode 100644 dependencies/include/asio.hpp delete mode 100644 dependencies/include/asio/async_result.hpp delete mode 100644 dependencies/include/asio/basic_datagram_socket.hpp delete mode 100644 dependencies/include/asio/basic_deadline_timer.hpp delete mode 100644 dependencies/include/asio/basic_io_object.hpp delete mode 100644 dependencies/include/asio/basic_raw_socket.hpp delete mode 100644 dependencies/include/asio/basic_seq_packet_socket.hpp delete mode 100644 dependencies/include/asio/basic_serial_port.hpp delete mode 100644 dependencies/include/asio/basic_signal_set.hpp delete mode 100644 dependencies/include/asio/basic_socket.hpp delete mode 100644 dependencies/include/asio/basic_socket_acceptor.hpp delete mode 100644 dependencies/include/asio/basic_socket_iostream.hpp delete mode 100644 dependencies/include/asio/basic_socket_streambuf.hpp delete mode 100644 dependencies/include/asio/basic_stream_socket.hpp delete mode 100644 dependencies/include/asio/basic_streambuf.hpp delete mode 100644 dependencies/include/asio/basic_streambuf_fwd.hpp delete mode 100644 dependencies/include/asio/basic_waitable_timer.hpp delete mode 100644 dependencies/include/asio/buffer.hpp delete mode 100644 dependencies/include/asio/buffered_read_stream.hpp delete mode 100644 dependencies/include/asio/buffered_read_stream_fwd.hpp delete mode 100644 dependencies/include/asio/buffered_stream.hpp delete mode 100644 dependencies/include/asio/buffered_stream_fwd.hpp delete mode 100644 dependencies/include/asio/buffered_write_stream.hpp delete mode 100644 dependencies/include/asio/buffered_write_stream_fwd.hpp delete mode 100644 dependencies/include/asio/buffers_iterator.hpp delete mode 100644 dependencies/include/asio/completion_condition.hpp delete mode 100644 dependencies/include/asio/connect.hpp delete mode 100644 dependencies/include/asio/coroutine.hpp delete mode 100644 dependencies/include/asio/datagram_socket_service.hpp delete mode 100644 dependencies/include/asio/deadline_timer.hpp delete mode 100644 dependencies/include/asio/deadline_timer_service.hpp delete mode 100644 dependencies/include/asio/detail/addressof.hpp delete mode 100644 dependencies/include/asio/detail/array.hpp delete mode 100644 dependencies/include/asio/detail/array_fwd.hpp delete mode 100644 dependencies/include/asio/detail/assert.hpp delete mode 100644 dependencies/include/asio/detail/atomic_count.hpp delete mode 100644 dependencies/include/asio/detail/base_from_completion_cond.hpp delete mode 100644 dependencies/include/asio/detail/bind_handler.hpp delete mode 100644 dependencies/include/asio/detail/buffer_resize_guard.hpp delete mode 100644 dependencies/include/asio/detail/buffer_sequence_adapter.hpp delete mode 100644 dependencies/include/asio/detail/buffered_stream_storage.hpp delete mode 100644 dependencies/include/asio/detail/call_stack.hpp delete mode 100644 dependencies/include/asio/detail/chrono_time_traits.hpp delete mode 100644 dependencies/include/asio/detail/completion_handler.hpp delete mode 100644 dependencies/include/asio/detail/config.hpp delete mode 100644 dependencies/include/asio/detail/consuming_buffers.hpp delete mode 100644 dependencies/include/asio/detail/cstdint.hpp delete mode 100644 dependencies/include/asio/detail/date_time_fwd.hpp delete mode 100644 dependencies/include/asio/detail/deadline_timer_service.hpp delete mode 100644 dependencies/include/asio/detail/dependent_type.hpp delete mode 100644 dependencies/include/asio/detail/descriptor_ops.hpp delete mode 100644 dependencies/include/asio/detail/descriptor_read_op.hpp delete mode 100644 dependencies/include/asio/detail/descriptor_write_op.hpp delete mode 100644 dependencies/include/asio/detail/dev_poll_reactor.hpp delete mode 100644 dependencies/include/asio/detail/epoll_reactor.hpp delete mode 100644 dependencies/include/asio/detail/event.hpp delete mode 100644 dependencies/include/asio/detail/eventfd_select_interrupter.hpp delete mode 100644 dependencies/include/asio/detail/fd_set_adapter.hpp delete mode 100644 dependencies/include/asio/detail/fenced_block.hpp delete mode 100644 dependencies/include/asio/detail/function.hpp delete mode 100644 dependencies/include/asio/detail/gcc_arm_fenced_block.hpp delete mode 100644 dependencies/include/asio/detail/gcc_hppa_fenced_block.hpp delete mode 100644 dependencies/include/asio/detail/gcc_sync_fenced_block.hpp delete mode 100644 dependencies/include/asio/detail/gcc_x86_fenced_block.hpp delete mode 100644 dependencies/include/asio/detail/handler_alloc_helpers.hpp delete mode 100644 dependencies/include/asio/detail/handler_cont_helpers.hpp delete mode 100644 dependencies/include/asio/detail/handler_invoke_helpers.hpp delete mode 100644 dependencies/include/asio/detail/handler_tracking.hpp delete mode 100644 dependencies/include/asio/detail/handler_type_requirements.hpp delete mode 100644 dependencies/include/asio/detail/hash_map.hpp delete mode 100644 dependencies/include/asio/detail/impl/buffer_sequence_adapter.ipp delete mode 100644 dependencies/include/asio/detail/impl/descriptor_ops.ipp delete mode 100644 dependencies/include/asio/detail/impl/dev_poll_reactor.hpp delete mode 100644 dependencies/include/asio/detail/impl/dev_poll_reactor.ipp delete mode 100644 dependencies/include/asio/detail/impl/epoll_reactor.hpp delete mode 100644 dependencies/include/asio/detail/impl/epoll_reactor.ipp delete mode 100644 dependencies/include/asio/detail/impl/eventfd_select_interrupter.ipp delete mode 100644 dependencies/include/asio/detail/impl/handler_tracking.ipp delete mode 100644 dependencies/include/asio/detail/impl/kqueue_reactor.hpp delete mode 100644 dependencies/include/asio/detail/impl/kqueue_reactor.ipp delete mode 100644 dependencies/include/asio/detail/impl/pipe_select_interrupter.ipp delete mode 100644 dependencies/include/asio/detail/impl/posix_event.ipp delete mode 100644 dependencies/include/asio/detail/impl/posix_mutex.ipp delete mode 100644 dependencies/include/asio/detail/impl/posix_thread.ipp delete mode 100644 dependencies/include/asio/detail/impl/posix_tss_ptr.ipp delete mode 100644 dependencies/include/asio/detail/impl/reactive_descriptor_service.ipp delete mode 100644 dependencies/include/asio/detail/impl/reactive_serial_port_service.ipp delete mode 100644 dependencies/include/asio/detail/impl/reactive_socket_service_base.ipp delete mode 100644 dependencies/include/asio/detail/impl/resolver_service_base.ipp delete mode 100644 dependencies/include/asio/detail/impl/select_reactor.hpp delete mode 100644 dependencies/include/asio/detail/impl/select_reactor.ipp delete mode 100644 dependencies/include/asio/detail/impl/service_registry.hpp delete mode 100644 dependencies/include/asio/detail/impl/service_registry.ipp delete mode 100644 dependencies/include/asio/detail/impl/signal_set_service.ipp delete mode 100644 dependencies/include/asio/detail/impl/socket_ops.ipp delete mode 100644 dependencies/include/asio/detail/impl/socket_select_interrupter.ipp delete mode 100644 dependencies/include/asio/detail/impl/strand_service.hpp delete mode 100644 dependencies/include/asio/detail/impl/strand_service.ipp delete mode 100644 dependencies/include/asio/detail/impl/task_io_service.hpp delete mode 100644 dependencies/include/asio/detail/impl/task_io_service.ipp delete mode 100644 dependencies/include/asio/detail/impl/throw_error.ipp delete mode 100644 dependencies/include/asio/detail/impl/timer_queue_ptime.ipp delete mode 100644 dependencies/include/asio/detail/impl/timer_queue_set.ipp delete mode 100644 dependencies/include/asio/detail/impl/win_event.ipp delete mode 100644 dependencies/include/asio/detail/impl/win_iocp_handle_service.ipp delete mode 100644 dependencies/include/asio/detail/impl/win_iocp_io_service.hpp delete mode 100644 dependencies/include/asio/detail/impl/win_iocp_io_service.ipp delete mode 100644 dependencies/include/asio/detail/impl/win_iocp_serial_port_service.ipp delete mode 100644 dependencies/include/asio/detail/impl/win_iocp_socket_service_base.ipp delete mode 100644 dependencies/include/asio/detail/impl/win_mutex.ipp delete mode 100644 dependencies/include/asio/detail/impl/win_object_handle_service.ipp delete mode 100644 dependencies/include/asio/detail/impl/win_static_mutex.ipp delete mode 100644 dependencies/include/asio/detail/impl/win_thread.ipp delete mode 100644 dependencies/include/asio/detail/impl/win_tss_ptr.ipp delete mode 100644 dependencies/include/asio/detail/impl/winrt_ssocket_service_base.ipp delete mode 100644 dependencies/include/asio/detail/impl/winrt_timer_scheduler.hpp delete mode 100644 dependencies/include/asio/detail/impl/winrt_timer_scheduler.ipp delete mode 100644 dependencies/include/asio/detail/impl/winsock_init.ipp delete mode 100644 dependencies/include/asio/detail/io_control.hpp delete mode 100644 dependencies/include/asio/detail/keyword_tss_ptr.hpp delete mode 100644 dependencies/include/asio/detail/kqueue_reactor.hpp delete mode 100644 dependencies/include/asio/detail/limits.hpp delete mode 100644 dependencies/include/asio/detail/local_free_on_block_exit.hpp delete mode 100644 dependencies/include/asio/detail/macos_fenced_block.hpp delete mode 100644 dependencies/include/asio/detail/mutex.hpp delete mode 100644 dependencies/include/asio/detail/noncopyable.hpp delete mode 100644 dependencies/include/asio/detail/null_event.hpp delete mode 100644 dependencies/include/asio/detail/null_fenced_block.hpp delete mode 100644 dependencies/include/asio/detail/null_mutex.hpp delete mode 100644 dependencies/include/asio/detail/null_reactor.hpp delete mode 100644 dependencies/include/asio/detail/null_signal_blocker.hpp delete mode 100644 dependencies/include/asio/detail/null_socket_service.hpp delete mode 100644 dependencies/include/asio/detail/null_static_mutex.hpp delete mode 100644 dependencies/include/asio/detail/null_thread.hpp delete mode 100644 dependencies/include/asio/detail/null_tss_ptr.hpp delete mode 100644 dependencies/include/asio/detail/object_pool.hpp delete mode 100644 dependencies/include/asio/detail/old_win_sdk_compat.hpp delete mode 100644 dependencies/include/asio/detail/op_queue.hpp delete mode 100644 dependencies/include/asio/detail/operation.hpp delete mode 100644 dependencies/include/asio/detail/pipe_select_interrupter.hpp delete mode 100644 dependencies/include/asio/detail/pop_options.hpp delete mode 100644 dependencies/include/asio/detail/posix_event.hpp delete mode 100644 dependencies/include/asio/detail/posix_fd_set_adapter.hpp delete mode 100644 dependencies/include/asio/detail/posix_mutex.hpp delete mode 100644 dependencies/include/asio/detail/posix_signal_blocker.hpp delete mode 100644 dependencies/include/asio/detail/posix_static_mutex.hpp delete mode 100644 dependencies/include/asio/detail/posix_thread.hpp delete mode 100644 dependencies/include/asio/detail/posix_tss_ptr.hpp delete mode 100644 dependencies/include/asio/detail/push_options.hpp delete mode 100644 dependencies/include/asio/detail/reactive_descriptor_service.hpp delete mode 100644 dependencies/include/asio/detail/reactive_null_buffers_op.hpp delete mode 100644 dependencies/include/asio/detail/reactive_serial_port_service.hpp delete mode 100644 dependencies/include/asio/detail/reactive_socket_accept_op.hpp delete mode 100644 dependencies/include/asio/detail/reactive_socket_connect_op.hpp delete mode 100644 dependencies/include/asio/detail/reactive_socket_recv_op.hpp delete mode 100644 dependencies/include/asio/detail/reactive_socket_recvfrom_op.hpp delete mode 100644 dependencies/include/asio/detail/reactive_socket_recvmsg_op.hpp delete mode 100644 dependencies/include/asio/detail/reactive_socket_send_op.hpp delete mode 100644 dependencies/include/asio/detail/reactive_socket_sendto_op.hpp delete mode 100644 dependencies/include/asio/detail/reactive_socket_service.hpp delete mode 100644 dependencies/include/asio/detail/reactive_socket_service_base.hpp delete mode 100644 dependencies/include/asio/detail/reactor.hpp delete mode 100644 dependencies/include/asio/detail/reactor_fwd.hpp delete mode 100644 dependencies/include/asio/detail/reactor_op.hpp delete mode 100644 dependencies/include/asio/detail/reactor_op_queue.hpp delete mode 100644 dependencies/include/asio/detail/regex_fwd.hpp delete mode 100644 dependencies/include/asio/detail/resolve_endpoint_op.hpp delete mode 100644 dependencies/include/asio/detail/resolve_op.hpp delete mode 100644 dependencies/include/asio/detail/resolver_service.hpp delete mode 100644 dependencies/include/asio/detail/resolver_service_base.hpp delete mode 100644 dependencies/include/asio/detail/scoped_lock.hpp delete mode 100644 dependencies/include/asio/detail/scoped_ptr.hpp delete mode 100644 dependencies/include/asio/detail/select_interrupter.hpp delete mode 100644 dependencies/include/asio/detail/select_reactor.hpp delete mode 100644 dependencies/include/asio/detail/service_registry.hpp delete mode 100644 dependencies/include/asio/detail/shared_ptr.hpp delete mode 100644 dependencies/include/asio/detail/signal_blocker.hpp delete mode 100644 dependencies/include/asio/detail/signal_handler.hpp delete mode 100644 dependencies/include/asio/detail/signal_init.hpp delete mode 100644 dependencies/include/asio/detail/signal_op.hpp delete mode 100644 dependencies/include/asio/detail/signal_set_service.hpp delete mode 100644 dependencies/include/asio/detail/socket_holder.hpp delete mode 100644 dependencies/include/asio/detail/socket_ops.hpp delete mode 100644 dependencies/include/asio/detail/socket_option.hpp delete mode 100644 dependencies/include/asio/detail/socket_select_interrupter.hpp delete mode 100644 dependencies/include/asio/detail/socket_types.hpp delete mode 100644 dependencies/include/asio/detail/solaris_fenced_block.hpp delete mode 100644 dependencies/include/asio/detail/static_mutex.hpp delete mode 100644 dependencies/include/asio/detail/std_event.hpp delete mode 100644 dependencies/include/asio/detail/std_mutex.hpp delete mode 100644 dependencies/include/asio/detail/std_static_mutex.hpp delete mode 100644 dependencies/include/asio/detail/std_thread.hpp delete mode 100644 dependencies/include/asio/detail/strand_service.hpp delete mode 100644 dependencies/include/asio/detail/task_io_service.hpp delete mode 100644 dependencies/include/asio/detail/task_io_service_operation.hpp delete mode 100644 dependencies/include/asio/detail/task_io_service_thread_info.hpp delete mode 100644 dependencies/include/asio/detail/thread.hpp delete mode 100644 dependencies/include/asio/detail/thread_info_base.hpp delete mode 100644 dependencies/include/asio/detail/throw_error.hpp delete mode 100644 dependencies/include/asio/detail/throw_exception.hpp delete mode 100644 dependencies/include/asio/detail/timer_queue.hpp delete mode 100644 dependencies/include/asio/detail/timer_queue_base.hpp delete mode 100644 dependencies/include/asio/detail/timer_queue_ptime.hpp delete mode 100644 dependencies/include/asio/detail/timer_queue_set.hpp delete mode 100644 dependencies/include/asio/detail/timer_scheduler.hpp delete mode 100644 dependencies/include/asio/detail/timer_scheduler_fwd.hpp delete mode 100644 dependencies/include/asio/detail/tss_ptr.hpp delete mode 100644 dependencies/include/asio/detail/type_traits.hpp delete mode 100644 dependencies/include/asio/detail/variadic_templates.hpp delete mode 100644 dependencies/include/asio/detail/wait_handler.hpp delete mode 100644 dependencies/include/asio/detail/wait_op.hpp delete mode 100644 dependencies/include/asio/detail/weak_ptr.hpp delete mode 100644 dependencies/include/asio/detail/win_event.hpp delete mode 100644 dependencies/include/asio/detail/win_fd_set_adapter.hpp delete mode 100644 dependencies/include/asio/detail/win_fenced_block.hpp delete mode 100644 dependencies/include/asio/detail/win_iocp_handle_read_op.hpp delete mode 100644 dependencies/include/asio/detail/win_iocp_handle_service.hpp delete mode 100644 dependencies/include/asio/detail/win_iocp_handle_write_op.hpp delete mode 100644 dependencies/include/asio/detail/win_iocp_io_service.hpp delete mode 100644 dependencies/include/asio/detail/win_iocp_null_buffers_op.hpp delete mode 100644 dependencies/include/asio/detail/win_iocp_operation.hpp delete mode 100644 dependencies/include/asio/detail/win_iocp_overlapped_op.hpp delete mode 100644 dependencies/include/asio/detail/win_iocp_overlapped_ptr.hpp delete mode 100644 dependencies/include/asio/detail/win_iocp_serial_port_service.hpp delete mode 100644 dependencies/include/asio/detail/win_iocp_socket_accept_op.hpp delete mode 100644 dependencies/include/asio/detail/win_iocp_socket_connect_op.hpp delete mode 100644 dependencies/include/asio/detail/win_iocp_socket_recv_op.hpp delete mode 100644 dependencies/include/asio/detail/win_iocp_socket_recvfrom_op.hpp delete mode 100644 dependencies/include/asio/detail/win_iocp_socket_recvmsg_op.hpp delete mode 100644 dependencies/include/asio/detail/win_iocp_socket_send_op.hpp delete mode 100644 dependencies/include/asio/detail/win_iocp_socket_service.hpp delete mode 100644 dependencies/include/asio/detail/win_iocp_socket_service_base.hpp delete mode 100644 dependencies/include/asio/detail/win_iocp_thread_info.hpp delete mode 100644 dependencies/include/asio/detail/win_mutex.hpp delete mode 100644 dependencies/include/asio/detail/win_object_handle_service.hpp delete mode 100644 dependencies/include/asio/detail/win_static_mutex.hpp delete mode 100644 dependencies/include/asio/detail/win_thread.hpp delete mode 100644 dependencies/include/asio/detail/win_tss_ptr.hpp delete mode 100644 dependencies/include/asio/detail/wince_thread.hpp delete mode 100644 dependencies/include/asio/detail/winrt_async_manager.hpp delete mode 100644 dependencies/include/asio/detail/winrt_async_op.hpp delete mode 100644 dependencies/include/asio/detail/winrt_resolve_op.hpp delete mode 100644 dependencies/include/asio/detail/winrt_resolver_service.hpp delete mode 100644 dependencies/include/asio/detail/winrt_socket_connect_op.hpp delete mode 100644 dependencies/include/asio/detail/winrt_socket_recv_op.hpp delete mode 100644 dependencies/include/asio/detail/winrt_socket_send_op.hpp delete mode 100644 dependencies/include/asio/detail/winrt_ssocket_service.hpp delete mode 100644 dependencies/include/asio/detail/winrt_ssocket_service_base.hpp delete mode 100644 dependencies/include/asio/detail/winrt_timer_scheduler.hpp delete mode 100644 dependencies/include/asio/detail/winrt_utils.hpp delete mode 100644 dependencies/include/asio/detail/winsock_init.hpp delete mode 100644 dependencies/include/asio/detail/wrapped_handler.hpp delete mode 100644 dependencies/include/asio/error.hpp delete mode 100644 dependencies/include/asio/error_code.hpp delete mode 100644 dependencies/include/asio/generic/basic_endpoint.hpp delete mode 100644 dependencies/include/asio/generic/datagram_protocol.hpp delete mode 100644 dependencies/include/asio/generic/detail/endpoint.hpp delete mode 100644 dependencies/include/asio/generic/detail/impl/endpoint.ipp delete mode 100644 dependencies/include/asio/generic/raw_protocol.hpp delete mode 100644 dependencies/include/asio/generic/seq_packet_protocol.hpp delete mode 100644 dependencies/include/asio/generic/stream_protocol.hpp delete mode 100644 dependencies/include/asio/handler_alloc_hook.hpp delete mode 100644 dependencies/include/asio/handler_continuation_hook.hpp delete mode 100644 dependencies/include/asio/handler_invoke_hook.hpp delete mode 100644 dependencies/include/asio/handler_type.hpp delete mode 100644 dependencies/include/asio/high_resolution_timer.hpp delete mode 100644 dependencies/include/asio/impl/buffered_read_stream.hpp delete mode 100644 dependencies/include/asio/impl/buffered_write_stream.hpp delete mode 100644 dependencies/include/asio/impl/connect.hpp delete mode 100644 dependencies/include/asio/impl/error.ipp delete mode 100644 dependencies/include/asio/impl/error_code.ipp delete mode 100644 dependencies/include/asio/impl/handler_alloc_hook.ipp delete mode 100644 dependencies/include/asio/impl/io_service.hpp delete mode 100644 dependencies/include/asio/impl/io_service.ipp delete mode 100644 dependencies/include/asio/impl/read.hpp delete mode 100644 dependencies/include/asio/impl/read_at.hpp delete mode 100644 dependencies/include/asio/impl/read_until.hpp delete mode 100644 dependencies/include/asio/impl/serial_port_base.hpp delete mode 100644 dependencies/include/asio/impl/serial_port_base.ipp delete mode 100644 dependencies/include/asio/impl/spawn.hpp delete mode 100644 dependencies/include/asio/impl/src.cpp delete mode 100644 dependencies/include/asio/impl/src.hpp delete mode 100644 dependencies/include/asio/impl/use_future.hpp delete mode 100644 dependencies/include/asio/impl/write.hpp delete mode 100644 dependencies/include/asio/impl/write_at.hpp delete mode 100644 dependencies/include/asio/io_service.hpp delete mode 100644 dependencies/include/asio/ip/address.hpp delete mode 100644 dependencies/include/asio/ip/address_v4.hpp delete mode 100644 dependencies/include/asio/ip/address_v6.hpp delete mode 100644 dependencies/include/asio/ip/basic_endpoint.hpp delete mode 100644 dependencies/include/asio/ip/basic_resolver.hpp delete mode 100644 dependencies/include/asio/ip/basic_resolver_entry.hpp delete mode 100644 dependencies/include/asio/ip/basic_resolver_iterator.hpp delete mode 100644 dependencies/include/asio/ip/basic_resolver_query.hpp delete mode 100644 dependencies/include/asio/ip/detail/endpoint.hpp delete mode 100644 dependencies/include/asio/ip/detail/impl/endpoint.ipp delete mode 100644 dependencies/include/asio/ip/detail/socket_option.hpp delete mode 100644 dependencies/include/asio/ip/host_name.hpp delete mode 100644 dependencies/include/asio/ip/icmp.hpp delete mode 100644 dependencies/include/asio/ip/impl/address.hpp delete mode 100644 dependencies/include/asio/ip/impl/address.ipp delete mode 100644 dependencies/include/asio/ip/impl/address_v4.hpp delete mode 100644 dependencies/include/asio/ip/impl/address_v4.ipp delete mode 100644 dependencies/include/asio/ip/impl/address_v6.hpp delete mode 100644 dependencies/include/asio/ip/impl/address_v6.ipp delete mode 100644 dependencies/include/asio/ip/impl/basic_endpoint.hpp delete mode 100644 dependencies/include/asio/ip/impl/host_name.ipp delete mode 100644 dependencies/include/asio/ip/multicast.hpp delete mode 100644 dependencies/include/asio/ip/resolver_query_base.hpp delete mode 100644 dependencies/include/asio/ip/resolver_service.hpp delete mode 100644 dependencies/include/asio/ip/tcp.hpp delete mode 100644 dependencies/include/asio/ip/udp.hpp delete mode 100644 dependencies/include/asio/ip/unicast.hpp delete mode 100644 dependencies/include/asio/ip/v6_only.hpp delete mode 100644 dependencies/include/asio/is_read_buffered.hpp delete mode 100644 dependencies/include/asio/is_write_buffered.hpp delete mode 100644 dependencies/include/asio/local/basic_endpoint.hpp delete mode 100644 dependencies/include/asio/local/connect_pair.hpp delete mode 100644 dependencies/include/asio/local/datagram_protocol.hpp delete mode 100644 dependencies/include/asio/local/detail/endpoint.hpp delete mode 100644 dependencies/include/asio/local/detail/impl/endpoint.ipp delete mode 100644 dependencies/include/asio/local/stream_protocol.hpp delete mode 100644 dependencies/include/asio/placeholders.hpp delete mode 100644 dependencies/include/asio/posix/basic_descriptor.hpp delete mode 100644 dependencies/include/asio/posix/basic_stream_descriptor.hpp delete mode 100644 dependencies/include/asio/posix/descriptor_base.hpp delete mode 100644 dependencies/include/asio/posix/stream_descriptor.hpp delete mode 100644 dependencies/include/asio/posix/stream_descriptor_service.hpp delete mode 100644 dependencies/include/asio/raw_socket_service.hpp delete mode 100644 dependencies/include/asio/read.hpp delete mode 100644 dependencies/include/asio/read_at.hpp delete mode 100644 dependencies/include/asio/read_until.hpp delete mode 100644 dependencies/include/asio/seq_packet_socket_service.hpp delete mode 100644 dependencies/include/asio/serial_port.hpp delete mode 100644 dependencies/include/asio/serial_port_base.hpp delete mode 100644 dependencies/include/asio/serial_port_service.hpp delete mode 100644 dependencies/include/asio/signal_set.hpp delete mode 100644 dependencies/include/asio/signal_set_service.hpp delete mode 100644 dependencies/include/asio/socket_acceptor_service.hpp delete mode 100644 dependencies/include/asio/socket_base.hpp delete mode 100644 dependencies/include/asio/spawn.hpp delete mode 100644 dependencies/include/asio/ssl.hpp delete mode 100644 dependencies/include/asio/ssl/basic_context.hpp delete mode 100644 dependencies/include/asio/ssl/context.hpp delete mode 100644 dependencies/include/asio/ssl/context_base.hpp delete mode 100644 dependencies/include/asio/ssl/context_service.hpp delete mode 100644 dependencies/include/asio/ssl/detail/buffered_handshake_op.hpp delete mode 100644 dependencies/include/asio/ssl/detail/engine.hpp delete mode 100644 dependencies/include/asio/ssl/detail/handshake_op.hpp delete mode 100644 dependencies/include/asio/ssl/detail/impl/engine.ipp delete mode 100644 dependencies/include/asio/ssl/detail/impl/openssl_init.ipp delete mode 100644 dependencies/include/asio/ssl/detail/io.hpp delete mode 100644 dependencies/include/asio/ssl/detail/openssl_init.hpp delete mode 100644 dependencies/include/asio/ssl/detail/openssl_types.hpp delete mode 100644 dependencies/include/asio/ssl/detail/password_callback.hpp delete mode 100644 dependencies/include/asio/ssl/detail/read_op.hpp delete mode 100644 dependencies/include/asio/ssl/detail/shutdown_op.hpp delete mode 100644 dependencies/include/asio/ssl/detail/stream_core.hpp delete mode 100644 dependencies/include/asio/ssl/detail/verify_callback.hpp delete mode 100644 dependencies/include/asio/ssl/detail/write_op.hpp delete mode 100644 dependencies/include/asio/ssl/error.hpp delete mode 100644 dependencies/include/asio/ssl/impl/context.hpp delete mode 100644 dependencies/include/asio/ssl/impl/context.ipp delete mode 100644 dependencies/include/asio/ssl/impl/error.ipp delete mode 100644 dependencies/include/asio/ssl/impl/rfc2818_verification.ipp delete mode 100644 dependencies/include/asio/ssl/impl/src.hpp delete mode 100644 dependencies/include/asio/ssl/old/basic_context.hpp delete mode 100644 dependencies/include/asio/ssl/old/context_service.hpp delete mode 100644 dependencies/include/asio/ssl/old/detail/openssl_context_service.hpp delete mode 100644 dependencies/include/asio/ssl/old/detail/openssl_operation.hpp delete mode 100644 dependencies/include/asio/ssl/old/detail/openssl_stream_service.hpp delete mode 100644 dependencies/include/asio/ssl/old/stream.hpp delete mode 100644 dependencies/include/asio/ssl/old/stream_service.hpp delete mode 100644 dependencies/include/asio/ssl/rfc2818_verification.hpp delete mode 100644 dependencies/include/asio/ssl/stream.hpp delete mode 100644 dependencies/include/asio/ssl/stream_base.hpp delete mode 100644 dependencies/include/asio/ssl/stream_service.hpp delete mode 100644 dependencies/include/asio/ssl/verify_context.hpp delete mode 100644 dependencies/include/asio/ssl/verify_mode.hpp delete mode 100644 dependencies/include/asio/steady_timer.hpp delete mode 100644 dependencies/include/asio/strand.hpp delete mode 100644 dependencies/include/asio/stream_socket_service.hpp delete mode 100644 dependencies/include/asio/streambuf.hpp delete mode 100644 dependencies/include/asio/system_error.hpp delete mode 100644 dependencies/include/asio/system_timer.hpp delete mode 100644 dependencies/include/asio/thread.hpp delete mode 100644 dependencies/include/asio/time_traits.hpp delete mode 100644 dependencies/include/asio/unyield.hpp delete mode 100644 dependencies/include/asio/use_future.hpp delete mode 100644 dependencies/include/asio/version.hpp delete mode 100644 dependencies/include/asio/wait_traits.hpp delete mode 100644 dependencies/include/asio/waitable_timer_service.hpp delete mode 100644 dependencies/include/asio/windows/basic_handle.hpp delete mode 100644 dependencies/include/asio/windows/basic_object_handle.hpp delete mode 100644 dependencies/include/asio/windows/basic_random_access_handle.hpp delete mode 100644 dependencies/include/asio/windows/basic_stream_handle.hpp delete mode 100644 dependencies/include/asio/windows/object_handle.hpp delete mode 100644 dependencies/include/asio/windows/object_handle_service.hpp delete mode 100644 dependencies/include/asio/windows/overlapped_ptr.hpp delete mode 100644 dependencies/include/asio/windows/random_access_handle.hpp delete mode 100644 dependencies/include/asio/windows/random_access_handle_service.hpp delete mode 100644 dependencies/include/asio/windows/stream_handle.hpp delete mode 100644 dependencies/include/asio/windows/stream_handle_service.hpp delete mode 100644 dependencies/include/asio/write.hpp delete mode 100644 dependencies/include/asio/write_at.hpp delete mode 100644 dependencies/include/asio/yield.hpp delete mode 100644 dependencies/include/format.h delete mode 100644 dependencies/include/gmock/gmock.h delete mode 100644 dependencies/include/gtest/gtest.h delete mode 100644 dependencies/include/pimpl_ptr.hh delete mode 100644 dependencies/include/posix.h delete mode 100644 dependencies/src/asio.cpp delete mode 100644 dependencies/src/asio_ssl.cpp delete mode 100644 dependencies/src/format.cc delete mode 100644 dependencies/src/gmock-gtest-all.cc delete mode 100644 dependencies/src/posix.cc delete mode 100644 doc/Doxyfile delete mode 100644 doc/DoxygenLayout.xml delete mode 100644 doc/Makefile delete mode 100644 doc/artwork/artwork.svg delete mode 100644 doc/artwork/favicon.ico delete mode 100644 doc/artwork/logo.png create mode 100644 doc/design.md delete mode 100644 doc/mkdocs.yml delete mode 100644 doc/pages/compiling.md delete mode 100644 doc/pages/contributing.md delete mode 100644 doc/pages/cookbook.md delete mode 100644 doc/pages/extra.css delete mode 100644 doc/pages/gettingstarted.md delete mode 100644 doc/pages/glossary.md delete mode 100644 doc/pages/index.md delete mode 100644 doc/pages/internals.md delete mode 100644 doc/pages/primer.md delete mode 100644 doc/pages/reference.md delete mode 100644 doc/pages/roadmap.md delete mode 100644 doc/pages/spec.md delete mode 100644 doc/pages/versions.md delete mode 100644 doc/pages/versions.md.in delete mode 100644 doc/reference.md.mako delete mode 100644 doc/requirements.txt delete mode 100644 doc/rpclib-cinder/404.html delete mode 100644 doc/rpclib-cinder/__init__.py delete mode 100644 doc/rpclib-cinder/base.html delete mode 100644 doc/rpclib-cinder/content.html delete mode 100644 doc/rpclib-cinder/css/base.css delete mode 100644 doc/rpclib-cinder/css/bootstrap-custom.css delete mode 100644 doc/rpclib-cinder/css/bootstrap-custom.min.css delete mode 100644 doc/rpclib-cinder/css/cinder.css delete mode 100644 doc/rpclib-cinder/css/font-awesome-4.0.3.css delete mode 100644 doc/rpclib-cinder/css/highlight.css delete mode 100644 doc/rpclib-cinder/css/styles/agate.css delete mode 100644 doc/rpclib-cinder/css/styles/androidstudio.css delete mode 100644 doc/rpclib-cinder/css/styles/arduino-light.css delete mode 100644 doc/rpclib-cinder/css/styles/arta.css delete mode 100644 doc/rpclib-cinder/css/styles/ascetic.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-cave-dark.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-cave-light.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-dune-dark.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-dune-light.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-estuary-dark.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-estuary-light.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-forest-dark.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-forest-light.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-heath-dark.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-heath-light.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-lakeside-dark.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-lakeside-light.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-plateau-dark.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-plateau-light.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-savanna-dark.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-savanna-light.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-seaside-dark.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-seaside-light.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-sulphurpool-dark.css delete mode 100644 doc/rpclib-cinder/css/styles/atelier-sulphurpool-light.css delete mode 100644 doc/rpclib-cinder/css/styles/brown-paper.css delete mode 100644 doc/rpclib-cinder/css/styles/brown-papersq.png delete mode 100644 doc/rpclib-cinder/css/styles/codepen-embed.css delete mode 100644 doc/rpclib-cinder/css/styles/color-brewer.css delete mode 100644 doc/rpclib-cinder/css/styles/dark.css delete mode 100644 doc/rpclib-cinder/css/styles/darkula.css delete mode 100644 doc/rpclib-cinder/css/styles/default.css delete mode 100644 doc/rpclib-cinder/css/styles/docco.css delete mode 100644 doc/rpclib-cinder/css/styles/dracula.css delete mode 100644 doc/rpclib-cinder/css/styles/far.css delete mode 100644 doc/rpclib-cinder/css/styles/foundation.css delete mode 100644 doc/rpclib-cinder/css/styles/github-gist.css delete mode 100644 doc/rpclib-cinder/css/styles/github.css delete mode 100644 doc/rpclib-cinder/css/styles/googlecode.css delete mode 100644 doc/rpclib-cinder/css/styles/grayscale.css delete mode 100644 doc/rpclib-cinder/css/styles/gruvbox-dark.css delete mode 100644 doc/rpclib-cinder/css/styles/gruvbox-light.css delete mode 100644 doc/rpclib-cinder/css/styles/hopscotch.css delete mode 100644 doc/rpclib-cinder/css/styles/hybrid.css delete mode 100644 doc/rpclib-cinder/css/styles/idea.css delete mode 100644 doc/rpclib-cinder/css/styles/ir-black.css delete mode 100644 doc/rpclib-cinder/css/styles/kimbie.dark.css delete mode 100644 doc/rpclib-cinder/css/styles/kimbie.light.css delete mode 100644 doc/rpclib-cinder/css/styles/magula.css delete mode 100644 doc/rpclib-cinder/css/styles/mono-blue.css delete mode 100644 doc/rpclib-cinder/css/styles/monokai-sublime.css delete mode 100644 doc/rpclib-cinder/css/styles/monokai.css delete mode 100644 doc/rpclib-cinder/css/styles/obsidian.css delete mode 100644 doc/rpclib-cinder/css/styles/paraiso-dark.css delete mode 100644 doc/rpclib-cinder/css/styles/paraiso-light.css delete mode 100644 doc/rpclib-cinder/css/styles/pojoaque.css delete mode 100644 doc/rpclib-cinder/css/styles/pojoaque.jpg delete mode 100644 doc/rpclib-cinder/css/styles/purebasic.css delete mode 100644 doc/rpclib-cinder/css/styles/qtcreator_dark.css delete mode 100644 doc/rpclib-cinder/css/styles/qtcreator_light.css delete mode 100644 doc/rpclib-cinder/css/styles/railscasts.css delete mode 100644 doc/rpclib-cinder/css/styles/rainbow.css delete mode 100644 doc/rpclib-cinder/css/styles/school-book.css delete mode 100644 doc/rpclib-cinder/css/styles/school-book.png delete mode 100644 doc/rpclib-cinder/css/styles/solarized-dark.css delete mode 100644 doc/rpclib-cinder/css/styles/solarized-light.css delete mode 100644 doc/rpclib-cinder/css/styles/sunburst.css delete mode 100644 doc/rpclib-cinder/css/styles/tomorrow-night-blue.css delete mode 100644 doc/rpclib-cinder/css/styles/tomorrow-night-bright.css delete mode 100644 doc/rpclib-cinder/css/styles/tomorrow-night-eighties.css delete mode 100644 doc/rpclib-cinder/css/styles/tomorrow-night.css delete mode 100644 doc/rpclib-cinder/css/styles/tomorrow.css delete mode 100644 doc/rpclib-cinder/css/styles/vs.css delete mode 100644 doc/rpclib-cinder/css/styles/xcode.css delete mode 100644 doc/rpclib-cinder/css/styles/xt256.css delete mode 100644 doc/rpclib-cinder/css/styles/zenburn.css delete mode 100755 doc/rpclib-cinder/fonts/fontawesome-webfont.eot delete mode 100755 doc/rpclib-cinder/fonts/fontawesome-webfont.svg delete mode 100755 doc/rpclib-cinder/fonts/fontawesome-webfont.ttf delete mode 100755 doc/rpclib-cinder/fonts/fontawesome-webfont.woff delete mode 100644 doc/rpclib-cinder/img/favicon.ico delete mode 100644 doc/rpclib-cinder/img/grid1.png delete mode 100644 doc/rpclib-cinder/img/grid10.png delete mode 100644 doc/rpclib-cinder/img/grid11.png delete mode 100644 doc/rpclib-cinder/img/grid12.png delete mode 100644 doc/rpclib-cinder/img/grid13.png delete mode 100644 doc/rpclib-cinder/img/grid14.png delete mode 100644 doc/rpclib-cinder/img/grid15.png delete mode 100644 doc/rpclib-cinder/img/grid16.png delete mode 100644 doc/rpclib-cinder/img/grid17.png delete mode 100644 doc/rpclib-cinder/img/grid18.png delete mode 100644 doc/rpclib-cinder/img/grid19.png delete mode 100644 doc/rpclib-cinder/img/grid2.png delete mode 100644 doc/rpclib-cinder/img/grid20.png delete mode 100644 doc/rpclib-cinder/img/grid3.png delete mode 100644 doc/rpclib-cinder/img/grid4.png delete mode 100644 doc/rpclib-cinder/img/grid5.png delete mode 100644 doc/rpclib-cinder/img/grid6.png delete mode 100644 doc/rpclib-cinder/img/grid7.png delete mode 100644 doc/rpclib-cinder/img/grid8.png delete mode 100644 doc/rpclib-cinder/img/grid9.png delete mode 100644 doc/rpclib-cinder/js/base.js delete mode 100644 doc/rpclib-cinder/js/bootstrap-3.0.3.min.js delete mode 100644 doc/rpclib-cinder/js/highlight.pack.js delete mode 100644 doc/rpclib-cinder/js/jquery-1.10.2.min.js delete mode 100644 doc/rpclib-cinder/nav-sub.html delete mode 100644 doc/rpclib-cinder/nav.html delete mode 100644 doc/rpclib-cinder/toc.html delete mode 100644 examples/calculator/CMakeLists.txt delete mode 100644 examples/calculator/calculator_client.cc delete mode 100644 examples/calculator/calculator_server.cc delete mode 100644 examples/client/CMakeLists.txt delete mode 100644 examples/client/main.cc delete mode 100644 examples/echo/CMakeLists.txt delete mode 100644 examples/echo/echo_client.cc delete mode 100644 examples/echo/echo_server.cc delete mode 100644 examples/mandelbrot/CMakeLists.txt delete mode 100644 examples/mandelbrot/mandelbrot.h delete mode 100644 examples/mandelbrot/mandelbrot_client.cc delete mode 100644 examples/mandelbrot/mandelbrot_server.cc delete mode 100644 examples/server/CMakeLists.txt delete mode 100644 examples/server/main.cc delete mode 100644 include/rpc/client.h delete mode 100644 include/rpc/client.inl delete mode 100644 include/rpc/compatibility.h delete mode 100644 include/rpc/config.h delete mode 100644 include/rpc/config.h.in delete mode 100644 include/rpc/detail/all.h delete mode 100644 include/rpc/detail/any.h delete mode 100644 include/rpc/detail/async_writer.h delete mode 100644 include/rpc/detail/bool.h delete mode 100644 include/rpc/detail/call.h delete mode 100644 include/rpc/detail/client_error.h delete mode 100644 include/rpc/detail/constant.h delete mode 100644 include/rpc/detail/dev_utils.h delete mode 100644 include/rpc/detail/func_tools.h delete mode 100644 include/rpc/detail/func_traits.h delete mode 100644 include/rpc/detail/if.h delete mode 100644 include/rpc/detail/invoke.h delete mode 100644 include/rpc/detail/is_specialization_of.h delete mode 100644 include/rpc/detail/log.h delete mode 100644 include/rpc/detail/make_unique.h delete mode 100644 include/rpc/detail/not.h delete mode 100644 include/rpc/detail/pimpl.h delete mode 100644 include/rpc/detail/response.h delete mode 100644 include/rpc/detail/server_session.h delete mode 100644 include/rpc/detail/thread_group.h delete mode 100644 include/rpc/detail/util.h delete mode 100644 include/rpc/dispatcher.h delete mode 100644 include/rpc/dispatcher.inl delete mode 100644 include/rpc/msgpack.hpp delete mode 100644 include/rpc/msgpack/adaptor/adaptor_base.hpp delete mode 100644 include/rpc/msgpack/adaptor/adaptor_base_decl.hpp delete mode 100644 include/rpc/msgpack/adaptor/array_ref.hpp delete mode 100644 include/rpc/msgpack/adaptor/array_ref_decl.hpp delete mode 100644 include/rpc/msgpack/adaptor/bool.hpp delete mode 100644 include/rpc/msgpack/adaptor/boost/fusion.hpp delete mode 100644 include/rpc/msgpack/adaptor/boost/msgpack_variant.hpp delete mode 100644 include/rpc/msgpack/adaptor/boost/msgpack_variant_decl.hpp delete mode 100644 include/rpc/msgpack/adaptor/boost/optional.hpp delete mode 100644 include/rpc/msgpack/adaptor/boost/string_ref.hpp delete mode 100644 include/rpc/msgpack/adaptor/boost/string_view.hpp delete mode 100644 include/rpc/msgpack/adaptor/carray.hpp delete mode 100644 include/rpc/msgpack/adaptor/char_ptr.hpp delete mode 100644 include/rpc/msgpack/adaptor/check_container_size.hpp delete mode 100644 include/rpc/msgpack/adaptor/check_container_size_decl.hpp delete mode 100644 include/rpc/msgpack/adaptor/cpp11/array.hpp delete mode 100644 include/rpc/msgpack/adaptor/cpp11/array_char.hpp delete mode 100644 include/rpc/msgpack/adaptor/cpp11/array_unsigned_char.hpp delete mode 100644 include/rpc/msgpack/adaptor/cpp11/forward_list.hpp delete mode 100644 include/rpc/msgpack/adaptor/cpp11/reference_wrapper.hpp delete mode 100644 include/rpc/msgpack/adaptor/cpp11/shared_ptr.hpp delete mode 100644 include/rpc/msgpack/adaptor/cpp11/tuple.hpp delete mode 100644 include/rpc/msgpack/adaptor/cpp11/unique_ptr.hpp delete mode 100644 include/rpc/msgpack/adaptor/cpp11/unordered_map.hpp delete mode 100644 include/rpc/msgpack/adaptor/cpp11/unordered_set.hpp delete mode 100644 include/rpc/msgpack/adaptor/cpp17/optional.hpp delete mode 100644 include/rpc/msgpack/adaptor/cpp17/string_view.hpp delete mode 100644 include/rpc/msgpack/adaptor/define.hpp delete mode 100644 include/rpc/msgpack/adaptor/define_decl.hpp delete mode 100644 include/rpc/msgpack/adaptor/deque.hpp delete mode 100644 include/rpc/msgpack/adaptor/ext.hpp delete mode 100644 include/rpc/msgpack/adaptor/ext_decl.hpp delete mode 100644 include/rpc/msgpack/adaptor/fixint.hpp delete mode 100644 include/rpc/msgpack/adaptor/fixint_decl.hpp delete mode 100644 include/rpc/msgpack/adaptor/float.hpp delete mode 100644 include/rpc/msgpack/adaptor/int.hpp delete mode 100644 include/rpc/msgpack/adaptor/int_decl.hpp delete mode 100644 include/rpc/msgpack/adaptor/list.hpp delete mode 100644 include/rpc/msgpack/adaptor/map.hpp delete mode 100644 include/rpc/msgpack/adaptor/map_decl.hpp delete mode 100644 include/rpc/msgpack/adaptor/msgpack_tuple.hpp delete mode 100644 include/rpc/msgpack/adaptor/msgpack_tuple_decl.hpp delete mode 100644 include/rpc/msgpack/adaptor/nil.hpp delete mode 100644 include/rpc/msgpack/adaptor/nil_decl.hpp delete mode 100644 include/rpc/msgpack/adaptor/pair.hpp delete mode 100644 include/rpc/msgpack/adaptor/raw.hpp delete mode 100644 include/rpc/msgpack/adaptor/raw_decl.hpp delete mode 100644 include/rpc/msgpack/adaptor/set.hpp delete mode 100644 include/rpc/msgpack/adaptor/size_equal_only.hpp delete mode 100644 include/rpc/msgpack/adaptor/size_equal_only_decl.hpp delete mode 100644 include/rpc/msgpack/adaptor/string.hpp delete mode 100644 include/rpc/msgpack/adaptor/tr1/unordered_map.hpp delete mode 100644 include/rpc/msgpack/adaptor/tr1/unordered_set.hpp delete mode 100644 include/rpc/msgpack/adaptor/v4raw.hpp delete mode 100644 include/rpc/msgpack/adaptor/v4raw_decl.hpp delete mode 100644 include/rpc/msgpack/adaptor/vector.hpp delete mode 100644 include/rpc/msgpack/adaptor/vector_bool.hpp delete mode 100644 include/rpc/msgpack/adaptor/vector_char.hpp delete mode 100644 include/rpc/msgpack/adaptor/vector_unsigned_char.hpp delete mode 100644 include/rpc/msgpack/cpp_config.hpp delete mode 100644 include/rpc/msgpack/cpp_config_decl.hpp delete mode 100644 include/rpc/msgpack/fbuffer.h delete mode 100644 include/rpc/msgpack/fbuffer.hpp delete mode 100644 include/rpc/msgpack/fbuffer_decl.hpp delete mode 100644 include/rpc/msgpack/gcc_atomic.h delete mode 100644 include/rpc/msgpack/gcc_atomic.hpp delete mode 100644 include/rpc/msgpack/iterator.hpp delete mode 100644 include/rpc/msgpack/iterator_decl.hpp delete mode 100644 include/rpc/msgpack/meta.hpp delete mode 100644 include/rpc/msgpack/meta_decl.hpp delete mode 100644 include/rpc/msgpack/object.h delete mode 100644 include/rpc/msgpack/object.hpp delete mode 100644 include/rpc/msgpack/object_decl.hpp delete mode 100644 include/rpc/msgpack/object_fwd.hpp delete mode 100644 include/rpc/msgpack/object_fwd_decl.hpp delete mode 100644 include/rpc/msgpack/pack.h delete mode 100644 include/rpc/msgpack/pack.hpp delete mode 100644 include/rpc/msgpack/pack_decl.hpp delete mode 100644 include/rpc/msgpack/pack_define.h delete mode 100644 include/rpc/msgpack/pack_template.h delete mode 100644 include/rpc/msgpack/parse_return.hpp delete mode 100644 include/rpc/msgpack/predef.h delete mode 100644 include/rpc/msgpack/predef/architecture.h delete mode 100644 include/rpc/msgpack/predef/architecture/alpha.h delete mode 100644 include/rpc/msgpack/predef/architecture/arm.h delete mode 100644 include/rpc/msgpack/predef/architecture/blackfin.h delete mode 100644 include/rpc/msgpack/predef/architecture/convex.h delete mode 100644 include/rpc/msgpack/predef/architecture/ia64.h delete mode 100644 include/rpc/msgpack/predef/architecture/m68k.h delete mode 100644 include/rpc/msgpack/predef/architecture/mips.h delete mode 100644 include/rpc/msgpack/predef/architecture/parisc.h delete mode 100644 include/rpc/msgpack/predef/architecture/ppc.h delete mode 100644 include/rpc/msgpack/predef/architecture/pyramid.h delete mode 100644 include/rpc/msgpack/predef/architecture/rs6k.h delete mode 100644 include/rpc/msgpack/predef/architecture/sparc.h delete mode 100644 include/rpc/msgpack/predef/architecture/superh.h delete mode 100644 include/rpc/msgpack/predef/architecture/sys370.h delete mode 100644 include/rpc/msgpack/predef/architecture/sys390.h delete mode 100644 include/rpc/msgpack/predef/architecture/x86.h delete mode 100644 include/rpc/msgpack/predef/architecture/x86/32.h delete mode 100644 include/rpc/msgpack/predef/architecture/x86/64.h delete mode 100644 include/rpc/msgpack/predef/architecture/z.h delete mode 100644 include/rpc/msgpack/predef/compiler.h delete mode 100644 include/rpc/msgpack/predef/compiler/borland.h delete mode 100644 include/rpc/msgpack/predef/compiler/clang.h delete mode 100644 include/rpc/msgpack/predef/compiler/comeau.h delete mode 100644 include/rpc/msgpack/predef/compiler/compaq.h delete mode 100644 include/rpc/msgpack/predef/compiler/diab.h delete mode 100644 include/rpc/msgpack/predef/compiler/digitalmars.h delete mode 100644 include/rpc/msgpack/predef/compiler/dignus.h delete mode 100644 include/rpc/msgpack/predef/compiler/edg.h delete mode 100644 include/rpc/msgpack/predef/compiler/ekopath.h delete mode 100644 include/rpc/msgpack/predef/compiler/gcc.h delete mode 100644 include/rpc/msgpack/predef/compiler/gcc_xml.h delete mode 100644 include/rpc/msgpack/predef/compiler/greenhills.h delete mode 100644 include/rpc/msgpack/predef/compiler/hp_acc.h delete mode 100644 include/rpc/msgpack/predef/compiler/iar.h delete mode 100644 include/rpc/msgpack/predef/compiler/ibm.h delete mode 100644 include/rpc/msgpack/predef/compiler/intel.h delete mode 100644 include/rpc/msgpack/predef/compiler/kai.h delete mode 100644 include/rpc/msgpack/predef/compiler/llvm.h delete mode 100644 include/rpc/msgpack/predef/compiler/metaware.h delete mode 100644 include/rpc/msgpack/predef/compiler/metrowerks.h delete mode 100644 include/rpc/msgpack/predef/compiler/microtec.h delete mode 100644 include/rpc/msgpack/predef/compiler/mpw.h delete mode 100644 include/rpc/msgpack/predef/compiler/palm.h delete mode 100644 include/rpc/msgpack/predef/compiler/pgi.h delete mode 100644 include/rpc/msgpack/predef/compiler/sgi_mipspro.h delete mode 100644 include/rpc/msgpack/predef/compiler/sunpro.h delete mode 100644 include/rpc/msgpack/predef/compiler/tendra.h delete mode 100644 include/rpc/msgpack/predef/compiler/visualc.h delete mode 100644 include/rpc/msgpack/predef/compiler/watcom.h delete mode 100644 include/rpc/msgpack/predef/detail/_cassert.h delete mode 100644 include/rpc/msgpack/predef/detail/_exception.h delete mode 100644 include/rpc/msgpack/predef/detail/comp_detected.h delete mode 100644 include/rpc/msgpack/predef/detail/endian_compat.h delete mode 100644 include/rpc/msgpack/predef/detail/os_detected.h delete mode 100644 include/rpc/msgpack/predef/detail/platform_detected.h delete mode 100644 include/rpc/msgpack/predef/detail/test.h delete mode 100644 include/rpc/msgpack/predef/detail/test_def.h delete mode 100644 include/rpc/msgpack/predef/hardware.h delete mode 100644 include/rpc/msgpack/predef/hardware/simd.h delete mode 100644 include/rpc/msgpack/predef/hardware/simd/arm.h delete mode 100644 include/rpc/msgpack/predef/hardware/simd/arm/versions.h delete mode 100644 include/rpc/msgpack/predef/hardware/simd/ppc.h delete mode 100644 include/rpc/msgpack/predef/hardware/simd/ppc/versions.h delete mode 100644 include/rpc/msgpack/predef/hardware/simd/x86.h delete mode 100644 include/rpc/msgpack/predef/hardware/simd/x86/versions.h delete mode 100644 include/rpc/msgpack/predef/hardware/simd/x86_amd.h delete mode 100644 include/rpc/msgpack/predef/hardware/simd/x86_amd/versions.h delete mode 100644 include/rpc/msgpack/predef/language.h delete mode 100644 include/rpc/msgpack/predef/language/objc.h delete mode 100644 include/rpc/msgpack/predef/language/stdc.h delete mode 100644 include/rpc/msgpack/predef/language/stdcpp.h delete mode 100644 include/rpc/msgpack/predef/library.h delete mode 100644 include/rpc/msgpack/predef/library/c.h delete mode 100644 include/rpc/msgpack/predef/library/c/_prefix.h delete mode 100644 include/rpc/msgpack/predef/library/c/gnu.h delete mode 100644 include/rpc/msgpack/predef/library/c/uc.h delete mode 100644 include/rpc/msgpack/predef/library/c/vms.h delete mode 100644 include/rpc/msgpack/predef/library/c/zos.h delete mode 100644 include/rpc/msgpack/predef/library/std.h delete mode 100644 include/rpc/msgpack/predef/library/std/_prefix.h delete mode 100644 include/rpc/msgpack/predef/library/std/cxx.h delete mode 100644 include/rpc/msgpack/predef/library/std/dinkumware.h delete mode 100644 include/rpc/msgpack/predef/library/std/libcomo.h delete mode 100644 include/rpc/msgpack/predef/library/std/modena.h delete mode 100644 include/rpc/msgpack/predef/library/std/msl.h delete mode 100644 include/rpc/msgpack/predef/library/std/roguewave.h delete mode 100644 include/rpc/msgpack/predef/library/std/sgi.h delete mode 100644 include/rpc/msgpack/predef/library/std/stdcpp3.h delete mode 100644 include/rpc/msgpack/predef/library/std/stlport.h delete mode 100644 include/rpc/msgpack/predef/library/std/vacpp.h delete mode 100644 include/rpc/msgpack/predef/make.h delete mode 100644 include/rpc/msgpack/predef/os.h delete mode 100644 include/rpc/msgpack/predef/os/aix.h delete mode 100644 include/rpc/msgpack/predef/os/amigaos.h delete mode 100644 include/rpc/msgpack/predef/os/android.h delete mode 100644 include/rpc/msgpack/predef/os/beos.h delete mode 100644 include/rpc/msgpack/predef/os/bsd.h delete mode 100644 include/rpc/msgpack/predef/os/bsd/bsdi.h delete mode 100644 include/rpc/msgpack/predef/os/bsd/dragonfly.h delete mode 100644 include/rpc/msgpack/predef/os/bsd/free.h delete mode 100644 include/rpc/msgpack/predef/os/bsd/net.h delete mode 100644 include/rpc/msgpack/predef/os/bsd/open.h delete mode 100644 include/rpc/msgpack/predef/os/cygwin.h delete mode 100644 include/rpc/msgpack/predef/os/haiku.h delete mode 100644 include/rpc/msgpack/predef/os/hpux.h delete mode 100644 include/rpc/msgpack/predef/os/ios.h delete mode 100644 include/rpc/msgpack/predef/os/irix.h delete mode 100644 include/rpc/msgpack/predef/os/linux.h delete mode 100644 include/rpc/msgpack/predef/os/macos.h delete mode 100644 include/rpc/msgpack/predef/os/os400.h delete mode 100644 include/rpc/msgpack/predef/os/qnxnto.h delete mode 100644 include/rpc/msgpack/predef/os/solaris.h delete mode 100644 include/rpc/msgpack/predef/os/unix.h delete mode 100644 include/rpc/msgpack/predef/os/vms.h delete mode 100644 include/rpc/msgpack/predef/os/windows.h delete mode 100644 include/rpc/msgpack/predef/other.h delete mode 100644 include/rpc/msgpack/predef/other/endian.h delete mode 100644 include/rpc/msgpack/predef/platform.h delete mode 100644 include/rpc/msgpack/predef/platform/mingw.h delete mode 100644 include/rpc/msgpack/predef/platform/windows_desktop.h delete mode 100644 include/rpc/msgpack/predef/platform/windows_phone.h delete mode 100644 include/rpc/msgpack/predef/platform/windows_runtime.h delete mode 100644 include/rpc/msgpack/predef/platform/windows_store.h delete mode 100644 include/rpc/msgpack/predef/version.h delete mode 100644 include/rpc/msgpack/predef/version_number.h delete mode 100644 include/rpc/msgpack/preprocessor.hpp delete mode 100644 include/rpc/msgpack/preprocessor/arithmetic.hpp delete mode 100644 include/rpc/msgpack/preprocessor/arithmetic/add.hpp delete mode 100644 include/rpc/msgpack/preprocessor/arithmetic/dec.hpp delete mode 100644 include/rpc/msgpack/preprocessor/arithmetic/detail/div_base.hpp delete mode 100644 include/rpc/msgpack/preprocessor/arithmetic/div.hpp delete mode 100644 include/rpc/msgpack/preprocessor/arithmetic/inc.hpp delete mode 100644 include/rpc/msgpack/preprocessor/arithmetic/mod.hpp delete mode 100644 include/rpc/msgpack/preprocessor/arithmetic/mul.hpp delete mode 100644 include/rpc/msgpack/preprocessor/arithmetic/sub.hpp delete mode 100644 include/rpc/msgpack/preprocessor/array.hpp delete mode 100644 include/rpc/msgpack/preprocessor/array/data.hpp delete mode 100644 include/rpc/msgpack/preprocessor/array/detail/get_data.hpp delete mode 100644 include/rpc/msgpack/preprocessor/array/elem.hpp delete mode 100644 include/rpc/msgpack/preprocessor/array/enum.hpp delete mode 100644 include/rpc/msgpack/preprocessor/array/insert.hpp delete mode 100644 include/rpc/msgpack/preprocessor/array/pop_back.hpp delete mode 100644 include/rpc/msgpack/preprocessor/array/pop_front.hpp delete mode 100644 include/rpc/msgpack/preprocessor/array/push_back.hpp delete mode 100644 include/rpc/msgpack/preprocessor/array/push_front.hpp delete mode 100644 include/rpc/msgpack/preprocessor/array/remove.hpp delete mode 100644 include/rpc/msgpack/preprocessor/array/replace.hpp delete mode 100644 include/rpc/msgpack/preprocessor/array/reverse.hpp delete mode 100644 include/rpc/msgpack/preprocessor/array/size.hpp delete mode 100644 include/rpc/msgpack/preprocessor/array/to_list.hpp delete mode 100644 include/rpc/msgpack/preprocessor/array/to_seq.hpp delete mode 100644 include/rpc/msgpack/preprocessor/array/to_tuple.hpp delete mode 100644 include/rpc/msgpack/preprocessor/assert_msg.hpp delete mode 100644 include/rpc/msgpack/preprocessor/cat.hpp delete mode 100644 include/rpc/msgpack/preprocessor/comma.hpp delete mode 100644 include/rpc/msgpack/preprocessor/comma_if.hpp delete mode 100644 include/rpc/msgpack/preprocessor/comparison.hpp delete mode 100644 include/rpc/msgpack/preprocessor/comparison/equal.hpp delete mode 100644 include/rpc/msgpack/preprocessor/comparison/greater.hpp delete mode 100644 include/rpc/msgpack/preprocessor/comparison/greater_equal.hpp delete mode 100644 include/rpc/msgpack/preprocessor/comparison/less.hpp delete mode 100644 include/rpc/msgpack/preprocessor/comparison/less_equal.hpp delete mode 100644 include/rpc/msgpack/preprocessor/comparison/not_equal.hpp delete mode 100644 include/rpc/msgpack/preprocessor/config/config.hpp delete mode 100644 include/rpc/msgpack/preprocessor/config/limits.hpp delete mode 100644 include/rpc/msgpack/preprocessor/control.hpp delete mode 100644 include/rpc/msgpack/preprocessor/control/deduce_d.hpp delete mode 100644 include/rpc/msgpack/preprocessor/control/detail/dmc/while.hpp delete mode 100644 include/rpc/msgpack/preprocessor/control/detail/edg/while.hpp delete mode 100644 include/rpc/msgpack/preprocessor/control/detail/msvc/while.hpp delete mode 100644 include/rpc/msgpack/preprocessor/control/detail/while.hpp delete mode 100644 include/rpc/msgpack/preprocessor/control/expr_if.hpp delete mode 100644 include/rpc/msgpack/preprocessor/control/expr_iif.hpp delete mode 100644 include/rpc/msgpack/preprocessor/control/if.hpp delete mode 100644 include/rpc/msgpack/preprocessor/control/iif.hpp delete mode 100644 include/rpc/msgpack/preprocessor/control/while.hpp delete mode 100644 include/rpc/msgpack/preprocessor/debug.hpp delete mode 100644 include/rpc/msgpack/preprocessor/debug/assert.hpp delete mode 100644 include/rpc/msgpack/preprocessor/debug/error.hpp delete mode 100644 include/rpc/msgpack/preprocessor/debug/line.hpp delete mode 100644 include/rpc/msgpack/preprocessor/dec.hpp delete mode 100644 include/rpc/msgpack/preprocessor/detail/auto_rec.hpp delete mode 100644 include/rpc/msgpack/preprocessor/detail/check.hpp delete mode 100644 include/rpc/msgpack/preprocessor/detail/dmc/auto_rec.hpp delete mode 100644 include/rpc/msgpack/preprocessor/detail/is_binary.hpp delete mode 100644 include/rpc/msgpack/preprocessor/detail/is_nullary.hpp delete mode 100644 include/rpc/msgpack/preprocessor/detail/is_unary.hpp delete mode 100644 include/rpc/msgpack/preprocessor/detail/null.hpp delete mode 100644 include/rpc/msgpack/preprocessor/detail/split.hpp delete mode 100644 include/rpc/msgpack/preprocessor/empty.hpp delete mode 100644 include/rpc/msgpack/preprocessor/enum.hpp delete mode 100644 include/rpc/msgpack/preprocessor/enum_params.hpp delete mode 100644 include/rpc/msgpack/preprocessor/enum_params_with_a_default.hpp delete mode 100644 include/rpc/msgpack/preprocessor/enum_params_with_defaults.hpp delete mode 100644 include/rpc/msgpack/preprocessor/enum_shifted.hpp delete mode 100644 include/rpc/msgpack/preprocessor/enum_shifted_params.hpp delete mode 100644 include/rpc/msgpack/preprocessor/expand.hpp delete mode 100644 include/rpc/msgpack/preprocessor/expr_if.hpp delete mode 100644 include/rpc/msgpack/preprocessor/facilities.hpp delete mode 100644 include/rpc/msgpack/preprocessor/facilities/apply.hpp delete mode 100644 include/rpc/msgpack/preprocessor/facilities/detail/is_empty.hpp delete mode 100644 include/rpc/msgpack/preprocessor/facilities/empty.hpp delete mode 100644 include/rpc/msgpack/preprocessor/facilities/expand.hpp delete mode 100644 include/rpc/msgpack/preprocessor/facilities/identity.hpp delete mode 100644 include/rpc/msgpack/preprocessor/facilities/intercept.hpp delete mode 100644 include/rpc/msgpack/preprocessor/facilities/is_1.hpp delete mode 100644 include/rpc/msgpack/preprocessor/facilities/is_empty.hpp delete mode 100644 include/rpc/msgpack/preprocessor/facilities/is_empty_or_1.hpp delete mode 100644 include/rpc/msgpack/preprocessor/facilities/is_empty_variadic.hpp delete mode 100644 include/rpc/msgpack/preprocessor/facilities/overload.hpp delete mode 100644 include/rpc/msgpack/preprocessor/for.hpp delete mode 100644 include/rpc/msgpack/preprocessor/identity.hpp delete mode 100644 include/rpc/msgpack/preprocessor/if.hpp delete mode 100644 include/rpc/msgpack/preprocessor/inc.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iterate.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower1.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower2.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower3.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower4.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower5.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper1.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper2.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper3.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper4.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper5.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/finish.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/iter/forward1.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/iter/forward2.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/iter/forward3.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/iter/forward4.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/iter/forward5.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse1.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse2.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse3.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse4.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse5.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/local.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/rlocal.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/self.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/detail/start.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/iterate.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/local.hpp delete mode 100644 include/rpc/msgpack/preprocessor/iteration/self.hpp delete mode 100644 include/rpc/msgpack/preprocessor/library.hpp delete mode 100644 include/rpc/msgpack/preprocessor/limits.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/adt.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/append.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/at.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/cat.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/detail/dmc/fold_left.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/detail/edg/fold_left.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/detail/edg/fold_right.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/detail/fold_left.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/detail/fold_right.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/enum.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/filter.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/first_n.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/fold_left.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/fold_right.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/for_each.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/for_each_i.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/for_each_product.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/rest_n.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/reverse.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/size.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/to_array.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/to_seq.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/to_tuple.hpp delete mode 100644 include/rpc/msgpack/preprocessor/list/transform.hpp delete mode 100644 include/rpc/msgpack/preprocessor/logical.hpp delete mode 100644 include/rpc/msgpack/preprocessor/logical/and.hpp delete mode 100644 include/rpc/msgpack/preprocessor/logical/bitand.hpp delete mode 100644 include/rpc/msgpack/preprocessor/logical/bitnor.hpp delete mode 100644 include/rpc/msgpack/preprocessor/logical/bitor.hpp delete mode 100644 include/rpc/msgpack/preprocessor/logical/bitxor.hpp delete mode 100644 include/rpc/msgpack/preprocessor/logical/bool.hpp delete mode 100644 include/rpc/msgpack/preprocessor/logical/compl.hpp delete mode 100644 include/rpc/msgpack/preprocessor/logical/nor.hpp delete mode 100644 include/rpc/msgpack/preprocessor/logical/not.hpp delete mode 100644 include/rpc/msgpack/preprocessor/logical/or.hpp delete mode 100644 include/rpc/msgpack/preprocessor/logical/xor.hpp delete mode 100644 include/rpc/msgpack/preprocessor/max.hpp delete mode 100644 include/rpc/msgpack/preprocessor/min.hpp delete mode 100644 include/rpc/msgpack/preprocessor/punctuation.hpp delete mode 100644 include/rpc/msgpack/preprocessor/punctuation/comma.hpp delete mode 100644 include/rpc/msgpack/preprocessor/punctuation/comma_if.hpp delete mode 100644 include/rpc/msgpack/preprocessor/punctuation/detail/is_begin_parens.hpp delete mode 100644 include/rpc/msgpack/preprocessor/punctuation/is_begin_parens.hpp delete mode 100644 include/rpc/msgpack/preprocessor/punctuation/paren.hpp delete mode 100644 include/rpc/msgpack/preprocessor/punctuation/paren_if.hpp delete mode 100644 include/rpc/msgpack/preprocessor/punctuation/remove_parens.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repeat.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repeat_2nd.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repeat_3rd.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repeat_from_to.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repeat_from_to_2nd.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repeat_from_to_3rd.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/deduce_r.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/deduce_z.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/detail/dmc/for.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/detail/edg/for.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/detail/for.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/detail/msvc/for.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/enum.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/enum_binary_params.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/enum_params.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/enum_params_with_a_default.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/enum_params_with_defaults.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/enum_shifted.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/enum_shifted_binary_params.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/enum_shifted_params.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/enum_trailing.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/enum_trailing_binary_params.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/enum_trailing_params.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/for.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/repeat.hpp delete mode 100644 include/rpc/msgpack/preprocessor/repetition/repeat_from_to.hpp delete mode 100644 include/rpc/msgpack/preprocessor/selection.hpp delete mode 100644 include/rpc/msgpack/preprocessor/selection/max.hpp delete mode 100644 include/rpc/msgpack/preprocessor/selection/min.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/cat.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/detail/binary_transform.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/detail/is_empty.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/detail/split.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/elem.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/enum.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/filter.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/first_n.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/fold_left.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/fold_right.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/for_each.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/for_each_i.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/for_each_product.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/insert.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/pop_back.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/pop_front.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/push_back.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/push_front.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/remove.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/replace.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/rest_n.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/reverse.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/seq.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/size.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/subseq.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/to_array.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/to_list.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/to_tuple.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/transform.hpp delete mode 100644 include/rpc/msgpack/preprocessor/seq/variadic_seq_to_seq.hpp delete mode 100644 include/rpc/msgpack/preprocessor/slot.hpp delete mode 100644 include/rpc/msgpack/preprocessor/slot/counter.hpp delete mode 100644 include/rpc/msgpack/preprocessor/slot/detail/counter.hpp delete mode 100644 include/rpc/msgpack/preprocessor/slot/detail/def.hpp delete mode 100644 include/rpc/msgpack/preprocessor/slot/detail/shared.hpp delete mode 100644 include/rpc/msgpack/preprocessor/slot/detail/slot1.hpp delete mode 100644 include/rpc/msgpack/preprocessor/slot/detail/slot2.hpp delete mode 100644 include/rpc/msgpack/preprocessor/slot/detail/slot3.hpp delete mode 100644 include/rpc/msgpack/preprocessor/slot/detail/slot4.hpp delete mode 100644 include/rpc/msgpack/preprocessor/slot/detail/slot5.hpp delete mode 100644 include/rpc/msgpack/preprocessor/slot/slot.hpp delete mode 100644 include/rpc/msgpack/preprocessor/stringize.hpp delete mode 100644 include/rpc/msgpack/preprocessor/tuple.hpp delete mode 100644 include/rpc/msgpack/preprocessor/tuple/detail/is_single_return.hpp delete mode 100644 include/rpc/msgpack/preprocessor/tuple/eat.hpp delete mode 100644 include/rpc/msgpack/preprocessor/tuple/elem.hpp delete mode 100644 include/rpc/msgpack/preprocessor/tuple/enum.hpp delete mode 100644 include/rpc/msgpack/preprocessor/tuple/insert.hpp delete mode 100644 include/rpc/msgpack/preprocessor/tuple/pop_back.hpp delete mode 100644 include/rpc/msgpack/preprocessor/tuple/pop_front.hpp delete mode 100644 include/rpc/msgpack/preprocessor/tuple/push_back.hpp delete mode 100644 include/rpc/msgpack/preprocessor/tuple/push_front.hpp delete mode 100644 include/rpc/msgpack/preprocessor/tuple/rem.hpp delete mode 100644 include/rpc/msgpack/preprocessor/tuple/remove.hpp delete mode 100644 include/rpc/msgpack/preprocessor/tuple/replace.hpp delete mode 100644 include/rpc/msgpack/preprocessor/tuple/reverse.hpp delete mode 100644 include/rpc/msgpack/preprocessor/tuple/size.hpp delete mode 100644 include/rpc/msgpack/preprocessor/tuple/to_array.hpp delete mode 100644 include/rpc/msgpack/preprocessor/tuple/to_list.hpp delete mode 100644 include/rpc/msgpack/preprocessor/tuple/to_seq.hpp delete mode 100644 include/rpc/msgpack/preprocessor/variadic.hpp delete mode 100644 include/rpc/msgpack/preprocessor/variadic/detail/is_single_return.hpp delete mode 100644 include/rpc/msgpack/preprocessor/variadic/elem.hpp delete mode 100644 include/rpc/msgpack/preprocessor/variadic/size.hpp delete mode 100644 include/rpc/msgpack/preprocessor/variadic/to_array.hpp delete mode 100644 include/rpc/msgpack/preprocessor/variadic/to_list.hpp delete mode 100644 include/rpc/msgpack/preprocessor/variadic/to_seq.hpp delete mode 100644 include/rpc/msgpack/preprocessor/variadic/to_tuple.hpp delete mode 100644 include/rpc/msgpack/preprocessor/while.hpp delete mode 100644 include/rpc/msgpack/preprocessor/wstringize.hpp delete mode 100644 include/rpc/msgpack/sbuffer.h delete mode 100644 include/rpc/msgpack/sbuffer.hpp delete mode 100644 include/rpc/msgpack/sbuffer_decl.hpp delete mode 100644 include/rpc/msgpack/sysdep.h delete mode 100644 include/rpc/msgpack/type.hpp delete mode 100644 include/rpc/msgpack/unpack.h delete mode 100644 include/rpc/msgpack/unpack.hpp delete mode 100644 include/rpc/msgpack/unpack_decl.hpp delete mode 100644 include/rpc/msgpack/unpack_define.h delete mode 100644 include/rpc/msgpack/unpack_exception.hpp delete mode 100644 include/rpc/msgpack/unpack_template.h delete mode 100644 include/rpc/msgpack/util.h delete mode 100644 include/rpc/msgpack/v1/adaptor/adaptor_base.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/adaptor_base_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/array_ref.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/array_ref_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/bool.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/boost/fusion.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/boost/msgpack_variant.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/boost/msgpack_variant_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/boost/optional.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/boost/string_ref.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/boost/string_view.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/carray.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/char_ptr.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/check_container_size.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/check_container_size_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/cpp11/array.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/cpp11/array_char.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/cpp11/array_unsigned_char.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/cpp11/forward_list.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/cpp11/reference_wrapper.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/cpp11/shared_ptr.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/cpp11/tuple.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/cpp11/unique_ptr.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/cpp11/unordered_map.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/cpp11/unordered_set.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/cpp17/optional.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/cpp17/string_view.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/define.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/define_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/deque.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/detail/cpp03_define_array.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/detail/cpp03_define_array_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/detail/cpp03_define_map.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/detail/cpp03_define_map_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/detail/cpp11_define_array.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/detail/cpp11_define_array_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/detail/cpp11_define_map.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/detail/cpp11_define_map_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/ext.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/ext_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/fixint.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/fixint_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/float.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/int.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/int_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/list.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/map.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/map_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/msgpack_tuple.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/msgpack_tuple_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/nil.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/nil_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/pair.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/raw.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/raw_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/set.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/size_equal_only.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/size_equal_only_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/string.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/tr1/unordered_map.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/tr1/unordered_set.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/v4raw.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/v4raw_decl.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/vector.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/vector_bool.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/vector_char.hpp delete mode 100644 include/rpc/msgpack/v1/adaptor/vector_unsigned_char.hpp delete mode 100644 include/rpc/msgpack/v1/cpp_config.hpp delete mode 100644 include/rpc/msgpack/v1/cpp_config_decl.hpp delete mode 100644 include/rpc/msgpack/v1/detail/cpp03_zone.hpp delete mode 100644 include/rpc/msgpack/v1/detail/cpp03_zone_decl.hpp delete mode 100644 include/rpc/msgpack/v1/detail/cpp11_zone.hpp delete mode 100644 include/rpc/msgpack/v1/detail/cpp11_zone_decl.hpp delete mode 100644 include/rpc/msgpack/v1/fbuffer.hpp delete mode 100644 include/rpc/msgpack/v1/fbuffer_decl.hpp delete mode 100644 include/rpc/msgpack/v1/iterator.hpp delete mode 100644 include/rpc/msgpack/v1/iterator_decl.hpp delete mode 100644 include/rpc/msgpack/v1/meta.hpp delete mode 100644 include/rpc/msgpack/v1/meta_decl.hpp delete mode 100644 include/rpc/msgpack/v1/object.hpp delete mode 100644 include/rpc/msgpack/v1/object_decl.hpp delete mode 100644 include/rpc/msgpack/v1/object_fwd.hpp delete mode 100644 include/rpc/msgpack/v1/object_fwd_decl.hpp delete mode 100644 include/rpc/msgpack/v1/pack.hpp delete mode 100644 include/rpc/msgpack/v1/pack_decl.hpp delete mode 100644 include/rpc/msgpack/v1/parse_return.hpp delete mode 100644 include/rpc/msgpack/v1/preprocessor.hpp delete mode 100644 include/rpc/msgpack/v1/sbuffer.hpp delete mode 100644 include/rpc/msgpack/v1/sbuffer_decl.hpp delete mode 100644 include/rpc/msgpack/v1/unpack.hpp delete mode 100644 include/rpc/msgpack/v1/unpack_decl.hpp delete mode 100644 include/rpc/msgpack/v1/unpack_exception.hpp delete mode 100644 include/rpc/msgpack/v1/version.hpp delete mode 100644 include/rpc/msgpack/v1/versioning.hpp delete mode 100644 include/rpc/msgpack/v1/vrefbuffer.hpp delete mode 100644 include/rpc/msgpack/v1/vrefbuffer_decl.hpp delete mode 100644 include/rpc/msgpack/v1/zbuffer.hpp delete mode 100644 include/rpc/msgpack/v1/zbuffer_decl.hpp delete mode 100644 include/rpc/msgpack/v1/zone.hpp delete mode 100644 include/rpc/msgpack/v1/zone_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/adaptor_base.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/adaptor_base_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/array_ref_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/boost/msgpack_variant_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/check_container_size_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/define_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/detail/cpp03_define_array_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/detail/cpp03_define_map_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/detail/cpp03_msgpack_tuple_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/detail/cpp11_define_array_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/detail/cpp11_define_map_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/detail/cpp11_msgpack_tuple_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/ext_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/fixint_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/int_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/map_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/msgpack_tuple_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/nil_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/raw_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/size_equal_only_decl.hpp delete mode 100644 include/rpc/msgpack/v2/adaptor/v4raw_decl.hpp delete mode 100644 include/rpc/msgpack/v2/cpp_config_decl.hpp delete mode 100644 include/rpc/msgpack/v2/create_object_visitor.hpp delete mode 100644 include/rpc/msgpack/v2/detail/cpp03_zone_decl.hpp delete mode 100644 include/rpc/msgpack/v2/detail/cpp11_zone_decl.hpp delete mode 100644 include/rpc/msgpack/v2/fbuffer_decl.hpp delete mode 100644 include/rpc/msgpack/v2/iterator_decl.hpp delete mode 100644 include/rpc/msgpack/v2/meta_decl.hpp delete mode 100644 include/rpc/msgpack/v2/null_visitor.hpp delete mode 100644 include/rpc/msgpack/v2/object.hpp delete mode 100644 include/rpc/msgpack/v2/object_decl.hpp delete mode 100644 include/rpc/msgpack/v2/object_fwd.hpp delete mode 100644 include/rpc/msgpack/v2/object_fwd_decl.hpp delete mode 100644 include/rpc/msgpack/v2/pack_decl.hpp delete mode 100644 include/rpc/msgpack/v2/parse.hpp delete mode 100644 include/rpc/msgpack/v2/parse_return.hpp delete mode 100644 include/rpc/msgpack/v2/sbuffer_decl.hpp delete mode 100644 include/rpc/msgpack/v2/unpack.hpp delete mode 100644 include/rpc/msgpack/v2/unpack_decl.hpp delete mode 100644 include/rpc/msgpack/v2/vrefbuffer_decl.hpp delete mode 100644 include/rpc/msgpack/v2/x3_parse.hpp delete mode 100644 include/rpc/msgpack/v2/x3_unpack.hpp delete mode 100644 include/rpc/msgpack/v2/zbuffer_decl.hpp delete mode 100644 include/rpc/msgpack/v2/zone_decl.hpp delete mode 100644 include/rpc/msgpack/version.h delete mode 100644 include/rpc/msgpack/version.hpp delete mode 100644 include/rpc/msgpack/version_master.h delete mode 100644 include/rpc/msgpack/versioning.hpp delete mode 100644 include/rpc/msgpack/vrefbuffer.h delete mode 100644 include/rpc/msgpack/vrefbuffer.hpp delete mode 100644 include/rpc/msgpack/vrefbuffer_decl.hpp delete mode 100644 include/rpc/msgpack/zbuffer.h delete mode 100644 include/rpc/msgpack/zbuffer.hpp delete mode 100644 include/rpc/msgpack/zbuffer_decl.hpp delete mode 100644 include/rpc/msgpack/zone.h delete mode 100644 include/rpc/msgpack/zone.hpp delete mode 100644 include/rpc/msgpack/zone_decl.hpp delete mode 100644 include/rpc/nonstd/optional.hpp delete mode 100644 include/rpc/rpc_error.h delete mode 100644 include/rpc/server.h delete mode 100644 include/rpc/this_handler.h delete mode 100644 include/rpc/this_handler.inl delete mode 100644 include/rpc/this_server.h delete mode 100644 include/rpc/this_session.h delete mode 100644 include/rpc/version.h delete mode 100644 include/rpc/version.h.in delete mode 100644 installer/changelog.txt delete mode 100644 installer/license.txt delete mode 100644 installer/readme.txt delete mode 100644 lib/rpc/client.cc delete mode 100644 lib/rpc/detail/client_error.cc delete mode 100644 lib/rpc/detail/response.cc delete mode 100644 lib/rpc/detail/server_session.cc delete mode 100644 lib/rpc/dispatcher.cc delete mode 100644 lib/rpc/nonstd/optional.cc delete mode 100644 lib/rpc/rpc_error.cc delete mode 100644 lib/rpc/server.cc delete mode 100644 lib/rpc/this_handler.cc delete mode 100644 lib/rpc/this_server.cc delete mode 100644 lib/rpc/this_session.cc delete mode 100644 rpclib.pc.in delete mode 100755 run_clang_check.sh create mode 100644 test/CMakeLists.txt create mode 100644 test/base.cpp delete mode 100644 tests/CMakeLists.txt delete mode 100644 tests/rpc/client_test.cc delete mode 100644 tests/rpc/dispatcher_test.cc delete mode 100644 tests/rpc/response_test.cc delete mode 100644 tests/rpc/server_session_test.cc delete mode 100644 tests/rpc/server_test.cc delete mode 100644 tests/rpc/this_handler_test.cc delete mode 100644 tests/rpc/this_server_test.cc delete mode 100644 tests/rpc/this_session_test.cc delete mode 100644 tests/testmain.cc delete mode 100644 tests/testutils.h delete mode 100644 utils/.style.yapf delete mode 100644 utils/make_pack.py delete mode 100644 utils/make_release_linux.sh delete mode 100644 utils/make_release_windows.ps1 delete mode 100644 utils/markygen.py delete mode 100644 utils/pylint.conf delete mode 100644 utils/renamesp.py delete mode 100644 utils/reninclude.py diff --git a/.cmake-format.yaml b/.cmake-format.yaml new file mode 100644 index 00000000..4dcceda8 --- /dev/null +++ b/.cmake-format.yaml @@ -0,0 +1,31 @@ +line_width: 80 +tab_size: 2 +max_subgroups_hwrap: 4 +max_pargs_hwrap: 6 +separate_ctrl_name_with_space: false +separate_fn_name_with_space: false +dangle_parens: false +dangle_align: prefix +min_prefix_chars: 4 +max_prefix_chars: 10 +max_lines_hwrap: 2 +line_ending: unix +command_case: lower +keyword_case: lower +always_wrap: [] +enable_sort: true +autosort: false +hashruler_min_length: 10 +per_command: {} +layout_passes: {} +bullet_char: '*' +enum_char: . +enable_markup: true +first_comment_is_literal: false +literal_comment_pattern: null +fence_pattern: ^\s*([`~]{3}[`~]*)(.*)$ +ruler_pattern: ^\s*[^\w\s]{3}.*[^\w\s]{3}$ +canonicalize_hashrulers: true +emit_byteorder_mark: false +input_encoding: utf-8 +output_encoding: utf-8 diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 84a7cf9f..00000000 --- a/.editorconfig +++ /dev/null @@ -1,14 +0,0 @@ -# EditorConfig is awesome: http://EditorConfig.org -root = true - -[*] -end_of_line = lf -insert_final_newline = true -charset = utf-8 - -# Matches multiple files with brace expansion notation -# Set default charset -[*.{cc,cpp,h,hpp,hh}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true diff --git a/.gitignore b/.gitignore index 169dfff2..8090806b 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ build/ .idea/ .vscode/ +.ccls-cache/ doc/site/ doc/doxygen/ diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 85433623..00000000 --- a/.travis.yml +++ /dev/null @@ -1,36 +0,0 @@ -language: c++ -os: linux -dist: trusty -sudo: required - -matrix: - include: - - compiler: gcc - env: RPCLIB_CXX_STANDARD=11 BUILD_TYPE=Release COVERAGE="ON" - - compiler: gcc - env: RPCLIB_CXX_STANDARD=14 BUILD_TYPE=Release COVERAGE="OFF" - - compiler: clang - env: RPCLIB_CXX_STANDARD=11 BUILD_TYPE=Release COVERAGE="OFF" - - compiler: clang - env: RPCLIB_CXX_STANDARD=14 BUILD_TYPE=Release COVERAGE="OFF" - -before_install: - - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - - sudo apt-get update -qq - -install: - - sudo apt-get install -qq g++-5 - - sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 90 - - wget https://cmake.org/files/v3.9/cmake-3.9.2-Linux-x86_64.sh - - sudo sh cmake-3.9.2-Linux-x86_64.sh -- --skip-license --prefix=/usr - -script: - - mkdir build ; cd build - - cmake -DRPCLIB_ENABLE_COVERAGE=$COVERAGE -DRPCLIB_BUILD_TESTS=ON -DRPCLIB_CXX_STANDARD=$RPCLIB_CXX_STANDARD -DCMAKE_INSTALL_PREFIX=../install .. - - cmake --build . --config $BUILD_TYPE - - cmake --build . --target install - -after_success: - - ./tests/rpc_test - - lcov --capture --directory . --output-file coverage.info - - bash <(curl -s https://codecov.io/bash) diff --git a/.ycm_extra_conf.py b/.ycm_extra_conf.py deleted file mode 100644 index 579b2fbd..00000000 --- a/.ycm_extra_conf.py +++ /dev/null @@ -1,95 +0,0 @@ -import os -import ycm_core - -def current_path(): - return os.path.dirname(os.path.abspath(__file__)) - - -flags = [ - '-Wall', - '-DRPCLIB_ASIO=clmdep_asio', - '-DRPCLIB_FMT=clmdep_fmt', - '-Wextra', - '-Wno-long-long', - '-Wno-variadic-macros', - '-fexceptions', - '-DNDEBUG', - '-std=c++14', - '-x', - 'c++', - '-I', os.path.join(current_path(), 'include'), - '-I', os.path.join(current_path(), 'dependencies', 'include') -] - -compilation_database_folder = current_path() - -if os.path.exists(compilation_database_folder): - database = ycm_core.CompilationDatabase(compilation_database_folder) -else: - database = None - -SOURCE_EXTENSIONS = ['.cc', '.inl'] - -def MakeRelativePathsInFlagsAbsolute(flags, working_directory): - if not working_directory: - return list(flags) - new_flags = [] - make_next_absolute = False - path_flags = [ '-isystem', '-I', '-iquote', '--sysroot=' ] - for flag in flags: - new_flag = flag - if make_next_absolute: - make_next_absolute = False - if not flag.startswith('/'): - new_flag = os.path.join(working_directory, flag) - for path_flag in path_flags: - if flag == path_flag: - make_next_absolute = True - break - if flag.startswith(path_flag): - path = flag[ len(path_flag): ] - new_flag = path_flag + os.path.join(working_directory, path) - break - if new_flag: - new_flags.append(new_flag) - return new_flags - - -def IsHeaderFile(filename): - extension = os.path.splitext(filename)[ 1 ] - return extension in [ '.h', '.hxx', '.hpp', '.hh', '.inl' ] - - -# The compilation_commands.json file generated by CMake does not have entries -# for header files. So we do our best by asking the db for flags for a -# corresponding source file, if any. If one exists, the flags for that file -# should be good enough. -def GetCompilationInfoForFile(filename): - if IsHeaderFile(filename): - basename = os.path.splitext(filename)[0].replace('include', 'lib') - replacement_file = basename + '.cc' - if os.path.exists(replacement_file): - compilation_info = database.GetCompilationInfoForFile( - replacement_file) - if compilation_info.compiler_flags_: - return compilation_info - return None - return database.GetCompilationInfoForFile(filename) - - -def FlagsForFile(filename, **kwargs): - global flags - if database: - compilation_info = GetCompilationInfoForFile(filename) - if not compilation_info: - return None - final_flags = MakeRelativePathsInFlagsAbsolute( - compilation_info.compiler_flags_, - compilation_info.compiler_working_dir_) - else: - relative_to = current_path() - final_flags = MakeRelativePathsInFlagsAbsolute(flags, relative_to) - - final_flags.extend(flags) - - return {'flags': final_flags, 'do_cache': True} diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index cf99269f..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,107 +0,0 @@ -# Changelog - -### 2.2.1 - -This release fixed a crash on Windows. - -*Fixes*: - - * Fixed client crashing when `suppress_exceptions` was on - and the server threw an exception. - -### 2.2.0 - -This release fixed a number of long-standing issues. - -*Fixes*: - - * Fixed macOS build (#142) - * Updated msgpack (#152) - * Fixed a bug where the server could crash if the client timed out (#153) - * Fixed code coverage (moved away from coveralls.io) - -*Additions*: - - * Simplified and modularized CMake script (#94) - * Added `this_session()->id()` which is a unique, per-session id - * Added waffle.io badge - * Added missing client::clear_timeout function - -### 2.1.1 - -This release fixes an embarrassing build breakage. - -Released on 2017-07-15. - -Changes since 2.1.1: - - * Fixes building with coverage using clang - - -### 2.1.0 - -This is mainly a bugfix release. - -Released on 2017-07-15. - -Changes since 2.0.1: - - * Fixed an issue where the server did not properly release closed connections (#125) - * Fixed issues related to timeouts (#114, #115, #116) - * There is no longer a default timeout - * Fixed warnings when compiling with clang - * Fixed the dispatcher silently accepting multiple functions with the same name (#128) - * Changed minimum support g++ version to 4.8 from 4.9 (thanks to reddit user *attomsk* for letting me know) - -### 2.0.1 - -This is minor release that does not affect the library itself, just the version -number constants that were forgot in 2.0.0. The documentation has some minor updates -and a huge change in looks. - -Released on 2017-04-19. - -Changes since 2.0.0: - - * Bumped version number - * Updated documentation looks - - -### 2.0.0 - -This is an interface-breaking release (hence the major version number increase). - -Released on 2017-04-02. - -Changes since 1.0.0: - - * **Added C++11 compatibility** (huge thanks to Github user mbr0wn!) - * Added global timeout for blocking calls in the client - * Replaced the internal pimpl_ptr with std::unique_ptr for better stability - * Fixed a build problem with newer clang versions - * Contains some preliminary VS2013 work (but it's very far from ready) - - -### 1.0.0 - -This is the first, complete release of rpclib. - -Released on 2017-03-11. - -Changes since 1.0.0-preview: - - * A buffer overflow bug was fixed in the server - * New unit tests were added - * CMake no longer assumes libc++ when clang is used - * Documentation fixes - * Added the ability to pass extra flags to the build without changing the - CMakeLists.txt - * Fixed requiring RPCLIB\_MSGPACK macro when not using Findrpclib.cmake - * Created [conan](https://conan.io) package - * A [benchmark suite](https://github.com/rpclib/benchmarks) was implemented - -### 1.0.0-preview1 - -This is the first public release of rpclib! This release is a preview which means that the actual 1.0.0 will be similar, but hopefully improved. Any feedback is welcome! - -Released on 2016-08-28. diff --git a/CMakeLists.txt b/CMakeLists.txt index 58456348..59acb87c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,260 +1,11 @@ -cmake_minimum_required(VERSION 3.9.0) -project(rpc VERSION 2.2.1) +cmake_minimum_required(VERSION 3.14) +project(rpc VERSION 3.0.0) -set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") +list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake) +include(find-deps) -include(policies) -include(msvc_support) -include(coverage) -include(check_warning_flag) - -# -# Options -# -option(RPCLIB_BUILD_TESTS - "Build unit RPCLIB_BUILD_TESTS." - OFF) -option(RPCLIB_GENERATE_COMPDB - "Generate compilation database. Useful for YCM." - OFF) -option(RPCLIB_BUILD_EXAMPLES - "Build examples." - OFF) -option(RPCLIB_ENABLE_LOGGING - "ALlow logging in the library for debug purposes." - OFF) -option(RPCLIB_ENABLE_COVERAGE - "Generate coverage information" - OFF) -option(RPCLIB_MSVC_STATIC_RUNTIME - "MSVC only: build with /MT instead of /MD" - OFF) - -# -# Other configuration values -# -set(RPCLIB_DEFAULT_PORT 8080 - CACHE STRING "Default port used for running tests and examples") -set(RPCLIB_DEFAULT_BUFFER_SIZE "1024 << 10" - CACHE STRING "Default buffer size") -set(RPCLIB_CXX_STANDARD 11 CACHE STRING - "C++ version used to build rpclib (Currently: Only 11 and 14 supported)") - -if(RPCLIB_GENERATE_COMPDB) - set(CMAKE_EXPORT_COMPILE_COMMANDS "ON") # for YCM - add_custom_command(PROJECT_NAME ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E - copy ${CMAKE_BINARY_DIR}/compile_commands.json ${CMAKE_BINARY_DIR}/../compile_commands.json) -endif() - -if(NOT ${RPCLIB_CXX_STANDARD} EQUAL 14 AND - NOT ${RPCLIB_CXX_STANDARD} EQUAL 11) - message(fatal_error "Unsupported C++ standard: ${RPCLIB_CXX_STANDARD}") -endif() - -set(CMAKE_CXX_STANDARD ${RPCLIB_CXX_STANDARD}) - -# -# Compile & install the library -# -if (WIN32) - set(RPCLIB_OS_DEF "RPCLIB_WIN32") -elseif (LINUX) - set(RPCLIB_OS_DEF "RPCLIB_LINUX") -elseif (APPLE) - set(RPCLIB_OS_DEF "RPCLIB_MAC") -endif() - -set(RPCLIB_DEPENDENCIES "${CMAKE_CURRENT_LIST_DIR}/dependencies") - -configure_file( - "${PROJECT_SOURCE_DIR}/include/rpc/version.h.in" - "${PROJECT_SOURCE_DIR}/include/rpc/version.h") - -configure_file( - "${PROJECT_SOURCE_DIR}/include/rpc/config.h.in" - "${PROJECT_SOURCE_DIR}/include/rpc/config.h") - -configure_file( - "${PROJECT_SOURCE_DIR}/doc/pages/versions.md.in" - "${PROJECT_SOURCE_DIR}/doc/pages/versions.md") - -file(GLOB_RECURSE RPCLIB_HEADERS - include/rpc/*.h - include/msgpack/*.hpp) -file(GLOB_RECURSE DEP_HEADERS - ${RPCLIB_DEPENDENCIES}/include/*.h - ${RPCLIB_DEP_LIBRARIDEPENDENCIES}/include/*.hpp) - -set(DEP_SOURCES - ${RPCLIB_DEPENDENCIES}/src/format.cc - ${RPCLIB_DEPENDENCIES}/src/posix.cc) - -add_library(${PROJECT_NAME} - lib/rpc/dispatcher.cc - lib/rpc/server.cc - lib/rpc/client.cc - lib/rpc/this_handler.cc - lib/rpc/this_session.cc - lib/rpc/this_server.cc - lib/rpc/rpc_error.cc - lib/rpc/detail/server_session.cc - lib/rpc/detail/response.cc - lib/rpc/detail/client_error.cc - lib/rpc/nonstd/optional.cc - ${DEP_SOURCES} - ${DEP_HEADERS} - ${RPCLIB_HEADERS}) - -# Perform steps and checks required for MSVC support -rpclib_msvc_support() - -set(RPCLIB_BUILD_FLAGS "") # reset flags - -if(RPCLIB_ENABLE_COVERAGE) - enable_coverage(${PROJECT_NAME}) -endif() - -if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") - # clang is the compiler used for developing mainly, so - # this is where I set the highest warning level - list(APPEND RPCLIB_BUILD_FLAGS - -Wall -pedantic -Weverything -Wno-c++98-compat - -Wno-c++98-compat-pedantic -Wno-padded -Wno-missing-prototypes - -Wno-undef -pthread) - - set(UNUSED_LAMBDA_CAPTURE_WARN_SUPPORTED) - check_warning_flag("unused-lambda-capture" UNUSED_LAMBDA_CAPTURE_WARN_SUPPORTED) - if(${UNUSED_LAMBDA_CAPTURE_WARN_SUPPORTED}) - list(APPEND RPCLIB_BUILD_FLAGS -Wno-no-unused-lambda-capture) - endif() - - check_warning_flag("zero-as-null-pointer-constant" ZERO_AS_NULL_POINTER_CONSTANT_WARN_SUPPORTED) - set(ZERO_AS_NULL_POINTER_CONSTANT_WARN_SUPPORTED) - if(${ZERO_AS_NULL_POINTER_CONSTANT_WARN_SUPPORTED}) - list(APPEND RPCLIB_BUILD_FLAGS -Wno-zero-as-null-pointer-constant) - endif() +if(TARGET catch2::catch2) + add_subdirectory(test) +else() + message(STATUS "NOTE: Not building tests because Catch2 was not found") endif() - -if (RPCLIB_EXTRA_BUILD_FLAGS) - list(APPEND RPCLIB_BUILD_FLAGS ${RPCLIB_EXTRA_BUILD_FLAGS}) -endif() - -target_compile_definitions(${PROJECT_NAME} - PRIVATE - "${RPCLIB_COMPILE_DEFINITIONS}" - "${RPCLIB_ARCH_DEF}" - "ASIO_STANDALONE" - "RPCLIB_ASIO=clmdep_asio" - "RPCLIB_FMT=clmdep_fmt" - PUBLIC - "${RPCLIB_OS_DEF}" - "RPCLIB_MSGPACK=clmdep_msgpack" - ) - -if(RPCLIB_ENABLE_LOGGING) - target_compile_definitions(${PROJECT_NAME} PRIVATE "RPCLIB_ENABLE_LOGGING") -endif() - -if(RPCLIB_BUILD_FLAGS) - target_compile_options(${PROJECT_NAME} PRIVATE ${RPCLIB_BUILD_FLAGS}) -endif() - -if(RPCLIB_COMPILE_DEFINITIONS) - set_target_properties(${PROJECT_NAME} - PROPERTIES - COMPILE_DEFINITIONS "${RPCLIB_COMPILE_DEFINITIONS}") -endif() - -target_link_libraries(${PROJECT_NAME} ${RPCLIB_DEP_LIBRARIES}) -target_include_directories( - ${PROJECT_NAME} PUBLIC - $ - $ - ) -target_include_directories( - ${PROJECT_NAME} SYSTEM - PRIVATE ${RPCLIB_DEPENDENCIES}/include - ) - -install(TARGETS ${PROJECT_NAME} DESTINATION lib EXPORT rpclibTargets) -install(DIRECTORY include/ - DESTINATION include - FILES_MATCHING - PATTERN "*.h" - PATTERN "*.hpp" - PATTERN "*.inl" - PATTERN "*.in" EXCLUDE) - -# -# Unit tests -# -if(RPCLIB_BUILD_TESTS) - add_subdirectory(tests) -endif() - -# -# Example programs -# -if(RPCLIB_BUILD_EXAMPLES) - set(RPCLIB_ROOT_DIR "${PROJECT_SOURCE_DIR}") - set(RPCLIB_PROJECT_NAME "${CMAKE_PROJECT_NAME}") - set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/localbuild") - set(ENV{RPCLIB_DEFAULT_PORT} "${RPCLIB_DEFAULT_PORT}") - add_subdirectory(examples/echo) - add_subdirectory(examples/mandelbrot) - add_subdirectory(examples/calculator) -endif() - -# -# Cmake Package -# -include(CMakePackageConfigHelpers) -write_basic_package_version_file( - "${CMAKE_CURRENT_BINARY_DIR}/cmake/rpclibConfigVersion.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion - ) - -set(CONFIG_PACKAGE_LOCATION lib/cmake/rpclib) -set(INCLUDE_INSTALL_DIR include/ ) - -configure_package_config_file(cmake/rpclibConfig.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/cmake/rpclibConfig.cmake - INSTALL_DESTINATION ${CONFIG_PACKAGE_LOCATION} - PATH_VARS INCLUDE_INSTALL_DIR - ) - -export(EXPORT rpclibTargets - FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/rpclibTargets.cmake" - NAMESPACE rpclib:: - ) - -install(EXPORT rpclibTargets - FILE rpclibTargets.cmake - NAMESPACE rpclib:: - DESTINATION ${CONFIG_PACKAGE_LOCATION} - ) -install(FILES - ${CMAKE_CURRENT_BINARY_DIR}/cmake/rpclibConfig.cmake - ${CMAKE_CURRENT_BINARY_DIR}/cmake/rpclibConfigVersion.cmake - DESTINATION ${CONFIG_PACKAGE_LOCATION} - ) - -# -# Pkg-config -# -if(NOT MSVC) # Don't install pkg-config files when building with MSVC - # Variables for pkg-config files - set(prefix "${CMAKE_INSTALL_PREFIX}") - set(exec_prefix "") - set(libdir "${CMAKE_INSTALL_PREFIX}/lib") - set(includedir "${CMAKE_INSTALL_PREFIX}/include") - set(rpclib_version ${PROJECT_VERSION}) - get_target_property(rpclib_cflags ${PROJECT_NAME} COMPILE_OPTIONS) - string(REPLACE ";" " " rpclib_cflags "${rpclib_cflags}") # Convert list to string - - configure_file(rpclib.pc.in "${CMAKE_CURRENT_BINARY_DIR}/rpclib.pc" @ONLY) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/rpclib.pc" DESTINATION "${libdir}/pkgconfig") -endif() - diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index 870bae90..00000000 --- a/LICENSE.md +++ /dev/null @@ -1,46 +0,0 @@ -# License terms for humans - -The following is a friendly explanation of the license. For legal purposes, the license below is -what matters, not this explanation. - -This library is licensed under the *MIT license*. What this means for you: - - * You can use it freely in any form you want - * You can sell software that uses it - * You can sell modified versions of it - * You **do not** need to apply the same license to software you develop with it - * You **do not** need to apply the same license for modified versions - * You **do not** have to attribute usage. - -## But - - * There is no guarantee. None. At all. I'm also not obligated to work on a particular issue, or - even respond to them (though I'll do my best, I promise). - -## Also - -This is not part of the license, but if you want to be nice and give back, please let me know -if you are using the library for anything serious. You can also let the world know that you are using it. - - -# The MIT License - -Copyright (c) 2015-2017, Tamás Szelei - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index d20ad3c6..00000000 --- a/README.md +++ /dev/null @@ -1,99 +0,0 @@ - -# rpclib ![MIT](https://img.shields.io/badge/license-MIT-blue.svg) [![Build Status](https://travis-ci.org/rpclib/rpclib.svg?branch=master)](https://travis-ci.org/rpclib/rpclib) [![Build status](https://ci.appveyor.com/api/projects/status/9lft2tlamcox8epq?svg=true)](https://ci.appveyor.com/project/sztomi/callme) [![Coverage Status](https://img.shields.io/codecov/c/github/rpclib/rpclib/dev.svg)](https://img.shields.io/codecov/c/github/rpclib/rpclib/dev.svg) ![Coverity](https://scan.coverity.com/projects/7259/badge.svg?flat=1) [![Gitter](https://img.shields.io/gitter/room/nwjs/nw.js.svg?maxAge=2592000)](https://gitter.im/rpclib/Lobby) - -[![waffle](https://badge.waffle.io/rpclib/rpclib.svg?columns=In%20Progress,Waiting%20For%20Release)](https://waffle.io/rpclib/rpclib) - -`rpclib` is a RPC library for C++, providing both a client and server implementation. It is built using modern C++14, and as such, requires a recent compiler. Main highlights: - - * Expose functions of your program to be called via RPC (from any language - implementing msgpack-rpc) - * Call functions through RPC (of programs written in any language) - * No IDL to learn - * No code generation step to integrate in your build, just C++ - -# Look&feel - -## Server - -```cpp -#include -#include "rpc/server.h" - -void foo() { - std::cout << "foo was called!" << std::endl; -} - -int main(int argc, char *argv[]) { - // Creating a server that listens on port 8080 - rpc::server srv(8080); - - // Binding the name "foo" to free function foo. - // note: the signature is automatically captured - srv.bind("foo", &foo); - - // Binding a lambda function to the name "add". - srv.bind("add", [](int a, int b) { - return a + b; - }); - - // Run the server loop. - srv.run(); - - return 0; -} -``` - -When `srv.run()` is called, `rpclib` starts the server loop which listens to incoming connections -and tries to dispatch calls to the bound functions. The functions are called from the thread where -`run` was called from. There is also `async_run` that spawns worker threads and returns -immediately. - -## Client - -```cpp -#include -#include "rpc/client.h" - -int main() { - // Creating a client that connects to the localhost on port 8080 - rpc::client client("127.0.0.1", 8080); - - // Calling a function with paramters and converting the result to int - auto result = client.call("add", 2, 3).as(); - std::cout << "The result is: " << result << std::endl; - return 0; -} -``` - -# Status - -All planned 1.0.0 features are done and tested; the current state is production-ready. - -# Who uses rpclib? - -This list is updated as I learn about more people using the library; let me -know if you don't want your project listed here. - - * [Microsoft AirSim](https://github.com/Microsoft/AirSim) - -# Thanks - -`rpclib` builds on the efforts of fantastic C++ projects. In no particular order: - - * [MessagePack implementation for C and C++](https://github.com/msgpack/msgpack-c) by Takatoshi Kondo ([website](http://msgpack.org/)) - * [asio](https://github.com/chriskohlhoff/asio) by Christopher Kohlhoff ([website](http://think-async.com/Asio)) - * [cppformat](https://github.com/fmtlib/fmt) (now renamed `fmtlib`, by Victor Zverovich ([website](http://fmtlib.net)) - * [googletest](https://github.com/google/googletest) by Google - * [wheels](https://github.com/rmartinho/wheels) by Martinho Fernandes - -Shoutouts to - - * [Appveyor](https://www.appveyor.com/) - * [Travis CI](https://travis-ci.org) - * [Coveralls.io](https://coveralls.io/) - * [Coverity](http://www.coverity.com) - * [ASan & TSan](https://github.com/google/sanitizers) helped spotting and resolving many bugs. - - - - diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index b502f4fd..00000000 --- a/appveyor.yml +++ /dev/null @@ -1,29 +0,0 @@ -version: 1.0.{build} -os: Visual Studio 2015 -clone_folder: C:\projects\rpc -test: off - -branches: - only: - - master - - dev - -configuration: - - Release - -environment: - matrix: - - CMAKE_PLATFORM: "Visual Studio 14 2015" - #- CMAKE_PLATFORM: "Visual Studio 15 2017" - -install: true - -build_script: - - cd c:\projects\rpc - - git submodule init - - git submodule update --init --recursive - - md build - - cd build - - cmake -DRPCLIB_BUILD_TESTS=ON -G "%CMAKE_PLATFORM%" .. - - cmake --build . --config %CONFIGURATION% - - .\tests\Release\rpc_test.exe diff --git a/cmake/Findrpclib.cmake b/cmake/Findrpclib.cmake deleted file mode 100644 index 59d68608..00000000 --- a/cmake/Findrpclib.cmake +++ /dev/null @@ -1,89 +0,0 @@ -# -# Findrpclib.cmake can be distributed with the source of -# your software that depends on rpc. This allows you -# to write -# -# find_package(rpclib) -# -# in your CMakeLists.txt. -# -# The script sets the following variables: -# -# * RPCLIB_FOUND: true if the rpc headers and libraries were found -# * RPCLIB_INCLUDE_DIR: the directory where rpc includes are located. -# This means #include "rpc/server.h" works if -# you add this directory, not #include "server.h". -# * RPCLIB_LIBS: The static libraries of rpc (for now, this is only one -# library, but plural was chosen to be future-proof). -# * RPCLIB_EXTRA_FLAGS: Extra flags that need to be added to the C++ compiler -# flags (e.g. CMAKE_CXX_FLAGS) -# * RPCLIB_EXTRA_FLAGS_DEBUG: Same as above, but for debug configuration. -# (e.g. CMAKE_CXX_FLAGS_DEBUG) -# -# For finding in custom locations, you may set RPCLIB_ROOT as a cmake variable or -# environment variable. -# -# Greatly inspired by FindSFML.cmake -# (https://github.com/SFML/SFML/blob/master/cmake/Modules/FindSFML.cmake) -# - -set(FIND_RPCLIB_PATHS - ${RPCLIB_ROOT} - $ENV{RPCLIB_ROOT} - ${CMAKE_CURRENT_LIST_DIR}/.. # To support in-tree build - ${CMAKE_CURRENT_LIST_DIR}/../build/output/lib # - ~/Library/Frameworks - /Library/Frameworks - /usr/local - /usr - /opt/local - /opt) - -find_path(RPCLIB_INCLUDE_DIR - PATH_SUFFIXES "include" - NAMES "rpc/version.h" - PATHS ${FIND_RPCLIB_PATHS}) - -find_library(RPCLIB_LIBS - NAMES librpc rpclib rpc - PATHS ${FIND_RPCLIB_PATHS}) - -if(RPCLIB_INCLUDE_DIR) - file(READ - "${RPCLIB_INCLUDE_DIR}/rpc/version.h" - RPCLIB_VERSION_CONTENTS) - string(REGEX REPLACE - ".*#define RPCLIB_VERSION_MAJOR ([0-9]+).*" "\\1" - RPCLIB_VERSION_MAJOR "${RPCLIB_VERSION_CONTENTS}") - string(REGEX REPLACE - ".*#define RPCLIB_VERSION_MINOR ([0-9]+).*" "\\1" - RPCLIB_VERSION_MINOR "${RPCLIB_VERSION_CONTENTS}") - string(REGEX REPLACE - ".*#define RPCLIB_VERSION_PATCH ([0-9]+).*" "\\1" - RPCLIB_VERSION_PATCH "${RPCLIB_VERSION_CONTENTS}") - set(RPCLIB_VERSION_STR - "${RPCLIB_VERSION_MAJOR}.${RPCLIB_VERSION_MINOR}.${RPCLIB_VERSION_PATCH}") -endif() - -if (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") - set(RPCLIB_EXTRA_FLAGS "-pthread") -elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") - set(RPCLIB_EXTRA_FLAGS "-pthread") -elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "MSVC") - set(RPCLIB_EXTRA_FLAGS "/EHsc") - set(RPCLIB_EXTRA_FLAGS_DEBUG "/Zi") -endif() - -set(RPCLIB_COMPILE_DEFINITIONS - "ASIO_STANDALONE" - "RPCLIB_ASIO=clmdep_asio" - "RPCLIB_FMT=clmdep_fmt" - "RPCLIB_MSGPACK=clmdep_msgpack" -) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(rpclib - FOUND_VAR RPCLIB_FOUND - REQUIRED_VARS RPCLIB_INCLUDE_DIR RPCLIB_LIBS - VERSION_VAR RPCLIB_VERSION_STRING) - diff --git a/cmake/check_warning_flag.cmake b/cmake/check_warning_flag.cmake deleted file mode 100644 index c0da8bb9..00000000 --- a/cmake/check_warning_flag.cmake +++ /dev/null @@ -1,9 +0,0 @@ -include(CheckCXXSourceCompiles) - -function(check_warning_flag FLAG VAR) - set(SRC "int main() {}") - set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) - set(CMAKE_REQUIRED_FLAGS "-Werror -Wno-${FLAG}") - check_cxx_source_compiles(${SRC} ${VAR}) - set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS}) -endfunction() \ No newline at end of file diff --git a/cmake/coverage.cmake b/cmake/coverage.cmake deleted file mode 100644 index 78f1d140..00000000 --- a/cmake/coverage.cmake +++ /dev/null @@ -1,16 +0,0 @@ -function(enable_coverage TARGET) - if(NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") - - if(APPLE) - set(COVERAGE_LIB "") - else() - set(COVERAGE_LIB -lgcov) - endif() - - set_target_properties(${TARGET} - PROPERTIES - COMPILE_FLAGS --coverage - LINK_FLAGS "${COVERAGE_LIB} --coverage" - ) - endif() -endfunction() diff --git a/cmake/find-deps.cmake b/cmake/find-deps.cmake new file mode 100644 index 00000000..29394b7d --- /dev/null +++ b/cmake/find-deps.cmake @@ -0,0 +1,6 @@ + +if(EXISTS ${CMAKE_BINARY_DIR}/conan_paths.cmake) + include(${CMAKE_BINARY_DIR}/conan_paths.cmake) +endif() + +find_package(catch2 QUIET) diff --git a/cmake/localbuild/FindSFML.cmake b/cmake/localbuild/FindSFML.cmake deleted file mode 100644 index 871f8662..00000000 --- a/cmake/localbuild/FindSFML.cmake +++ /dev/null @@ -1,368 +0,0 @@ -# This script locates the SFML library -# ------------------------------------ -# -# Usage -# ----- -# -# When you try to locate the SFML libraries, you must specify which modules you want to use (system, window, graphics, network, audio, main). -# If none is given, the SFML_LIBRARIES variable will be empty and you'll end up linking to nothing. -# example: -# find_package(SFML COMPONENTS graphics window system) // find the graphics, window and system modules -# -# You can enforce a specific version, either MAJOR.MINOR or only MAJOR. -# If nothing is specified, the version won't be checked (i.e. any version will be accepted). -# example: -# find_package(SFML COMPONENTS ...) // no specific version required -# find_package(SFML 2 COMPONENTS ...) // any 2.x version -# find_package(SFML 2.4 COMPONENTS ...) // version 2.4 or greater -# -# By default, the dynamic libraries of SFML will be found. To find the static ones instead, -# you must set the SFML_STATIC_LIBRARIES variable to TRUE before calling find_package(SFML ...). -# Since you have to link yourself all the SFML dependencies when you link it statically, the following -# additional variables are defined: SFML_XXX_DEPENDENCIES and SFML_DEPENDENCIES (see their detailed -# description below). -# In case of static linking, the SFML_STATIC macro will also be defined by this script. -# example: -# set(SFML_STATIC_LIBRARIES TRUE) -# find_package(SFML 2 COMPONENTS network system) -# -# On Mac OS X if SFML_STATIC_LIBRARIES is not set to TRUE then by default CMake will search for frameworks unless -# CMAKE_FIND_FRAMEWORK is set to "NEVER" for example. Please refer to CMake documentation for more details. -# Moreover, keep in mind that SFML frameworks are only available as release libraries unlike dylibs which -# are available for both release and debug modes. -# -# If SFML is not installed in a standard path, you can use the SFML_ROOT CMake (or environment) variable -# to tell CMake where SFML is. -# -# Output -# ------ -# -# This script defines the following variables: -# - For each specified module XXX (system, window, graphics, network, audio, main): -# - SFML_XXX_LIBRARY_DEBUG: the name of the debug library of the xxx module (set to SFML_XXX_LIBRARY_RELEASE is no debug version is found) -# - SFML_XXX_LIBRARY_RELEASE: the name of the release library of the xxx module (set to SFML_XXX_LIBRARY_DEBUG is no release version is found) -# - SFML_XXX_LIBRARY: the name of the library to link to for the xxx module (includes both debug and optimized names if necessary) -# - SFML_XXX_FOUND: true if either the debug or release library of the xxx module is found -# - SFML_XXX_DEPENDENCIES: the list of libraries the module depends on, in case of static linking -# - SFML_LIBRARIES: the list of all libraries corresponding to the required modules -# - SFML_FOUND: true if all the required modules are found -# - SFML_INCLUDE_DIR: the path where SFML headers are located (the directory containing the SFML/Config.hpp file) -# - SFML_DEPENDENCIES: the list of libraries SFML depends on, in case of static linking -# -# example: -# find_package(SFML 2 COMPONENTS system window graphics audio REQUIRED) -# include_directories(${SFML_INCLUDE_DIR}) -# add_executable(myapp ...) -# target_link_libraries(myapp ${SFML_LIBRARIES}) - -# define the SFML_STATIC macro if static build was chosen -if(SFML_STATIC_LIBRARIES) - add_definitions(-DSFML_STATIC) -endif() - -# define the list of search paths for headers and libraries -set(FIND_SFML_PATHS - ${SFML_ROOT} - $ENV{SFML_ROOT} - ~/Library/Frameworks - /Library/Frameworks - /usr/local - /usr - /sw - /opt/local - /opt/csw - /opt) - -# find the SFML include directory -find_path(SFML_INCLUDE_DIR SFML/Config.hpp - PATH_SUFFIXES include - PATHS ${FIND_SFML_PATHS}) - -# check the version number -set(SFML_VERSION_OK TRUE) -if(SFML_FIND_VERSION AND SFML_INCLUDE_DIR) - # extract the major and minor version numbers from SFML/Config.hpp - # we have to handle framework a little bit differently: - if("${SFML_INCLUDE_DIR}" MATCHES "SFML.framework") - set(SFML_CONFIG_HPP_INPUT "${SFML_INCLUDE_DIR}/Headers/Config.hpp") - else() - set(SFML_CONFIG_HPP_INPUT "${SFML_INCLUDE_DIR}/SFML/Config.hpp") - endif() - FILE(READ "${SFML_CONFIG_HPP_INPUT}" SFML_CONFIG_HPP_CONTENTS) - STRING(REGEX REPLACE ".*#define SFML_VERSION_MAJOR ([0-9]+).*" "\\1" SFML_VERSION_MAJOR "${SFML_CONFIG_HPP_CONTENTS}") - STRING(REGEX REPLACE ".*#define SFML_VERSION_MINOR ([0-9]+).*" "\\1" SFML_VERSION_MINOR "${SFML_CONFIG_HPP_CONTENTS}") - STRING(REGEX REPLACE ".*#define SFML_VERSION_PATCH ([0-9]+).*" "\\1" SFML_VERSION_PATCH "${SFML_CONFIG_HPP_CONTENTS}") - if (NOT "${SFML_VERSION_PATCH}" MATCHES "^[0-9]+$") - set(SFML_VERSION_PATCH 0) - endif() - math(EXPR SFML_REQUESTED_VERSION "${SFML_FIND_VERSION_MAJOR} * 10000 + ${SFML_FIND_VERSION_MINOR} * 100 + ${SFML_FIND_VERSION_PATCH}") - - # if we could extract them, compare with the requested version number - if (SFML_VERSION_MAJOR) - # transform version numbers to an integer - math(EXPR SFML_VERSION "${SFML_VERSION_MAJOR} * 10000 + ${SFML_VERSION_MINOR} * 100 + ${SFML_VERSION_PATCH}") - - # compare them - if(SFML_VERSION LESS SFML_REQUESTED_VERSION) - set(SFML_VERSION_OK FALSE) - endif() - else() - # SFML version is < 2.0 - if (SFML_REQUESTED_VERSION GREATER 10900) - set(SFML_VERSION_OK FALSE) - set(SFML_VERSION_MAJOR 1) - set(SFML_VERSION_MINOR x) - set(SFML_VERSION_PATCH x) - endif() - endif() -endif() - -# find the requested modules -set(SFML_FOUND TRUE) # will be set to false if one of the required modules is not found -foreach(FIND_SFML_COMPONENT ${SFML_FIND_COMPONENTS}) - string(TOLOWER ${FIND_SFML_COMPONENT} FIND_SFML_COMPONENT_LOWER) - string(TOUPPER ${FIND_SFML_COMPONENT} FIND_SFML_COMPONENT_UPPER) - set(FIND_SFML_COMPONENT_NAME sfml-${FIND_SFML_COMPONENT_LOWER}) - - # no suffix for sfml-main, it is always a static library - if(FIND_SFML_COMPONENT_LOWER STREQUAL "main") - # release library - find_library(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE - NAMES ${FIND_SFML_COMPONENT_NAME} - PATH_SUFFIXES lib64 lib - PATHS ${FIND_SFML_PATHS}) - - # debug library - find_library(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG - NAMES ${FIND_SFML_COMPONENT_NAME}-d - PATH_SUFFIXES lib64 lib - PATHS ${FIND_SFML_PATHS}) - else() - # static release library - find_library(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_STATIC_RELEASE - NAMES ${FIND_SFML_COMPONENT_NAME}-s - PATH_SUFFIXES lib64 lib - PATHS ${FIND_SFML_PATHS}) - - # static debug library - find_library(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_STATIC_DEBUG - NAMES ${FIND_SFML_COMPONENT_NAME}-s-d - PATH_SUFFIXES lib64 lib - PATHS ${FIND_SFML_PATHS}) - - # dynamic release library - find_library(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DYNAMIC_RELEASE - NAMES ${FIND_SFML_COMPONENT_NAME} - PATH_SUFFIXES lib64 lib - PATHS ${FIND_SFML_PATHS}) - - # dynamic debug library - find_library(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DYNAMIC_DEBUG - NAMES ${FIND_SFML_COMPONENT_NAME}-d - PATH_SUFFIXES lib64 lib - PATHS ${FIND_SFML_PATHS}) - - # choose the entries that fit the requested link type - if(SFML_STATIC_LIBRARIES) - if(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_STATIC_RELEASE) - set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_STATIC_RELEASE}) - endif() - if(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_STATIC_DEBUG) - set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_STATIC_DEBUG}) - endif() - else() - if(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DYNAMIC_RELEASE) - set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DYNAMIC_RELEASE}) - endif() - if(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DYNAMIC_DEBUG) - set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DYNAMIC_DEBUG}) - endif() - endif() - endif() - - if (SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG OR SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE) - # library found - set(SFML_${FIND_SFML_COMPONENT_UPPER}_FOUND TRUE) - - # if both are found, set SFML_XXX_LIBRARY to contain both - if (SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG AND SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE) - set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY debug ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG} - optimized ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE}) - endif() - - # if only one debug/release variant is found, set the other to be equal to the found one - if (SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG AND NOT SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE) - # debug and not release - set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG}) - set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG}) - endif() - if (SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE AND NOT SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG) - # release and not debug - set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE}) - set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE}) - endif() - else() - # library not found - set(SFML_FOUND FALSE) - set(SFML_${FIND_SFML_COMPONENT_UPPER}_FOUND FALSE) - set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY "") - set(FIND_SFML_MISSING "${FIND_SFML_MISSING} SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY") - endif() - - # mark as advanced - MARK_AS_ADVANCED(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY - SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE - SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG - SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_STATIC_RELEASE - SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_STATIC_DEBUG - SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DYNAMIC_RELEASE - SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DYNAMIC_DEBUG) - - # add to the global list of libraries - set(SFML_LIBRARIES ${SFML_LIBRARIES} "${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY}") -endforeach() - -# in case of static linking, we must also define the list of all the dependencies of SFML libraries -if(SFML_STATIC_LIBRARIES) - - # detect the OS - if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") - set(FIND_SFML_OS_WINDOWS 1) - elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") - set(FIND_SFML_OS_LINUX 1) - elseif(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") - set(FIND_SFML_OS_FREEBSD 1) - elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - set(FIND_SFML_OS_MACOSX 1) - endif() - - # start with an empty list - set(SFML_DEPENDENCIES) - set(FIND_SFML_DEPENDENCIES_NOTFOUND) - - # macro that searches for a 3rd-party library - macro(find_sfml_dependency output friendlyname) - # No lookup in environment variables (PATH on Windows), as they may contain wrong library versions - find_library(${output} NAMES ${ARGN} PATHS ${FIND_SFML_PATHS} PATH_SUFFIXES lib NO_SYSTEM_ENVIRONMENT_PATH) - if(${${output}} STREQUAL "${output}-NOTFOUND") - unset(output) - set(FIND_SFML_DEPENDENCIES_NOTFOUND "${FIND_SFML_DEPENDENCIES_NOTFOUND} ${friendlyname}") - endif() - endmacro() - - # sfml-system - list(FIND SFML_FIND_COMPONENTS "system" FIND_SFML_SYSTEM_COMPONENT) - if(NOT ${FIND_SFML_SYSTEM_COMPONENT} EQUAL -1) - - # update the list -- these are only system libraries, no need to find them - if(FIND_SFML_OS_LINUX OR FIND_SFML_OS_FREEBSD OR FIND_SFML_OS_MACOSX) - set(SFML_SYSTEM_DEPENDENCIES "pthread") - endif() - if(FIND_SFML_OS_LINUX) - set(SFML_SYSTEM_DEPENDENCIES ${SFML_SYSTEM_DEPENDENCIES} "rt") - endif() - if(FIND_SFML_OS_WINDOWS) - set(SFML_SYSTEM_DEPENDENCIES "winmm") - endif() - set(SFML_DEPENDENCIES ${SFML_SYSTEM_DEPENDENCIES} ${SFML_DEPENDENCIES}) - endif() - - # sfml-network - list(FIND SFML_FIND_COMPONENTS "network" FIND_SFML_NETWORK_COMPONENT) - if(NOT ${FIND_SFML_NETWORK_COMPONENT} EQUAL -1) - - # update the list -- these are only system libraries, no need to find them - if(FIND_SFML_OS_WINDOWS) - set(SFML_NETWORK_DEPENDENCIES "ws2_32") - endif() - set(SFML_DEPENDENCIES ${SFML_NETWORK_DEPENDENCIES} ${SFML_DEPENDENCIES}) - endif() - - # sfml-window - list(FIND SFML_FIND_COMPONENTS "window" FIND_SFML_WINDOW_COMPONENT) - if(NOT ${FIND_SFML_WINDOW_COMPONENT} EQUAL -1) - - # find libraries - if(FIND_SFML_OS_LINUX OR FIND_SFML_OS_FREEBSD) - find_sfml_dependency(X11_LIBRARY "X11" X11) - find_sfml_dependency(LIBXCB_LIBRARIES "XCB" xcb libxcb) - find_sfml_dependency(X11_XCB_LIBRARY "X11-xcb" X11-xcb libX11-xcb) - find_sfml_dependency(XCB_RANDR_LIBRARY "xcb-randr" xcb-randr libxcb-randr) - find_sfml_dependency(XCB_IMAGE_LIBRARY "xcb-image" xcb-image libxcb-image) - endif() - - if(FIND_SFML_OS_LINUX) - find_sfml_dependency(UDEV_LIBRARIES "UDev" udev libudev) - endif() - - # update the list - if(FIND_SFML_OS_WINDOWS) - set(SFML_WINDOW_DEPENDENCIES ${SFML_WINDOW_DEPENDENCIES} "opengl32" "winmm" "gdi32") - elseif(FIND_SFML_OS_LINUX) - set(SFML_WINDOW_DEPENDENCIES ${SFML_WINDOW_DEPENDENCIES} "GL" ${X11_LIBRARY} ${LIBXCB_LIBRARIES} ${X11_XCB_LIBRARY} ${XCB_RANDR_LIBRARY} ${XCB_IMAGE_LIBRARY} ${UDEV_LIBRARIES}) - elseif(FIND_SFML_OS_FREEBSD) - set(SFML_WINDOW_DEPENDENCIES ${SFML_WINDOW_DEPENDENCIES} "GL" ${X11_LIBRARY} ${LIBXCB_LIBRARIES} ${X11_XCB_LIBRARY} ${XCB_RANDR_LIBRARY} ${XCB_IMAGE_LIBRARY} "usbhid") - elseif(FIND_SFML_OS_MACOSX) - set(SFML_WINDOW_DEPENDENCIES ${SFML_WINDOW_DEPENDENCIES} "-framework OpenGL -framework Foundation -framework AppKit -framework IOKit -framework Carbon") - endif() - set(SFML_DEPENDENCIES ${SFML_WINDOW_DEPENDENCIES} ${SFML_DEPENDENCIES}) - endif() - - # sfml-graphics - list(FIND SFML_FIND_COMPONENTS "graphics" FIND_SFML_GRAPHICS_COMPONENT) - if(NOT ${FIND_SFML_GRAPHICS_COMPONENT} EQUAL -1) - - # find libraries - find_sfml_dependency(FREETYPE_LIBRARY "FreeType" freetype) - find_sfml_dependency(JPEG_LIBRARY "libjpeg" jpeg) - - # update the list - set(SFML_GRAPHICS_DEPENDENCIES ${FREETYPE_LIBRARY} ${JPEG_LIBRARY}) - set(SFML_DEPENDENCIES ${SFML_GRAPHICS_DEPENDENCIES} ${SFML_DEPENDENCIES}) - endif() - - # sfml-audio - list(FIND SFML_FIND_COMPONENTS "audio" FIND_SFML_AUDIO_COMPONENT) - if(NOT ${FIND_SFML_AUDIO_COMPONENT} EQUAL -1) - - # find libraries - find_sfml_dependency(OPENAL_LIBRARY "OpenAL" openal openal32) - find_sfml_dependency(OGG_LIBRARY "Ogg" ogg) - find_sfml_dependency(VORBIS_LIBRARY "Vorbis" vorbis) - find_sfml_dependency(VORBISFILE_LIBRARY "VorbisFile" vorbisfile) - find_sfml_dependency(VORBISENC_LIBRARY "VorbisEnc" vorbisenc) - find_sfml_dependency(FLAC_LIBRARY "FLAC" FLAC) - - # update the list - set(SFML_AUDIO_DEPENDENCIES ${OPENAL_LIBRARY} ${FLAC_LIBRARY} ${VORBISENC_LIBRARY} ${VORBISFILE_LIBRARY} ${VORBIS_LIBRARY} ${OGG_LIBRARY}) - set(SFML_DEPENDENCIES ${SFML_DEPENDENCIES} ${SFML_AUDIO_DEPENDENCIES}) - endif() - -endif() - -# handle errors -if(NOT SFML_VERSION_OK) - # SFML version not ok - set(FIND_SFML_ERROR "SFML found but version too low (requested: ${SFML_FIND_VERSION}, found: ${SFML_VERSION_MAJOR}.${SFML_VERSION_MINOR}.${SFML_VERSION_PATCH})") - set(SFML_FOUND FALSE) -elseif(SFML_STATIC_LIBRARIES AND FIND_SFML_DEPENDENCIES_NOTFOUND) - set(FIND_SFML_ERROR "SFML found but some of its dependencies are missing (${FIND_SFML_DEPENDENCIES_NOTFOUND})") - set(SFML_FOUND FALSE) -elseif(NOT SFML_FOUND) - # include directory or library not found - set(FIND_SFML_ERROR "Could NOT find SFML (missing: ${FIND_SFML_MISSING})") -endif() -if (NOT SFML_FOUND) - if(SFML_FIND_REQUIRED) - # fatal error - message(FATAL_ERROR ${FIND_SFML_ERROR}) - elseif(NOT SFML_FIND_QUIETLY) - # error but continue - message("${FIND_SFML_ERROR}") - endif() -endif() - -# handle success -if(SFML_FOUND AND NOT SFML_FIND_QUIETLY) - message(STATUS "Found SFML ${SFML_VERSION_MAJOR}.${SFML_VERSION_MINOR}.${SFML_VERSION_PATCH} in ${SFML_INCLUDE_DIR}") -endif() diff --git a/cmake/localbuild/Findrpclib.cmake b/cmake/localbuild/Findrpclib.cmake deleted file mode 100644 index cf5149a7..00000000 --- a/cmake/localbuild/Findrpclib.cmake +++ /dev/null @@ -1,52 +0,0 @@ -# -# This is a "fake" Findrpclib.cmake. Don't use this in your project, -# it is just an internal hack used by rpclib itself. -# In your project, you will probably want to use the REAL -# Findrpclib.cmake, one directory level up from here! -# - -set(RPCLIB_INCLUDE_DIR "${RPCLIB_ROOT_DIR}/include") - -if(RPCLIB_INCLUDE_DIR) - file(READ - "${RPCLIB_INCLUDE_DIR}/rpc/version.h" - RPCLIB_VERSION_CONTENTS) - string(REGEX REPLACE - ".*#define RPCLIB_VERSION_MAJOR ([0-9]+).*" "\\1" - RPCLIB_VERSION_MAJOR "${RPCLIB_VERSION_CONTENTS}") - string(REGEX REPLACE - ".*#define RPCLIB_VERSION_MINOR ([0-9]+).*" "\\1" - RPCLIB_VERSION_MINOR "${RPCLIB_VERSION_CONTENTS}") - string(REGEX REPLACE - ".*#define RPCLIB_VERSION_PATCH ([0-9]+).*" "\\1" - RPCLIB_VERSION_PATCH "${RPCLIB_VERSION_CONTENTS}") - set(RPCLIB_VERSION_STR - "${RPCLIB_VERSION_MAJOR}.${RPCLIB_VERSION_MINOR}.${RPCLIB_VERSION_PATCH}") -endif() - -if (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") - set(RPCLIB_EXTRA_FLAGS "-pthread") -elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") - set(RPCLIB_EXTRA_FLAGS "-pthread") -elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "MSVC") - set(RPCLIB_EXTRA_FLAGS "/EHsc") - set(RPCLIB_EXTRA_FLAGS_DEBUG "/Zi") -endif() - -set(RPCLIB_FOUND "1") -set(RPCLIB_LIBS "${RPCLIB_PROJECT_NAME}") - -if(NOT $ENV{RPCLIB_DEFAULT_PORT}) - set(RPCLIB_DEFAULT_PORT 8080) -else() - set(RPCLIB_DEFAULT_PORT $ENV{RPCLIB_DEFAULT_PORT}) -endif() - -set(RPCLIB_COMPILE_DEFINITIONS - "ASIO_STANDALONE" - "RPCLIB_ASIO=clmdep_asio" - "RPCLIB_FMT=clmdep_fmt" - "RPCLIB_MSGPACK=clmdep_msgpack" - "RPCLIB_CXX_STANDARD=14" - "RPCLIB_DEFAULT_PORT=${RPCLIB_DEFAULT_PORT}" -) diff --git a/cmake/msvc_support.cmake b/cmake/msvc_support.cmake deleted file mode 100644 index a063bf8c..00000000 --- a/cmake/msvc_support.cmake +++ /dev/null @@ -1,55 +0,0 @@ - -function(rpclib_msvc_support) - if(MSVC) - # When building via conan, respect the compilation settings. - if ("${CONAN_LINK_RUNTIME}" STREQUAL "/MT") - set(RPCLIB_MSVC_STATIC_RUNTIME ON) - endif() - - if(RPCLIB_ENABLE_COVERAGE) - message(FATAL_ERROR "Coverage is only supported with non-MS compilers") - endif() - - target_compile_definitions(${PROJECT_NAME} PRIVATE - "WIN32_LEAN_AND_MEAN" - "NOMINMAX" - "VC_EXTRALEAN" - "_CRT_SECURE_NO_WARNINGS" - "_CRT_NONSTDC_NO_DEPRECATE" - "_WIN32_WINNT=0x0501" - "_GNU_SOURCE" - "ASIO_HAS_STD_ADDRESSOF" - "ASIO_HAS_STD_ARRAY" - "ASIO_HAS_CSTDINT" - "ASIO_HAS_STD_SHARED_PTR" - "ASIO_HAS_STD_TYPE_TRAITS") - - # MSVC static runtime support - # - # While this pollutes global flags (when using add_library), you would not want to - # build with a disparity anyway. (also, CMake still has no support for this, so you - # would end up doing something like this yourself). - if (RPCLIB_MSVC_STATIC_RUNTIME) - set(variables - CMAKE_C_FLAGS_DEBUG - CMAKE_C_FLAGS_MINSIZEREL - CMAKE_C_FLAGS_RELEASE - CMAKE_C_FLAGS_RELWITHDEBINFO - CMAKE_CXX_FLAGS_DEBUG - CMAKE_CXX_FLAGS_MINSIZEREL - CMAKE_CXX_FLAGS_RELEASE - CMAKE_CXX_FLAGS_RELWITHDEBINFO - ) - message(STATUS - "MSVC -> forcing use of statically-linked runtime." - ) - - foreach(variable ${variables}) - if(${variable} MATCHES "/MD") - string(REGEX REPLACE "/MD" "/MT" ${variable} "${${variable}}") - endif() - endforeach() - - endif() - endif() -endfunction() diff --git a/cmake/policies.cmake b/cmake/policies.cmake deleted file mode 100644 index 914d69a6..00000000 --- a/cmake/policies.cmake +++ /dev/null @@ -1,2 +0,0 @@ -cmake_policy(SET CMP0054 NEW) - diff --git a/cmake/rpclibConfig.cmake.in b/cmake/rpclibConfig.cmake.in deleted file mode 100644 index 1f7c385f..00000000 --- a/cmake/rpclibConfig.cmake.in +++ /dev/null @@ -1,10 +0,0 @@ -# Example usage: -# find_package(rpclib REQUIRED) -# add_executable(foo main.cpp) -# target_link_libraries(foo rpclib::rpc) - -@PACKAGE_INIT@ - -set(RPCLIB_VERSION @RPCLIB_VERSION_MAJOR@.@RPCLIB_VERSION_MINOR@.@RPCLIB_VERSION_PATCH@) - -include("${CMAKE_CURRENT_LIST_DIR}/rpclibTargets.cmake") diff --git a/codecov.yml b/codecov.yml deleted file mode 100644 index f5ca393c..00000000 --- a/codecov.yml +++ /dev/null @@ -1,7 +0,0 @@ - -ignore: - - "include/rpc/msgpack" - - "dependencies" - -coverage: - precision: 2 diff --git a/conanfile.txt b/conanfile.txt index 0911f43d..dd52605b 100644 --- a/conanfile.txt +++ b/conanfile.txt @@ -1,5 +1,6 @@ [requires] -cmake_installer/1.0@conan/stable +catch2/2.9.2 [generators] -virtualenv +cmake_find_package +cmake_paths diff --git a/dependencies/include/asio.hpp b/dependencies/include/asio.hpp deleted file mode 100644 index 59083da3..00000000 --- a/dependencies/include/asio.hpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// asio.hpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_HPP -#define ASIO_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/async_result.hpp" -#include "asio/basic_datagram_socket.hpp" -#include "asio/basic_deadline_timer.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/basic_raw_socket.hpp" -#include "asio/basic_seq_packet_socket.hpp" -#include "asio/basic_serial_port.hpp" -#include "asio/basic_signal_set.hpp" -#include "asio/basic_socket_acceptor.hpp" -#include "asio/basic_socket_iostream.hpp" -#include "asio/basic_socket_streambuf.hpp" -#include "asio/basic_stream_socket.hpp" -#include "asio/basic_streambuf.hpp" -#include "asio/basic_waitable_timer.hpp" -#include "asio/buffer.hpp" -#include "asio/buffered_read_stream_fwd.hpp" -#include "asio/buffered_read_stream.hpp" -#include "asio/buffered_stream_fwd.hpp" -#include "asio/buffered_stream.hpp" -#include "asio/buffered_write_stream_fwd.hpp" -#include "asio/buffered_write_stream.hpp" -#include "asio/buffers_iterator.hpp" -#include "asio/completion_condition.hpp" -#include "asio/connect.hpp" -#include "asio/coroutine.hpp" -#include "asio/datagram_socket_service.hpp" -#include "asio/deadline_timer_service.hpp" -#include "asio/deadline_timer.hpp" -#include "asio/error.hpp" -#include "asio/error_code.hpp" -#include "asio/generic/basic_endpoint.hpp" -#include "asio/generic/datagram_protocol.hpp" -#include "asio/generic/raw_protocol.hpp" -#include "asio/generic/seq_packet_protocol.hpp" -#include "asio/generic/stream_protocol.hpp" -#include "asio/handler_alloc_hook.hpp" -#include "asio/handler_continuation_hook.hpp" -#include "asio/handler_invoke_hook.hpp" -#include "asio/handler_type.hpp" -#include "asio/io_service.hpp" -#include "asio/ip/address.hpp" -#include "asio/ip/address_v4.hpp" -#include "asio/ip/address_v6.hpp" -#include "asio/ip/basic_endpoint.hpp" -#include "asio/ip/basic_resolver.hpp" -#include "asio/ip/basic_resolver_entry.hpp" -#include "asio/ip/basic_resolver_iterator.hpp" -#include "asio/ip/basic_resolver_query.hpp" -#include "asio/ip/host_name.hpp" -#include "asio/ip/icmp.hpp" -#include "asio/ip/multicast.hpp" -#include "asio/ip/resolver_query_base.hpp" -#include "asio/ip/resolver_service.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/ip/udp.hpp" -#include "asio/ip/unicast.hpp" -#include "asio/ip/v6_only.hpp" -#include "asio/is_read_buffered.hpp" -#include "asio/is_write_buffered.hpp" -#include "asio/local/basic_endpoint.hpp" -#include "asio/local/connect_pair.hpp" -#include "asio/local/datagram_protocol.hpp" -#include "asio/local/stream_protocol.hpp" -#include "asio/placeholders.hpp" -#include "asio/posix/basic_descriptor.hpp" -#include "asio/posix/basic_stream_descriptor.hpp" -#include "asio/posix/descriptor_base.hpp" -#include "asio/posix/stream_descriptor.hpp" -#include "asio/posix/stream_descriptor_service.hpp" -#include "asio/raw_socket_service.hpp" -#include "asio/read.hpp" -#include "asio/read_at.hpp" -#include "asio/read_until.hpp" -#include "asio/seq_packet_socket_service.hpp" -#include "asio/serial_port.hpp" -#include "asio/serial_port_base.hpp" -#include "asio/serial_port_service.hpp" -#include "asio/signal_set.hpp" -#include "asio/signal_set_service.hpp" -#include "asio/socket_acceptor_service.hpp" -#include "asio/socket_base.hpp" -#include "asio/strand.hpp" -#include "asio/stream_socket_service.hpp" -#include "asio/streambuf.hpp" -#include "asio/system_error.hpp" -#include "asio/thread.hpp" -#include "asio/time_traits.hpp" -#include "asio/version.hpp" -#include "asio/wait_traits.hpp" -#include "asio/waitable_timer_service.hpp" -#include "asio/windows/basic_handle.hpp" -#include "asio/windows/basic_object_handle.hpp" -#include "asio/windows/basic_random_access_handle.hpp" -#include "asio/windows/basic_stream_handle.hpp" -#include "asio/windows/object_handle.hpp" -#include "asio/windows/object_handle_service.hpp" -#include "asio/windows/overlapped_ptr.hpp" -#include "asio/windows/random_access_handle.hpp" -#include "asio/windows/random_access_handle_service.hpp" -#include "asio/windows/stream_handle.hpp" -#include "asio/windows/stream_handle_service.hpp" -#include "asio/write.hpp" -#include "asio/write_at.hpp" - -#endif // ASIO_HPP diff --git a/dependencies/include/asio/async_result.hpp b/dependencies/include/asio/async_result.hpp deleted file mode 100644 index 180e58f0..00000000 --- a/dependencies/include/asio/async_result.hpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// async_result.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_ASYNC_RESULT_HPP -#define ASIO_ASYNC_RESULT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/handler_type.hpp" - -#include "asio/detail/push_options.hpp" - -namespace clmdep_asio { - -/// An interface for customising the behaviour of an initiating function. -/** - * This template may be specialised for user-defined handler types. - */ -template -class async_result -{ -public: - /// The return type of the initiating function. - typedef void type; - - /// Construct an async result from a given handler. - /** - * When using a specalised async_result, the constructor has an opportunity - * to initialise some state associated with the handler, which is then - * returned from the initiating function. - */ - explicit async_result(Handler&) - { - } - - /// Obtain the value to be returned from the initiating function. - type get() - { - } -}; - -namespace detail { - -// Helper template to deduce the true type of a handler, capture a local copy -// of the handler, and then create an async_result for the handler. -template -struct async_result_init -{ - explicit async_result_init(ASIO_MOVE_ARG(Handler) orig_handler) - : handler(ASIO_MOVE_CAST(Handler)(orig_handler)), - result(handler) - { - } - - typename handler_type::type handler; - async_result::type> result; -}; - -template -struct async_result_type_helper -{ - typedef typename async_result< - typename handler_type::type - >::type type; -}; - -} // namespace detail -} // namespace clmdep_asio - -#include "asio/detail/pop_options.hpp" - -#if defined(GENERATING_DOCUMENTATION) -# define ASIO_INITFN_RESULT_TYPE(h, sig) \ - void_or_deduced -#elif defined(_MSC_VER) && (_MSC_VER < 1500) -# define ASIO_INITFN_RESULT_TYPE(h, sig) \ - typename ::clmdep_asio::detail::async_result_type_helper::type -#else -# define ASIO_INITFN_RESULT_TYPE(h, sig) \ - typename ::clmdep_asio::async_result< \ - typename ::clmdep_asio::handler_type::type>::type -#endif - -#endif // ASIO_ASYNC_RESULT_HPP diff --git a/dependencies/include/asio/basic_datagram_socket.hpp b/dependencies/include/asio/basic_datagram_socket.hpp deleted file mode 100644 index e71239c7..00000000 --- a/dependencies/include/asio/basic_datagram_socket.hpp +++ /dev/null @@ -1,949 +0,0 @@ -// -// basic_datagram_socket.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_BASIC_DATAGRAM_SOCKET_HPP -#define ASIO_BASIC_DATAGRAM_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/basic_socket.hpp" -#include "asio/datagram_socket_service.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace clmdep_asio { - -/// Provides datagram-oriented socket functionality. -/** - * The basic_datagram_socket class template provides asynchronous and blocking - * datagram-oriented socket functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template > -class basic_datagram_socket - : public basic_socket -{ -public: - /// (Deprecated: Use native_handle_type.) The native representation of a - /// socket. - typedef typename DatagramSocketService::native_handle_type native_type; - - /// The native representation of a socket. - typedef typename DatagramSocketService::native_handle_type native_handle_type; - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct a basic_datagram_socket without opening it. - /** - * This constructor creates a datagram socket without opening it. The open() - * function must be called before data can be sent or received on the socket. - * - * @param io_service The io_service object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - */ - explicit basic_datagram_socket(clmdep_asio::io_service& io_service) - : basic_socket(io_service) - { - } - - /// Construct and open a basic_datagram_socket. - /** - * This constructor creates and opens a datagram socket. - * - * @param io_service The io_service object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - basic_datagram_socket(clmdep_asio::io_service& io_service, - const protocol_type& protocol) - : basic_socket(io_service, protocol) - { - } - - /// Construct a basic_datagram_socket, opening it and binding it to the given - /// local endpoint. - /** - * This constructor creates a datagram socket and automatically opens it bound - * to the specified endpoint on the local machine. The protocol used is the - * protocol associated with the given endpoint. - * - * @param io_service The io_service object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param endpoint An endpoint on the local machine to which the datagram - * socket will be bound. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - basic_datagram_socket(clmdep_asio::io_service& io_service, - const endpoint_type& endpoint) - : basic_socket(io_service, endpoint) - { - } - - /// Construct a basic_datagram_socket on an existing native socket. - /** - * This constructor creates a datagram socket object to hold an existing - * native socket. - * - * @param io_service The io_service object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_socket The new underlying socket implementation. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - basic_datagram_socket(clmdep_asio::io_service& io_service, - const protocol_type& protocol, const native_handle_type& native_socket) - : basic_socket( - io_service, protocol, native_socket) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_datagram_socket from another. - /** - * This constructor moves a datagram socket from one object to another. - * - * @param other The other basic_datagram_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_datagram_socket(io_service&) constructor. - */ - basic_datagram_socket(basic_datagram_socket&& other) - : basic_socket( - ASIO_MOVE_CAST(basic_datagram_socket)(other)) - { - } - - /// Move-assign a basic_datagram_socket from another. - /** - * This assignment operator moves a datagram socket from one object to - * another. - * - * @param other The other basic_datagram_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_datagram_socket(io_service&) constructor. - */ - basic_datagram_socket& operator=(basic_datagram_socket&& other) - { - basic_socket::operator=( - ASIO_MOVE_CAST(basic_datagram_socket)(other)); - return *this; - } - - /// Move-construct a basic_datagram_socket from a socket of another protocol - /// type. - /** - * This constructor moves a datagram socket from one object to another. - * - * @param other The other basic_datagram_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_datagram_socket(io_service&) constructor. - */ - template - basic_datagram_socket( - basic_datagram_socket&& other, - typename enable_if::value>::type* = 0) - : basic_socket( - ASIO_MOVE_CAST2(basic_datagram_socket< - Protocol1, DatagramSocketService1>)(other)) - { - } - - /// Move-assign a basic_datagram_socket from a socket of another protocol - /// type. - /** - * This assignment operator moves a datagram socket from one object to - * another. - * - * @param other The other basic_datagram_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_datagram_socket(io_service&) constructor. - */ - template - typename enable_if::value, - basic_datagram_socket>::type& operator=( - basic_datagram_socket&& other) - { - basic_socket::operator=( - ASIO_MOVE_CAST2(basic_datagram_socket< - Protocol1, DatagramSocketService1>)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Send some data on a connected socket. - /** - * This function is used to send data on the datagram socket. The function - * call will block until the data has been sent successfully or an error - * occurs. - * - * @param buffers One ore more data buffers to be sent on the socket. - * - * @returns The number of bytes sent. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected datagram socket. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code socket.send(clmdep_asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send(const ConstBufferSequence& buffers) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, 0, ec); - clmdep_asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the datagram socket. The function - * call will block until the data has been sent successfully or an error - * occurs. - * - * @param buffers One ore more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected datagram socket. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, flags, ec); - clmdep_asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the datagram socket. The function - * call will block until the data has been sent successfully or an error - * occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected datagram socket. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, clmdep_asio::error_code& ec) - { - return this->get_service().send( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous send on a connected socket. - /** - * This function is used to asynchronously send data on the datagram socket. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @note The async_send operation can only be used with a connected socket. - * Use the async_send_to function to send data on an unconnected datagram - * socket. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_send(clmdep_asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (clmdep_asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - return this->get_service().async_send(this->get_implementation(), - buffers, 0, ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Start an asynchronous send on a connected socket. - /** - * This function is used to asynchronously send data on the datagram socket. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @note The async_send operation can only be used with a connected socket. - * Use the async_send_to function to send data on an unconnected datagram - * socket. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (clmdep_asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - return this->get_service().async_send(this->get_implementation(), - buffers, flags, ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Send a datagram to the specified endpoint. - /** - * This function is used to send a datagram to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @returns The number of bytes sent. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * clmdep_asio::ip::udp::endpoint destination( - * clmdep_asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.send_to(clmdep_asio::buffer(data, size), destination); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().send_to( - this->get_implementation(), buffers, destination, 0, ec); - clmdep_asio::detail::throw_error(ec, "send_to"); - return s; - } - - /// Send a datagram to the specified endpoint. - /** - * This function is used to send a datagram to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().send_to( - this->get_implementation(), buffers, destination, flags, ec); - clmdep_asio::detail::throw_error(ec, "send_to"); - return s; - } - - /// Send a datagram to the specified endpoint. - /** - * This function is used to send a datagram to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - clmdep_asio::error_code& ec) - { - return this->get_service().send_to(this->get_implementation(), - buffers, destination, flags, ec); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send a datagram to the specified - * remote endpoint. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param destination The remote endpoint to which the data will be sent. - * Copies will be made of the endpoint as required. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * clmdep_asio::ip::udp::endpoint destination( - * clmdep_asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.async_send_to( - * clmdep_asio::buffer(data, size), destination, handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (clmdep_asio::error_code, std::size_t)) - async_send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - return this->get_service().async_send_to( - this->get_implementation(), buffers, destination, 0, - ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send a datagram to the specified - * remote endpoint. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param destination The remote endpoint to which the data will be sent. - * Copies will be made of the endpoint as required. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (clmdep_asio::error_code, std::size_t)) - async_send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - return this->get_service().async_send_to( - this->get_implementation(), buffers, destination, flags, - ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the datagram socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @returns The number of bytes received. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected datagram - * socket. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code socket.receive(clmdep_asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, 0, ec); - clmdep_asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the datagram socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected datagram - * socket. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, flags, ec); - clmdep_asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the datagram socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected datagram - * socket. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, clmdep_asio::error_code& ec) - { - return this->get_service().receive( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous receive on a connected socket. - /** - * This function is used to asynchronously receive data from the datagram - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @note The async_receive operation can only be used with a connected socket. - * Use the async_receive_from function to receive data on an unconnected - * datagram socket. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive(clmdep_asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (clmdep_asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_receive(this->get_implementation(), - buffers, 0, ASIO_MOVE_CAST(ReadHandler)(handler)); - } - - /// Start an asynchronous receive on a connected socket. - /** - * This function is used to asynchronously receive data from the datagram - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @note The async_receive operation can only be used with a connected socket. - * Use the async_receive_from function to receive data on an unconnected - * datagram socket. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (clmdep_asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_receive(this->get_implementation(), - buffers, flags, ASIO_MOVE_CAST(ReadHandler)(handler)); - } - - /// Receive a datagram with the endpoint of the sender. - /** - * This function is used to receive a datagram. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. - * - * @returns The number of bytes received. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * clmdep_asio::ip::udp::endpoint sender_endpoint; - * socket.receive_from( - * clmdep_asio::buffer(data, size), sender_endpoint); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, ec); - clmdep_asio::detail::throw_error(ec, "receive_from"); - return s; - } - - /// Receive a datagram with the endpoint of the sender. - /** - * This function is used to receive a datagram. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, ec); - clmdep_asio::detail::throw_error(ec, "receive_from"); - return s; - } - - /// Receive a datagram with the endpoint of the sender. - /** - * This function is used to receive a datagram. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - clmdep_asio::error_code& ec) - { - return this->get_service().receive_from(this->get_implementation(), - buffers, sender_endpoint, flags, ec); - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive a datagram. The function - * call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. Ownership of the sender_endpoint object - * is retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code socket.async_receive_from( - * clmdep_asio::buffer(data, size), sender_endpoint, handler); @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (clmdep_asio::error_code, std::size_t)) - async_receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, - ASIO_MOVE_CAST(ReadHandler)(handler)); - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive a datagram. The function - * call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. Ownership of the sender_endpoint object - * is retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (clmdep_asio::error_code, std::size_t)) - async_receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, - ASIO_MOVE_CAST(ReadHandler)(handler)); - } -}; - -} // namespace clmdep_asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BASIC_DATAGRAM_SOCKET_HPP diff --git a/dependencies/include/asio/basic_deadline_timer.hpp b/dependencies/include/asio/basic_deadline_timer.hpp deleted file mode 100644 index bca0cb40..00000000 --- a/dependencies/include/asio/basic_deadline_timer.hpp +++ /dev/null @@ -1,518 +0,0 @@ -// -// basic_deadline_timer.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_BASIC_DEADLINE_TIMER_HPP -#define ASIO_BASIC_DEADLINE_TIMER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/basic_io_object.hpp" -#include "asio/deadline_timer_service.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace clmdep_asio { - -/// Provides waitable timer functionality. -/** - * The basic_deadline_timer class template provides the ability to perform a - * blocking or asynchronous wait for a timer to expire. - * - * A deadline timer is always in one of two states: "expired" or "not expired". - * If the wait() or async_wait() function is called on an expired timer, the - * wait operation will complete immediately. - * - * Most applications will use the clmdep_asio::deadline_timer typedef. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Examples - * Performing a blocking wait: - * @code - * // Construct a timer without setting an expiry time. - * clmdep_asio::deadline_timer timer(io_service); - * - * // Set an expiry time relative to now. - * timer.expires_from_now(boost::posix_time::seconds(5)); - * - * // Wait for the timer to expire. - * timer.wait(); - * @endcode - * - * @par - * Performing an asynchronous wait: - * @code - * void handler(const clmdep_asio::error_code& error) - * { - * if (!error) - * { - * // Timer expired. - * } - * } - * - * ... - * - * // Construct a timer with an absolute expiry time. - * clmdep_asio::deadline_timer timer(io_service, - * boost::posix_time::time_from_string("2005-12-07 23:59:59.000")); - * - * // Start an asynchronous wait. - * timer.async_wait(handler); - * @endcode - * - * @par Changing an active deadline_timer's expiry time - * - * Changing the expiry time of a timer while there are pending asynchronous - * waits causes those wait operations to be cancelled. To ensure that the action - * associated with the timer is performed only once, use something like this: - * used: - * - * @code - * void on_some_event() - * { - * if (my_timer.expires_from_now(seconds(5)) > 0) - * { - * // We managed to cancel the timer. Start new asynchronous wait. - * my_timer.async_wait(on_timeout); - * } - * else - * { - * // Too late, timer has already expired! - * } - * } - * - * void on_timeout(const clmdep_asio::error_code& e) - * { - * if (e != clmdep_asio::error::operation_aborted) - * { - * // Timer was not cancelled, take necessary action. - * } - * } - * @endcode - * - * @li The clmdep_asio::basic_deadline_timer::expires_from_now() function - * cancels any pending asynchronous waits, and returns the number of - * asynchronous waits that were cancelled. If it returns 0 then you were too - * late and the wait handler has already been executed, or will soon be - * executed. If it returns 1 then the wait handler was successfully cancelled. - * - * @li If a wait handler is cancelled, the clmdep_asio::error_code passed to - * it contains the value clmdep_asio::error::operation_aborted. - */ -template , - typename TimerService = deadline_timer_service > -class basic_deadline_timer - : public basic_io_object -{ -public: - /// The time traits type. - typedef TimeTraits traits_type; - - /// The time type. - typedef typename traits_type::time_type time_type; - - /// The duration type. - typedef typename traits_type::duration_type duration_type; - - /// Constructor. - /** - * This constructor creates a timer without setting an expiry time. The - * expires_at() or expires_from_now() functions must be called to set an - * expiry time before the timer can be waited on. - * - * @param io_service The io_service object that the timer will use to dispatch - * handlers for any asynchronous operations performed on the timer. - */ - explicit basic_deadline_timer(clmdep_asio::io_service& io_service) - : basic_io_object(io_service) - { - } - - /// Constructor to set a particular expiry time as an absolute time. - /** - * This constructor creates a timer and sets the expiry time. - * - * @param io_service The io_service object that the timer will use to dispatch - * handlers for any asynchronous operations performed on the timer. - * - * @param expiry_time The expiry time to be used for the timer, expressed - * as an absolute time. - */ - basic_deadline_timer(clmdep_asio::io_service& io_service, - const time_type& expiry_time) - : basic_io_object(io_service) - { - clmdep_asio::error_code ec; - this->service.expires_at(this->implementation, expiry_time, ec); - clmdep_asio::detail::throw_error(ec, "expires_at"); - } - - /// Constructor to set a particular expiry time relative to now. - /** - * This constructor creates a timer and sets the expiry time. - * - * @param io_service The io_service object that the timer will use to dispatch - * handlers for any asynchronous operations performed on the timer. - * - * @param expiry_time The expiry time to be used for the timer, relative to - * now. - */ - basic_deadline_timer(clmdep_asio::io_service& io_service, - const duration_type& expiry_time) - : basic_io_object(io_service) - { - clmdep_asio::error_code ec; - this->service.expires_from_now(this->implementation, expiry_time, ec); - clmdep_asio::detail::throw_error(ec, "expires_from_now"); - } - - /// Cancel any asynchronous operations that are waiting on the timer. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the timer. The handler for each cancelled operation will - * be invoked with the clmdep_asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note If the timer has already expired when cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel() - { - clmdep_asio::error_code ec; - std::size_t s = this->service.cancel(this->implementation, ec); - clmdep_asio::detail::throw_error(ec, "cancel"); - return s; - } - - /// Cancel any asynchronous operations that are waiting on the timer. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the timer. The handler for each cancelled operation will - * be invoked with the clmdep_asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. - * - * @note If the timer has already expired when cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel(clmdep_asio::error_code& ec) - { - return this->service.cancel(this->implementation, ec); - } - - /// Cancels one asynchronous operation that is waiting on the timer. - /** - * This function forces the completion of one pending asynchronous wait - * operation against the timer. Handlers are cancelled in FIFO order. The - * handler for the cancelled operation will be invoked with the - * clmdep_asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @return The number of asynchronous operations that were cancelled. That is, - * either 0 or 1. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note If the timer has already expired when cancel_one() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel_one() - { - clmdep_asio::error_code ec; - std::size_t s = this->service.cancel_one(this->implementation, ec); - clmdep_asio::detail::throw_error(ec, "cancel_one"); - return s; - } - - /// Cancels one asynchronous operation that is waiting on the timer. - /** - * This function forces the completion of one pending asynchronous wait - * operation against the timer. Handlers are cancelled in FIFO order. The - * handler for the cancelled operation will be invoked with the - * clmdep_asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. That is, - * either 0 or 1. - * - * @note If the timer has already expired when cancel_one() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel_one(clmdep_asio::error_code& ec) - { - return this->service.cancel_one(this->implementation, ec); - } - - /// Get the timer's expiry time as an absolute time. - /** - * This function may be used to obtain the timer's current expiry time. - * Whether the timer has expired or not does not affect this value. - */ - time_type expires_at() const - { - return this->service.expires_at(this->implementation); - } - - /// Set the timer's expiry time as an absolute time. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the clmdep_asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note If the timer has already expired when expires_at() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_at(const time_type& expiry_time) - { - clmdep_asio::error_code ec; - std::size_t s = this->service.expires_at( - this->implementation, expiry_time, ec); - clmdep_asio::detail::throw_error(ec, "expires_at"); - return s; - } - - /// Set the timer's expiry time as an absolute time. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the clmdep_asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. - * - * @note If the timer has already expired when expires_at() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_at(const time_type& expiry_time, - clmdep_asio::error_code& ec) - { - return this->service.expires_at(this->implementation, expiry_time, ec); - } - - /// Get the timer's expiry time relative to now. - /** - * This function may be used to obtain the timer's current expiry time. - * Whether the timer has expired or not does not affect this value. - */ - duration_type expires_from_now() const - { - return this->service.expires_from_now(this->implementation); - } - - /// Set the timer's expiry time relative to now. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the clmdep_asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note If the timer has already expired when expires_from_now() is called, - * then the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_from_now(const duration_type& expiry_time) - { - clmdep_asio::error_code ec; - std::size_t s = this->service.expires_from_now( - this->implementation, expiry_time, ec); - clmdep_asio::detail::throw_error(ec, "expires_from_now"); - return s; - } - - /// Set the timer's expiry time relative to now. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the clmdep_asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. - * - * @note If the timer has already expired when expires_from_now() is called, - * then the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_from_now(const duration_type& expiry_time, - clmdep_asio::error_code& ec) - { - return this->service.expires_from_now( - this->implementation, expiry_time, ec); - } - - /// Perform a blocking wait on the timer. - /** - * This function is used to wait for the timer to expire. This function - * blocks and does not return until the timer has expired. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - void wait() - { - clmdep_asio::error_code ec; - this->service.wait(this->implementation, ec); - clmdep_asio::detail::throw_error(ec, "wait"); - } - - /// Perform a blocking wait on the timer. - /** - * This function is used to wait for the timer to expire. This function - * blocks and does not return until the timer has expired. - * - * @param ec Set to indicate what error occurred, if any. - */ - void wait(clmdep_asio::error_code& ec) - { - this->service.wait(this->implementation, ec); - } - - /// Start an asynchronous wait on the timer. - /** - * This function may be used to initiate an asynchronous wait against the - * timer. It always returns immediately. - * - * For each call to async_wait(), the supplied handler will be called exactly - * once. The handler will be called when: - * - * @li The timer has expired. - * - * @li The timer was cancelled, in which case the handler is passed the error - * code clmdep_asio::error::operation_aborted. - * - * @param handler The handler to be called when the timer expires. Copies - * will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const clmdep_asio::error_code& error // Result of operation. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (clmdep_asio::error_code)) - async_wait(ASIO_MOVE_ARG(WaitHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WaitHandler. - ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check; - - return this->service.async_wait(this->implementation, - ASIO_MOVE_CAST(WaitHandler)(handler)); - } -}; - -} // namespace clmdep_asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_BASIC_DEADLINE_TIMER_HPP diff --git a/dependencies/include/asio/basic_io_object.hpp b/dependencies/include/asio/basic_io_object.hpp deleted file mode 100644 index 24b75d20..00000000 --- a/dependencies/include/asio/basic_io_object.hpp +++ /dev/null @@ -1,240 +0,0 @@ -// -// basic_io_object.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_BASIC_IO_OBJECT_HPP -#define ASIO_BASIC_IO_OBJECT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/io_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace clmdep_asio { - -#if defined(ASIO_HAS_MOVE) -namespace detail -{ - // Type trait used to determine whether a service supports move. - template - class service_has_move - { - private: - typedef IoObjectService service_type; - typedef typename service_type::implementation_type implementation_type; - - template - static auto eval(T* t, U* u) -> decltype(t->move_construct(*u, *u), char()); - static char (&eval(...))[2]; - - public: - static const bool value = - sizeof(service_has_move::eval( - static_cast(0), - static_cast(0))) == 1; - }; -} -#endif // defined(ASIO_HAS_MOVE) - -/// Base class for all I/O objects. -/** - * @note All I/O objects are non-copyable. However, when using C++0x, certain - * I/O objects do support move construction and move assignment. - */ -#if !defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) -template -#else -template ::value> -#endif -class basic_io_object -{ -public: - /// The type of the service that will be used to provide I/O operations. - typedef IoObjectService service_type; - - /// The underlying implementation type of I/O object. - typedef typename service_type::implementation_type implementation_type; - - /// Get the io_service associated with the object. - /** - * This function may be used to obtain the io_service object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_service object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - clmdep_asio::io_service& get_io_service() - { - return service.get_io_service(); - } - -protected: - /// Construct a basic_io_object. - /** - * Performs: - * @code get_service().construct(get_implementation()); @endcode - */ - explicit basic_io_object(clmdep_asio::io_service& io_service) - : service(clmdep_asio::use_service(io_service)) - { - service.construct(implementation); - } - -#if defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_io_object. - /** - * Performs: - * @code get_service().move_construct( - * get_implementation(), other.get_implementation()); @endcode - * - * @note Available only for services that support movability, - */ - basic_io_object(basic_io_object&& other); - - /// Move-assign a basic_io_object. - /** - * Performs: - * @code get_service().move_assign(get_implementation(), - * other.get_service(), other.get_implementation()); @endcode - * - * @note Available only for services that support movability, - */ - basic_io_object& operator=(basic_io_object&& other); -#endif // defined(GENERATING_DOCUMENTATION) - - /// Protected destructor to prevent deletion through this type. - /** - * Performs: - * @code get_service().destroy(get_implementation()); @endcode - */ - ~basic_io_object() - { - service.destroy(implementation); - } - - /// Get the service associated with the I/O object. - service_type& get_service() - { - return service; - } - - /// Get the service associated with the I/O object. - const service_type& get_service() const - { - return service; - } - - /// (Deprecated: Use get_service().) The service associated with the I/O - /// object. - /** - * @note Available only for services that do not support movability. - */ - service_type& service; - - /// Get the underlying implementation of the I/O object. - implementation_type& get_implementation() - { - return implementation; - } - - /// Get the underlying implementation of the I/O object. - const implementation_type& get_implementation() const - { - return implementation; - } - - /// (Deprecated: Use get_implementation().) The underlying implementation of - /// the I/O object. - implementation_type implementation; - -private: - basic_io_object(const basic_io_object&); - basic_io_object& operator=(const basic_io_object&); -}; - -#if defined(ASIO_HAS_MOVE) -// Specialisation for movable objects. -template -class basic_io_object -{ -public: - typedef IoObjectService service_type; - typedef typename service_type::implementation_type implementation_type; - - clmdep_asio::io_service& get_io_service() - { - return service_->get_io_service(); - } - -protected: - explicit basic_io_object(clmdep_asio::io_service& io_service) - : service_(&clmdep_asio::use_service(io_service)) - { - service_->construct(implementation); - } - - basic_io_object(basic_io_object&& other) - : service_(&other.get_service()) - { - service_->move_construct(implementation, other.implementation); - } - - ~basic_io_object() - { - service_->destroy(implementation); - } - - basic_io_object& operator=(basic_io_object&& other) - { - service_->move_assign(implementation, - *other.service_, other.implementation); - service_ = other.service_; - return *this; - } - - service_type& get_service() - { - return *service_; - } - - const service_type& get_service() const - { - return *service_; - } - - implementation_type& get_implementation() - { - return implementation; - } - - const implementation_type& get_implementation() const - { - return implementation; - } - - implementation_type implementation; - -private: - basic_io_object(const basic_io_object&); - void operator=(const basic_io_object&); - - IoObjectService* service_; -}; -#endif // defined(ASIO_HAS_MOVE) - -} // namespace clmdep_asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BASIC_IO_OBJECT_HPP diff --git a/dependencies/include/asio/basic_raw_socket.hpp b/dependencies/include/asio/basic_raw_socket.hpp deleted file mode 100644 index f9699cf7..00000000 --- a/dependencies/include/asio/basic_raw_socket.hpp +++ /dev/null @@ -1,940 +0,0 @@ -// -// basic_raw_socket.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_BASIC_RAW_SOCKET_HPP -#define ASIO_BASIC_RAW_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/basic_socket.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/raw_socket_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace clmdep_asio { - -/// Provides raw-oriented socket functionality. -/** - * The basic_raw_socket class template provides asynchronous and blocking - * raw-oriented socket functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template > -class basic_raw_socket - : public basic_socket -{ -public: - /// (Deprecated: Use native_handle_type.) The native representation of a - /// socket. - typedef typename RawSocketService::native_handle_type native_type; - - /// The native representation of a socket. - typedef typename RawSocketService::native_handle_type native_handle_type; - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct a basic_raw_socket without opening it. - /** - * This constructor creates a raw socket without opening it. The open() - * function must be called before data can be sent or received on the socket. - * - * @param io_service The io_service object that the raw socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - */ - explicit basic_raw_socket(clmdep_asio::io_service& io_service) - : basic_socket(io_service) - { - } - - /// Construct and open a basic_raw_socket. - /** - * This constructor creates and opens a raw socket. - * - * @param io_service The io_service object that the raw socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - basic_raw_socket(clmdep_asio::io_service& io_service, - const protocol_type& protocol) - : basic_socket(io_service, protocol) - { - } - - /// Construct a basic_raw_socket, opening it and binding it to the given - /// local endpoint. - /** - * This constructor creates a raw socket and automatically opens it bound - * to the specified endpoint on the local machine. The protocol used is the - * protocol associated with the given endpoint. - * - * @param io_service The io_service object that the raw socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param endpoint An endpoint on the local machine to which the raw - * socket will be bound. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - basic_raw_socket(clmdep_asio::io_service& io_service, - const endpoint_type& endpoint) - : basic_socket(io_service, endpoint) - { - } - - /// Construct a basic_raw_socket on an existing native socket. - /** - * This constructor creates a raw socket object to hold an existing - * native socket. - * - * @param io_service The io_service object that the raw socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_socket The new underlying socket implementation. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - basic_raw_socket(clmdep_asio::io_service& io_service, - const protocol_type& protocol, const native_handle_type& native_socket) - : basic_socket( - io_service, protocol, native_socket) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_raw_socket from another. - /** - * This constructor moves a raw socket from one object to another. - * - * @param other The other basic_raw_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_raw_socket(io_service&) constructor. - */ - basic_raw_socket(basic_raw_socket&& other) - : basic_socket( - ASIO_MOVE_CAST(basic_raw_socket)(other)) - { - } - - /// Move-assign a basic_raw_socket from another. - /** - * This assignment operator moves a raw socket from one object to another. - * - * @param other The other basic_raw_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_raw_socket(io_service&) constructor. - */ - basic_raw_socket& operator=(basic_raw_socket&& other) - { - basic_socket::operator=( - ASIO_MOVE_CAST(basic_raw_socket)(other)); - return *this; - } - - /// Move-construct a basic_raw_socket from a socket of another protocol type. - /** - * This constructor moves a raw socket from one object to another. - * - * @param other The other basic_raw_socket object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_raw_socket(io_service&) constructor. - */ - template - basic_raw_socket(basic_raw_socket&& other, - typename enable_if::value>::type* = 0) - : basic_socket( - ASIO_MOVE_CAST2(basic_raw_socket< - Protocol1, RawSocketService1>)(other)) - { - } - - /// Move-assign a basic_raw_socket from a socket of another protocol type. - /** - * This assignment operator moves a raw socket from one object to another. - * - * @param other The other basic_raw_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_raw_socket(io_service&) constructor. - */ - template - typename enable_if::value, - basic_raw_socket>::type& operator=( - basic_raw_socket&& other) - { - basic_socket::operator=( - ASIO_MOVE_CAST2(basic_raw_socket< - Protocol1, RawSocketService1>)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Send some data on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One ore more data buffers to be sent on the socket. - * - * @returns The number of bytes sent. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected raw socket. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code socket.send(clmdep_asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send(const ConstBufferSequence& buffers) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, 0, ec); - clmdep_asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One ore more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected raw socket. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, flags, ec); - clmdep_asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected raw socket. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, clmdep_asio::error_code& ec) - { - return this->get_service().send( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous send on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @note The async_send operation can only be used with a connected socket. - * Use the async_send_to function to send data on an unconnected raw - * socket. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_send(clmdep_asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (clmdep_asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - return this->get_service().async_send(this->get_implementation(), - buffers, 0, ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Start an asynchronous send on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @note The async_send operation can only be used with a connected socket. - * Use the async_send_to function to send data on an unconnected raw - * socket. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (clmdep_asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - return this->get_service().async_send(this->get_implementation(), - buffers, flags, ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Send raw data to the specified endpoint. - /** - * This function is used to send raw data to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @returns The number of bytes sent. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * clmdep_asio::ip::udp::endpoint destination( - * clmdep_asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.send_to(clmdep_asio::buffer(data, size), destination); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().send_to( - this->get_implementation(), buffers, destination, 0, ec); - clmdep_asio::detail::throw_error(ec, "send_to"); - return s; - } - - /// Send raw data to the specified endpoint. - /** - * This function is used to send raw data to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().send_to( - this->get_implementation(), buffers, destination, flags, ec); - clmdep_asio::detail::throw_error(ec, "send_to"); - return s; - } - - /// Send raw data to the specified endpoint. - /** - * This function is used to send raw data to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - clmdep_asio::error_code& ec) - { - return this->get_service().send_to(this->get_implementation(), - buffers, destination, flags, ec); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send raw data to the specified - * remote endpoint. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param destination The remote endpoint to which the data will be sent. - * Copies will be made of the endpoint as required. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * clmdep_asio::ip::udp::endpoint destination( - * clmdep_asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.async_send_to( - * clmdep_asio::buffer(data, size), destination, handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (clmdep_asio::error_code, std::size_t)) - async_send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - return this->get_service().async_send_to(this->get_implementation(), - buffers, destination, 0, ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send raw data to the specified - * remote endpoint. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param destination The remote endpoint to which the data will be sent. - * Copies will be made of the endpoint as required. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (clmdep_asio::error_code, std::size_t)) - async_send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - return this->get_service().async_send_to( - this->get_implementation(), buffers, destination, flags, - ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the raw socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @returns The number of bytes received. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected raw - * socket. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code socket.receive(clmdep_asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, 0, ec); - clmdep_asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the raw socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected raw - * socket. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, flags, ec); - clmdep_asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the raw socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected raw - * socket. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, clmdep_asio::error_code& ec) - { - return this->get_service().receive( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous receive on a connected socket. - /** - * This function is used to asynchronously receive data from the raw - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @note The async_receive operation can only be used with a connected socket. - * Use the async_receive_from function to receive data on an unconnected - * raw socket. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive(clmdep_asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (clmdep_asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_receive(this->get_implementation(), - buffers, 0, ASIO_MOVE_CAST(ReadHandler)(handler)); - } - - /// Start an asynchronous receive on a connected socket. - /** - * This function is used to asynchronously receive data from the raw - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @note The async_receive operation can only be used with a connected socket. - * Use the async_receive_from function to receive data on an unconnected - * raw socket. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (clmdep_asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_receive(this->get_implementation(), - buffers, flags, ASIO_MOVE_CAST(ReadHandler)(handler)); - } - - /// Receive raw data with the endpoint of the sender. - /** - * This function is used to receive raw data. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. - * - * @returns The number of bytes received. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * clmdep_asio::ip::udp::endpoint sender_endpoint; - * socket.receive_from( - * clmdep_asio::buffer(data, size), sender_endpoint); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, ec); - clmdep_asio::detail::throw_error(ec, "receive_from"); - return s; - } - - /// Receive raw data with the endpoint of the sender. - /** - * This function is used to receive raw data. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, ec); - clmdep_asio::detail::throw_error(ec, "receive_from"); - return s; - } - - /// Receive raw data with the endpoint of the sender. - /** - * This function is used to receive raw data. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - clmdep_asio::error_code& ec) - { - return this->get_service().receive_from(this->get_implementation(), - buffers, sender_endpoint, flags, ec); - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive raw data. The function - * call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. Ownership of the sender_endpoint object - * is retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code socket.async_receive_from( - * clmdep_asio::buffer(data, size), 0, sender_endpoint, handler); @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (clmdep_asio::error_code, std::size_t)) - async_receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, - ASIO_MOVE_CAST(ReadHandler)(handler)); - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive raw data. The function - * call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. Ownership of the sender_endpoint object - * is retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (clmdep_asio::error_code, std::size_t)) - async_receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, - ASIO_MOVE_CAST(ReadHandler)(handler)); - } -}; - -} // namespace clmdep_asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BASIC_RAW_SOCKET_HPP diff --git a/dependencies/include/asio/basic_seq_packet_socket.hpp b/dependencies/include/asio/basic_seq_packet_socket.hpp deleted file mode 100644 index 91fc2cb2..00000000 --- a/dependencies/include/asio/basic_seq_packet_socket.hpp +++ /dev/null @@ -1,565 +0,0 @@ -// -// basic_seq_packet_socket.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_BASIC_SEQ_PACKET_SOCKET_HPP -#define ASIO_BASIC_SEQ_PACKET_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/basic_socket.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/seq_packet_socket_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace clmdep_asio { - -/// Provides sequenced packet socket functionality. -/** - * The basic_seq_packet_socket class template provides asynchronous and blocking - * sequenced packet socket functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template > -class basic_seq_packet_socket - : public basic_socket -{ -public: - /// (Deprecated: Use native_handle_type.) The native representation of a - /// socket. - typedef typename SeqPacketSocketService::native_handle_type native_type; - - /// The native representation of a socket. - typedef typename SeqPacketSocketService::native_handle_type - native_handle_type; - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct a basic_seq_packet_socket without opening it. - /** - * This constructor creates a sequenced packet socket without opening it. The - * socket needs to be opened and then connected or accepted before data can - * be sent or received on it. - * - * @param io_service The io_service object that the sequenced packet socket - * will use to dispatch handlers for any asynchronous operations performed on - * the socket. - */ - explicit basic_seq_packet_socket(clmdep_asio::io_service& io_service) - : basic_socket(io_service) - { - } - - /// Construct and open a basic_seq_packet_socket. - /** - * This constructor creates and opens a sequenced_packet socket. The socket - * needs to be connected or accepted before data can be sent or received on - * it. - * - * @param io_service The io_service object that the sequenced packet socket - * will use to dispatch handlers for any asynchronous operations performed on - * the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - basic_seq_packet_socket(clmdep_asio::io_service& io_service, - const protocol_type& protocol) - : basic_socket(io_service, protocol) - { - } - - /// Construct a basic_seq_packet_socket, opening it and binding it to the - /// given local endpoint. - /** - * This constructor creates a sequenced packet socket and automatically opens - * it bound to the specified endpoint on the local machine. The protocol used - * is the protocol associated with the given endpoint. - * - * @param io_service The io_service object that the sequenced packet socket - * will use to dispatch handlers for any asynchronous operations performed on - * the socket. - * - * @param endpoint An endpoint on the local machine to which the sequenced - * packet socket will be bound. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - basic_seq_packet_socket(clmdep_asio::io_service& io_service, - const endpoint_type& endpoint) - : basic_socket(io_service, endpoint) - { - } - - /// Construct a basic_seq_packet_socket on an existing native socket. - /** - * This constructor creates a sequenced packet socket object to hold an - * existing native socket. - * - * @param io_service The io_service object that the sequenced packet socket - * will use to dispatch handlers for any asynchronous operations performed on - * the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_socket The new underlying socket implementation. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - basic_seq_packet_socket(clmdep_asio::io_service& io_service, - const protocol_type& protocol, const native_handle_type& native_socket) - : basic_socket( - io_service, protocol, native_socket) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_seq_packet_socket from another. - /** - * This constructor moves a sequenced packet socket from one object to - * another. - * - * @param other The other basic_seq_packet_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_seq_packet_socket(io_service&) constructor. - */ - basic_seq_packet_socket(basic_seq_packet_socket&& other) - : basic_socket( - ASIO_MOVE_CAST(basic_seq_packet_socket)(other)) - { - } - - /// Move-assign a basic_seq_packet_socket from another. - /** - * This assignment operator moves a sequenced packet socket from one object to - * another. - * - * @param other The other basic_seq_packet_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_seq_packet_socket(io_service&) constructor. - */ - basic_seq_packet_socket& operator=(basic_seq_packet_socket&& other) - { - basic_socket::operator=( - ASIO_MOVE_CAST(basic_seq_packet_socket)(other)); - return *this; - } - - /// Move-construct a basic_seq_packet_socket from a socket of another protocol - /// type. - /** - * This constructor moves a sequenced packet socket from one object to - * another. - * - * @param other The other basic_seq_packet_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_seq_packet_socket(io_service&) constructor. - */ - template - basic_seq_packet_socket( - basic_seq_packet_socket&& other, - typename enable_if::value>::type* = 0) - : basic_socket( - ASIO_MOVE_CAST2(basic_seq_packet_socket< - Protocol1, SeqPacketSocketService1>)(other)) - { - } - - /// Move-assign a basic_seq_packet_socket from a socket of another protocol - /// type. - /** - * This assignment operator moves a sequenced packet socket from one object to - * another. - * - * @param other The other basic_seq_packet_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_seq_packet_socket(io_service&) constructor. - */ - template - typename enable_if::value, - basic_seq_packet_socket>::type& operator=( - basic_seq_packet_socket&& other) - { - basic_socket::operator=( - ASIO_MOVE_CAST2(basic_seq_packet_socket< - Protocol1, SeqPacketSocketService1>)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Send some data on the socket. - /** - * This function is used to send data on the sequenced packet socket. The - * function call will block until the data has been sent successfully, or an - * until error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.send(clmdep_asio::buffer(data, size), 0); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, flags, ec); - clmdep_asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on the socket. - /** - * This function is used to send data on the sequenced packet socket. The - * function call will block the data has been sent successfully, or an until - * error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. Returns 0 if an error occurred. - * - * @note The send operation may not transmit all of the data to the peer. - * Consider using the @ref write function if you need to ensure that all data - * is written before the blocking operation completes. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, clmdep_asio::error_code& ec) - { - return this->get_service().send( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send data on the sequenced packet - * socket. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_send(clmdep_asio::buffer(data, size), 0, handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (clmdep_asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - return this->get_service().async_send(this->get_implementation(), - buffers, flags, ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Receive some data on the socket. - /** - * This function is used to receive data on the sequenced packet socket. The - * function call will block until data has been received successfully, or - * until an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param out_flags After the receive call completes, contains flags - * associated with the received data. For example, if the - * socket_base::message_end_of_record bit is set then the received data marks - * the end of a record. - * - * @returns The number of bytes received. - * - * @throws clmdep_asio::system_error Thrown on failure. An error code of - * clmdep_asio::error::eof indicates that the connection was closed by the - * peer. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.receive(clmdep_asio::buffer(data, size), out_flags); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags& out_flags) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, 0, out_flags, ec); - clmdep_asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on the socket. - /** - * This function is used to receive data on the sequenced packet socket. The - * function call will block until data has been received successfully, or - * until an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param in_flags Flags specifying how the receive call is to be made. - * - * @param out_flags After the receive call completes, contains flags - * associated with the received data. For example, if the - * socket_base::message_end_of_record bit is set then the received data marks - * the end of a record. - * - * @returns The number of bytes received. - * - * @throws clmdep_asio::system_error Thrown on failure. An error code of - * clmdep_asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.receive(clmdep_asio::buffer(data, size), 0, out_flags); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags in_flags, - socket_base::message_flags& out_flags) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, in_flags, out_flags, ec); - clmdep_asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the sequenced packet socket. The - * function call will block until data has been received successfully, or - * until an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param in_flags Flags specifying how the receive call is to be made. - * - * @param out_flags After the receive call completes, contains flags - * associated with the received data. For example, if the - * socket_base::message_end_of_record bit is set then the received data marks - * the end of a record. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. Returns 0 if an error occurred. - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, clmdep_asio::error_code& ec) - { - return this->get_service().receive(this->get_implementation(), - buffers, in_flags, out_flags, ec); - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive data from the sequenced - * packet socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param out_flags Once the asynchronous operation completes, contains flags - * associated with the received data. For example, if the - * socket_base::message_end_of_record bit is set then the received data marks - * the end of a record. The caller must guarantee that the referenced - * variable remains valid until the handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive(clmdep_asio::buffer(data, size), out_flags, handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (clmdep_asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - socket_base::message_flags& out_flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_receive( - this->get_implementation(), buffers, 0, out_flags, - ASIO_MOVE_CAST(ReadHandler)(handler)); - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive data from the sequenced - * data socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param in_flags Flags specifying how the receive call is to be made. - * - * @param out_flags Once the asynchronous operation completes, contains flags - * associated with the received data. For example, if the - * socket_base::message_end_of_record bit is set then the received data marks - * the end of a record. The caller must guarantee that the referenced - * variable remains valid until the handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive( - * clmdep_asio::buffer(data, size), - * 0, out_flags, handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (clmdep_asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_receive( - this->get_implementation(), buffers, in_flags, out_flags, - ASIO_MOVE_CAST(ReadHandler)(handler)); - } -}; - -} // namespace clmdep_asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BASIC_SEQ_PACKET_SOCKET_HPP diff --git a/dependencies/include/asio/basic_serial_port.hpp b/dependencies/include/asio/basic_serial_port.hpp deleted file mode 100644 index 43f82e73..00000000 --- a/dependencies/include/asio/basic_serial_port.hpp +++ /dev/null @@ -1,695 +0,0 @@ -// -// basic_serial_port.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_BASIC_SERIAL_PORT_HPP -#define ASIO_BASIC_SERIAL_PORT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_SERIAL_PORT) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/serial_port_base.hpp" -#include "asio/serial_port_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace clmdep_asio { - -/// Provides serial port functionality. -/** - * The basic_serial_port class template provides functionality that is common - * to all serial ports. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_serial_port - : public basic_io_object, - public serial_port_base -{ -public: - /// (Deprecated: Use native_handle_type.) The native representation of a - /// serial port. - typedef typename SerialPortService::native_handle_type native_type; - - /// The native representation of a serial port. - typedef typename SerialPortService::native_handle_type native_handle_type; - - /// A basic_serial_port is always the lowest layer. - typedef basic_serial_port lowest_layer_type; - - /// Construct a basic_serial_port without opening it. - /** - * This constructor creates a serial port without opening it. - * - * @param io_service The io_service object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - */ - explicit basic_serial_port(clmdep_asio::io_service& io_service) - : basic_io_object(io_service) - { - } - - /// Construct and open a basic_serial_port. - /** - * This constructor creates and opens a serial port for the specified device - * name. - * - * @param io_service The io_service object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - * - * @param device The platform-specific device name for this serial - * port. - */ - explicit basic_serial_port(clmdep_asio::io_service& io_service, - const char* device) - : basic_io_object(io_service) - { - clmdep_asio::error_code ec; - this->get_service().open(this->get_implementation(), device, ec); - clmdep_asio::detail::throw_error(ec, "open"); - } - - /// Construct and open a basic_serial_port. - /** - * This constructor creates and opens a serial port for the specified device - * name. - * - * @param io_service The io_service object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - * - * @param device The platform-specific device name for this serial - * port. - */ - explicit basic_serial_port(clmdep_asio::io_service& io_service, - const std::string& device) - : basic_io_object(io_service) - { - clmdep_asio::error_code ec; - this->get_service().open(this->get_implementation(), device, ec); - clmdep_asio::detail::throw_error(ec, "open"); - } - - /// Construct a basic_serial_port on an existing native serial port. - /** - * This constructor creates a serial port object to hold an existing native - * serial port. - * - * @param io_service The io_service object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - * - * @param native_serial_port A native serial port. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - basic_serial_port(clmdep_asio::io_service& io_service, - const native_handle_type& native_serial_port) - : basic_io_object(io_service) - { - clmdep_asio::error_code ec; - this->get_service().assign(this->get_implementation(), - native_serial_port, ec); - clmdep_asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_serial_port from another. - /** - * This constructor moves a serial port from one object to another. - * - * @param other The other basic_serial_port object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_serial_port(io_service&) constructor. - */ - basic_serial_port(basic_serial_port&& other) - : basic_io_object( - ASIO_MOVE_CAST(basic_serial_port)(other)) - { - } - - /// Move-assign a basic_serial_port from another. - /** - * This assignment operator moves a serial port from one object to another. - * - * @param other The other basic_serial_port object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_serial_port(io_service&) constructor. - */ - basic_serial_port& operator=(basic_serial_port&& other) - { - basic_io_object::operator=( - ASIO_MOVE_CAST(basic_serial_port)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since a basic_serial_port cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since a basic_serial_port cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Open the serial port using the specified device name. - /** - * This function opens the serial port for the specified device name. - * - * @param device The platform-specific device name. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - void open(const std::string& device) - { - clmdep_asio::error_code ec; - this->get_service().open(this->get_implementation(), device, ec); - clmdep_asio::detail::throw_error(ec, "open"); - } - - /// Open the serial port using the specified device name. - /** - * This function opens the serial port using the given platform-specific - * device name. - * - * @param device The platform-specific device name. - * - * @param ec Set the indicate what error occurred, if any. - */ - clmdep_asio::error_code open(const std::string& device, - clmdep_asio::error_code& ec) - { - return this->get_service().open(this->get_implementation(), device, ec); - } - - /// Assign an existing native serial port to the serial port. - /* - * This function opens the serial port to hold an existing native serial port. - * - * @param native_serial_port A native serial port. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - void assign(const native_handle_type& native_serial_port) - { - clmdep_asio::error_code ec; - this->get_service().assign(this->get_implementation(), - native_serial_port, ec); - clmdep_asio::detail::throw_error(ec, "assign"); - } - - /// Assign an existing native serial port to the serial port. - /* - * This function opens the serial port to hold an existing native serial port. - * - * @param native_serial_port A native serial port. - * - * @param ec Set to indicate what error occurred, if any. - */ - clmdep_asio::error_code assign(const native_handle_type& native_serial_port, - clmdep_asio::error_code& ec) - { - return this->get_service().assign(this->get_implementation(), - native_serial_port, ec); - } - - /// Determine whether the serial port is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Close the serial port. - /** - * This function is used to close the serial port. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * clmdep_asio::error::operation_aborted error. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - void close() - { - clmdep_asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - clmdep_asio::detail::throw_error(ec, "close"); - } - - /// Close the serial port. - /** - * This function is used to close the serial port. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * clmdep_asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - clmdep_asio::error_code close(clmdep_asio::error_code& ec) - { - return this->get_service().close(this->get_implementation(), ec); - } - - /// (Deprecated: Use native_handle().) Get the native serial port - /// representation. - /** - * This function may be used to obtain the underlying representation of the - * serial port. This is intended to allow access to native serial port - * functionality that is not otherwise provided. - */ - native_type native() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Get the native serial port representation. - /** - * This function may be used to obtain the underlying representation of the - * serial port. This is intended to allow access to native serial port - * functionality that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the serial port. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the clmdep_asio::error::operation_aborted error. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - void cancel() - { - clmdep_asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - clmdep_asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the serial port. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the clmdep_asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - clmdep_asio::error_code cancel(clmdep_asio::error_code& ec) - { - return this->get_service().cancel(this->get_implementation(), ec); - } - - /// Send a break sequence to the serial port. - /** - * This function causes a break sequence of platform-specific duration to be - * sent out the serial port. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - void send_break() - { - clmdep_asio::error_code ec; - this->get_service().send_break(this->get_implementation(), ec); - clmdep_asio::detail::throw_error(ec, "send_break"); - } - - /// Send a break sequence to the serial port. - /** - * This function causes a break sequence of platform-specific duration to be - * sent out the serial port. - * - * @param ec Set to indicate what error occurred, if any. - */ - clmdep_asio::error_code send_break(clmdep_asio::error_code& ec) - { - return this->get_service().send_break(this->get_implementation(), ec); - } - - /// Set an option on the serial port. - /** - * This function is used to set an option on the serial port. - * - * @param option The option value to be set on the serial port. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @sa SettableSerialPortOption @n - * clmdep_asio::serial_port_base::baud_rate @n - * clmdep_asio::serial_port_base::flow_control @n - * clmdep_asio::serial_port_base::parity @n - * clmdep_asio::serial_port_base::stop_bits @n - * clmdep_asio::serial_port_base::character_size - */ - template - void set_option(const SettableSerialPortOption& option) - { - clmdep_asio::error_code ec; - this->get_service().set_option(this->get_implementation(), option, ec); - clmdep_asio::detail::throw_error(ec, "set_option"); - } - - /// Set an option on the serial port. - /** - * This function is used to set an option on the serial port. - * - * @param option The option value to be set on the serial port. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa SettableSerialPortOption @n - * clmdep_asio::serial_port_base::baud_rate @n - * clmdep_asio::serial_port_base::flow_control @n - * clmdep_asio::serial_port_base::parity @n - * clmdep_asio::serial_port_base::stop_bits @n - * clmdep_asio::serial_port_base::character_size - */ - template - clmdep_asio::error_code set_option(const SettableSerialPortOption& option, - clmdep_asio::error_code& ec) - { - return this->get_service().set_option( - this->get_implementation(), option, ec); - } - - /// Get an option from the serial port. - /** - * This function is used to get the current value of an option on the serial - * port. - * - * @param option The option value to be obtained from the serial port. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @sa GettableSerialPortOption @n - * clmdep_asio::serial_port_base::baud_rate @n - * clmdep_asio::serial_port_base::flow_control @n - * clmdep_asio::serial_port_base::parity @n - * clmdep_asio::serial_port_base::stop_bits @n - * clmdep_asio::serial_port_base::character_size - */ - template - void get_option(GettableSerialPortOption& option) - { - clmdep_asio::error_code ec; - this->get_service().get_option(this->get_implementation(), option, ec); - clmdep_asio::detail::throw_error(ec, "get_option"); - } - - /// Get an option from the serial port. - /** - * This function is used to get the current value of an option on the serial - * port. - * - * @param option The option value to be obtained from the serial port. - * - * @param ec Set to indicate what error occured, if any. - * - * @sa GettableSerialPortOption @n - * clmdep_asio::serial_port_base::baud_rate @n - * clmdep_asio::serial_port_base::flow_control @n - * clmdep_asio::serial_port_base::parity @n - * clmdep_asio::serial_port_base::stop_bits @n - * clmdep_asio::serial_port_base::character_size - */ - template - clmdep_asio::error_code get_option(GettableSerialPortOption& option, - clmdep_asio::error_code& ec) - { - return this->get_service().get_option( - this->get_implementation(), option, ec); - } - - /// Write some data to the serial port. - /** - * This function is used to write data to the serial port. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the serial port. - * - * @returns The number of bytes written. - * - * @throws clmdep_asio::system_error Thrown on failure. An error code of - * clmdep_asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.write_some(clmdep_asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().write_some( - this->get_implementation(), buffers, ec); - clmdep_asio::detail::throw_error(ec, "write_some"); - return s; - } - - /// Write some data to the serial port. - /** - * This function is used to write data to the serial port. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the serial port. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - clmdep_asio::error_code& ec) - { - return this->get_service().write_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the serial port. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the serial port. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.async_write_some(clmdep_asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (clmdep_asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - return this->get_service().async_write_some(this->get_implementation(), - buffers, ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Read some data from the serial port. - /** - * This function is used to read data from the serial port. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws clmdep_asio::system_error Thrown on failure. An error code of - * clmdep_asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.read_some(clmdep_asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().read_some( - this->get_implementation(), buffers, ec); - clmdep_asio::detail::throw_error(ec, "read_some"); - return s; - } - - /// Read some data from the serial port. - /** - * This function is used to read data from the serial port. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - clmdep_asio::error_code& ec) - { - return this->get_service().read_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the serial port. - * The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.async_read_some(clmdep_asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (clmdep_asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_read_some(this->get_implementation(), - buffers, ASIO_MOVE_CAST(ReadHandler)(handler)); - } -}; - -} // namespace clmdep_asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_SERIAL_PORT) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_BASIC_SERIAL_PORT_HPP diff --git a/dependencies/include/asio/basic_signal_set.hpp b/dependencies/include/asio/basic_signal_set.hpp deleted file mode 100644 index 01abfbe0..00000000 --- a/dependencies/include/asio/basic_signal_set.hpp +++ /dev/null @@ -1,384 +0,0 @@ -// -// basic_signal_set.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_BASIC_SIGNAL_SET_HPP -#define ASIO_BASIC_SIGNAL_SET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/signal_set_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace clmdep_asio { - -/// Provides signal functionality. -/** - * The basic_signal_set class template provides the ability to perform an - * asynchronous wait for one or more signals to occur. - * - * Most applications will use the clmdep_asio::signal_set typedef. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Example - * Performing an asynchronous wait: - * @code - * void handler( - * const clmdep_asio::error_code& error, - * int signal_number) - * { - * if (!error) - * { - * // A signal occurred. - * } - * } - * - * ... - * - * // Construct a signal set registered for process termination. - * clmdep_asio::signal_set signals(io_service, SIGINT, SIGTERM); - * - * // Start an asynchronous wait for one of the signals to occur. - * signals.async_wait(handler); - * @endcode - * - * @par Queueing of signal notifications - * - * If a signal is registered with a signal_set, and the signal occurs when - * there are no waiting handlers, then the signal notification is queued. The - * next async_wait operation on that signal_set will dequeue the notification. - * If multiple notifications are queued, subsequent async_wait operations - * dequeue them one at a time. Signal notifications are dequeued in order of - * ascending signal number. - * - * If a signal number is removed from a signal_set (using the @c remove or @c - * erase member functions) then any queued notifications for that signal are - * discarded. - * - * @par Multiple registration of signals - * - * The same signal number may be registered with different signal_set objects. - * When the signal occurs, one handler is called for each signal_set object. - * - * Note that multiple registration only works for signals that are registered - * using Asio. The application must not also register a signal handler using - * functions such as @c signal() or @c sigaction(). - * - * @par Signal masking on POSIX platforms - * - * POSIX allows signals to be blocked using functions such as @c sigprocmask() - * and @c pthread_sigmask(). For signals to be delivered, programs must ensure - * that any signals registered using signal_set objects are unblocked in at - * least one thread. - */ -template -class basic_signal_set - : public basic_io_object -{ -public: - /// Construct a signal set without adding any signals. - /** - * This constructor creates a signal set without registering for any signals. - * - * @param io_service The io_service object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - */ - explicit basic_signal_set(clmdep_asio::io_service& io_service) - : basic_io_object(io_service) - { - } - - /// Construct a signal set and add one signal. - /** - * This constructor creates a signal set and registers for one signal. - * - * @param io_service The io_service object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - * - * @param signal_number_1 The signal number to be added. - * - * @note This constructor is equivalent to performing: - * @code clmdep_asio::signal_set signals(io_service); - * signals.add(signal_number_1); @endcode - */ - basic_signal_set(clmdep_asio::io_service& io_service, int signal_number_1) - : basic_io_object(io_service) - { - clmdep_asio::error_code ec; - this->service.add(this->implementation, signal_number_1, ec); - clmdep_asio::detail::throw_error(ec, "add"); - } - - /// Construct a signal set and add two signals. - /** - * This constructor creates a signal set and registers for two signals. - * - * @param io_service The io_service object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - * - * @param signal_number_1 The first signal number to be added. - * - * @param signal_number_2 The second signal number to be added. - * - * @note This constructor is equivalent to performing: - * @code clmdep_asio::signal_set signals(io_service); - * signals.add(signal_number_1); - * signals.add(signal_number_2); @endcode - */ - basic_signal_set(clmdep_asio::io_service& io_service, int signal_number_1, - int signal_number_2) - : basic_io_object(io_service) - { - clmdep_asio::error_code ec; - this->service.add(this->implementation, signal_number_1, ec); - clmdep_asio::detail::throw_error(ec, "add"); - this->service.add(this->implementation, signal_number_2, ec); - clmdep_asio::detail::throw_error(ec, "add"); - } - - /// Construct a signal set and add three signals. - /** - * This constructor creates a signal set and registers for three signals. - * - * @param io_service The io_service object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - * - * @param signal_number_1 The first signal number to be added. - * - * @param signal_number_2 The second signal number to be added. - * - * @param signal_number_3 The third signal number to be added. - * - * @note This constructor is equivalent to performing: - * @code clmdep_asio::signal_set signals(io_service); - * signals.add(signal_number_1); - * signals.add(signal_number_2); - * signals.add(signal_number_3); @endcode - */ - basic_signal_set(clmdep_asio::io_service& io_service, int signal_number_1, - int signal_number_2, int signal_number_3) - : basic_io_object(io_service) - { - clmdep_asio::error_code ec; - this->service.add(this->implementation, signal_number_1, ec); - clmdep_asio::detail::throw_error(ec, "add"); - this->service.add(this->implementation, signal_number_2, ec); - clmdep_asio::detail::throw_error(ec, "add"); - this->service.add(this->implementation, signal_number_3, ec); - clmdep_asio::detail::throw_error(ec, "add"); - } - - /// Add a signal to a signal_set. - /** - * This function adds the specified signal to the set. It has no effect if the - * signal is already in the set. - * - * @param signal_number The signal to be added to the set. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - void add(int signal_number) - { - clmdep_asio::error_code ec; - this->service.add(this->implementation, signal_number, ec); - clmdep_asio::detail::throw_error(ec, "add"); - } - - /// Add a signal to a signal_set. - /** - * This function adds the specified signal to the set. It has no effect if the - * signal is already in the set. - * - * @param signal_number The signal to be added to the set. - * - * @param ec Set to indicate what error occurred, if any. - */ - clmdep_asio::error_code add(int signal_number, - clmdep_asio::error_code& ec) - { - return this->service.add(this->implementation, signal_number, ec); - } - - /// Remove a signal from a signal_set. - /** - * This function removes the specified signal from the set. It has no effect - * if the signal is not in the set. - * - * @param signal_number The signal to be removed from the set. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note Removes any notifications that have been queued for the specified - * signal number. - */ - void remove(int signal_number) - { - clmdep_asio::error_code ec; - this->service.remove(this->implementation, signal_number, ec); - clmdep_asio::detail::throw_error(ec, "remove"); - } - - /// Remove a signal from a signal_set. - /** - * This function removes the specified signal from the set. It has no effect - * if the signal is not in the set. - * - * @param signal_number The signal to be removed from the set. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Removes any notifications that have been queued for the specified - * signal number. - */ - clmdep_asio::error_code remove(int signal_number, - clmdep_asio::error_code& ec) - { - return this->service.remove(this->implementation, signal_number, ec); - } - - /// Remove all signals from a signal_set. - /** - * This function removes all signals from the set. It has no effect if the set - * is already empty. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note Removes all queued notifications. - */ - void clear() - { - clmdep_asio::error_code ec; - this->service.clear(this->implementation, ec); - clmdep_asio::detail::throw_error(ec, "clear"); - } - - /// Remove all signals from a signal_set. - /** - * This function removes all signals from the set. It has no effect if the set - * is already empty. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Removes all queued notifications. - */ - clmdep_asio::error_code clear(clmdep_asio::error_code& ec) - { - return this->service.clear(this->implementation, ec); - } - - /// Cancel all operations associated with the signal set. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the signal set. The handler for each cancelled - * operation will be invoked with the clmdep_asio::error::operation_aborted - * error code. - * - * Cancellation does not alter the set of registered signals. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note If a registered signal occurred before cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - void cancel() - { - clmdep_asio::error_code ec; - this->service.cancel(this->implementation, ec); - clmdep_asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all operations associated with the signal set. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the signal set. The handler for each cancelled - * operation will be invoked with the clmdep_asio::error::operation_aborted - * error code. - * - * Cancellation does not alter the set of registered signals. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note If a registered signal occurred before cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - clmdep_asio::error_code cancel(clmdep_asio::error_code& ec) - { - return this->service.cancel(this->implementation, ec); - } - - /// Start an asynchronous operation to wait for a signal to be delivered. - /** - * This function may be used to initiate an asynchronous wait against the - * signal set. It always returns immediately. - * - * For each call to async_wait(), the supplied handler will be called exactly - * once. The handler will be called when: - * - * @li One of the registered signals in the signal set occurs; or - * - * @li The signal set was cancelled, in which case the handler is passed the - * error code clmdep_asio::error::operation_aborted. - * - * @param handler The handler to be called when the signal occurs. Copies - * will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const clmdep_asio::error_code& error, // Result of operation. - * int signal_number // Indicates which signal occurred. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(SignalHandler, - void (clmdep_asio::error_code, int)) - async_wait(ASIO_MOVE_ARG(SignalHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a SignalHandler. - ASIO_SIGNAL_HANDLER_CHECK(SignalHandler, handler) type_check; - - return this->service.async_wait(this->implementation, - ASIO_MOVE_CAST(SignalHandler)(handler)); - } -}; - -} // namespace clmdep_asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BASIC_SIGNAL_SET_HPP diff --git a/dependencies/include/asio/basic_socket.hpp b/dependencies/include/asio/basic_socket.hpp deleted file mode 100644 index 671a76e0..00000000 --- a/dependencies/include/asio/basic_socket.hpp +++ /dev/null @@ -1,1518 +0,0 @@ -// -// basic_socket.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_BASIC_SOCKET_HPP -#define ASIO_BASIC_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/async_result.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/socket_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace clmdep_asio { - -/// Provides socket functionality. -/** - * The basic_socket class template provides functionality that is common to both - * stream-oriented and datagram-oriented sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_socket - : public basic_io_object, - public socket_base -{ -public: - /// (Deprecated: Use native_handle_type.) The native representation of a - /// socket. - typedef typename SocketService::native_handle_type native_type; - - /// The native representation of a socket. - typedef typename SocketService::native_handle_type native_handle_type; - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// A basic_socket is always the lowest layer. - typedef basic_socket lowest_layer_type; - - /// Construct a basic_socket without opening it. - /** - * This constructor creates a socket without opening it. - * - * @param io_service The io_service object that the socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - */ - explicit basic_socket(clmdep_asio::io_service& io_service) - : basic_io_object(io_service) - { - } - - /// Construct and open a basic_socket. - /** - * This constructor creates and opens a socket. - * - * @param io_service The io_service object that the socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - basic_socket(clmdep_asio::io_service& io_service, - const protocol_type& protocol) - : basic_io_object(io_service) - { - clmdep_asio::error_code ec; - this->get_service().open(this->get_implementation(), protocol, ec); - clmdep_asio::detail::throw_error(ec, "open"); - } - - /// Construct a basic_socket, opening it and binding it to the given local - /// endpoint. - /** - * This constructor creates a socket and automatically opens it bound to the - * specified endpoint on the local machine. The protocol used is the protocol - * associated with the given endpoint. - * - * @param io_service The io_service object that the socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param endpoint An endpoint on the local machine to which the socket will - * be bound. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - basic_socket(clmdep_asio::io_service& io_service, - const endpoint_type& endpoint) - : basic_io_object(io_service) - { - clmdep_asio::error_code ec; - const protocol_type protocol = endpoint.protocol(); - this->get_service().open(this->get_implementation(), protocol, ec); - clmdep_asio::detail::throw_error(ec, "open"); - this->get_service().bind(this->get_implementation(), endpoint, ec); - clmdep_asio::detail::throw_error(ec, "bind"); - } - - /// Construct a basic_socket on an existing native socket. - /** - * This constructor creates a socket object to hold an existing native socket. - * - * @param io_service The io_service object that the socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_socket A native socket. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - basic_socket(clmdep_asio::io_service& io_service, - const protocol_type& protocol, const native_handle_type& native_socket) - : basic_io_object(io_service) - { - clmdep_asio::error_code ec; - this->get_service().assign(this->get_implementation(), - protocol, native_socket, ec); - clmdep_asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_socket from another. - /** - * This constructor moves a socket from one object to another. - * - * @param other The other basic_socket object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket(io_service&) constructor. - */ - basic_socket(basic_socket&& other) - : basic_io_object( - ASIO_MOVE_CAST(basic_socket)(other)) - { - } - - /// Move-assign a basic_socket from another. - /** - * This assignment operator moves a socket from one object to another. - * - * @param other The other basic_socket object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket(io_service&) constructor. - */ - basic_socket& operator=(basic_socket&& other) - { - basic_io_object::operator=( - ASIO_MOVE_CAST(basic_socket)(other)); - return *this; - } - - // All sockets have access to each other's implementations. - template - friend class basic_socket; - - /// Move-construct a basic_socket from a socket of another protocol type. - /** - * This constructor moves a socket from one object to another. - * - * @param other The other basic_socket object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket(io_service&) constructor. - */ - template - basic_socket(basic_socket&& other, - typename enable_if::value>::type* = 0) - : basic_io_object(other.get_io_service()) - { - this->get_service().template converting_move_construct( - this->get_implementation(), other.get_implementation()); - } - - /// Move-assign a basic_socket from a socket of another protocol type. - /** - * This assignment operator moves a socket from one object to another. - * - * @param other The other basic_socket object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket(io_service&) constructor. - */ - template - typename enable_if::value, - basic_socket>::type& operator=( - basic_socket&& other) - { - basic_socket tmp(ASIO_MOVE_CAST2(basic_socket< - Protocol1, SocketService1>)(other)); - basic_io_object::operator=( - ASIO_MOVE_CAST(basic_socket)(tmp)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since a basic_socket cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since a basic_socket cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Open the socket using the specified protocol. - /** - * This function opens the socket so that it will use the specified protocol. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * socket.open(clmdep_asio::ip::tcp::v4()); - * @endcode - */ - void open(const protocol_type& protocol = protocol_type()) - { - clmdep_asio::error_code ec; - this->get_service().open(this->get_implementation(), protocol, ec); - clmdep_asio::detail::throw_error(ec, "open"); - } - - /// Open the socket using the specified protocol. - /** - * This function opens the socket so that it will use the specified protocol. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * clmdep_asio::error_code ec; - * socket.open(clmdep_asio::ip::tcp::v4(), ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - clmdep_asio::error_code open(const protocol_type& protocol, - clmdep_asio::error_code& ec) - { - return this->get_service().open(this->get_implementation(), protocol, ec); - } - - /// Assign an existing native socket to the socket. - /* - * This function opens the socket to hold an existing native socket. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param native_socket A native socket. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - void assign(const protocol_type& protocol, - const native_handle_type& native_socket) - { - clmdep_asio::error_code ec; - this->get_service().assign(this->get_implementation(), - protocol, native_socket, ec); - clmdep_asio::detail::throw_error(ec, "assign"); - } - - /// Assign an existing native socket to the socket. - /* - * This function opens the socket to hold an existing native socket. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param native_socket A native socket. - * - * @param ec Set to indicate what error occurred, if any. - */ - clmdep_asio::error_code assign(const protocol_type& protocol, - const native_handle_type& native_socket, clmdep_asio::error_code& ec) - { - return this->get_service().assign(this->get_implementation(), - protocol, native_socket, ec); - } - - /// Determine whether the socket is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Close the socket. - /** - * This function is used to close the socket. Any asynchronous send, receive - * or connect operations will be cancelled immediately, and will complete - * with the clmdep_asio::error::operation_aborted error. - * - * @throws clmdep_asio::system_error Thrown on failure. Note that, even if - * the function indicates an error, the underlying descriptor is closed. - * - * @note For portable behaviour with respect to graceful closure of a - * connected socket, call shutdown() before closing the socket. - */ - void close() - { - clmdep_asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - clmdep_asio::detail::throw_error(ec, "close"); - } - - /// Close the socket. - /** - * This function is used to close the socket. Any asynchronous send, receive - * or connect operations will be cancelled immediately, and will complete - * with the clmdep_asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. Note that, even if - * the function indicates an error, the underlying descriptor is closed. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * ... - * clmdep_asio::error_code ec; - * socket.close(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - * - * @note For portable behaviour with respect to graceful closure of a - * connected socket, call shutdown() before closing the socket. - */ - clmdep_asio::error_code close(clmdep_asio::error_code& ec) - { - return this->get_service().close(this->get_implementation(), ec); - } - - /// (Deprecated: Use native_handle().) Get the native socket representation. - /** - * This function may be used to obtain the underlying representation of the - * socket. This is intended to allow access to native socket functionality - * that is not otherwise provided. - */ - native_type native() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Get the native socket representation. - /** - * This function may be used to obtain the underlying representation of the - * socket. This is intended to allow access to native socket functionality - * that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the socket. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the clmdep_asio::error::operation_aborted error. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note Calls to cancel() will always fail with - * clmdep_asio::error::operation_not_supported when run on Windows XP, Windows - * Server 2003, and earlier versions of Windows, unless - * ASIO_ENABLE_CANCELIO is defined. However, the CancelIo function has - * two issues that should be considered before enabling its use: - * - * @li It will only cancel asynchronous operations that were initiated in the - * current thread. - * - * @li It can appear to complete without error, but the request to cancel the - * unfinished operations may be silently ignored by the operating system. - * Whether it works or not seems to depend on the drivers that are installed. - * - * For portable cancellation, consider using one of the following - * alternatives: - * - * @li Disable asio's I/O completion port backend by defining - * ASIO_DISABLE_IOCP. - * - * @li Use the close() function to simultaneously cancel the outstanding - * operations and close the socket. - * - * When running on Windows Vista, Windows Server 2008, and later, the - * CancelIoEx function is always used. This function does not have the - * problems described above. - */ -#if defined(ASIO_MSVC) && (ASIO_MSVC >= 1400) \ - && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600) \ - && !defined(ASIO_ENABLE_CANCELIO) - __declspec(deprecated("By default, this function always fails with " - "operation_not_supported when used on Windows XP, Windows Server 2003, " - "or earlier. Consult documentation for details.")) -#endif - void cancel() - { - clmdep_asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - clmdep_asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the socket. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the clmdep_asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls to cancel() will always fail with - * clmdep_asio::error::operation_not_supported when run on Windows XP, Windows - * Server 2003, and earlier versions of Windows, unless - * ASIO_ENABLE_CANCELIO is defined. However, the CancelIo function has - * two issues that should be considered before enabling its use: - * - * @li It will only cancel asynchronous operations that were initiated in the - * current thread. - * - * @li It can appear to complete without error, but the request to cancel the - * unfinished operations may be silently ignored by the operating system. - * Whether it works or not seems to depend on the drivers that are installed. - * - * For portable cancellation, consider using one of the following - * alternatives: - * - * @li Disable asio's I/O completion port backend by defining - * ASIO_DISABLE_IOCP. - * - * @li Use the close() function to simultaneously cancel the outstanding - * operations and close the socket. - * - * When running on Windows Vista, Windows Server 2008, and later, the - * CancelIoEx function is always used. This function does not have the - * problems described above. - */ -#if defined(ASIO_MSVC) && (ASIO_MSVC >= 1400) \ - && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600) \ - && !defined(ASIO_ENABLE_CANCELIO) - __declspec(deprecated("By default, this function always fails with " - "operation_not_supported when used on Windows XP, Windows Server 2003, " - "or earlier. Consult documentation for details.")) -#endif - clmdep_asio::error_code cancel(clmdep_asio::error_code& ec) - { - return this->get_service().cancel(this->get_implementation(), ec); - } - - /// Determine whether the socket is at the out-of-band data mark. - /** - * This function is used to check whether the socket input is currently - * positioned at the out-of-band data mark. - * - * @return A bool indicating whether the socket is at the out-of-band data - * mark. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - bool at_mark() const - { - clmdep_asio::error_code ec; - bool b = this->get_service().at_mark(this->get_implementation(), ec); - clmdep_asio::detail::throw_error(ec, "at_mark"); - return b; - } - - /// Determine whether the socket is at the out-of-band data mark. - /** - * This function is used to check whether the socket input is currently - * positioned at the out-of-band data mark. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return A bool indicating whether the socket is at the out-of-band data - * mark. - */ - bool at_mark(clmdep_asio::error_code& ec) const - { - return this->get_service().at_mark(this->get_implementation(), ec); - } - - /// Determine the number of bytes available for reading. - /** - * This function is used to determine the number of bytes that may be read - * without blocking. - * - * @return The number of bytes that may be read without blocking, or 0 if an - * error occurs. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - std::size_t available() const - { - clmdep_asio::error_code ec; - std::size_t s = this->get_service().available( - this->get_implementation(), ec); - clmdep_asio::detail::throw_error(ec, "available"); - return s; - } - - /// Determine the number of bytes available for reading. - /** - * This function is used to determine the number of bytes that may be read - * without blocking. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of bytes that may be read without blocking, or 0 if an - * error occurs. - */ - std::size_t available(clmdep_asio::error_code& ec) const - { - return this->get_service().available(this->get_implementation(), ec); - } - - /// Bind the socket to the given local endpoint. - /** - * This function binds the socket to the specified endpoint on the local - * machine. - * - * @param endpoint An endpoint on the local machine to which the socket will - * be bound. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * socket.open(clmdep_asio::ip::tcp::v4()); - * socket.bind(clmdep_asio::ip::tcp::endpoint( - * clmdep_asio::ip::tcp::v4(), 12345)); - * @endcode - */ - void bind(const endpoint_type& endpoint) - { - clmdep_asio::error_code ec; - this->get_service().bind(this->get_implementation(), endpoint, ec); - clmdep_asio::detail::throw_error(ec, "bind"); - } - - /// Bind the socket to the given local endpoint. - /** - * This function binds the socket to the specified endpoint on the local - * machine. - * - * @param endpoint An endpoint on the local machine to which the socket will - * be bound. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * socket.open(clmdep_asio::ip::tcp::v4()); - * clmdep_asio::error_code ec; - * socket.bind(clmdep_asio::ip::tcp::endpoint( - * clmdep_asio::ip::tcp::v4(), 12345), ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - clmdep_asio::error_code bind(const endpoint_type& endpoint, - clmdep_asio::error_code& ec) - { - return this->get_service().bind(this->get_implementation(), endpoint, ec); - } - - /// Connect the socket to the specified endpoint. - /** - * This function is used to connect a socket to the specified remote endpoint. - * The function call will block until the connection is successfully made or - * an error occurs. - * - * The socket is automatically opened if it is not already open. If the - * connect fails, and the socket was automatically opened, the socket is - * not returned to the closed state. - * - * @param peer_endpoint The remote endpoint to which the socket will be - * connected. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * clmdep_asio::ip::tcp::endpoint endpoint( - * clmdep_asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.connect(endpoint); - * @endcode - */ - void connect(const endpoint_type& peer_endpoint) - { - clmdep_asio::error_code ec; - if (!is_open()) - { - this->get_service().open(this->get_implementation(), - peer_endpoint.protocol(), ec); - clmdep_asio::detail::throw_error(ec, "connect"); - } - this->get_service().connect(this->get_implementation(), peer_endpoint, ec); - clmdep_asio::detail::throw_error(ec, "connect"); - } - - /// Connect the socket to the specified endpoint. - /** - * This function is used to connect a socket to the specified remote endpoint. - * The function call will block until the connection is successfully made or - * an error occurs. - * - * The socket is automatically opened if it is not already open. If the - * connect fails, and the socket was automatically opened, the socket is - * not returned to the closed state. - * - * @param peer_endpoint The remote endpoint to which the socket will be - * connected. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * clmdep_asio::ip::tcp::endpoint endpoint( - * clmdep_asio::ip::address::from_string("1.2.3.4"), 12345); - * clmdep_asio::error_code ec; - * socket.connect(endpoint, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - clmdep_asio::error_code connect(const endpoint_type& peer_endpoint, - clmdep_asio::error_code& ec) - { - if (!is_open()) - { - if (this->get_service().open(this->get_implementation(), - peer_endpoint.protocol(), ec)) - { - return ec; - } - } - - return this->get_service().connect( - this->get_implementation(), peer_endpoint, ec); - } - - /// Start an asynchronous connect. - /** - * This function is used to asynchronously connect a socket to the specified - * remote endpoint. The function call always returns immediately. - * - * The socket is automatically opened if it is not already open. If the - * connect fails, and the socket was automatically opened, the socket is - * not returned to the closed state. - * - * @param peer_endpoint The remote endpoint to which the socket will be - * connected. Copies will be made of the endpoint object as required. - * - * @param handler The handler to be called when the connection operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error // Result of operation - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @par Example - * @code - * void connect_handler(const clmdep_asio::error_code& error) - * { - * if (!error) - * { - * // Connect succeeded. - * } - * } - * - * ... - * - * clmdep_asio::ip::tcp::socket socket(io_service); - * clmdep_asio::ip::tcp::endpoint endpoint( - * clmdep_asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.async_connect(endpoint, connect_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(ConnectHandler, - void (clmdep_asio::error_code)) - async_connect(const endpoint_type& peer_endpoint, - ASIO_MOVE_ARG(ConnectHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ConnectHandler. - ASIO_CONNECT_HANDLER_CHECK(ConnectHandler, handler) type_check; - - if (!is_open()) - { - clmdep_asio::error_code ec; - const protocol_type protocol = peer_endpoint.protocol(); - if (this->get_service().open(this->get_implementation(), protocol, ec)) - { - detail::async_result_init< - ConnectHandler, void (clmdep_asio::error_code)> init( - ASIO_MOVE_CAST(ConnectHandler)(handler)); - - this->get_io_service().post( - clmdep_asio::detail::bind_handler( - ASIO_MOVE_CAST(ASIO_HANDLER_TYPE( - ConnectHandler, void (clmdep_asio::error_code)))( - init.handler), ec)); - - return init.result.get(); - } - } - - return this->get_service().async_connect(this->get_implementation(), - peer_endpoint, ASIO_MOVE_CAST(ConnectHandler)(handler)); - } - - /// Set an option on the socket. - /** - * This function is used to set an option on the socket. - * - * @param option The new option value to be set on the socket. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @sa SettableSocketOption @n - * clmdep_asio::socket_base::broadcast @n - * clmdep_asio::socket_base::do_not_route @n - * clmdep_asio::socket_base::keep_alive @n - * clmdep_asio::socket_base::linger @n - * clmdep_asio::socket_base::receive_buffer_size @n - * clmdep_asio::socket_base::receive_low_watermark @n - * clmdep_asio::socket_base::reuse_address @n - * clmdep_asio::socket_base::send_buffer_size @n - * clmdep_asio::socket_base::send_low_watermark @n - * clmdep_asio::ip::multicast::join_group @n - * clmdep_asio::ip::multicast::leave_group @n - * clmdep_asio::ip::multicast::enable_loopback @n - * clmdep_asio::ip::multicast::outbound_interface @n - * clmdep_asio::ip::multicast::hops @n - * clmdep_asio::ip::tcp::no_delay - * - * @par Example - * Setting the IPPROTO_TCP/TCP_NODELAY option: - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * ... - * clmdep_asio::ip::tcp::no_delay option(true); - * socket.set_option(option); - * @endcode - */ - template - void set_option(const SettableSocketOption& option) - { - clmdep_asio::error_code ec; - this->get_service().set_option(this->get_implementation(), option, ec); - clmdep_asio::detail::throw_error(ec, "set_option"); - } - - /// Set an option on the socket. - /** - * This function is used to set an option on the socket. - * - * @param option The new option value to be set on the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa SettableSocketOption @n - * clmdep_asio::socket_base::broadcast @n - * clmdep_asio::socket_base::do_not_route @n - * clmdep_asio::socket_base::keep_alive @n - * clmdep_asio::socket_base::linger @n - * clmdep_asio::socket_base::receive_buffer_size @n - * clmdep_asio::socket_base::receive_low_watermark @n - * clmdep_asio::socket_base::reuse_address @n - * clmdep_asio::socket_base::send_buffer_size @n - * clmdep_asio::socket_base::send_low_watermark @n - * clmdep_asio::ip::multicast::join_group @n - * clmdep_asio::ip::multicast::leave_group @n - * clmdep_asio::ip::multicast::enable_loopback @n - * clmdep_asio::ip::multicast::outbound_interface @n - * clmdep_asio::ip::multicast::hops @n - * clmdep_asio::ip::tcp::no_delay - * - * @par Example - * Setting the IPPROTO_TCP/TCP_NODELAY option: - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * ... - * clmdep_asio::ip::tcp::no_delay option(true); - * clmdep_asio::error_code ec; - * socket.set_option(option, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - template - clmdep_asio::error_code set_option(const SettableSocketOption& option, - clmdep_asio::error_code& ec) - { - return this->get_service().set_option( - this->get_implementation(), option, ec); - } - - /// Get an option from the socket. - /** - * This function is used to get the current value of an option on the socket. - * - * @param option The option value to be obtained from the socket. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @sa GettableSocketOption @n - * clmdep_asio::socket_base::broadcast @n - * clmdep_asio::socket_base::do_not_route @n - * clmdep_asio::socket_base::keep_alive @n - * clmdep_asio::socket_base::linger @n - * clmdep_asio::socket_base::receive_buffer_size @n - * clmdep_asio::socket_base::receive_low_watermark @n - * clmdep_asio::socket_base::reuse_address @n - * clmdep_asio::socket_base::send_buffer_size @n - * clmdep_asio::socket_base::send_low_watermark @n - * clmdep_asio::ip::multicast::join_group @n - * clmdep_asio::ip::multicast::leave_group @n - * clmdep_asio::ip::multicast::enable_loopback @n - * clmdep_asio::ip::multicast::outbound_interface @n - * clmdep_asio::ip::multicast::hops @n - * clmdep_asio::ip::tcp::no_delay - * - * @par Example - * Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * ... - * clmdep_asio::ip::tcp::socket::keep_alive option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - */ - template - void get_option(GettableSocketOption& option) const - { - clmdep_asio::error_code ec; - this->get_service().get_option(this->get_implementation(), option, ec); - clmdep_asio::detail::throw_error(ec, "get_option"); - } - - /// Get an option from the socket. - /** - * This function is used to get the current value of an option on the socket. - * - * @param option The option value to be obtained from the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa GettableSocketOption @n - * clmdep_asio::socket_base::broadcast @n - * clmdep_asio::socket_base::do_not_route @n - * clmdep_asio::socket_base::keep_alive @n - * clmdep_asio::socket_base::linger @n - * clmdep_asio::socket_base::receive_buffer_size @n - * clmdep_asio::socket_base::receive_low_watermark @n - * clmdep_asio::socket_base::reuse_address @n - * clmdep_asio::socket_base::send_buffer_size @n - * clmdep_asio::socket_base::send_low_watermark @n - * clmdep_asio::ip::multicast::join_group @n - * clmdep_asio::ip::multicast::leave_group @n - * clmdep_asio::ip::multicast::enable_loopback @n - * clmdep_asio::ip::multicast::outbound_interface @n - * clmdep_asio::ip::multicast::hops @n - * clmdep_asio::ip::tcp::no_delay - * - * @par Example - * Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * ... - * clmdep_asio::ip::tcp::socket::keep_alive option; - * clmdep_asio::error_code ec; - * socket.get_option(option, ec); - * if (ec) - * { - * // An error occurred. - * } - * bool is_set = option.value(); - * @endcode - */ - template - clmdep_asio::error_code get_option(GettableSocketOption& option, - clmdep_asio::error_code& ec) const - { - return this->get_service().get_option( - this->get_implementation(), option, ec); - } - - /// Perform an IO control command on the socket. - /** - * This function is used to execute an IO control command on the socket. - * - * @param command The IO control command to be performed on the socket. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @sa IoControlCommand @n - * clmdep_asio::socket_base::bytes_readable @n - * clmdep_asio::socket_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * ... - * clmdep_asio::ip::tcp::socket::bytes_readable command; - * socket.io_control(command); - * std::size_t bytes_readable = command.get(); - * @endcode - */ - template - void io_control(IoControlCommand& command) - { - clmdep_asio::error_code ec; - this->get_service().io_control(this->get_implementation(), command, ec); - clmdep_asio::detail::throw_error(ec, "io_control"); - } - - /// Perform an IO control command on the socket. - /** - * This function is used to execute an IO control command on the socket. - * - * @param command The IO control command to be performed on the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa IoControlCommand @n - * clmdep_asio::socket_base::bytes_readable @n - * clmdep_asio::socket_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * ... - * clmdep_asio::ip::tcp::socket::bytes_readable command; - * clmdep_asio::error_code ec; - * socket.io_control(command, ec); - * if (ec) - * { - * // An error occurred. - * } - * std::size_t bytes_readable = command.get(); - * @endcode - */ - template - clmdep_asio::error_code io_control(IoControlCommand& command, - clmdep_asio::error_code& ec) - { - return this->get_service().io_control( - this->get_implementation(), command, ec); - } - - /// Gets the non-blocking mode of the socket. - /** - * @returns @c true if the socket's synchronous operations will fail with - * clmdep_asio::error::would_block if they are unable to perform the requested - * operation immediately. If @c false, synchronous operations will block - * until complete. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * clmdep_asio::error::would_block. - */ - bool non_blocking() const - { - return this->get_service().non_blocking(this->get_implementation()); - } - - /// Sets the non-blocking mode of the socket. - /** - * @param mode If @c true, the socket's synchronous operations will fail with - * clmdep_asio::error::would_block if they are unable to perform the requested - * operation immediately. If @c false, synchronous operations will block - * until complete. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * clmdep_asio::error::would_block. - */ - void non_blocking(bool mode) - { - clmdep_asio::error_code ec; - this->get_service().non_blocking(this->get_implementation(), mode, ec); - clmdep_asio::detail::throw_error(ec, "non_blocking"); - } - - /// Sets the non-blocking mode of the socket. - /** - * @param mode If @c true, the socket's synchronous operations will fail with - * clmdep_asio::error::would_block if they are unable to perform the requested - * operation immediately. If @c false, synchronous operations will block - * until complete. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * clmdep_asio::error::would_block. - */ - clmdep_asio::error_code non_blocking( - bool mode, clmdep_asio::error_code& ec) - { - return this->get_service().non_blocking( - this->get_implementation(), mode, ec); - } - - /// Gets the non-blocking mode of the native socket implementation. - /** - * This function is used to retrieve the non-blocking mode of the underlying - * native socket. This mode has no effect on the behaviour of the socket - * object's synchronous operations. - * - * @returns @c true if the underlying socket is in non-blocking mode and - * direct system calls may fail with clmdep_asio::error::would_block (or the - * equivalent system error). - * - * @note The current non-blocking mode is cached by the socket object. - * Consequently, the return value may be incorrect if the non-blocking mode - * was set directly on the native socket. - * - * @par Example - * This function is intended to allow the encapsulation of arbitrary - * non-blocking system calls as asynchronous operations, in a way that is - * transparent to the user of the socket object. The following example - * illustrates how Linux's @c sendfile system call might be encapsulated: - * @code template - * struct sendfile_op - * { - * tcp::socket& sock_; - * int fd_; - * Handler handler_; - * off_t offset_; - * std::size_t total_bytes_transferred_; - * - * // Function call operator meeting WriteHandler requirements. - * // Used as the handler for the async_write_some operation. - * void operator()(clmdep_asio::error_code ec, std::size_t) - * { - * // Put the underlying socket into non-blocking mode. - * if (!ec) - * if (!sock_.native_non_blocking()) - * sock_.native_non_blocking(true, ec); - * - * if (!ec) - * { - * for (;;) - * { - * // Try the system call. - * errno = 0; - * int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536); - * ec = clmdep_asio::error_code(n < 0 ? errno : 0, - * clmdep_asio::error::get_system_category()); - * total_bytes_transferred_ += ec ? 0 : n; - * - * // Retry operation immediately if interrupted by signal. - * if (ec == clmdep_asio::error::interrupted) - * continue; - * - * // Check if we need to run the operation again. - * if (ec == clmdep_asio::error::would_block - * || ec == clmdep_asio::error::try_again) - * { - * // We have to wait for the socket to become ready again. - * sock_.async_write_some(clmdep_asio::null_buffers(), *this); - * return; - * } - * - * if (ec || n == 0) - * { - * // An error occurred, or we have reached the end of the file. - * // Either way we must exit the loop so we can call the handler. - * break; - * } - * - * // Loop around to try calling sendfile again. - * } - * } - * - * // Pass result back to user's handler. - * handler_(ec, total_bytes_transferred_); - * } - * }; - * - * template - * void async_sendfile(tcp::socket& sock, int fd, Handler h) - * { - * sendfile_op op = { sock, fd, h, 0, 0 }; - * sock.async_write_some(clmdep_asio::null_buffers(), op); - * } @endcode - */ - bool native_non_blocking() const - { - return this->get_service().native_non_blocking(this->get_implementation()); - } - - /// Sets the non-blocking mode of the native socket implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native socket. It has no effect on the behaviour of the socket object's - * synchronous operations. - * - * @param mode If @c true, the underlying socket is put into non-blocking - * mode and direct system calls may fail with clmdep_asio::error::would_block - * (or the equivalent system error). - * - * @throws clmdep_asio::system_error Thrown on failure. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with clmdep_asio::error::invalid_argument, as the - * combination does not make sense. - * - * @par Example - * This function is intended to allow the encapsulation of arbitrary - * non-blocking system calls as asynchronous operations, in a way that is - * transparent to the user of the socket object. The following example - * illustrates how Linux's @c sendfile system call might be encapsulated: - * @code template - * struct sendfile_op - * { - * tcp::socket& sock_; - * int fd_; - * Handler handler_; - * off_t offset_; - * std::size_t total_bytes_transferred_; - * - * // Function call operator meeting WriteHandler requirements. - * // Used as the handler for the async_write_some operation. - * void operator()(clmdep_asio::error_code ec, std::size_t) - * { - * // Put the underlying socket into non-blocking mode. - * if (!ec) - * if (!sock_.native_non_blocking()) - * sock_.native_non_blocking(true, ec); - * - * if (!ec) - * { - * for (;;) - * { - * // Try the system call. - * errno = 0; - * int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536); - * ec = clmdep_asio::error_code(n < 0 ? errno : 0, - * clmdep_asio::error::get_system_category()); - * total_bytes_transferred_ += ec ? 0 : n; - * - * // Retry operation immediately if interrupted by signal. - * if (ec == clmdep_asio::error::interrupted) - * continue; - * - * // Check if we need to run the operation again. - * if (ec == clmdep_asio::error::would_block - * || ec == clmdep_asio::error::try_again) - * { - * // We have to wait for the socket to become ready again. - * sock_.async_write_some(clmdep_asio::null_buffers(), *this); - * return; - * } - * - * if (ec || n == 0) - * { - * // An error occurred, or we have reached the end of the file. - * // Either way we must exit the loop so we can call the handler. - * break; - * } - * - * // Loop around to try calling sendfile again. - * } - * } - * - * // Pass result back to user's handler. - * handler_(ec, total_bytes_transferred_); - * } - * }; - * - * template - * void async_sendfile(tcp::socket& sock, int fd, Handler h) - * { - * sendfile_op op = { sock, fd, h, 0, 0 }; - * sock.async_write_some(clmdep_asio::null_buffers(), op); - * } @endcode - */ - void native_non_blocking(bool mode) - { - clmdep_asio::error_code ec; - this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - clmdep_asio::detail::throw_error(ec, "native_non_blocking"); - } - - /// Sets the non-blocking mode of the native socket implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native socket. It has no effect on the behaviour of the socket object's - * synchronous operations. - * - * @param mode If @c true, the underlying socket is put into non-blocking - * mode and direct system calls may fail with clmdep_asio::error::would_block - * (or the equivalent system error). - * - * @param ec Set to indicate what error occurred, if any. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with clmdep_asio::error::invalid_argument, as the - * combination does not make sense. - * - * @par Example - * This function is intended to allow the encapsulation of arbitrary - * non-blocking system calls as asynchronous operations, in a way that is - * transparent to the user of the socket object. The following example - * illustrates how Linux's @c sendfile system call might be encapsulated: - * @code template - * struct sendfile_op - * { - * tcp::socket& sock_; - * int fd_; - * Handler handler_; - * off_t offset_; - * std::size_t total_bytes_transferred_; - * - * // Function call operator meeting WriteHandler requirements. - * // Used as the handler for the async_write_some operation. - * void operator()(clmdep_asio::error_code ec, std::size_t) - * { - * // Put the underlying socket into non-blocking mode. - * if (!ec) - * if (!sock_.native_non_blocking()) - * sock_.native_non_blocking(true, ec); - * - * if (!ec) - * { - * for (;;) - * { - * // Try the system call. - * errno = 0; - * int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536); - * ec = clmdep_asio::error_code(n < 0 ? errno : 0, - * clmdep_asio::error::get_system_category()); - * total_bytes_transferred_ += ec ? 0 : n; - * - * // Retry operation immediately if interrupted by signal. - * if (ec == clmdep_asio::error::interrupted) - * continue; - * - * // Check if we need to run the operation again. - * if (ec == clmdep_asio::error::would_block - * || ec == clmdep_asio::error::try_again) - * { - * // We have to wait for the socket to become ready again. - * sock_.async_write_some(clmdep_asio::null_buffers(), *this); - * return; - * } - * - * if (ec || n == 0) - * { - * // An error occurred, or we have reached the end of the file. - * // Either way we must exit the loop so we can call the handler. - * break; - * } - * - * // Loop around to try calling sendfile again. - * } - * } - * - * // Pass result back to user's handler. - * handler_(ec, total_bytes_transferred_); - * } - * }; - * - * template - * void async_sendfile(tcp::socket& sock, int fd, Handler h) - * { - * sendfile_op op = { sock, fd, h, 0, 0 }; - * sock.async_write_some(clmdep_asio::null_buffers(), op); - * } @endcode - */ - clmdep_asio::error_code native_non_blocking( - bool mode, clmdep_asio::error_code& ec) - { - return this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - } - - /// Get the local endpoint of the socket. - /** - * This function is used to obtain the locally bound endpoint of the socket. - * - * @returns An object that represents the local endpoint of the socket. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * ... - * clmdep_asio::ip::tcp::endpoint endpoint = socket.local_endpoint(); - * @endcode - */ - endpoint_type local_endpoint() const - { - clmdep_asio::error_code ec; - endpoint_type ep = this->get_service().local_endpoint( - this->get_implementation(), ec); - clmdep_asio::detail::throw_error(ec, "local_endpoint"); - return ep; - } - - /// Get the local endpoint of the socket. - /** - * This function is used to obtain the locally bound endpoint of the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns An object that represents the local endpoint of the socket. - * Returns a default-constructed endpoint object if an error occurred. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * ... - * clmdep_asio::error_code ec; - * clmdep_asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - endpoint_type local_endpoint(clmdep_asio::error_code& ec) const - { - return this->get_service().local_endpoint(this->get_implementation(), ec); - } - - /// Get the remote endpoint of the socket. - /** - * This function is used to obtain the remote endpoint of the socket. - * - * @returns An object that represents the remote endpoint of the socket. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * ... - * clmdep_asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(); - * @endcode - */ - endpoint_type remote_endpoint() const - { - clmdep_asio::error_code ec; - endpoint_type ep = this->get_service().remote_endpoint( - this->get_implementation(), ec); - clmdep_asio::detail::throw_error(ec, "remote_endpoint"); - return ep; - } - - /// Get the remote endpoint of the socket. - /** - * This function is used to obtain the remote endpoint of the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns An object that represents the remote endpoint of the socket. - * Returns a default-constructed endpoint object if an error occurred. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * ... - * clmdep_asio::error_code ec; - * clmdep_asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - endpoint_type remote_endpoint(clmdep_asio::error_code& ec) const - { - return this->get_service().remote_endpoint(this->get_implementation(), ec); - } - - /// Disable sends or receives on the socket. - /** - * This function is used to disable send operations, receive operations, or - * both. - * - * @param what Determines what types of operation will no longer be allowed. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @par Example - * Shutting down the send side of the socket: - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * ... - * socket.shutdown(clmdep_asio::ip::tcp::socket::shutdown_send); - * @endcode - */ - void shutdown(shutdown_type what) - { - clmdep_asio::error_code ec; - this->get_service().shutdown(this->get_implementation(), what, ec); - clmdep_asio::detail::throw_error(ec, "shutdown"); - } - - /// Disable sends or receives on the socket. - /** - * This function is used to disable send operations, receive operations, or - * both. - * - * @param what Determines what types of operation will no longer be allowed. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * Shutting down the send side of the socket: - * @code - * clmdep_asio::ip::tcp::socket socket(io_service); - * ... - * clmdep_asio::error_code ec; - * socket.shutdown(clmdep_asio::ip::tcp::socket::shutdown_send, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - clmdep_asio::error_code shutdown(shutdown_type what, - clmdep_asio::error_code& ec) - { - return this->get_service().shutdown(this->get_implementation(), what, ec); - } - -protected: - /// Protected destructor to prevent deletion through this type. - ~basic_socket() - { - } -}; - -} // namespace clmdep_asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BASIC_SOCKET_HPP diff --git a/dependencies/include/asio/basic_socket_acceptor.hpp b/dependencies/include/asio/basic_socket_acceptor.hpp deleted file mode 100644 index b885c21a..00000000 --- a/dependencies/include/asio/basic_socket_acceptor.hpp +++ /dev/null @@ -1,1136 +0,0 @@ -// -// basic_socket_acceptor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_BASIC_SOCKET_ACCEPTOR_HPP -#define ASIO_BASIC_SOCKET_ACCEPTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/basic_socket.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/socket_acceptor_service.hpp" -#include "asio/socket_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace clmdep_asio { - -/// Provides the ability to accept new connections. -/** - * The basic_socket_acceptor class template is used for accepting new socket - * connections. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Example - * Opening a socket acceptor with the SO_REUSEADDR option enabled: - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * clmdep_asio::ip::tcp::endpoint endpoint(clmdep_asio::ip::tcp::v4(), port); - * acceptor.open(endpoint.protocol()); - * acceptor.set_option(clmdep_asio::ip::tcp::acceptor::reuse_address(true)); - * acceptor.bind(endpoint); - * acceptor.listen(); - * @endcode - */ -template > -class basic_socket_acceptor - : public basic_io_object, - public socket_base -{ -public: - /// (Deprecated: Use native_handle_type.) The native representation of an - /// acceptor. - typedef typename SocketAcceptorService::native_handle_type native_type; - - /// The native representation of an acceptor. - typedef typename SocketAcceptorService::native_handle_type native_handle_type; - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct an acceptor without opening it. - /** - * This constructor creates an acceptor without opening it to listen for new - * connections. The open() function must be called before the acceptor can - * accept new socket connections. - * - * @param io_service The io_service object that the acceptor will use to - * dispatch handlers for any asynchronous operations performed on the - * acceptor. - */ - explicit basic_socket_acceptor(clmdep_asio::io_service& io_service) - : basic_io_object(io_service) - { - } - - /// Construct an open acceptor. - /** - * This constructor creates an acceptor and automatically opens it. - * - * @param io_service The io_service object that the acceptor will use to - * dispatch handlers for any asynchronous operations performed on the - * acceptor. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - basic_socket_acceptor(clmdep_asio::io_service& io_service, - const protocol_type& protocol) - : basic_io_object(io_service) - { - clmdep_asio::error_code ec; - this->get_service().open(this->get_implementation(), protocol, ec); - clmdep_asio::detail::throw_error(ec, "open"); - } - - /// Construct an acceptor opened on the given endpoint. - /** - * This constructor creates an acceptor and automatically opens it to listen - * for new connections on the specified endpoint. - * - * @param io_service The io_service object that the acceptor will use to - * dispatch handlers for any asynchronous operations performed on the - * acceptor. - * - * @param endpoint An endpoint on the local machine on which the acceptor - * will listen for new connections. - * - * @param reuse_addr Whether the constructor should set the socket option - * socket_base::reuse_address. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note This constructor is equivalent to the following code: - * @code - * basic_socket_acceptor acceptor(io_service); - * acceptor.open(endpoint.protocol()); - * if (reuse_addr) - * acceptor.set_option(socket_base::reuse_address(true)); - * acceptor.bind(endpoint); - * acceptor.listen(listen_backlog); - * @endcode - */ - basic_socket_acceptor(clmdep_asio::io_service& io_service, - const endpoint_type& endpoint, bool reuse_addr = true) - : basic_io_object(io_service) - { - clmdep_asio::error_code ec; - const protocol_type protocol = endpoint.protocol(); - this->get_service().open(this->get_implementation(), protocol, ec); - clmdep_asio::detail::throw_error(ec, "open"); - if (reuse_addr) - { - this->get_service().set_option(this->get_implementation(), - socket_base::reuse_address(true), ec); - clmdep_asio::detail::throw_error(ec, "set_option"); - } - this->get_service().bind(this->get_implementation(), endpoint, ec); - clmdep_asio::detail::throw_error(ec, "bind"); - this->get_service().listen(this->get_implementation(), - socket_base::max_connections, ec); - clmdep_asio::detail::throw_error(ec, "listen"); - } - - /// Construct a basic_socket_acceptor on an existing native acceptor. - /** - * This constructor creates an acceptor object to hold an existing native - * acceptor. - * - * @param io_service The io_service object that the acceptor will use to - * dispatch handlers for any asynchronous operations performed on the - * acceptor. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_acceptor A native acceptor. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - basic_socket_acceptor(clmdep_asio::io_service& io_service, - const protocol_type& protocol, const native_handle_type& native_acceptor) - : basic_io_object(io_service) - { - clmdep_asio::error_code ec; - this->get_service().assign(this->get_implementation(), - protocol, native_acceptor, ec); - clmdep_asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_socket_acceptor from another. - /** - * This constructor moves an acceptor from one object to another. - * - * @param other The other basic_socket_acceptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket_acceptor(io_service&) constructor. - */ - basic_socket_acceptor(basic_socket_acceptor&& other) - : basic_io_object( - ASIO_MOVE_CAST(basic_socket_acceptor)(other)) - { - } - - /// Move-assign a basic_socket_acceptor from another. - /** - * This assignment operator moves an acceptor from one object to another. - * - * @param other The other basic_socket_acceptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket_acceptor(io_service&) constructor. - */ - basic_socket_acceptor& operator=(basic_socket_acceptor&& other) - { - basic_io_object::operator=( - ASIO_MOVE_CAST(basic_socket_acceptor)(other)); - return *this; - } - - // All socket acceptors have access to each other's implementations. - template - friend class basic_socket_acceptor; - - /// Move-construct a basic_socket_acceptor from an acceptor of another - /// protocol type. - /** - * This constructor moves an acceptor from one object to another. - * - * @param other The other basic_socket_acceptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket(io_service&) constructor. - */ - template - basic_socket_acceptor( - basic_socket_acceptor&& other, - typename enable_if::value>::type* = 0) - : basic_io_object(other.get_io_service()) - { - this->get_service().template converting_move_construct( - this->get_implementation(), other.get_implementation()); - } - - /// Move-assign a basic_socket_acceptor from an acceptor of another protocol - /// type. - /** - * This assignment operator moves an acceptor from one object to another. - * - * @param other The other basic_socket_acceptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket(io_service&) constructor. - */ - template - typename enable_if::value, - basic_socket_acceptor>::type& operator=( - basic_socket_acceptor&& other) - { - basic_socket_acceptor tmp(ASIO_MOVE_CAST2(basic_socket_acceptor< - Protocol1, SocketAcceptorService1>)(other)); - basic_io_object::operator=( - ASIO_MOVE_CAST(basic_socket_acceptor)(tmp)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Open the acceptor using the specified protocol. - /** - * This function opens the socket acceptor so that it will use the specified - * protocol. - * - * @param protocol An object specifying which protocol is to be used. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * acceptor.open(clmdep_asio::ip::tcp::v4()); - * @endcode - */ - void open(const protocol_type& protocol = protocol_type()) - { - clmdep_asio::error_code ec; - this->get_service().open(this->get_implementation(), protocol, ec); - clmdep_asio::detail::throw_error(ec, "open"); - } - - /// Open the acceptor using the specified protocol. - /** - * This function opens the socket acceptor so that it will use the specified - * protocol. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * clmdep_asio::error_code ec; - * acceptor.open(clmdep_asio::ip::tcp::v4(), ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - clmdep_asio::error_code open(const protocol_type& protocol, - clmdep_asio::error_code& ec) - { - return this->get_service().open(this->get_implementation(), protocol, ec); - } - - /// Assigns an existing native acceptor to the acceptor. - /* - * This function opens the acceptor to hold an existing native acceptor. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param native_acceptor A native acceptor. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - void assign(const protocol_type& protocol, - const native_handle_type& native_acceptor) - { - clmdep_asio::error_code ec; - this->get_service().assign(this->get_implementation(), - protocol, native_acceptor, ec); - clmdep_asio::detail::throw_error(ec, "assign"); - } - - /// Assigns an existing native acceptor to the acceptor. - /* - * This function opens the acceptor to hold an existing native acceptor. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param native_acceptor A native acceptor. - * - * @param ec Set to indicate what error occurred, if any. - */ - clmdep_asio::error_code assign(const protocol_type& protocol, - const native_handle_type& native_acceptor, clmdep_asio::error_code& ec) - { - return this->get_service().assign(this->get_implementation(), - protocol, native_acceptor, ec); - } - - /// Determine whether the acceptor is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Bind the acceptor to the given local endpoint. - /** - * This function binds the socket acceptor to the specified endpoint on the - * local machine. - * - * @param endpoint An endpoint on the local machine to which the socket - * acceptor will be bound. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * clmdep_asio::ip::tcp::endpoint endpoint(clmdep_asio::ip::tcp::v4(), 12345); - * acceptor.open(endpoint.protocol()); - * acceptor.bind(endpoint); - * @endcode - */ - void bind(const endpoint_type& endpoint) - { - clmdep_asio::error_code ec; - this->get_service().bind(this->get_implementation(), endpoint, ec); - clmdep_asio::detail::throw_error(ec, "bind"); - } - - /// Bind the acceptor to the given local endpoint. - /** - * This function binds the socket acceptor to the specified endpoint on the - * local machine. - * - * @param endpoint An endpoint on the local machine to which the socket - * acceptor will be bound. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * clmdep_asio::ip::tcp::endpoint endpoint(clmdep_asio::ip::tcp::v4(), 12345); - * acceptor.open(endpoint.protocol()); - * clmdep_asio::error_code ec; - * acceptor.bind(endpoint, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - clmdep_asio::error_code bind(const endpoint_type& endpoint, - clmdep_asio::error_code& ec) - { - return this->get_service().bind(this->get_implementation(), endpoint, ec); - } - - /// Place the acceptor into the state where it will listen for new - /// connections. - /** - * This function puts the socket acceptor into the state where it may accept - * new connections. - * - * @param backlog The maximum length of the queue of pending connections. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - void listen(int backlog = socket_base::max_connections) - { - clmdep_asio::error_code ec; - this->get_service().listen(this->get_implementation(), backlog, ec); - clmdep_asio::detail::throw_error(ec, "listen"); - } - - /// Place the acceptor into the state where it will listen for new - /// connections. - /** - * This function puts the socket acceptor into the state where it may accept - * new connections. - * - * @param backlog The maximum length of the queue of pending connections. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * ... - * clmdep_asio::error_code ec; - * acceptor.listen(clmdep_asio::socket_base::max_connections, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - clmdep_asio::error_code listen(int backlog, clmdep_asio::error_code& ec) - { - return this->get_service().listen(this->get_implementation(), backlog, ec); - } - - /// Close the acceptor. - /** - * This function is used to close the acceptor. Any asynchronous accept - * operations will be cancelled immediately. - * - * A subsequent call to open() is required before the acceptor can again be - * used to again perform socket accept operations. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - void close() - { - clmdep_asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - clmdep_asio::detail::throw_error(ec, "close"); - } - - /// Close the acceptor. - /** - * This function is used to close the acceptor. Any asynchronous accept - * operations will be cancelled immediately. - * - * A subsequent call to open() is required before the acceptor can again be - * used to again perform socket accept operations. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * ... - * clmdep_asio::error_code ec; - * acceptor.close(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - clmdep_asio::error_code close(clmdep_asio::error_code& ec) - { - return this->get_service().close(this->get_implementation(), ec); - } - - /// (Deprecated: Use native_handle().) Get the native acceptor representation. - /** - * This function may be used to obtain the underlying representation of the - * acceptor. This is intended to allow access to native acceptor functionality - * that is not otherwise provided. - */ - native_type native() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Get the native acceptor representation. - /** - * This function may be used to obtain the underlying representation of the - * acceptor. This is intended to allow access to native acceptor functionality - * that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the acceptor. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the clmdep_asio::error::operation_aborted error. - * - * @throws clmdep_asio::system_error Thrown on failure. - */ - void cancel() - { - clmdep_asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - clmdep_asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the acceptor. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the clmdep_asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - clmdep_asio::error_code cancel(clmdep_asio::error_code& ec) - { - return this->get_service().cancel(this->get_implementation(), ec); - } - - /// Set an option on the acceptor. - /** - * This function is used to set an option on the acceptor. - * - * @param option The new option value to be set on the acceptor. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @sa SettableSocketOption @n - * clmdep_asio::socket_base::reuse_address - * clmdep_asio::socket_base::enable_connection_aborted - * - * @par Example - * Setting the SOL_SOCKET/SO_REUSEADDR option: - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * ... - * clmdep_asio::ip::tcp::acceptor::reuse_address option(true); - * acceptor.set_option(option); - * @endcode - */ - template - void set_option(const SettableSocketOption& option) - { - clmdep_asio::error_code ec; - this->get_service().set_option(this->get_implementation(), option, ec); - clmdep_asio::detail::throw_error(ec, "set_option"); - } - - /// Set an option on the acceptor. - /** - * This function is used to set an option on the acceptor. - * - * @param option The new option value to be set on the acceptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa SettableSocketOption @n - * clmdep_asio::socket_base::reuse_address - * clmdep_asio::socket_base::enable_connection_aborted - * - * @par Example - * Setting the SOL_SOCKET/SO_REUSEADDR option: - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * ... - * clmdep_asio::ip::tcp::acceptor::reuse_address option(true); - * clmdep_asio::error_code ec; - * acceptor.set_option(option, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - template - clmdep_asio::error_code set_option(const SettableSocketOption& option, - clmdep_asio::error_code& ec) - { - return this->get_service().set_option( - this->get_implementation(), option, ec); - } - - /// Get an option from the acceptor. - /** - * This function is used to get the current value of an option on the - * acceptor. - * - * @param option The option value to be obtained from the acceptor. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @sa GettableSocketOption @n - * clmdep_asio::socket_base::reuse_address - * - * @par Example - * Getting the value of the SOL_SOCKET/SO_REUSEADDR option: - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * ... - * clmdep_asio::ip::tcp::acceptor::reuse_address option; - * acceptor.get_option(option); - * bool is_set = option.get(); - * @endcode - */ - template - void get_option(GettableSocketOption& option) - { - clmdep_asio::error_code ec; - this->get_service().get_option(this->get_implementation(), option, ec); - clmdep_asio::detail::throw_error(ec, "get_option"); - } - - /// Get an option from the acceptor. - /** - * This function is used to get the current value of an option on the - * acceptor. - * - * @param option The option value to be obtained from the acceptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa GettableSocketOption @n - * clmdep_asio::socket_base::reuse_address - * - * @par Example - * Getting the value of the SOL_SOCKET/SO_REUSEADDR option: - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * ... - * clmdep_asio::ip::tcp::acceptor::reuse_address option; - * clmdep_asio::error_code ec; - * acceptor.get_option(option, ec); - * if (ec) - * { - * // An error occurred. - * } - * bool is_set = option.get(); - * @endcode - */ - template - clmdep_asio::error_code get_option(GettableSocketOption& option, - clmdep_asio::error_code& ec) - { - return this->get_service().get_option( - this->get_implementation(), option, ec); - } - - /// Perform an IO control command on the acceptor. - /** - * This function is used to execute an IO control command on the acceptor. - * - * @param command The IO control command to be performed on the acceptor. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @sa IoControlCommand @n - * clmdep_asio::socket_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * ... - * clmdep_asio::ip::tcp::acceptor::non_blocking_io command(true); - * socket.io_control(command); - * @endcode - */ - template - void io_control(IoControlCommand& command) - { - clmdep_asio::error_code ec; - this->get_service().io_control(this->get_implementation(), command, ec); - clmdep_asio::detail::throw_error(ec, "io_control"); - } - - /// Perform an IO control command on the acceptor. - /** - * This function is used to execute an IO control command on the acceptor. - * - * @param command The IO control command to be performed on the acceptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa IoControlCommand @n - * clmdep_asio::socket_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * ... - * clmdep_asio::ip::tcp::acceptor::non_blocking_io command(true); - * clmdep_asio::error_code ec; - * socket.io_control(command, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - template - clmdep_asio::error_code io_control(IoControlCommand& command, - clmdep_asio::error_code& ec) - { - return this->get_service().io_control( - this->get_implementation(), command, ec); - } - - /// Gets the non-blocking mode of the acceptor. - /** - * @returns @c true if the acceptor's synchronous operations will fail with - * clmdep_asio::error::would_block if they are unable to perform the requested - * operation immediately. If @c false, synchronous operations will block - * until complete. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * clmdep_asio::error::would_block. - */ - bool non_blocking() const - { - return this->get_service().non_blocking(this->get_implementation()); - } - - /// Sets the non-blocking mode of the acceptor. - /** - * @param mode If @c true, the acceptor's synchronous operations will fail - * with clmdep_asio::error::would_block if they are unable to perform the - * requested operation immediately. If @c false, synchronous operations will - * block until complete. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * clmdep_asio::error::would_block. - */ - void non_blocking(bool mode) - { - clmdep_asio::error_code ec; - this->get_service().non_blocking(this->get_implementation(), mode, ec); - clmdep_asio::detail::throw_error(ec, "non_blocking"); - } - - /// Sets the non-blocking mode of the acceptor. - /** - * @param mode If @c true, the acceptor's synchronous operations will fail - * with clmdep_asio::error::would_block if they are unable to perform the - * requested operation immediately. If @c false, synchronous operations will - * block until complete. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * clmdep_asio::error::would_block. - */ - clmdep_asio::error_code non_blocking( - bool mode, clmdep_asio::error_code& ec) - { - return this->get_service().non_blocking( - this->get_implementation(), mode, ec); - } - - /// Gets the non-blocking mode of the native acceptor implementation. - /** - * This function is used to retrieve the non-blocking mode of the underlying - * native acceptor. This mode has no effect on the behaviour of the acceptor - * object's synchronous operations. - * - * @returns @c true if the underlying acceptor is in non-blocking mode and - * direct system calls may fail with clmdep_asio::error::would_block (or the - * equivalent system error). - * - * @note The current non-blocking mode is cached by the acceptor object. - * Consequently, the return value may be incorrect if the non-blocking mode - * was set directly on the native acceptor. - */ - bool native_non_blocking() const - { - return this->get_service().native_non_blocking(this->get_implementation()); - } - - /// Sets the non-blocking mode of the native acceptor implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native acceptor. It has no effect on the behaviour of the acceptor object's - * synchronous operations. - * - * @param mode If @c true, the underlying acceptor is put into non-blocking - * mode and direct system calls may fail with clmdep_asio::error::would_block - * (or the equivalent system error). - * - * @throws clmdep_asio::system_error Thrown on failure. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with clmdep_asio::error::invalid_argument, as the - * combination does not make sense. - */ - void native_non_blocking(bool mode) - { - clmdep_asio::error_code ec; - this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - clmdep_asio::detail::throw_error(ec, "native_non_blocking"); - } - - /// Sets the non-blocking mode of the native acceptor implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native acceptor. It has no effect on the behaviour of the acceptor object's - * synchronous operations. - * - * @param mode If @c true, the underlying acceptor is put into non-blocking - * mode and direct system calls may fail with clmdep_asio::error::would_block - * (or the equivalent system error). - * - * @param ec Set to indicate what error occurred, if any. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with clmdep_asio::error::invalid_argument, as the - * combination does not make sense. - */ - clmdep_asio::error_code native_non_blocking( - bool mode, clmdep_asio::error_code& ec) - { - return this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - } - - /// Get the local endpoint of the acceptor. - /** - * This function is used to obtain the locally bound endpoint of the acceptor. - * - * @returns An object that represents the local endpoint of the acceptor. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * ... - * clmdep_asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint(); - * @endcode - */ - endpoint_type local_endpoint() const - { - clmdep_asio::error_code ec; - endpoint_type ep = this->get_service().local_endpoint( - this->get_implementation(), ec); - clmdep_asio::detail::throw_error(ec, "local_endpoint"); - return ep; - } - - /// Get the local endpoint of the acceptor. - /** - * This function is used to obtain the locally bound endpoint of the acceptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns An object that represents the local endpoint of the acceptor. - * Returns a default-constructed endpoint object if an error occurred and the - * error handler did not throw an exception. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * ... - * clmdep_asio::error_code ec; - * clmdep_asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - endpoint_type local_endpoint(clmdep_asio::error_code& ec) const - { - return this->get_service().local_endpoint(this->get_implementation(), ec); - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer into the - * given socket. The function call will block until a new connection has been - * accepted successfully or an error occurs. - * - * @param peer The socket into which the new connection will be accepted. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * ... - * clmdep_asio::ip::tcp::socket socket(io_service); - * acceptor.accept(socket); - * @endcode - */ - template - void accept(basic_socket& peer, - typename enable_if::value>::type* = 0) - { - clmdep_asio::error_code ec; - this->get_service().accept(this->get_implementation(), - peer, static_cast(0), ec); - clmdep_asio::detail::throw_error(ec, "accept"); - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer into the - * given socket. The function call will block until a new connection has been - * accepted successfully or an error occurs. - * - * @param peer The socket into which the new connection will be accepted. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * ... - * clmdep_asio::ip::tcp::soocket socket(io_service); - * clmdep_asio::error_code ec; - * acceptor.accept(socket, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - template - clmdep_asio::error_code accept( - basic_socket& peer, - clmdep_asio::error_code& ec, - typename enable_if::value>::type* = 0) - { - return this->get_service().accept(this->get_implementation(), - peer, static_cast(0), ec); - } - - /// Start an asynchronous accept. - /** - * This function is used to asynchronously accept a new connection into a - * socket. The function call always returns immediately. - * - * @param peer The socket into which the new connection will be accepted. - * Ownership of the peer object is retained by the caller, which must - * guarantee that it is valid until the handler is called. - * - * @param handler The handler to be called when the accept operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error // Result of operation. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - * - * @par Example - * @code - * void accept_handler(const clmdep_asio::error_code& error) - * { - * if (!error) - * { - * // Accept succeeded. - * } - * } - * - * ... - * - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * ... - * clmdep_asio::ip::tcp::socket socket(io_service); - * acceptor.async_accept(socket, accept_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(AcceptHandler, - void (clmdep_asio::error_code)) - async_accept(basic_socket& peer, - ASIO_MOVE_ARG(AcceptHandler) handler, - typename enable_if::value>::type* = 0) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a AcceptHandler. - ASIO_ACCEPT_HANDLER_CHECK(AcceptHandler, handler) type_check; - - return this->get_service().async_accept(this->get_implementation(), - peer, static_cast(0), - ASIO_MOVE_CAST(AcceptHandler)(handler)); - } - - /// Accept a new connection and obtain the endpoint of the peer - /** - * This function is used to accept a new connection from a peer into the - * given socket, and additionally provide the endpoint of the remote peer. - * The function call will block until a new connection has been accepted - * successfully or an error occurs. - * - * @param peer The socket into which the new connection will be accepted. - * - * @param peer_endpoint An endpoint object which will receive the endpoint of - * the remote peer. - * - * @throws clmdep_asio::system_error Thrown on failure. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * ... - * clmdep_asio::ip::tcp::socket socket(io_service); - * clmdep_asio::ip::tcp::endpoint endpoint; - * acceptor.accept(socket, endpoint); - * @endcode - */ - template - void accept(basic_socket& peer, - endpoint_type& peer_endpoint) - { - clmdep_asio::error_code ec; - this->get_service().accept(this->get_implementation(), - peer, &peer_endpoint, ec); - clmdep_asio::detail::throw_error(ec, "accept"); - } - - /// Accept a new connection and obtain the endpoint of the peer - /** - * This function is used to accept a new connection from a peer into the - * given socket, and additionally provide the endpoint of the remote peer. - * The function call will block until a new connection has been accepted - * successfully or an error occurs. - * - * @param peer The socket into which the new connection will be accepted. - * - * @param peer_endpoint An endpoint object which will receive the endpoint of - * the remote peer. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * clmdep_asio::ip::tcp::acceptor acceptor(io_service); - * ... - * clmdep_asio::ip::tcp::socket socket(io_service); - * clmdep_asio::ip::tcp::endpoint endpoint; - * clmdep_asio::error_code ec; - * acceptor.accept(socket, endpoint, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - template - clmdep_asio::error_code accept( - basic_socket& peer, - endpoint_type& peer_endpoint, clmdep_asio::error_code& ec) - { - return this->get_service().accept( - this->get_implementation(), peer, &peer_endpoint, ec); - } - - /// Start an asynchronous accept. - /** - * This function is used to asynchronously accept a new connection into a - * socket, and additionally obtain the endpoint of the remote peer. The - * function call always returns immediately. - * - * @param peer The socket into which the new connection will be accepted. - * Ownership of the peer object is retained by the caller, which must - * guarantee that it is valid until the handler is called. - * - * @param peer_endpoint An endpoint object into which the endpoint of the - * remote peer will be written. Ownership of the peer_endpoint object is - * retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param handler The handler to be called when the accept operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const clmdep_asio::error_code& error // Result of operation. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * clmdep_asio::io_service::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(AcceptHandler, - void (clmdep_asio::error_code)) - async_accept(basic_socket& peer, - endpoint_type& peer_endpoint, ASIO_MOVE_ARG(AcceptHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a AcceptHandler. - ASIO_ACCEPT_HANDLER_CHECK(AcceptHandler, handler) type_check; - - return this->get_service().async_accept(this->get_implementation(), peer, - &peer_endpoint, ASIO_MOVE_CAST(AcceptHandler)(handler)); - } -}; - -} // namespace clmdep_asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BASIC_SOCKET_ACCEPTOR_HPP diff --git a/dependencies/include/asio/basic_socket_iostream.hpp b/dependencies/include/asio/basic_socket_iostream.hpp deleted file mode 100644 index 41462d9a..00000000 --- a/dependencies/include/asio/basic_socket_iostream.hpp +++ /dev/null @@ -1,286 +0,0 @@ -// -// basic_socket_iostream.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_BASIC_SOCKET_IOSTREAM_HPP -#define ASIO_BASIC_SOCKET_IOSTREAM_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_NO_IOSTREAM) - -#include -#include -#include "asio/basic_socket_streambuf.hpp" -#include "asio/stream_socket_service.hpp" - -#if !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -# include "asio/detail/variadic_templates.hpp" - -// A macro that should expand to: -// template -// explicit basic_socket_iostream(T1 x1, ..., Tn xn) -// : std::basic_iostream( -// &this->detail::socket_iostream_base< -// Protocol, StreamSocketService, Time, -// TimeTraits, TimerService>::streambuf_) -// { -// if (rdbuf()->connect(x1, ..., xn) == 0) -// this->setstate(std::ios_base::failbit); -// } -// This macro should only persist within this file. - -# define ASIO_PRIVATE_CTR_DEF(n) \ - template \ - explicit basic_socket_iostream(ASIO_VARIADIC_PARAMS(n)) \ - : std::basic_iostream( \ - &this->detail::socket_iostream_base< \ - Protocol, StreamSocketService, Time, \ - TimeTraits, TimerService>::streambuf_) \ - { \ - this->setf(std::ios_base::unitbuf); \ - if (rdbuf()->connect(ASIO_VARIADIC_ARGS(n)) == 0) \ - this->setstate(std::ios_base::failbit); \ - } \ - /**/ - -// A macro that should expand to: -// template -// void connect(T1 x1, ..., Tn xn) -// { -// if (rdbuf()->connect(x1, ..., xn) == 0) -// this->setstate(std::ios_base::failbit); -// } -// This macro should only persist within this file. - -# define ASIO_PRIVATE_CONNECT_DEF(n) \ - template \ - void connect(ASIO_VARIADIC_PARAMS(n)) \ - { \ - if (rdbuf()->connect(ASIO_VARIADIC_ARGS(n)) == 0) \ - this->setstate(std::ios_base::failbit); \ - } \ - /**/ - -#endif // !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#include "asio/detail/push_options.hpp" - -namespace clmdep_asio { -namespace detail { - -// A separate base class is used to ensure that the streambuf is initialised -// prior to the basic_socket_iostream's basic_iostream base class. -template -class socket_iostream_base -{ -protected: - basic_socket_streambuf streambuf_; -}; - -} - -/// Iostream interface for a socket. -template , -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - || defined(GENERATING_DOCUMENTATION) - typename Time = boost::posix_time::ptime, - typename TimeTraits = clmdep_asio::time_traits