├── README.md
├── pc_application
├── include
│ ├── websocketpp
│ │ ├── CMakeLists.txt
│ │ ├── client.hpp
│ │ ├── server.hpp
│ │ ├── endpoint_base.hpp
│ │ └── connection_base.hpp
│ ├── asio
│ │ ├── unyield.hpp
│ │ ├── yield.hpp
│ │ ├── ts
│ │ │ ├── io_context.hpp
│ │ │ ├── buffer.hpp
│ │ │ ├── net.hpp
│ │ │ ├── timer.hpp
│ │ │ ├── socket.hpp
│ │ │ ├── executor.hpp
│ │ │ └── internet.hpp
│ │ ├── io_service_strand.hpp
│ │ ├── experimental.hpp
│ │ ├── buffered_stream_fwd.hpp
│ │ ├── version.hpp
│ │ ├── buffered_read_stream_fwd.hpp
│ │ ├── buffered_write_stream_fwd.hpp
│ │ ├── impl
│ │ │ ├── src.cpp
│ │ │ ├── system_context.hpp
│ │ │ ├── executor.ipp
│ │ │ ├── serial_port_base.hpp
│ │ │ ├── handler_alloc_hook.ipp
│ │ │ ├── system_context.ipp
│ │ │ └── thread_pool.ipp
│ │ ├── detail
│ │ │ ├── limits.hpp
│ │ │ ├── cstddef.hpp
│ │ │ ├── date_time_fwd.hpp
│ │ │ ├── regex_fwd.hpp
│ │ │ ├── dependent_type.hpp
│ │ │ ├── win_iocp_thread_info.hpp
│ │ │ ├── assert.hpp
│ │ │ ├── operation.hpp
│ │ │ ├── reactor.hpp
│ │ │ ├── array_fwd.hpp
│ │ │ ├── array.hpp
│ │ │ ├── functional.hpp
│ │ │ ├── noncopyable.hpp
│ │ │ ├── wait_op.hpp
│ │ │ ├── fd_set_adapter.hpp
│ │ │ ├── null_fenced_block.hpp
│ │ │ ├── scheduler_thread_info.hpp
│ │ │ ├── resolve_op.hpp
│ │ │ ├── signal_init.hpp
│ │ │ ├── timer_scheduler.hpp
│ │ │ ├── reactor_fwd.hpp
│ │ │ ├── thread_context.hpp
│ │ │ ├── signal_op.hpp
│ │ │ ├── future.hpp
│ │ │ ├── impl
│ │ │ │ ├── posix_mutex.ipp
│ │ │ │ ├── posix_tss_ptr.ipp
│ │ │ │ ├── win_tss_ptr.ipp
│ │ │ │ └── posix_event.ipp
│ │ │ ├── timer_scheduler_fwd.hpp
│ │ │ ├── mutex.hpp
│ │ │ ├── null_static_mutex.hpp
│ │ │ ├── event.hpp
│ │ │ ├── null_mutex.hpp
│ │ │ ├── signal_blocker.hpp
│ │ │ ├── throw_error.hpp
│ │ │ ├── global.hpp
│ │ │ ├── null_global.hpp
│ │ │ ├── handler_cont_helpers.hpp
│ │ │ ├── null_tss_ptr.hpp
│ │ │ ├── atomic_count.hpp
│ │ │ ├── select_interrupter.hpp
│ │ │ ├── solaris_fenced_block.hpp
│ │ │ ├── macos_fenced_block.hpp
│ │ │ ├── std_fenced_block.hpp
│ │ │ ├── null_thread.hpp
│ │ │ ├── std_mutex.hpp
│ │ │ ├── string_view.hpp
│ │ │ ├── local_free_on_block_exit.hpp
│ │ │ ├── throw_exception.hpp
│ │ │ ├── keyword_tss_ptr.hpp
│ │ │ ├── std_thread.hpp
│ │ │ ├── posix_static_mutex.hpp
│ │ │ ├── winrt_async_op.hpp
│ │ │ ├── cstdint.hpp
│ │ │ ├── null_reactor.hpp
│ │ │ ├── thread.hpp
│ │ │ ├── scoped_ptr.hpp
│ │ │ ├── static_mutex.hpp
│ │ │ ├── gcc_hppa_fenced_block.hpp
│ │ │ ├── std_global.hpp
│ │ │ ├── buffer_resize_guard.hpp
│ │ │ ├── null_signal_blocker.hpp
│ │ │ ├── std_static_mutex.hpp
│ │ │ ├── reactor_op.hpp
│ │ │ ├── gcc_sync_fenced_block.hpp
│ │ │ ├── handler_invoke_helpers.hpp
│ │ │ ├── posix_mutex.hpp
│ │ │ ├── timer_queue_set.hpp
│ │ │ ├── base_from_completion_cond.hpp
│ │ │ ├── timer_queue_base.hpp
│ │ │ └── win_tss_ptr.hpp
│ │ ├── ssl.hpp
│ │ ├── ssl
│ │ │ ├── impl
│ │ │ │ └── src.hpp
│ │ │ ├── detail
│ │ │ │ ├── openssl_types.hpp
│ │ │ │ ├── shutdown_op.hpp
│ │ │ │ ├── handshake_op.hpp
│ │ │ │ ├── verify_callback.hpp
│ │ │ │ ├── password_callback.hpp
│ │ │ │ ├── read_op.hpp
│ │ │ │ └── write_op.hpp
│ │ │ ├── stream_base.hpp
│ │ │ ├── verify_mode.hpp
│ │ │ └── verify_context.hpp
│ │ ├── streambuf.hpp
│ │ ├── io_service.hpp
│ │ ├── basic_streambuf_fwd.hpp
│ │ ├── ip
│ │ │ ├── host_name.hpp
│ │ │ ├── resolver_query_base.hpp
│ │ │ ├── impl
│ │ │ │ ├── basic_endpoint.hpp
│ │ │ │ ├── host_name.ipp
│ │ │ │ ├── network_v6.hpp
│ │ │ │ ├── network_v4.hpp
│ │ │ │ ├── address.hpp
│ │ │ │ ├── address_v4.hpp
│ │ │ │ └── address_v6.hpp
│ │ │ ├── bad_address_cast.hpp
│ │ │ ├── unicast.hpp
│ │ │ └── v6_only.hpp
│ │ ├── deadline_timer.hpp
│ │ ├── steady_timer.hpp
│ │ ├── system_timer.hpp
│ │ ├── is_executor.hpp
│ │ ├── high_resolution_timer.hpp
│ │ ├── wait_traits.hpp
│ │ ├── handler_continuation_hook.hpp
│ │ ├── handler_type.hpp
│ │ ├── is_read_buffered.hpp
│ │ ├── is_write_buffered.hpp
│ │ └── experimental
│ │ │ └── detached.hpp
│ └── rapidjson
│ │ └── internal
│ │ └── swap.h
├── build
│ ├── source
│ │ ├── main.cpp.o
│ │ ├── libfort
│ │ │ └── fort.c.o
│ │ └── websocketServer.cpp.o
│ ├── JoyCon_Droid_PC.exe
│ └── config.json
├── compile_commands.json
├── source
│ ├── terminalhelpers.hpp
│ └── getIpAddress.hpp
└── Makefile
├── droid_ui
├── src
│ ├── index.css
│ ├── index.js
│ ├── App.test.js
│ └── App.css
├── public
│ ├── favicon.ico
│ └── index.html
├── .gitignore
└── package.json
├── .clang-format
├── .vscode
├── c_cpp_properties.json
├── tasks.json
└── settings.json
├── LICENSE
└── protocol.md
/README.md:
--------------------------------------------------------------------------------
1 | # JoyCon-Droid-PC
2 | Use JoyCon Droid from your PC
3 |
4 | As of now, unusuable
5 |
--------------------------------------------------------------------------------
/pc_application/include/websocketpp/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | init_target("websocketpp")
2 | final_target ()
3 |
--------------------------------------------------------------------------------
/droid_ui/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | padding: 0;
4 | font-family: sans-serif;
5 | }
6 |
--------------------------------------------------------------------------------
/droid_ui/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TheGreatRambler/JoyCon-Droid-PC/HEAD/droid_ui/public/favicon.ico
--------------------------------------------------------------------------------
/pc_application/build/source/main.cpp.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TheGreatRambler/JoyCon-Droid-PC/HEAD/pc_application/build/source/main.cpp.o
--------------------------------------------------------------------------------
/pc_application/build/JoyCon_Droid_PC.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TheGreatRambler/JoyCon-Droid-PC/HEAD/pc_application/build/JoyCon_Droid_PC.exe
--------------------------------------------------------------------------------
/pc_application/build/source/libfort/fort.c.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TheGreatRambler/JoyCon-Droid-PC/HEAD/pc_application/build/source/libfort/fort.c.o
--------------------------------------------------------------------------------
/pc_application/build/source/websocketServer.cpp.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TheGreatRambler/JoyCon-Droid-PC/HEAD/pc_application/build/source/websocketServer.cpp.o
--------------------------------------------------------------------------------
/droid_ui/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import App from './App';
4 | import './index.css';
5 |
6 | ReactDOM.render(
7 | ,
8 | document.getElementById('root')
9 | );
10 |
--------------------------------------------------------------------------------
/droid_ui/src/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import App from './App';
4 |
5 | it('renders without crashing', () => {
6 | const div = document.createElement('div');
7 | ReactDOM.render(, div);
8 | });
9 |
--------------------------------------------------------------------------------
/pc_application/build/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "keyboardKeys": {
3 | "i": "x",
4 | "k": "b",
5 | "j": "y",
6 | "l": "a",
7 | "e": "LSTICK",
8 | "o": "RSTICK",
9 | "h": "PLUS",
10 | "g": "MINUS",
11 | "f": "DUP",
12 | "c": "DDOWN",
13 | "x": "DLEFT",
14 | "v": "DRIGHT"
15 | }
16 | }
--------------------------------------------------------------------------------
/droid_ui/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 |
6 | # testing
7 | /coverage
8 |
9 | # production
10 | /build
11 |
12 | # misc
13 | .DS_Store
14 | .env
15 | npm-debug.log*
16 | yarn-debug.log*
17 | yarn-error.log*
18 |
19 |
--------------------------------------------------------------------------------
/droid_ui/src/App.css:
--------------------------------------------------------------------------------
1 | .App {
2 | text-align: center;
3 | }
4 |
5 | .App-logo {
6 | animation: App-logo-spin infinite 20s linear;
7 | height: 80px;
8 | }
9 |
10 | .App-header {
11 | background-color: #222;
12 | vertical-align: middle;
13 | padding: 20px;
14 | color: white;
15 | }
16 |
17 | .App-intro {
18 | font-size: large;
19 | }
20 |
21 | input {
22 | margin: auto;
23 | }
--------------------------------------------------------------------------------
/pc_application/include/asio/unyield.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // unyield.hpp
3 | // ~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifdef reenter
12 | # undef reenter
13 | #endif
14 |
15 | #ifdef yield
16 | # undef yield
17 | #endif
18 |
19 | #ifdef fork
20 | # undef fork
21 | #endif
22 |
--------------------------------------------------------------------------------
/pc_application/compile_commands.json:
--------------------------------------------------------------------------------
1 | [{
2 | "directory": "C:\\Users\\aehar\\Desktop\\projects\\VSC_Projects\\JoyCon-Droid-PC\\pc_application",
3 | "arguments": [
4 | "x86_64-w64-mingw32-g++",
5 | "-g",
6 | "-Wall",
7 | "-Wextra",
8 | "-std=c++11",
9 | "-fsingle-precision-constant",
10 | "-Dmain=SDL_main",
11 | "-IC:/msys2/mingw64/include/SDL2",
12 | "-I./include",
13 | "-c",
14 | "source/main.cpp",
15 | "-o",
16 | "build/./source/main.cpp.o"
17 | ],
18 | "file": "source/main.cpp"
19 | }]
--------------------------------------------------------------------------------
/droid_ui/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "droid_ui",
3 | "version": "0.1.0",
4 | "homepage": ".",
5 | "private": true,
6 | "dependencies": {
7 | "@material-ui/core": "4.8.3",
8 | "react": "16.12.0",
9 | "react-dom": "16.12.0",
10 | "react-scripts": "0.9.5"
11 | },
12 | "devDependencies": {},
13 | "scripts": {
14 | "start": "react-scripts start",
15 | "build": "react-scripts build",
16 | "test": "react-scripts test --env=jsdom",
17 | "eject": "react-scripts eject"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/pc_application/include/asio/yield.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // yield.hpp
3 | // ~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #include "coroutine.hpp"
12 |
13 | #ifndef reenter
14 | # define reenter(c) ASIO_CORO_REENTER(c)
15 | #endif
16 |
17 | #ifndef yield
18 | # define yield ASIO_CORO_YIELD
19 | #endif
20 |
21 | #ifndef fork
22 | # define fork ASIO_CORO_FORK
23 | #endif
24 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ts/io_context.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ts/io_context.hpp
3 | // ~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_TS_IO_CONTEXT_HPP
12 | #define ASIO_TS_IO_CONTEXT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/io_context.hpp"
19 |
20 | #endif // ASIO_TS_IO_CONTEXT_HPP
21 |
--------------------------------------------------------------------------------
/pc_application/include/asio/io_service_strand.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // io_service_strand.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IO_SERVICE_STRAND_HPP
12 | #define ASIO_IO_SERVICE_STRAND_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/io_context_strand.hpp"
19 |
20 | #endif // ASIO_IO_SERVICE_STRAND_HPP
21 |
--------------------------------------------------------------------------------
/pc_application/include/asio/experimental.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // experimental.hpp
3 | // ~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_EXPERIMENTAL_HPP
12 | #define ASIO_EXPERIMENTAL_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/experimental/co_spawn.hpp"
19 | #include "asio/experimental/detached.hpp"
20 | #include "asio/experimental/redirect_error.hpp"
21 |
22 | #endif // ASIO_EXPERIMENTAL_HPP
23 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ts/buffer.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ts/buffer.hpp
3 | // ~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_TS_BUFFER_HPP
12 | #define ASIO_TS_BUFFER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/buffer.hpp"
19 | #include "asio/completion_condition.hpp"
20 | #include "asio/read.hpp"
21 | #include "asio/write.hpp"
22 | #include "asio/read_until.hpp"
23 |
24 | #endif // ASIO_TS_BUFFER_HPP
25 |
--------------------------------------------------------------------------------
/pc_application/include/asio/buffered_stream_fwd.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // buffered_stream_fwd.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_BUFFERED_STREAM_FWD_HPP
12 | #define ASIO_BUFFERED_STREAM_FWD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | namespace asio {
19 |
20 | template
21 | class buffered_stream;
22 |
23 | } // namespace asio
24 |
25 | #endif // ASIO_BUFFERED_STREAM_FWD_HPP
26 |
--------------------------------------------------------------------------------
/pc_application/include/asio/version.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // version.hpp
3 | // ~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_VERSION_HPP
12 | #define ASIO_VERSION_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | // ASIO_VERSION % 100 is the sub-minor version
19 | // ASIO_VERSION / 100 % 1000 is the minor version
20 | // ASIO_VERSION / 100000 is the major version
21 | #define ASIO_VERSION 101202 // 1.12.2
22 |
23 | #endif // ASIO_VERSION_HPP
24 |
--------------------------------------------------------------------------------
/pc_application/include/asio/buffered_read_stream_fwd.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // buffered_read_stream_fwd.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_BUFFERED_READ_STREAM_FWD_HPP
12 | #define ASIO_BUFFERED_READ_STREAM_FWD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | namespace asio {
19 |
20 | template
21 | class buffered_read_stream;
22 |
23 | } // namespace asio
24 |
25 | #endif // ASIO_BUFFERED_READ_STREAM_FWD_HPP
26 |
--------------------------------------------------------------------------------
/pc_application/include/asio/buffered_write_stream_fwd.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // buffered_write_stream_fwd.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_BUFFERED_WRITE_STREAM_FWD_HPP
12 | #define ASIO_BUFFERED_WRITE_STREAM_FWD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | namespace asio {
19 |
20 | template
21 | class buffered_write_stream;
22 |
23 | } // namespace asio
24 |
25 | #endif // ASIO_BUFFERED_WRITE_STREAM_FWD_HPP
26 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ts/net.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ts/net.hpp
3 | // ~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_TS_NET_HPP
12 | #define ASIO_TS_NET_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/ts/netfwd.hpp"
19 | #include "asio/ts/executor.hpp"
20 | #include "asio/ts/io_context.hpp"
21 | #include "asio/ts/timer.hpp"
22 | #include "asio/ts/buffer.hpp"
23 | #include "asio/ts/socket.hpp"
24 | #include "asio/ts/internet.hpp"
25 |
26 | #endif // ASIO_TS_NET_HPP
27 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ts/timer.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ts/timer.hpp
3 | // ~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_TS_TIMER_HPP
12 | #define ASIO_TS_TIMER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/chrono.hpp"
19 |
20 | #include "asio/wait_traits.hpp"
21 | #include "asio/basic_waitable_timer.hpp"
22 | #include "asio/system_timer.hpp"
23 | #include "asio/steady_timer.hpp"
24 | #include "asio/high_resolution_timer.hpp"
25 |
26 | #endif // ASIO_TS_TIMER_HPP
27 |
--------------------------------------------------------------------------------
/pc_application/include/asio/impl/src.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // impl/src.cpp
3 | // ~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #if defined(_MSC_VER) \
12 | || defined(__BORLANDC__) \
13 | || defined(__DMC__)
14 | # pragma message ( \
15 | "This file is deprecated. " \
16 | "Please #include instead.")
17 | #elif defined(__GNUC__) \
18 | || defined(__HP_aCC) \
19 | || defined(__SUNPRO_CC) \
20 | || defined(__IBMCPP__)
21 | # warning "This file is deprecated."
22 | # warning "Please #include instead."
23 | #endif
24 |
25 | #include "asio/impl/src.hpp"
26 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/limits.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/limits.hpp
3 | // ~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_LIMITS_HPP
12 | #define ASIO_DETAIL_LIMITS_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_BOOST_LIMITS)
21 | # include
22 | #else // defined(ASIO_HAS_BOOST_LIMITS)
23 | # include
24 | #endif // defined(ASIO_HAS_BOOST_LIMITS)
25 |
26 | #endif // ASIO_DETAIL_LIMITS_HPP
27 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ssl.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ssl.hpp
3 | // ~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_SSL_HPP
12 | #define ASIO_SSL_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/ssl/context.hpp"
19 | #include "asio/ssl/context_base.hpp"
20 | #include "asio/ssl/error.hpp"
21 | #include "asio/ssl/rfc2818_verification.hpp"
22 | #include "asio/ssl/stream.hpp"
23 | #include "asio/ssl/stream_base.hpp"
24 | #include "asio/ssl/verify_context.hpp"
25 | #include "asio/ssl/verify_mode.hpp"
26 |
27 | #endif // ASIO_SSL_HPP
28 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/cstddef.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/cstddef.hpp
3 | // ~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_CSTDDEF_HPP
12 | #define ASIO_DETAIL_CSTDDEF_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include
20 |
21 | namespace asio {
22 |
23 | #if defined(ASIO_HAS_NULLPTR)
24 | using std::nullptr_t;
25 | #else // defined(ASIO_HAS_NULLPTR)
26 | struct nullptr_t {};
27 | #endif // defined(ASIO_HAS_NULLPTR)
28 |
29 | } // namespace asio
30 |
31 | #endif // ASIO_DETAIL_CSTDDEF_HPP
32 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ssl/impl/src.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // impl/ssl/src.hpp
3 | // ~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_SSL_IMPL_SRC_HPP
12 | #define ASIO_SSL_IMPL_SRC_HPP
13 |
14 | #define ASIO_SOURCE
15 |
16 | #include "asio/detail/config.hpp"
17 |
18 | #if defined(ASIO_HEADER_ONLY)
19 | # error Do not compile Asio library source with ASIO_HEADER_ONLY defined
20 | #endif
21 |
22 | #include "asio/ssl/impl/context.ipp"
23 | #include "asio/ssl/impl/error.ipp"
24 | #include "asio/ssl/detail/impl/engine.ipp"
25 | #include "asio/ssl/detail/impl/openssl_init.ipp"
26 | #include "asio/ssl/impl/rfc2818_verification.ipp"
27 |
28 | #endif // ASIO_SSL_IMPL_SRC_HPP
29 |
--------------------------------------------------------------------------------
/pc_application/include/asio/streambuf.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // streambuf.hpp
3 | // ~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_STREAMBUF_HPP
12 | #define ASIO_STREAMBUF_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if !defined(ASIO_NO_IOSTREAM)
21 |
22 | #include "asio/basic_streambuf.hpp"
23 |
24 | namespace asio {
25 |
26 | /// Typedef for the typical usage of basic_streambuf.
27 | typedef basic_streambuf<> streambuf;
28 |
29 | } // namespace asio
30 |
31 | #endif // !defined(ASIO_NO_IOSTREAM)
32 |
33 | #endif // ASIO_STREAMBUF_HPP
34 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ts/socket.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ts/socket.hpp
3 | // ~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_TS_SOCKET_HPP
12 | #define ASIO_TS_SOCKET_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/socket_base.hpp"
19 | #include "asio/basic_socket.hpp"
20 | #include "asio/basic_datagram_socket.hpp"
21 | #include "asio/basic_stream_socket.hpp"
22 | #include "asio/basic_socket_acceptor.hpp"
23 | #include "asio/basic_socket_streambuf.hpp"
24 | #include "asio/basic_socket_iostream.hpp"
25 | #include "asio/connect.hpp"
26 |
27 | #endif // ASIO_TS_SOCKET_HPP
28 |
--------------------------------------------------------------------------------
/pc_application/include/asio/io_service.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // io_service.hpp
3 | // ~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IO_SERVICE_HPP
12 | #define ASIO_IO_SERVICE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/io_context.hpp"
19 |
20 | #include "asio/detail/push_options.hpp"
21 |
22 | namespace asio {
23 |
24 | #if !defined(ASIO_NO_DEPRECATED)
25 | /// Typedef for backwards compatibility.
26 | typedef io_context io_service;
27 | #endif // !defined(ASIO_NO_DEPRECATED)
28 |
29 | } // namespace asio
30 |
31 | #include "asio/detail/pop_options.hpp"
32 |
33 | #endif // ASIO_IO_SERVICE_HPP
34 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/date_time_fwd.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/date_time_fwd.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_DATE_TIME_FWD_HPP
12 | #define ASIO_DETAIL_DATE_TIME_FWD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | namespace boost {
21 | namespace date_time {
22 |
23 | template
24 | class base_time;
25 |
26 | } // namespace date_time
27 | namespace posix_time {
28 |
29 | class ptime;
30 |
31 | } // namespace posix_time
32 | } // namespace boost
33 |
34 | #endif // ASIO_DETAIL_DATE_TIME_FWD_HPP
35 |
--------------------------------------------------------------------------------
/pc_application/include/asio/impl/system_context.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // impl/system_context.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IMPL_SYSTEM_CONTEXT_HPP
12 | #define ASIO_IMPL_SYSTEM_CONTEXT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/system_executor.hpp"
19 |
20 | #include "asio/detail/push_options.hpp"
21 |
22 | namespace asio {
23 |
24 | inline system_context::executor_type
25 | system_context::get_executor() ASIO_NOEXCEPT
26 | {
27 | return system_executor();
28 | }
29 |
30 | } // namespace asio
31 |
32 | #include "asio/detail/pop_options.hpp"
33 |
34 | #endif // ASIO_IMPL_SYSTEM_CONTEXT_HPP
35 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/regex_fwd.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/regex_fwd.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_REGEX_FWD_HPP
12 | #define ASIO_DETAIL_REGEX_FWD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #if defined(ASIO_HAS_BOOST_REGEX)
19 |
20 | #include
21 | #include
22 |
23 | namespace boost {
24 |
25 | template
26 | struct sub_match;
27 |
28 | template
29 | class match_results;
30 |
31 | } // namespace boost
32 |
33 | #endif // defined(ASIO_HAS_BOOST_REGEX)
34 |
35 | #endif // ASIO_DETAIL_REGEX_FWD_HPP
36 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/dependent_type.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/dependent_type.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_DEPENDENT_TYPE_HPP
12 | #define ASIO_DETAIL_DEPENDENT_TYPE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #include "asio/detail/push_options.hpp"
21 |
22 | namespace asio {
23 | namespace detail {
24 |
25 | template
26 | struct dependent_type
27 | {
28 | typedef T type;
29 | };
30 |
31 | } // namespace detail
32 | } // namespace asio
33 |
34 | #include "asio/detail/pop_options.hpp"
35 |
36 | #endif // ASIO_DETAIL_DEPENDENT_TYPE_HPP
37 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/win_iocp_thread_info.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/win_iocp_thread_info.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_WIN_IOCP_THREAD_INFO_HPP
12 | #define ASIO_DETAIL_WIN_IOCP_THREAD_INFO_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/thread_info_base.hpp"
19 |
20 | #include "asio/detail/push_options.hpp"
21 |
22 | namespace asio {
23 | namespace detail {
24 |
25 | struct win_iocp_thread_info : public thread_info_base
26 | {
27 | };
28 |
29 | } // namespace detail
30 | } // namespace asio
31 |
32 | #include "asio/detail/pop_options.hpp"
33 |
34 | #endif // ASIO_DETAIL_WIN_IOCP_THREAD_INFO_HPP
35 |
--------------------------------------------------------------------------------
/pc_application/include/asio/impl/executor.ipp:
--------------------------------------------------------------------------------
1 | //
2 | // impl/executor.ipp
3 | // ~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IMPL_EXECUTOR_IPP
12 | #define ASIO_IMPL_EXECUTOR_IPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/executor.hpp"
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 |
25 | bad_executor::bad_executor() ASIO_NOEXCEPT
26 | {
27 | }
28 |
29 | const char* bad_executor::what() const ASIO_NOEXCEPT_OR_NOTHROW
30 | {
31 | return "bad executor";
32 | }
33 |
34 | } // namespace asio
35 |
36 | #include "asio/detail/pop_options.hpp"
37 |
38 | #endif // ASIO_IMPL_EXECUTOR_IPP
39 |
--------------------------------------------------------------------------------
/pc_application/include/asio/basic_streambuf_fwd.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // basic_streambuf_fwd.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_BASIC_STREAMBUF_FWD_HPP
12 | #define ASIO_BASIC_STREAMBUF_FWD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if !defined(ASIO_NO_IOSTREAM)
21 |
22 | #include
23 |
24 | namespace asio {
25 |
26 | template >
27 | class basic_streambuf;
28 |
29 | template >
30 | class basic_streambuf_ref;
31 |
32 | } // namespace asio
33 |
34 | #endif // !defined(ASIO_NO_IOSTREAM)
35 |
36 | #endif // ASIO_BASIC_STREAMBUF_FWD_HPP
37 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ssl/detail/openssl_types.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ssl/detail/openssl_types.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_SSL_DETAIL_OPENSSL_TYPES_HPP
12 | #define ASIO_SSL_DETAIL_OPENSSL_TYPES_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/detail/socket_types.hpp"
20 | #include
21 | #include
22 | #if !defined(OPENSSL_NO_ENGINE)
23 | # include
24 | #endif // !defined(OPENSSL_NO_ENGINE)
25 | #include
26 | #include
27 | #include
28 | #include
29 |
30 | #endif // ASIO_SSL_DETAIL_OPENSSL_TYPES_HPP
31 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/assert.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/assert.hpp
3 | // ~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_ASSERT_HPP
12 | #define ASIO_DETAIL_ASSERT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_BOOST_ASSERT)
21 | # include
22 | #else // defined(ASIO_HAS_BOOST_ASSERT)
23 | # include
24 | #endif // defined(ASIO_HAS_BOOST_ASSERT)
25 |
26 | #if defined(ASIO_HAS_BOOST_ASSERT)
27 | # define ASIO_ASSERT(expr) BOOST_ASSERT(expr)
28 | #else // defined(ASIO_HAS_BOOST_ASSERT)
29 | # define ASIO_ASSERT(expr) assert(expr)
30 | #endif // defined(ASIO_HAS_BOOST_ASSERT)
31 |
32 | #endif // ASIO_DETAIL_ASSERT_HPP
33 |
--------------------------------------------------------------------------------
/.clang-format:
--------------------------------------------------------------------------------
1 | ---
2 | BasedOnStyle: WebKit
3 | AlignAfterOpenBracket: DontAlign
4 | AlignConsecutiveAssignments: "true"
5 | AlignOperands: "true"
6 | AlignTrailingComments: "true"
7 | AllowAllParametersOfDeclarationOnNextLine: "false"
8 | AllowShortBlocksOnASingleLine: "false"
9 | AllowShortCaseLabelsOnASingleLine: "false"
10 | AllowShortFunctionsOnASingleLine: Empty
11 | AllowShortIfStatementsOnASingleLine: "false"
12 | AllowShortLoopsOnASingleLine: "false"
13 | AlwaysBreakAfterDefinitionReturnType: None
14 | BreakBeforeBraces: Attach
15 | BreakStringLiterals: "false"
16 | CompactNamespaces: "false"
17 | IncludeBlocks: Preserve
18 | NamespaceIndentation: All
19 | PointerAlignment: Left
20 | SortIncludes: "true"
21 | AlwaysBreakAfterDefinitionReturnType: None
22 | SpaceBeforeAssignmentOperators: "true"
23 | SpaceBeforeParens: Never
24 | SpaceInEmptyParentheses: "false"
25 | SpacesInContainerLiterals: "false"
26 | SpacesInParentheses: "false"
27 | SpacesInSquareBrackets: "false"
28 | Standard: Cpp11
29 | TabWidth: "4"
30 | UseTab: ForContinuationAndIndentation
31 | ColumnLimit: "400"
32 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/operation.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/operation.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_OPERATION_HPP
12 | #define ASIO_DETAIL_OPERATION_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_IOCP)
21 | # include "asio/detail/win_iocp_operation.hpp"
22 | #else
23 | # include "asio/detail/scheduler_operation.hpp"
24 | #endif
25 |
26 | namespace asio {
27 | namespace detail {
28 |
29 | #if defined(ASIO_HAS_IOCP)
30 | typedef win_iocp_operation operation;
31 | #else
32 | typedef scheduler_operation operation;
33 | #endif
34 |
35 | } // namespace detail
36 | } // namespace asio
37 |
38 | #endif // ASIO_DETAIL_OPERATION_HPP
39 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/reactor.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/reactor.hpp
3 | // ~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_REACTOR_HPP
12 | #define ASIO_DETAIL_REACTOR_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/reactor_fwd.hpp"
19 |
20 | #if defined(ASIO_HAS_EPOLL)
21 | # include "asio/detail/epoll_reactor.hpp"
22 | #elif defined(ASIO_HAS_KQUEUE)
23 | # include "asio/detail/kqueue_reactor.hpp"
24 | #elif defined(ASIO_HAS_DEV_POLL)
25 | # include "asio/detail/dev_poll_reactor.hpp"
26 | #elif defined(ASIO_HAS_IOCP) || defined(ASIO_WINDOWS_RUNTIME)
27 | # include "asio/detail/null_reactor.hpp"
28 | #else
29 | # include "asio/detail/select_reactor.hpp"
30 | #endif
31 |
32 | #endif // ASIO_DETAIL_REACTOR_HPP
33 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/array_fwd.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/array_fwd.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_ARRAY_FWD_HPP
12 | #define ASIO_DETAIL_ARRAY_FWD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | namespace boost {
21 |
22 | template
23 | class array;
24 |
25 | } // namespace boost
26 |
27 | // Standard library components can't be forward declared, so we'll have to
28 | // include the array header. Fortunately, it's fairly lightweight and doesn't
29 | // add significantly to the compile time.
30 | #if defined(ASIO_HAS_STD_ARRAY)
31 | # include
32 | #endif // defined(ASIO_HAS_STD_ARRAY)
33 |
34 | #endif // ASIO_DETAIL_ARRAY_FWD_HPP
35 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/array.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/array.hpp
3 | // ~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_ARRAY_HPP
12 | #define ASIO_DETAIL_ARRAY_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_STD_ARRAY)
21 | # include
22 | #else // defined(ASIO_HAS_STD_ARRAY)
23 | # include
24 | #endif // defined(ASIO_HAS_STD_ARRAY)
25 |
26 | namespace asio {
27 | namespace detail {
28 |
29 | #if defined(ASIO_HAS_STD_ARRAY)
30 | using std::array;
31 | #else // defined(ASIO_HAS_STD_ARRAY)
32 | using boost::array;
33 | #endif // defined(ASIO_HAS_STD_ARRAY)
34 |
35 | } // namespace detail
36 | } // namespace asio
37 |
38 | #endif // ASIO_DETAIL_ARRAY_HPP
39 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/functional.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/functional.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_FUNCTIONAL_HPP
12 | #define ASIO_DETAIL_FUNCTIONAL_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #include
21 |
22 | #if !defined(ASIO_HAS_STD_FUNCTION)
23 | # include
24 | #endif // !defined(ASIO_HAS_STD_FUNCTION)
25 |
26 | namespace asio {
27 | namespace detail {
28 |
29 | #if defined(ASIO_HAS_STD_FUNCTION)
30 | using std::function;
31 | #else // defined(ASIO_HAS_STD_FUNCTION)
32 | using boost::function;
33 | #endif // defined(ASIO_HAS_STD_FUNCTION)
34 |
35 | } // namespace detail
36 | } // namespace asio
37 |
38 | #endif // ASIO_DETAIL_FUNCTIONAL_HPP
39 |
--------------------------------------------------------------------------------
/.vscode/c_cpp_properties.json:
--------------------------------------------------------------------------------
1 | {
2 | "configurations": [{
3 | "name": "Win32",
4 | "includePath": [
5 | "${workspaceFolder}/**",
6 | "${env:URHO3D_HOME}/include/**"
7 | ],
8 | "compileCommands": "${workspaceFolder}/pc_application/compile_commands.json",
9 | "defines": [
10 | "_DEBUG",
11 | "UNICODE",
12 | "_UNICODE"
13 | ],
14 | "cStandard": "c11",
15 | "cppStandard": "c++11",
16 | "intelliSenseMode": "gcc-x64",
17 | "compilerPath": "C:\\msys2\\mingw64\\bin\\gcc.exe"
18 | },
19 | {
20 | "name": "Main",
21 | "includePath": [
22 | "${workspaceFolder}/**",
23 | "C:/Users/aehar/com_internals/others/windowsBinForUrho3D/include/**"
24 | ],
25 | "defines": [
26 | "_DEBUG",
27 | "UNICODE",
28 | "_UNICODE"
29 | ],
30 | "compilerPath": "/usr/bin/x86_64-w64-mingw32-gcc",
31 | "cStandard": "c11",
32 | "cppStandard": "c++11",
33 | "intelliSenseMode": "gcc-x64",
34 | "compilerArgs": [],
35 | "browse": {
36 | "path": [
37 | "${workspaceFolder}/**"
38 | ],
39 | "limitSymbolsToIncludedHeaders": true
40 | }
41 | }
42 | ],
43 | "version": 4
44 | }
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 TheGreatRambler
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/noncopyable.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/noncopyable.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_NONCOPYABLE_HPP
12 | #define ASIO_DETAIL_NONCOPYABLE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #include "asio/detail/push_options.hpp"
21 |
22 | namespace asio {
23 | namespace detail {
24 |
25 | class noncopyable
26 | {
27 | protected:
28 | noncopyable() {}
29 | ~noncopyable() {}
30 | private:
31 | noncopyable(const noncopyable&);
32 | const noncopyable& operator=(const noncopyable&);
33 | };
34 |
35 | } // namespace detail
36 |
37 | using asio::detail::noncopyable;
38 |
39 | } // namespace asio
40 |
41 | #include "asio/detail/pop_options.hpp"
42 |
43 | #endif // ASIO_DETAIL_NONCOPYABLE_HPP
44 |
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2.0.0",
3 | "tasks": [{
4 | "label": "Build Make Application",
5 | "type": "shell",
6 | "command": "C:\\msys2\\usr\\bin\\make.exe -j 4 -C ${workspaceFolder}/pc_application",
7 | "options": {
8 | "cwd": "${fileDirname}"
9 | },
10 | "problemMatcher": [{
11 | "base": "$gcc",
12 | "fileLocation": ["autoDetect", "${workspaceFolder}/pc_application"]
13 | }],
14 | "group": {
15 | "kind": "build",
16 | "isDefault": true
17 | },
18 | "presentation": {
19 | "reveal": "always",
20 | "panel": "new"
21 | }
22 | },
23 | {
24 | "label": "Force build Make Application",
25 | "type": "shell",
26 | "command": "C:\\msys2\\usr\\bin\\make.exe -B -j 4 -C ${workspaceFolder}/pc_application",
27 | "options": {
28 | "cwd": "${fileDirname}"
29 | },
30 | "problemMatcher": [{
31 | "base": "$gcc",
32 | "fileLocation": ["autoDetect", "${workspaceFolder}/pc_application"]
33 | }],
34 | "group": {
35 | "kind": "build",
36 | "isDefault": true
37 | },
38 | "presentation": {
39 | "reveal": "always",
40 | "panel": "new"
41 | }
42 | }
43 | ]
44 | }
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/wait_op.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/wait_op.hpp
3 | // ~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_WAIT_OP_HPP
12 | #define ASIO_DETAIL_WAIT_OP_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/detail/operation.hpp"
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 | namespace detail {
25 |
26 | class wait_op
27 | : public operation
28 | {
29 | public:
30 | // The error code to be passed to the completion handler.
31 | asio::error_code ec_;
32 |
33 | protected:
34 | wait_op(func_type func)
35 | : operation(func)
36 | {
37 | }
38 | };
39 |
40 | } // namespace detail
41 | } // namespace asio
42 |
43 | #include "asio/detail/pop_options.hpp"
44 |
45 | #endif // ASIO_DETAIL_WAIT_OP_HPP
46 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/fd_set_adapter.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/fd_set_adapter.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_FD_SET_ADAPTER_HPP
12 | #define ASIO_DETAIL_FD_SET_ADAPTER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if !defined(ASIO_WINDOWS_RUNTIME)
21 |
22 | #include "asio/detail/posix_fd_set_adapter.hpp"
23 | #include "asio/detail/win_fd_set_adapter.hpp"
24 |
25 | namespace asio {
26 | namespace detail {
27 |
28 | #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
29 | typedef win_fd_set_adapter fd_set_adapter;
30 | #else
31 | typedef posix_fd_set_adapter fd_set_adapter;
32 | #endif
33 |
34 | } // namespace detail
35 | } // namespace asio
36 |
37 | #endif // !defined(ASIO_WINDOWS_RUNTIME)
38 |
39 | #endif // ASIO_DETAIL_FD_SET_ADAPTER_HPP
40 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ts/executor.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ts/executor.hpp
3 | // ~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_TS_EXECUTOR_HPP
12 | #define ASIO_TS_EXECUTOR_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/handler_type.hpp"
19 | #include "asio/async_result.hpp"
20 | #include "asio/associated_allocator.hpp"
21 | #include "asio/execution_context.hpp"
22 | #include "asio/is_executor.hpp"
23 | #include "asio/associated_executor.hpp"
24 | #include "asio/bind_executor.hpp"
25 | #include "asio/executor_work_guard.hpp"
26 | #include "asio/system_executor.hpp"
27 | #include "asio/executor.hpp"
28 | #include "asio/dispatch.hpp"
29 | #include "asio/post.hpp"
30 | #include "asio/defer.hpp"
31 | #include "asio/strand.hpp"
32 | #include "asio/packaged_task.hpp"
33 | #include "asio/use_future.hpp"
34 |
35 | #endif // ASIO_TS_EXECUTOR_HPP
36 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ip/host_name.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ip/host_name.hpp
3 | // ~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IP_HOST_NAME_HPP
12 | #define ASIO_IP_HOST_NAME_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include
20 | #include "asio/error_code.hpp"
21 |
22 | #include "asio/detail/push_options.hpp"
23 |
24 | namespace asio {
25 | namespace ip {
26 |
27 | /// Get the current host name.
28 | ASIO_DECL std::string host_name();
29 |
30 | /// Get the current host name.
31 | ASIO_DECL std::string host_name(asio::error_code& ec);
32 |
33 | } // namespace ip
34 | } // namespace asio
35 |
36 | #include "asio/detail/pop_options.hpp"
37 |
38 | #if defined(ASIO_HEADER_ONLY)
39 | # include "asio/ip/impl/host_name.ipp"
40 | #endif // defined(ASIO_HEADER_ONLY)
41 |
42 | #endif // ASIO_IP_HOST_NAME_HPP
43 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/null_fenced_block.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/null_fenced_block.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_NULL_FENCED_BLOCK_HPP
12 | #define ASIO_DETAIL_NULL_FENCED_BLOCK_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/noncopyable.hpp"
19 |
20 | #include "asio/detail/push_options.hpp"
21 |
22 | namespace asio {
23 | namespace detail {
24 |
25 | class null_fenced_block
26 | : private noncopyable
27 | {
28 | public:
29 | enum half_or_full_t { half, full };
30 |
31 | // Constructor.
32 | explicit null_fenced_block(half_or_full_t)
33 | {
34 | }
35 |
36 | // Destructor.
37 | ~null_fenced_block()
38 | {
39 | }
40 | };
41 |
42 | } // namespace detail
43 | } // namespace asio
44 |
45 | #include "asio/detail/pop_options.hpp"
46 |
47 | #endif // ASIO_DETAIL_NULL_FENCED_BLOCK_HPP
48 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/scheduler_thread_info.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/scheduler_thread_info.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_SCHEDULER_THREAD_INFO_HPP
12 | #define ASIO_DETAIL_SCHEDULER_THREAD_INFO_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/op_queue.hpp"
19 | #include "asio/detail/thread_info_base.hpp"
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 | namespace detail {
25 |
26 | class scheduler;
27 | class scheduler_operation;
28 |
29 | struct scheduler_thread_info : public thread_info_base
30 | {
31 | op_queue private_op_queue;
32 | long private_outstanding_work;
33 | };
34 |
35 | } // namespace detail
36 | } // namespace asio
37 |
38 | #include "asio/detail/pop_options.hpp"
39 |
40 | #endif // ASIO_DETAIL_SCHEDULER_THREAD_INFO_HPP
41 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/resolve_op.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/resolve_op.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_RESOLVE_OP_HPP
12 | #define ASIO_DETAIL_RESOLVE_OP_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/error.hpp"
20 | #include "asio/detail/operation.hpp"
21 |
22 | #include "asio/detail/push_options.hpp"
23 |
24 | namespace asio {
25 | namespace detail {
26 |
27 | class resolve_op : public operation
28 | {
29 | public:
30 | // The error code to be passed to the completion handler.
31 | asio::error_code ec_;
32 |
33 | protected:
34 | resolve_op(func_type complete_func)
35 | : operation(complete_func)
36 | {
37 | }
38 | };
39 |
40 | } // namespace detail
41 | } // namespace asio
42 |
43 | #include "asio/detail/pop_options.hpp"
44 |
45 | #endif // ASIO_DETAIL_RESOLVE_OP_HPP
46 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/signal_init.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/signal_init.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_SIGNAL_INIT_HPP
12 | #define ASIO_DETAIL_SIGNAL_INIT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__)
21 |
22 | #include
23 |
24 | #include "asio/detail/push_options.hpp"
25 |
26 | namespace asio {
27 | namespace detail {
28 |
29 | template
30 | class signal_init
31 | {
32 | public:
33 | // Constructor.
34 | signal_init()
35 | {
36 | std::signal(Signal, SIG_IGN);
37 | }
38 | };
39 |
40 | } // namespace detail
41 | } // namespace asio
42 |
43 | #include "asio/detail/pop_options.hpp"
44 |
45 | #endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__)
46 |
47 | #endif // ASIO_DETAIL_SIGNAL_INIT_HPP
48 |
--------------------------------------------------------------------------------
/pc_application/include/asio/deadline_timer.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // deadline_timer.hpp
3 | // ~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DEADLINE_TIMER_HPP
12 | #define ASIO_DEADLINE_TIMER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_BOOST_DATE_TIME) \
21 | || defined(GENERATING_DOCUMENTATION)
22 |
23 | #include "asio/detail/socket_types.hpp" // Must come before posix_time.
24 | #include "asio/basic_deadline_timer.hpp"
25 |
26 | #include
27 |
28 | namespace asio {
29 |
30 | /// Typedef for the typical usage of timer. Uses a UTC clock.
31 | typedef basic_deadline_timer deadline_timer;
32 |
33 | } // namespace asio
34 |
35 | #endif // defined(ASIO_HAS_BOOST_DATE_TIME)
36 | // || defined(GENERATING_DOCUMENTATION)
37 |
38 | #endif // ASIO_DEADLINE_TIMER_HPP
39 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/timer_scheduler.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/timer_scheduler.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_TIMER_SCHEDULER_HPP
12 | #define ASIO_DETAIL_TIMER_SCHEDULER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/detail/timer_scheduler_fwd.hpp"
20 |
21 | #if defined(ASIO_WINDOWS_RUNTIME)
22 | # include "asio/detail/winrt_timer_scheduler.hpp"
23 | #elif defined(ASIO_HAS_IOCP)
24 | # include "asio/detail/win_iocp_io_context.hpp"
25 | #elif defined(ASIO_HAS_EPOLL)
26 | # include "asio/detail/epoll_reactor.hpp"
27 | #elif defined(ASIO_HAS_KQUEUE)
28 | # include "asio/detail/kqueue_reactor.hpp"
29 | #elif defined(ASIO_HAS_DEV_POLL)
30 | # include "asio/detail/dev_poll_reactor.hpp"
31 | #else
32 | # include "asio/detail/select_reactor.hpp"
33 | #endif
34 |
35 | #endif // ASIO_DETAIL_TIMER_SCHEDULER_HPP
36 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/reactor_fwd.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/reactor_fwd.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_REACTOR_FWD_HPP
12 | #define ASIO_DETAIL_REACTOR_FWD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | namespace asio {
21 | namespace detail {
22 |
23 | #if defined(ASIO_HAS_IOCP) || defined(ASIO_WINDOWS_RUNTIME)
24 | typedef class null_reactor reactor;
25 | #elif defined(ASIO_HAS_IOCP)
26 | typedef class select_reactor reactor;
27 | #elif defined(ASIO_HAS_EPOLL)
28 | typedef class epoll_reactor reactor;
29 | #elif defined(ASIO_HAS_KQUEUE)
30 | typedef class kqueue_reactor reactor;
31 | #elif defined(ASIO_HAS_DEV_POLL)
32 | typedef class dev_poll_reactor reactor;
33 | #else
34 | typedef class select_reactor reactor;
35 | #endif
36 |
37 | } // namespace detail
38 | } // namespace asio
39 |
40 | #endif // ASIO_DETAIL_REACTOR_FWD_HPP
41 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/thread_context.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/thread_context.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_THREAD_CONTEXT_HPP
12 | #define ASIO_DETAIL_THREAD_CONTEXT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include
19 | #include
20 | #include "asio/detail/call_stack.hpp"
21 |
22 | #include "asio/detail/push_options.hpp"
23 |
24 | namespace asio {
25 | namespace detail {
26 |
27 | class thread_info_base;
28 |
29 | // Base class for things that manage threads (scheduler, win_iocp_io_context).
30 | class thread_context
31 | {
32 | public:
33 | // Per-thread call stack to track the state of each thread in the context.
34 | typedef call_stack thread_call_stack;
35 | };
36 |
37 | } // namespace detail
38 | } // namespace asio
39 |
40 | #include "asio/detail/pop_options.hpp"
41 |
42 | #endif // ASIO_DETAIL_THREAD_CONTEXT_HPP
43 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/signal_op.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/signal_op.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_SIGNAL_OP_HPP
12 | #define ASIO_DETAIL_SIGNAL_OP_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/detail/operation.hpp"
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 | namespace detail {
25 |
26 | class signal_op
27 | : public operation
28 | {
29 | public:
30 | // The error code to be passed to the completion handler.
31 | asio::error_code ec_;
32 |
33 | // The signal number to be passed to the completion handler.
34 | int signal_number_;
35 |
36 | protected:
37 | signal_op(func_type func)
38 | : operation(func),
39 | signal_number_(0)
40 | {
41 | }
42 | };
43 |
44 | } // namespace detail
45 | } // namespace asio
46 |
47 | #include "asio/detail/pop_options.hpp"
48 |
49 | #endif // ASIO_DETAIL_SIGNAL_OP_HPP
50 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ip/resolver_query_base.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ip/resolver_query_base.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IP_RESOLVER_QUERY_BASE_HPP
12 | #define ASIO_IP_RESOLVER_QUERY_BASE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/ip/resolver_base.hpp"
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 | namespace ip {
25 |
26 | /// The resolver_query_base class is used as a base for the
27 | /// basic_resolver_query class templates to provide a common place to define
28 | /// the flag constants.
29 | class resolver_query_base : public resolver_base
30 | {
31 | protected:
32 | /// Protected destructor to prevent deletion through this type.
33 | ~resolver_query_base()
34 | {
35 | }
36 | };
37 |
38 | } // namespace ip
39 | } // namespace asio
40 |
41 | #include "asio/detail/pop_options.hpp"
42 |
43 | #endif // ASIO_IP_RESOLVER_QUERY_BASE_HPP
44 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/future.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/future.hpp
3 | // ~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_FUTURE_HPP
12 | #define ASIO_DETAIL_FUTURE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #if defined(ASIO_HAS_STD_FUTURE)
20 | # include
21 | // Even though the future header is available, libstdc++ may not implement the
22 | // std::future class itself. However, we need to have already included the
23 | // future header to reliably test for _GLIBCXX_HAS_GTHREADS.
24 | # if defined(__GNUC__) && !defined(ASIO_HAS_CLANG_LIBCXX)
25 | # if defined(_GLIBCXX_HAS_GTHREADS)
26 | # define ASIO_HAS_STD_FUTURE_CLASS 1
27 | # endif // defined(_GLIBCXX_HAS_GTHREADS)
28 | # else // defined(__GNUC__) && !defined(ASIO_HAS_CLANG_LIBCXX)
29 | # define ASIO_HAS_STD_FUTURE_CLASS 1
30 | # endif // defined(__GNUC__) && !defined(ASIO_HAS_CLANG_LIBCXX)
31 | #endif // defined(ASIO_HAS_STD_FUTURE)
32 |
33 | #endif // ASIO_DETAIL_FUTURE_HPP
34 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/impl/posix_mutex.ipp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/impl/posix_mutex.ipp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_IMPL_POSIX_MUTEX_IPP
12 | #define ASIO_DETAIL_IMPL_POSIX_MUTEX_IPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_PTHREADS)
21 |
22 | #include "asio/detail/posix_mutex.hpp"
23 | #include "asio/detail/throw_error.hpp"
24 | #include "asio/error.hpp"
25 |
26 | #include "asio/detail/push_options.hpp"
27 |
28 | namespace asio {
29 | namespace detail {
30 |
31 | posix_mutex::posix_mutex()
32 | {
33 | int error = ::pthread_mutex_init(&mutex_, 0);
34 | asio::error_code ec(error,
35 | asio::error::get_system_category());
36 | asio::detail::throw_error(ec, "mutex");
37 | }
38 |
39 | } // namespace detail
40 | } // namespace asio
41 |
42 | #include "asio/detail/pop_options.hpp"
43 |
44 | #endif // defined(ASIO_HAS_PTHREADS)
45 |
46 | #endif // ASIO_DETAIL_IMPL_POSIX_MUTEX_IPP
47 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/timer_scheduler_fwd.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/timer_scheduler_fwd.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_TIMER_SCHEDULER_FWD_HPP
12 | #define ASIO_DETAIL_TIMER_SCHEDULER_FWD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | namespace asio {
21 | namespace detail {
22 |
23 | #if defined(ASIO_WINDOWS_RUNTIME)
24 | typedef class winrt_timer_scheduler timer_scheduler;
25 | #elif defined(ASIO_HAS_IOCP)
26 | typedef class win_iocp_io_context timer_scheduler;
27 | #elif defined(ASIO_HAS_EPOLL)
28 | typedef class epoll_reactor timer_scheduler;
29 | #elif defined(ASIO_HAS_KQUEUE)
30 | typedef class kqueue_reactor timer_scheduler;
31 | #elif defined(ASIO_HAS_DEV_POLL)
32 | typedef class dev_poll_reactor timer_scheduler;
33 | #else
34 | typedef class select_reactor timer_scheduler;
35 | #endif
36 |
37 | } // namespace detail
38 | } // namespace asio
39 |
40 | #endif // ASIO_DETAIL_TIMER_SCHEDULER_FWD_HPP
41 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ip/impl/basic_endpoint.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ip/impl/basic_endpoint.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IP_IMPL_BASIC_ENDPOINT_HPP
12 | #define ASIO_IP_IMPL_BASIC_ENDPOINT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #if !defined(ASIO_NO_IOSTREAM)
19 |
20 | #include "asio/detail/throw_error.hpp"
21 |
22 | #include "asio/detail/push_options.hpp"
23 |
24 | namespace asio {
25 | namespace ip {
26 |
27 | template
28 | std::basic_ostream& operator<<(
29 | std::basic_ostream& os,
30 | const basic_endpoint& endpoint)
31 | {
32 | asio::ip::detail::endpoint tmp_ep(endpoint.address(), endpoint.port());
33 | return os << tmp_ep.to_string().c_str();
34 | }
35 |
36 | } // namespace ip
37 | } // namespace asio
38 |
39 | #include "asio/detail/pop_options.hpp"
40 |
41 | #endif // !defined(ASIO_NO_IOSTREAM)
42 |
43 | #endif // ASIO_IP_IMPL_BASIC_ENDPOINT_HPP
44 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/impl/posix_tss_ptr.ipp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/impl/posix_tss_ptr.ipp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_IMPL_POSIX_TSS_PTR_IPP
12 | #define ASIO_DETAIL_IMPL_POSIX_TSS_PTR_IPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_PTHREADS)
21 |
22 | #include "asio/detail/posix_tss_ptr.hpp"
23 | #include "asio/detail/throw_error.hpp"
24 | #include "asio/error.hpp"
25 |
26 | #include "asio/detail/push_options.hpp"
27 |
28 | namespace asio {
29 | namespace detail {
30 |
31 | void posix_tss_ptr_create(pthread_key_t& key)
32 | {
33 | int error = ::pthread_key_create(&key, 0);
34 | asio::error_code ec(error,
35 | asio::error::get_system_category());
36 | asio::detail::throw_error(ec, "tss");
37 | }
38 |
39 | } // namespace detail
40 | } // namespace asio
41 |
42 | #include "asio/detail/pop_options.hpp"
43 |
44 | #endif // defined(ASIO_HAS_PTHREADS)
45 |
46 | #endif // ASIO_DETAIL_IMPL_POSIX_TSS_PTR_IPP
47 |
--------------------------------------------------------------------------------
/droid_ui/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
17 | React App
18 |
19 |
20 |
21 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ssl/stream_base.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ssl/stream_base.hpp
3 | // ~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_SSL_STREAM_BASE_HPP
12 | #define ASIO_SSL_STREAM_BASE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #include "asio/detail/push_options.hpp"
21 |
22 | namespace asio {
23 | namespace ssl {
24 |
25 | /// The stream_base class is used as a base for the asio::ssl::stream
26 | /// class template so that we have a common place to define various enums.
27 | class stream_base
28 | {
29 | public:
30 | /// Different handshake types.
31 | enum handshake_type
32 | {
33 | /// Perform handshaking as a client.
34 | client,
35 |
36 | /// Perform handshaking as a server.
37 | server
38 | };
39 |
40 | protected:
41 | /// Protected destructor to prevent deletion through this type.
42 | ~stream_base()
43 | {
44 | }
45 | };
46 |
47 | } // namespace ssl
48 | } // namespace asio
49 |
50 | #include "asio/detail/pop_options.hpp"
51 |
52 | #endif // ASIO_SSL_STREAM_BASE_HPP
53 |
--------------------------------------------------------------------------------
/pc_application/include/asio/steady_timer.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // steady_timer.hpp
3 | // ~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_STEADY_TIMER_HPP
12 | #define ASIO_STEADY_TIMER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION)
21 |
22 | #include "asio/basic_waitable_timer.hpp"
23 | #include "asio/detail/chrono.hpp"
24 |
25 | namespace asio {
26 |
27 | /// Typedef for a timer based on the steady clock.
28 | /**
29 | * This typedef uses the C++11 @c <chrono> standard library facility, if
30 | * available. Otherwise, it may use the Boost.Chrono library. To explicitly
31 | * utilise Boost.Chrono, use the basic_waitable_timer template directly:
32 | * @code
33 | * typedef basic_waitable_timer timer;
34 | * @endcode
35 | */
36 | typedef basic_waitable_timer steady_timer;
37 |
38 | } // namespace asio
39 |
40 | #endif // defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION)
41 |
42 | #endif // ASIO_STEADY_TIMER_HPP
43 |
--------------------------------------------------------------------------------
/pc_application/include/asio/system_timer.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // system_timer.hpp
3 | // ~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_SYSTEM_TIMER_HPP
12 | #define ASIO_SYSTEM_TIMER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION)
21 |
22 | #include "asio/basic_waitable_timer.hpp"
23 | #include "asio/detail/chrono.hpp"
24 |
25 | namespace asio {
26 |
27 | /// Typedef for a timer based on the system clock.
28 | /**
29 | * This typedef uses the C++11 @c <chrono> standard library facility, if
30 | * available. Otherwise, it may use the Boost.Chrono library. To explicitly
31 | * utilise Boost.Chrono, use the basic_waitable_timer template directly:
32 | * @code
33 | * typedef basic_waitable_timer timer;
34 | * @endcode
35 | */
36 | typedef basic_waitable_timer system_timer;
37 |
38 | } // namespace asio
39 |
40 | #endif // defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION)
41 |
42 | #endif // ASIO_SYSTEM_TIMER_HPP
43 |
--------------------------------------------------------------------------------
/pc_application/include/asio/is_executor.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // is_executor.hpp
3 | // ~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IS_EXECUTOR_HPP
12 | #define ASIO_IS_EXECUTOR_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/detail/is_executor.hpp"
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 |
25 | /// The is_executor trait detects whether a type T meets the Executor type
26 | /// requirements.
27 | /**
28 | * Class template @c is_executor is a UnaryTypeTrait that is derived from @c
29 | * true_type if the type @c T meets the syntactic requirements for Executor,
30 | * otherwise @c false_type.
31 | */
32 | template
33 | struct is_executor
34 | #if defined(GENERATING_DOCUMENTATION)
35 | : integral_constant
36 | #else // defined(GENERATING_DOCUMENTATION)
37 | : asio::detail::is_executor
38 | #endif // defined(GENERATING_DOCUMENTATION)
39 | {
40 | };
41 |
42 | } // namespace asio
43 |
44 | #include "asio/detail/pop_options.hpp"
45 |
46 | #endif // ASIO_IS_EXECUTOR_HPP
47 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ts/internet.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ts/internet.hpp
3 | // ~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_TS_INTERNET_HPP
12 | #define ASIO_TS_INTERNET_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/ip/address.hpp"
19 | #include "asio/ip/address_v4.hpp"
20 | #include "asio/ip/address_v4_iterator.hpp"
21 | #include "asio/ip/address_v4_range.hpp"
22 | #include "asio/ip/address_v6.hpp"
23 | #include "asio/ip/address_v6_iterator.hpp"
24 | #include "asio/ip/address_v6_range.hpp"
25 | #include "asio/ip/bad_address_cast.hpp"
26 | #include "asio/ip/basic_endpoint.hpp"
27 | #include "asio/ip/basic_resolver_query.hpp"
28 | #include "asio/ip/basic_resolver_entry.hpp"
29 | #include "asio/ip/basic_resolver_iterator.hpp"
30 | #include "asio/ip/basic_resolver.hpp"
31 | #include "asio/ip/host_name.hpp"
32 | #include "asio/ip/network_v4.hpp"
33 | #include "asio/ip/network_v6.hpp"
34 | #include "asio/ip/tcp.hpp"
35 | #include "asio/ip/udp.hpp"
36 | #include "asio/ip/v6_only.hpp"
37 | #include "asio/ip/unicast.hpp"
38 | #include "asio/ip/multicast.hpp"
39 |
40 | #endif // ASIO_TS_INTERNET_HPP
41 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/mutex.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/mutex.hpp
3 | // ~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_MUTEX_HPP
12 | #define ASIO_DETAIL_MUTEX_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if !defined(ASIO_HAS_THREADS)
21 | # include "asio/detail/null_mutex.hpp"
22 | #elif defined(ASIO_WINDOWS)
23 | # include "asio/detail/win_mutex.hpp"
24 | #elif defined(ASIO_HAS_PTHREADS)
25 | # include "asio/detail/posix_mutex.hpp"
26 | #elif defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR)
27 | # include "asio/detail/std_mutex.hpp"
28 | #else
29 | # error Only Windows, POSIX and std::mutex are supported!
30 | #endif
31 |
32 | namespace asio {
33 | namespace detail {
34 |
35 | #if !defined(ASIO_HAS_THREADS)
36 | typedef null_mutex mutex;
37 | #elif defined(ASIO_WINDOWS)
38 | typedef win_mutex mutex;
39 | #elif defined(ASIO_HAS_PTHREADS)
40 | typedef posix_mutex mutex;
41 | #elif defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR)
42 | typedef std_mutex mutex;
43 | #endif
44 |
45 | } // namespace detail
46 | } // namespace asio
47 |
48 | #endif // ASIO_DETAIL_MUTEX_HPP
49 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ssl/detail/shutdown_op.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ssl/detail/shutdown_op.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_SSL_DETAIL_SHUTDOWN_OP_HPP
12 | #define ASIO_SSL_DETAIL_SHUTDOWN_OP_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #include "asio/ssl/detail/engine.hpp"
21 |
22 | #include "asio/detail/push_options.hpp"
23 |
24 | namespace asio {
25 | namespace ssl {
26 | namespace detail {
27 |
28 | class shutdown_op
29 | {
30 | public:
31 | engine::want operator()(engine& eng,
32 | asio::error_code& ec,
33 | std::size_t& bytes_transferred) const
34 | {
35 | bytes_transferred = 0;
36 | return eng.shutdown(ec);
37 | }
38 |
39 | template
40 | void call_handler(Handler& handler,
41 | const asio::error_code& ec,
42 | const std::size_t&) const
43 | {
44 | handler(ec);
45 | }
46 | };
47 |
48 | } // namespace detail
49 | } // namespace ssl
50 | } // namespace asio
51 |
52 | #include "asio/detail/pop_options.hpp"
53 |
54 | #endif // ASIO_SSL_DETAIL_SHUTDOWN_OP_HPP
55 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/null_static_mutex.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/null_static_mutex.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_NULL_STATIC_MUTEX_HPP
12 | #define ASIO_DETAIL_NULL_STATIC_MUTEX_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if !defined(ASIO_HAS_THREADS)
21 |
22 | #include "asio/detail/scoped_lock.hpp"
23 |
24 | #include "asio/detail/push_options.hpp"
25 |
26 | namespace asio {
27 | namespace detail {
28 |
29 | struct null_static_mutex
30 | {
31 | typedef asio::detail::scoped_lock scoped_lock;
32 |
33 | // Initialise the mutex.
34 | void init()
35 | {
36 | }
37 |
38 | // Lock the mutex.
39 | void lock()
40 | {
41 | }
42 |
43 | // Unlock the mutex.
44 | void unlock()
45 | {
46 | }
47 |
48 | int unused_;
49 | };
50 |
51 | #define ASIO_NULL_STATIC_MUTEX_INIT { 0 }
52 |
53 | } // namespace detail
54 | } // namespace asio
55 |
56 | #include "asio/detail/pop_options.hpp"
57 |
58 | #endif // !defined(ASIO_HAS_THREADS)
59 |
60 | #endif // ASIO_DETAIL_NULL_STATIC_MUTEX_HPP
61 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/event.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/event.hpp
3 | // ~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_EVENT_HPP
12 | #define ASIO_DETAIL_EVENT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if !defined(ASIO_HAS_THREADS)
21 | # include "asio/detail/null_event.hpp"
22 | #elif defined(ASIO_WINDOWS)
23 | # include "asio/detail/win_event.hpp"
24 | #elif defined(ASIO_HAS_PTHREADS)
25 | # include "asio/detail/posix_event.hpp"
26 | #elif defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR)
27 | # include "asio/detail/std_event.hpp"
28 | #else
29 | # error Only Windows, POSIX and std::condition_variable are supported!
30 | #endif
31 |
32 | namespace asio {
33 | namespace detail {
34 |
35 | #if !defined(ASIO_HAS_THREADS)
36 | typedef null_event event;
37 | #elif defined(ASIO_WINDOWS)
38 | typedef win_event event;
39 | #elif defined(ASIO_HAS_PTHREADS)
40 | typedef posix_event event;
41 | #elif defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR)
42 | typedef std_event event;
43 | #endif
44 |
45 | } // namespace detail
46 | } // namespace asio
47 |
48 | #endif // ASIO_DETAIL_EVENT_HPP
49 |
--------------------------------------------------------------------------------
/pc_application/source/terminalhelpers.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #ifdef _WIN32
4 | #include
5 | // Atrociously messes with RapidJson
6 | #undef GetObject
7 | #else
8 | #include
9 | #endif
10 | #include
11 | #include
12 | #include
13 |
14 | #define ESC char(0x1B)
15 |
16 | namespace TerminalHelpers {
17 | uint8_t lastX;
18 | uint8_t lastY;
19 | struct TerminalSize {
20 | uint8_t x;
21 | uint8_t y;
22 | };
23 | TerminalSize getTerminalDimensions() {
24 | TerminalSize returnSize;
25 | #ifdef _WIN32
26 | CONSOLE_SCREEN_BUFFER_INFO csbi;
27 | GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
28 | returnSize.x = csbi.srWindow.Right - csbi.srWindow.Left + 1;
29 | returnSize.y = csbi.srWindow.Bottom - csbi.srWindow.Top + 1;
30 | #else
31 | struct winsize w;
32 | ioctl(STDOUT_FILENO, TIOCGWINSZ, &w);
33 | returnSize.x = w.ws_col;
34 | returnSize.y = w.ws_row;
35 | #endif
36 | return returnSize;
37 | }
38 |
39 | void clearScreen() {
40 | printf("%c[2J", ESC);
41 | }
42 |
43 | void goToLocation(uint8_t x, uint8_t y) {
44 | // http://ascii-table.com/ansi-escape-sequences-vt-100.php
45 | lastX = x;
46 | lastY = y;
47 | printf("%c[%d;%dH", ESC, y, x);
48 | }
49 |
50 | void incrementLine() {
51 | // Go to next row
52 | goToLocation(lastX, lastY + 1);
53 | }
54 |
55 | void incrementLineLarge() {
56 | // Go extra far
57 | goToLocation(lastX, lastY + 2);
58 | }
59 | }
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/null_mutex.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/null_mutex.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_NULL_MUTEX_HPP
12 | #define ASIO_DETAIL_NULL_MUTEX_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if !defined(ASIO_HAS_THREADS)
21 |
22 | #include "asio/detail/noncopyable.hpp"
23 | #include "asio/detail/scoped_lock.hpp"
24 |
25 | #include "asio/detail/push_options.hpp"
26 |
27 | namespace asio {
28 | namespace detail {
29 |
30 | class null_mutex
31 | : private noncopyable
32 | {
33 | public:
34 | typedef asio::detail::scoped_lock scoped_lock;
35 |
36 | // Constructor.
37 | null_mutex()
38 | {
39 | }
40 |
41 | // Destructor.
42 | ~null_mutex()
43 | {
44 | }
45 |
46 | // Lock the mutex.
47 | void lock()
48 | {
49 | }
50 |
51 | // Unlock the mutex.
52 | void unlock()
53 | {
54 | }
55 | };
56 |
57 | } // namespace detail
58 | } // namespace asio
59 |
60 | #include "asio/detail/pop_options.hpp"
61 |
62 | #endif // !defined(ASIO_HAS_THREADS)
63 |
64 | #endif // ASIO_DETAIL_NULL_MUTEX_HPP
65 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/signal_blocker.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/signal_blocker.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_SIGNAL_BLOCKER_HPP
12 | #define ASIO_DETAIL_SIGNAL_BLOCKER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if !defined(ASIO_HAS_THREADS) || defined(ASIO_WINDOWS) \
21 | || defined(ASIO_WINDOWS_RUNTIME) \
22 | || defined(__CYGWIN__) || defined(__SYMBIAN32__)
23 | # include "asio/detail/null_signal_blocker.hpp"
24 | #elif defined(ASIO_HAS_PTHREADS)
25 | # include "asio/detail/posix_signal_blocker.hpp"
26 | #else
27 | # error Only Windows and POSIX are supported!
28 | #endif
29 |
30 | namespace asio {
31 | namespace detail {
32 |
33 | #if !defined(ASIO_HAS_THREADS) || defined(ASIO_WINDOWS) \
34 | || defined(ASIO_WINDOWS_RUNTIME) \
35 | || defined(__CYGWIN__) || defined(__SYMBIAN32__)
36 | typedef null_signal_blocker signal_blocker;
37 | #elif defined(ASIO_HAS_PTHREADS)
38 | typedef posix_signal_blocker signal_blocker;
39 | #endif
40 |
41 | } // namespace detail
42 | } // namespace asio
43 |
44 | #endif // ASIO_DETAIL_SIGNAL_BLOCKER_HPP
45 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ip/bad_address_cast.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ip/bad_address_cast.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IP_BAD_ADDRESS_CAST_HPP
12 | #define ASIO_IP_BAD_ADDRESS_CAST_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 | namespace ip {
25 |
26 | /// Thrown to indicate a failed address conversion.
27 | class bad_address_cast :
28 | #if defined(ASIO_MSVC) && defined(_HAS_EXCEPTIONS) && !_HAS_EXCEPTIONS
29 | public std::exception
30 | #else
31 | public std::bad_cast
32 | #endif
33 | {
34 | public:
35 | /// Default constructor.
36 | bad_address_cast() {}
37 |
38 | /// Destructor.
39 | virtual ~bad_address_cast() ASIO_NOEXCEPT_OR_NOTHROW {}
40 |
41 | /// Get the message associated with the exception.
42 | virtual const char* what() const ASIO_NOEXCEPT_OR_NOTHROW
43 | {
44 | return "bad address cast";
45 | }
46 | };
47 |
48 | } // namespace ip
49 | } // namespace asio
50 |
51 | #include "asio/detail/pop_options.hpp"
52 |
53 | #endif // ASIO_IP_ADDRESS_HPP
54 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/throw_error.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/throw_error.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_THROW_ERROR_HPP
12 | #define ASIO_DETAIL_THROW_ERROR_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/error_code.hpp"
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 | namespace detail {
25 |
26 | ASIO_DECL void do_throw_error(const asio::error_code& err);
27 |
28 | ASIO_DECL void do_throw_error(const asio::error_code& err,
29 | const char* location);
30 |
31 | inline void throw_error(const asio::error_code& err)
32 | {
33 | if (err)
34 | do_throw_error(err);
35 | }
36 |
37 | inline void throw_error(const asio::error_code& err,
38 | const char* location)
39 | {
40 | if (err)
41 | do_throw_error(err, location);
42 | }
43 |
44 | } // namespace detail
45 | } // namespace asio
46 |
47 | #include "asio/detail/pop_options.hpp"
48 |
49 | #if defined(ASIO_HEADER_ONLY)
50 | # include "asio/detail/impl/throw_error.ipp"
51 | #endif // defined(ASIO_HEADER_ONLY)
52 |
53 | #endif // ASIO_DETAIL_THROW_ERROR_HPP
54 |
--------------------------------------------------------------------------------
/protocol.md:
--------------------------------------------------------------------------------
1 | # Websocket Protocol
2 |
3 | Connection between the PC and JoyCon Droid is established with Websockets, with the PC being the server. Primarily, the server sends data to JoyCon Droid, but in certain cases, JoyCon Droid may send its own messages.
4 |
5 | ## From PC to JoyCon Droid
6 | ### Connected
7 | ```
8 | {
9 | "flag": "gamepadConnected" // The gamepad just connected
10 | }
11 | ```
12 | ### Disconnected
13 | ```
14 | {
15 | "flag": "gamepadDisconnected" // The gamepad just disconnected, also triggers when the PC server closes
16 | }
17 | ```
18 | ### Button data
19 | ```
20 | {
21 | "flag": "button",
22 | "type": "A", // Keyname for the button (eg. A, X, ZL, Plus, Down, LeftJoystick)
23 | "state": true // Whether on or off
24 | }
25 | ```
26 | ### Joystick data
27 | ```
28 | {
29 | "flag": "joystick",
30 | "stick": "L", // L for left joystick, R for right joystick
31 | "angle": pi/2, // Angle in radians of the stick movement
32 | "power" 70 // The power of the stick, from 0 to 100
33 | }
34 | ```
35 | ### Gamepad disgnostic data
36 | ```
37 | {
38 | "flag": "gamepadData",
39 | "name": "Pro Controller", // The name of the gamepad connected now
40 | "guid": "7638463219" // The GUID of the gamepad
41 | }
42 | ```
43 | ## From JoyCon Droid to PC
44 | ### Start listening
45 | ```
46 | {
47 | "flag": "startListening" // Start sending input data
48 | }
49 | ```
50 | ### Stop listening
51 | ```
52 | {
53 | "flag": "stopListening" // Stop sending input data
54 | }
55 | ```
56 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/global.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/global.hpp
3 | // ~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_GLOBAL_HPP
12 | #define ASIO_DETAIL_GLOBAL_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if !defined(ASIO_HAS_THREADS)
21 | # include "asio/detail/null_global.hpp"
22 | #elif defined(ASIO_WINDOWS)
23 | # include "asio/detail/win_global.hpp"
24 | #elif defined(ASIO_HAS_PTHREADS)
25 | # include "asio/detail/posix_global.hpp"
26 | #elif defined(ASIO_HAS_STD_CALL_ONCE)
27 | # include "asio/detail/std_global.hpp"
28 | #else
29 | # error Only Windows, POSIX and std::call_once are supported!
30 | #endif
31 |
32 | namespace asio {
33 | namespace detail {
34 |
35 | template
36 | inline T& global()
37 | {
38 | #if !defined(ASIO_HAS_THREADS)
39 | return null_global();
40 | #elif defined(ASIO_WINDOWS)
41 | return win_global();
42 | #elif defined(ASIO_HAS_PTHREADS)
43 | return posix_global();
44 | #elif defined(ASIO_HAS_STD_CALL_ONCE)
45 | return std_global();
46 | #endif
47 | }
48 |
49 | } // namespace detail
50 | } // namespace asio
51 |
52 | #endif // ASIO_DETAIL_GLOBAL_HPP
53 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/null_global.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/null_global.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_NULL_GLOBAL_HPP
12 | #define ASIO_DETAIL_NULL_GLOBAL_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #include "asio/detail/push_options.hpp"
21 |
22 | namespace asio {
23 | namespace detail {
24 |
25 | template
26 | struct null_global_impl
27 | {
28 | null_global_impl()
29 | : ptr_(0)
30 | {
31 | }
32 |
33 | // Destructor automatically cleans up the global.
34 | ~null_global_impl()
35 | {
36 | delete ptr_;
37 | }
38 |
39 | static null_global_impl instance_;
40 | T* ptr_;
41 | };
42 |
43 | template
44 | null_global_impl null_global_impl::instance_;
45 |
46 | template
47 | T& null_global()
48 | {
49 | if (null_global_impl::instance_.ptr_ == 0)
50 | null_global_impl::instance_.ptr_ = new T;
51 | return *null_global_impl::instance_.ptr_;
52 | }
53 |
54 | } // namespace detail
55 | } // namespace asio
56 |
57 | #include "asio/detail/pop_options.hpp"
58 |
59 | #endif // ASIO_DETAIL_NULL_GLOBAL_HPP
60 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/handler_cont_helpers.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/handler_cont_helpers.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_HANDLER_CONT_HELPERS_HPP
12 | #define ASIO_DETAIL_HANDLER_CONT_HELPERS_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/detail/memory.hpp"
20 | #include "asio/handler_continuation_hook.hpp"
21 |
22 | #include "asio/detail/push_options.hpp"
23 |
24 | // Calls to asio_handler_is_continuation must be made from a namespace that
25 | // does not contain overloads of this function. This namespace is defined here
26 | // for that purpose.
27 | namespace asio_handler_cont_helpers {
28 |
29 | template
30 | inline bool is_continuation(Context& context)
31 | {
32 | #if !defined(ASIO_HAS_HANDLER_HOOKS)
33 | return false;
34 | #else
35 | using asio::asio_handler_is_continuation;
36 | return asio_handler_is_continuation(
37 | asio::detail::addressof(context));
38 | #endif
39 | }
40 |
41 | } // namespace asio_handler_cont_helpers
42 |
43 | #include "asio/detail/pop_options.hpp"
44 |
45 | #endif // ASIO_DETAIL_HANDLER_CONT_HELPERS_HPP
46 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/null_tss_ptr.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/null_tss_ptr.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_NULL_TSS_PTR_HPP
12 | #define ASIO_DETAIL_NULL_TSS_PTR_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if !defined(ASIO_HAS_THREADS)
21 |
22 | #include "asio/detail/noncopyable.hpp"
23 |
24 | #include "asio/detail/push_options.hpp"
25 |
26 | namespace asio {
27 | namespace detail {
28 |
29 | template
30 | class null_tss_ptr
31 | : private noncopyable
32 | {
33 | public:
34 | // Constructor.
35 | null_tss_ptr()
36 | : value_(0)
37 | {
38 | }
39 |
40 | // Destructor.
41 | ~null_tss_ptr()
42 | {
43 | }
44 |
45 | // Get the value.
46 | operator T*() const
47 | {
48 | return value_;
49 | }
50 |
51 | // Set the value.
52 | void operator=(T* value)
53 | {
54 | value_ = value;
55 | }
56 |
57 | private:
58 | T* value_;
59 | };
60 |
61 | } // namespace detail
62 | } // namespace asio
63 |
64 | #include "asio/detail/pop_options.hpp"
65 |
66 | #endif // !defined(ASIO_HAS_THREADS)
67 |
68 | #endif // ASIO_DETAIL_NULL_TSS_PTR_HPP
69 |
--------------------------------------------------------------------------------
/pc_application/include/asio/high_resolution_timer.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // high_resolution_timer.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_HIGH_RESOLUTION_TIMER_HPP
12 | #define ASIO_HIGH_RESOLUTION_TIMER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION)
21 |
22 | #include "asio/basic_waitable_timer.hpp"
23 | #include "asio/detail/chrono.hpp"
24 |
25 | namespace asio {
26 |
27 | /// Typedef for a timer based on the high resolution clock.
28 | /**
29 | * This typedef uses the C++11 @c <chrono> standard library facility, if
30 | * available. Otherwise, it may use the Boost.Chrono library. To explicitly
31 | * utilise Boost.Chrono, use the basic_waitable_timer template directly:
32 | * @code
33 | * typedef basic_waitable_timer timer;
34 | * @endcode
35 | */
36 | typedef basic_waitable_timer<
37 | chrono::high_resolution_clock>
38 | high_resolution_timer;
39 |
40 | } // namespace asio
41 |
42 | #endif // defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION)
43 |
44 | #endif // ASIO_HIGH_RESOLUTION_TIMER_HPP
45 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/atomic_count.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/atomic_count.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_ATOMIC_COUNT_HPP
12 | #define ASIO_DETAIL_ATOMIC_COUNT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if !defined(ASIO_HAS_THREADS)
21 | // Nothing to include.
22 | #elif defined(ASIO_HAS_STD_ATOMIC)
23 | # include
24 | #else // defined(ASIO_HAS_STD_ATOMIC)
25 | # include
26 | #endif // defined(ASIO_HAS_STD_ATOMIC)
27 |
28 | namespace asio {
29 | namespace detail {
30 |
31 | #if !defined(ASIO_HAS_THREADS)
32 | typedef long atomic_count;
33 | inline void increment(atomic_count& a, long b) { a += b; }
34 | #elif defined(ASIO_HAS_STD_ATOMIC)
35 | typedef std::atomic atomic_count;
36 | inline void increment(atomic_count& a, long b) { a += b; }
37 | #else // defined(ASIO_HAS_STD_ATOMIC)
38 | typedef boost::detail::atomic_count atomic_count;
39 | inline void increment(atomic_count& a, long b) { while (b > 0) ++a, --b; }
40 | #endif // defined(ASIO_HAS_STD_ATOMIC)
41 |
42 | } // namespace detail
43 | } // namespace asio
44 |
45 | #endif // ASIO_DETAIL_ATOMIC_COUNT_HPP
46 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/select_interrupter.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/select_interrupter.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_SELECT_INTERRUPTER_HPP
12 | #define ASIO_DETAIL_SELECT_INTERRUPTER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if !defined(ASIO_WINDOWS_RUNTIME)
21 |
22 | #if defined(ASIO_WINDOWS) || defined(__CYGWIN__) || defined(__SYMBIAN32__)
23 | # include "asio/detail/socket_select_interrupter.hpp"
24 | #elif defined(ASIO_HAS_EVENTFD)
25 | # include "asio/detail/eventfd_select_interrupter.hpp"
26 | #else
27 | # include "asio/detail/pipe_select_interrupter.hpp"
28 | #endif
29 |
30 | namespace asio {
31 | namespace detail {
32 |
33 | #if defined(ASIO_WINDOWS) || defined(__CYGWIN__) || defined(__SYMBIAN32__)
34 | typedef socket_select_interrupter select_interrupter;
35 | #elif defined(ASIO_HAS_EVENTFD)
36 | typedef eventfd_select_interrupter select_interrupter;
37 | #else
38 | typedef pipe_select_interrupter select_interrupter;
39 | #endif
40 |
41 | } // namespace detail
42 | } // namespace asio
43 |
44 | #endif // !defined(ASIO_WINDOWS_RUNTIME)
45 |
46 | #endif // ASIO_DETAIL_SELECT_INTERRUPTER_HPP
47 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ip/impl/host_name.ipp:
--------------------------------------------------------------------------------
1 | //
2 | // ip/impl/host_name.ipp
3 | // ~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IP_IMPL_HOST_NAME_IPP
12 | #define ASIO_IP_IMPL_HOST_NAME_IPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/detail/socket_ops.hpp"
20 | #include "asio/detail/throw_error.hpp"
21 | #include "asio/detail/winsock_init.hpp"
22 | #include "asio/ip/host_name.hpp"
23 |
24 | #include "asio/detail/push_options.hpp"
25 |
26 | namespace asio {
27 | namespace ip {
28 |
29 | std::string host_name()
30 | {
31 | char name[1024];
32 | asio::error_code ec;
33 | if (asio::detail::socket_ops::gethostname(name, sizeof(name), ec) != 0)
34 | {
35 | asio::detail::throw_error(ec);
36 | return std::string();
37 | }
38 | return std::string(name);
39 | }
40 |
41 | std::string host_name(asio::error_code& ec)
42 | {
43 | char name[1024];
44 | if (asio::detail::socket_ops::gethostname(name, sizeof(name), ec) != 0)
45 | return std::string();
46 | return std::string(name);
47 | }
48 |
49 | } // namespace ip
50 | } // namespace asio
51 |
52 | #include "asio/detail/pop_options.hpp"
53 |
54 | #endif // ASIO_IP_IMPL_HOST_NAME_IPP
55 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ip/impl/network_v6.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ip/impl/network_v6.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IP_IMPL_NETWORK_V6_HPP
12 | #define ASIO_IP_IMPL_NETWORK_V6_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #if !defined(ASIO_NO_IOSTREAM)
19 |
20 | #include "asio/detail/throw_error.hpp"
21 |
22 | #include "asio/detail/push_options.hpp"
23 |
24 | namespace asio {
25 | namespace ip {
26 |
27 | template
28 | std::basic_ostream& operator<<(
29 | std::basic_ostream& os, const network_v6& addr)
30 | {
31 | asio::error_code ec;
32 | std::string s = addr.to_string(ec);
33 | if (ec)
34 | {
35 | if (os.exceptions() & std::basic_ostream::failbit)
36 | asio::detail::throw_error(ec);
37 | else
38 | os.setstate(std::basic_ostream::failbit);
39 | }
40 | else
41 | for (std::string::iterator i = s.begin(); i != s.end(); ++i)
42 | os << os.widen(*i);
43 | return os;
44 | }
45 |
46 | } // namespace ip
47 | } // namespace asio
48 |
49 | #include "asio/detail/pop_options.hpp"
50 |
51 | #endif // !defined(ASIO_NO_IOSTREAM)
52 |
53 | #endif // ASIO_IP_IMPL_NETWORK_V6_HPP
54 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/solaris_fenced_block.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/solaris_fenced_block.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_SOLARIS_FENCED_BLOCK_HPP
12 | #define ASIO_DETAIL_SOLARIS_FENCED_BLOCK_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(__sun)
21 |
22 | #include
23 | #include "asio/detail/noncopyable.hpp"
24 |
25 | #include "asio/detail/push_options.hpp"
26 |
27 | namespace asio {
28 | namespace detail {
29 |
30 | class solaris_fenced_block
31 | : private noncopyable
32 | {
33 | public:
34 | enum half_t { half };
35 | enum full_t { full };
36 |
37 | // Constructor for a half fenced block.
38 | explicit solaris_fenced_block(half_t)
39 | {
40 | }
41 |
42 | // Constructor for a full fenced block.
43 | explicit solaris_fenced_block(full_t)
44 | {
45 | membar_consumer();
46 | }
47 |
48 | // Destructor.
49 | ~solaris_fenced_block()
50 | {
51 | membar_producer();
52 | }
53 | };
54 |
55 | } // namespace detail
56 | } // namespace asio
57 |
58 | #include "asio/detail/pop_options.hpp"
59 |
60 | #endif // defined(__sun)
61 |
62 | #endif // ASIO_DETAIL_SOLARIS_FENCED_BLOCK_HPP
63 |
--------------------------------------------------------------------------------
/pc_application/include/asio/impl/serial_port_base.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // impl/serial_port_base.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)
7 | //
8 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
9 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
10 | //
11 |
12 | #ifndef ASIO_IMPL_SERIAL_PORT_BASE_HPP
13 | #define ASIO_IMPL_SERIAL_PORT_BASE_HPP
14 |
15 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
16 | # pragma once
17 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
18 |
19 | #include "asio/detail/push_options.hpp"
20 |
21 | namespace asio {
22 |
23 | inline serial_port_base::baud_rate::baud_rate(unsigned int rate)
24 | : value_(rate)
25 | {
26 | }
27 |
28 | inline unsigned int serial_port_base::baud_rate::value() const
29 | {
30 | return value_;
31 | }
32 |
33 | inline serial_port_base::flow_control::type
34 | serial_port_base::flow_control::value() const
35 | {
36 | return value_;
37 | }
38 |
39 | inline serial_port_base::parity::type serial_port_base::parity::value() const
40 | {
41 | return value_;
42 | }
43 |
44 | inline serial_port_base::stop_bits::type
45 | serial_port_base::stop_bits::value() const
46 | {
47 | return value_;
48 | }
49 |
50 | inline unsigned int serial_port_base::character_size::value() const
51 | {
52 | return value_;
53 | }
54 |
55 | } // namespace asio
56 |
57 | #include "asio/detail/pop_options.hpp"
58 |
59 | #endif // ASIO_IMPL_SERIAL_PORT_BASE_HPP
60 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/impl/win_tss_ptr.ipp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/impl/win_tss_ptr.ipp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_IMPL_WIN_TSS_PTR_IPP
12 | #define ASIO_DETAIL_IMPL_WIN_TSS_PTR_IPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_WINDOWS)
21 |
22 | #include "asio/detail/throw_error.hpp"
23 | #include "asio/detail/win_tss_ptr.hpp"
24 | #include "asio/error.hpp"
25 |
26 | #include "asio/detail/push_options.hpp"
27 |
28 | namespace asio {
29 | namespace detail {
30 |
31 | DWORD win_tss_ptr_create()
32 | {
33 | #if defined(UNDER_CE)
34 | const DWORD out_of_indexes = 0xFFFFFFFF;
35 | #else
36 | const DWORD out_of_indexes = TLS_OUT_OF_INDEXES;
37 | #endif
38 |
39 | DWORD tss_key = ::TlsAlloc();
40 | if (tss_key == out_of_indexes)
41 | {
42 | DWORD last_error = ::GetLastError();
43 | asio::error_code ec(last_error,
44 | asio::error::get_system_category());
45 | asio::detail::throw_error(ec, "tss");
46 | }
47 | return tss_key;
48 | }
49 |
50 | } // namespace detail
51 | } // namespace asio
52 |
53 | #include "asio/detail/pop_options.hpp"
54 |
55 | #endif // defined(ASIO_WINDOWS)
56 |
57 | #endif // ASIO_DETAIL_IMPL_WIN_TSS_PTR_IPP
58 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/macos_fenced_block.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/macos_fenced_block.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_MACOS_FENCED_BLOCK_HPP
12 | #define ASIO_DETAIL_MACOS_FENCED_BLOCK_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(__MACH__) && defined(__APPLE__)
21 |
22 | #include
23 | #include "asio/detail/noncopyable.hpp"
24 |
25 | #include "asio/detail/push_options.hpp"
26 |
27 | namespace asio {
28 | namespace detail {
29 |
30 | class macos_fenced_block
31 | : private noncopyable
32 | {
33 | public:
34 | enum half_t { half };
35 | enum full_t { full };
36 |
37 | // Constructor for a half fenced block.
38 | explicit macos_fenced_block(half_t)
39 | {
40 | }
41 |
42 | // Constructor for a full fenced block.
43 | explicit macos_fenced_block(full_t)
44 | {
45 | OSMemoryBarrier();
46 | }
47 |
48 | // Destructor.
49 | ~macos_fenced_block()
50 | {
51 | OSMemoryBarrier();
52 | }
53 | };
54 |
55 | } // namespace detail
56 | } // namespace asio
57 |
58 | #include "asio/detail/pop_options.hpp"
59 |
60 | #endif // defined(__MACH__) && defined(__APPLE__)
61 |
62 | #endif // ASIO_DETAIL_MACOS_FENCED_BLOCK_HPP
63 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ssl/detail/handshake_op.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ssl/detail/handshake_op.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_SSL_DETAIL_HANDSHAKE_OP_HPP
12 | #define ASIO_SSL_DETAIL_HANDSHAKE_OP_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #include "asio/ssl/detail/engine.hpp"
21 |
22 | #include "asio/detail/push_options.hpp"
23 |
24 | namespace asio {
25 | namespace ssl {
26 | namespace detail {
27 |
28 | class handshake_op
29 | {
30 | public:
31 | handshake_op(stream_base::handshake_type type)
32 | : type_(type)
33 | {
34 | }
35 |
36 | engine::want operator()(engine& eng,
37 | asio::error_code& ec,
38 | std::size_t& bytes_transferred) const
39 | {
40 | bytes_transferred = 0;
41 | return eng.handshake(type_, ec);
42 | }
43 |
44 | template
45 | void call_handler(Handler& handler,
46 | const asio::error_code& ec,
47 | const std::size_t&) const
48 | {
49 | handler(ec);
50 | }
51 |
52 | private:
53 | stream_base::handshake_type type_;
54 | };
55 |
56 | } // namespace detail
57 | } // namespace ssl
58 | } // namespace asio
59 |
60 | #include "asio/detail/pop_options.hpp"
61 |
62 | #endif // ASIO_SSL_DETAIL_HANDSHAKE_OP_HPP
63 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/std_fenced_block.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/std_fenced_block.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_STD_FENCED_BLOCK_HPP
12 | #define ASIO_DETAIL_STD_FENCED_BLOCK_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_STD_ATOMIC)
21 |
22 | #include
23 | #include "asio/detail/noncopyable.hpp"
24 |
25 | #include "asio/detail/push_options.hpp"
26 |
27 | namespace asio {
28 | namespace detail {
29 |
30 | class std_fenced_block
31 | : private noncopyable
32 | {
33 | public:
34 | enum half_t { half };
35 | enum full_t { full };
36 |
37 | // Constructor for a half fenced block.
38 | explicit std_fenced_block(half_t)
39 | {
40 | }
41 |
42 | // Constructor for a full fenced block.
43 | explicit std_fenced_block(full_t)
44 | {
45 | std::atomic_thread_fence(std::memory_order_acquire);
46 | }
47 |
48 | // Destructor.
49 | ~std_fenced_block()
50 | {
51 | std::atomic_thread_fence(std::memory_order_release);
52 | }
53 | };
54 |
55 | } // namespace detail
56 | } // namespace asio
57 |
58 | #include "asio/detail/pop_options.hpp"
59 |
60 | #endif // defined(ASIO_HAS_STD_ATOMIC)
61 |
62 | #endif // ASIO_DETAIL_STD_FENCED_BLOCK_HPP
63 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ssl/detail/verify_callback.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ssl/detail/verify_callback.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_SSL_DETAIL_VERIFY_CALLBACK_HPP
12 | #define ASIO_SSL_DETAIL_VERIFY_CALLBACK_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #include "asio/ssl/verify_context.hpp"
21 |
22 | #include "asio/detail/push_options.hpp"
23 |
24 | namespace asio {
25 | namespace ssl {
26 | namespace detail {
27 |
28 | class verify_callback_base
29 | {
30 | public:
31 | virtual ~verify_callback_base()
32 | {
33 | }
34 |
35 | virtual bool call(bool preverified, verify_context& ctx) = 0;
36 | };
37 |
38 | template
39 | class verify_callback : public verify_callback_base
40 | {
41 | public:
42 | explicit verify_callback(VerifyCallback callback)
43 | : callback_(callback)
44 | {
45 | }
46 |
47 | virtual bool call(bool preverified, verify_context& ctx)
48 | {
49 | return callback_(preverified, ctx);
50 | }
51 |
52 | private:
53 | VerifyCallback callback_;
54 | };
55 |
56 | } // namespace detail
57 | } // namespace ssl
58 | } // namespace asio
59 |
60 | #include "asio/detail/pop_options.hpp"
61 |
62 | #endif // ASIO_SSL_DETAIL_VERIFY_CALLBACK_HPP
63 |
--------------------------------------------------------------------------------
/pc_application/include/rapidjson/internal/swap.h:
--------------------------------------------------------------------------------
1 | // Tencent is pleased to support the open source community by making RapidJSON available.
2 | //
3 | // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4 | //
5 | // Licensed under the MIT License (the "License"); you may not use this file except
6 | // in compliance with the License. You may obtain a copy of the License at
7 | //
8 | // http://opensource.org/licenses/MIT
9 | //
10 | // Unless required by applicable law or agreed to in writing, software distributed
11 | // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12 | // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13 | // specific language governing permissions and limitations under the License.
14 |
15 | #ifndef RAPIDJSON_INTERNAL_SWAP_H_
16 | #define RAPIDJSON_INTERNAL_SWAP_H_
17 |
18 | #include "../rapidjson.h"
19 |
20 | #if defined(__clang__)
21 | RAPIDJSON_DIAG_PUSH
22 | RAPIDJSON_DIAG_OFF(c++98-compat)
23 | #endif
24 |
25 | RAPIDJSON_NAMESPACE_BEGIN
26 | namespace internal {
27 |
28 | //! Custom swap() to avoid dependency on C++ header
29 | /*! \tparam T Type of the arguments to swap, should be instantiated with primitive C++ types only.
30 | \note This has the same semantics as std::swap().
31 | */
32 | template
33 | inline void Swap(T& a, T& b) RAPIDJSON_NOEXCEPT {
34 | T tmp = a;
35 | a = b;
36 | b = tmp;
37 | }
38 |
39 | } // namespace internal
40 | RAPIDJSON_NAMESPACE_END
41 |
42 | #if defined(__clang__)
43 | RAPIDJSON_DIAG_POP
44 | #endif
45 |
46 | #endif // RAPIDJSON_INTERNAL_SWAP_H_
47 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ip/impl/network_v4.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ip/impl/network_v4.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | // Copyright (c) 2014 Oliver Kowalke (oliver dot kowalke at gmail dot com)
7 | //
8 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
9 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
10 | //
11 |
12 | #ifndef ASIO_IP_IMPL_NETWORK_V4_HPP
13 | #define ASIO_IP_IMPL_NETWORK_V4_HPP
14 |
15 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
16 | # pragma once
17 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
18 |
19 | #if !defined(ASIO_NO_IOSTREAM)
20 |
21 | #include "asio/detail/throw_error.hpp"
22 |
23 | #include "asio/detail/push_options.hpp"
24 |
25 | namespace asio {
26 | namespace ip {
27 |
28 | template
29 | std::basic_ostream& operator<<(
30 | std::basic_ostream& os, const network_v4& addr)
31 | {
32 | asio::error_code ec;
33 | std::string s = addr.to_string(ec);
34 | if (ec)
35 | {
36 | if (os.exceptions() & std::basic_ostream::failbit)
37 | asio::detail::throw_error(ec);
38 | else
39 | os.setstate(std::basic_ostream::failbit);
40 | }
41 | else
42 | for (std::string::iterator i = s.begin(); i != s.end(); ++i)
43 | os << os.widen(*i);
44 | return os;
45 | }
46 |
47 | } // namespace ip
48 | } // namespace asio
49 |
50 | #include "asio/detail/pop_options.hpp"
51 |
52 | #endif // !defined(ASIO_NO_IOSTREAM)
53 |
54 | #endif // ASIO_IP_IMPL_NETWORK_V4_HPP
55 |
--------------------------------------------------------------------------------
/pc_application/include/asio/wait_traits.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // wait_traits.hpp
3 | // ~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_WAIT_TRAITS_HPP
12 | #define ASIO_WAIT_TRAITS_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/push_options.hpp"
19 |
20 | namespace asio {
21 |
22 | /// Wait traits suitable for use with the basic_waitable_timer class template.
23 | template
24 | struct wait_traits
25 | {
26 | /// Convert a clock duration into a duration used for waiting.
27 | /**
28 | * @returns @c d.
29 | */
30 | static typename Clock::duration to_wait_duration(
31 | const typename Clock::duration& d)
32 | {
33 | return d;
34 | }
35 |
36 | /// Convert a clock duration into a duration used for waiting.
37 | /**
38 | * @returns @c d.
39 | */
40 | static typename Clock::duration to_wait_duration(
41 | const typename Clock::time_point& t)
42 | {
43 | typename Clock::time_point now = Clock::now();
44 | if (now + (Clock::duration::max)() < t)
45 | return (Clock::duration::max)();
46 | if (now + (Clock::duration::min)() > t)
47 | return (Clock::duration::min)();
48 | return t - now;
49 | }
50 | };
51 |
52 | } // namespace asio
53 |
54 | #include "asio/detail/pop_options.hpp"
55 |
56 | #endif // ASIO_WAIT_TRAITS_HPP
57 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/null_thread.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/null_thread.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_NULL_THREAD_HPP
12 | #define ASIO_DETAIL_NULL_THREAD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if !defined(ASIO_HAS_THREADS)
21 |
22 | #include "asio/detail/noncopyable.hpp"
23 | #include "asio/detail/throw_error.hpp"
24 | #include "asio/error.hpp"
25 |
26 | #include "asio/detail/push_options.hpp"
27 |
28 | namespace asio {
29 | namespace detail {
30 |
31 | class null_thread
32 | : private noncopyable
33 | {
34 | public:
35 | // Constructor.
36 | template
37 | null_thread(Function, unsigned int = 0)
38 | {
39 | asio::detail::throw_error(
40 | asio::error::operation_not_supported, "thread");
41 | }
42 |
43 | // Destructor.
44 | ~null_thread()
45 | {
46 | }
47 |
48 | // Wait for the thread to exit.
49 | void join()
50 | {
51 | }
52 |
53 | // Get number of CPUs.
54 | static std::size_t hardware_concurrency()
55 | {
56 | return 1;
57 | }
58 | };
59 |
60 | } // namespace detail
61 | } // namespace asio
62 |
63 | #include "asio/detail/pop_options.hpp"
64 |
65 | #endif // !defined(ASIO_HAS_THREADS)
66 |
67 | #endif // ASIO_DETAIL_NULL_THREAD_HPP
68 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/std_mutex.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/std_mutex.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_STD_MUTEX_HPP
12 | #define ASIO_DETAIL_STD_MUTEX_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR)
21 |
22 | #include
23 | #include "asio/detail/noncopyable.hpp"
24 | #include "asio/detail/scoped_lock.hpp"
25 |
26 | #include "asio/detail/push_options.hpp"
27 |
28 | namespace asio {
29 | namespace detail {
30 |
31 | class std_event;
32 |
33 | class std_mutex
34 | : private noncopyable
35 | {
36 | public:
37 | typedef asio::detail::scoped_lock scoped_lock;
38 |
39 | // Constructor.
40 | std_mutex()
41 | {
42 | }
43 |
44 | // Destructor.
45 | ~std_mutex()
46 | {
47 | }
48 |
49 | // Lock the mutex.
50 | void lock()
51 | {
52 | mutex_.lock();
53 | }
54 |
55 | // Unlock the mutex.
56 | void unlock()
57 | {
58 | mutex_.unlock();
59 | }
60 |
61 | private:
62 | friend class std_event;
63 | std::mutex mutex_;
64 | };
65 |
66 | } // namespace detail
67 | } // namespace asio
68 |
69 | #include "asio/detail/pop_options.hpp"
70 |
71 | #endif // defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR)
72 |
73 | #endif // ASIO_DETAIL_STD_MUTEX_HPP
74 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/string_view.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/string_view.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_STRING_VIEW_HPP
12 | #define ASIO_DETAIL_STRING_VIEW_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_STRING_VIEW)
21 |
22 | #if defined(ASIO_HAS_STD_STRING_VIEW)
23 | # include
24 | #elif defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
25 | # include
26 | #else // defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
27 | # error ASIO_HAS_STRING_VIEW is set but no string_view is available
28 | #endif // defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
29 |
30 | namespace asio {
31 |
32 | #if defined(ASIO_HAS_STD_STRING_VIEW)
33 | using std::basic_string_view;
34 | using std::string_view;
35 | #elif defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
36 | using std::experimental::basic_string_view;
37 | using std::experimental::string_view;
38 | #endif // defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
39 |
40 | } // namespace asio
41 |
42 | # define ASIO_STRING_VIEW_PARAM asio::string_view
43 | #else // defined(ASIO_HAS_STRING_VIEW)
44 | # define ASIO_STRING_VIEW_PARAM const std::string&
45 | #endif // defined(ASIO_HAS_STRING_VIEW)
46 |
47 | #endif // ASIO_DETAIL_STRING_VIEW_HPP
48 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/local_free_on_block_exit.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/local_free_on_block_exit.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_LOCAL_FREE_ON_BLOCK_EXIT_HPP
12 | #define ASIO_DETAIL_LOCAL_FREE_ON_BLOCK_EXIT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
21 | #if !defined(ASIO_WINDOWS_APP)
22 |
23 | #include "asio/detail/noncopyable.hpp"
24 | #include "asio/detail/socket_types.hpp"
25 |
26 | #include "asio/detail/push_options.hpp"
27 |
28 | namespace asio {
29 | namespace detail {
30 |
31 | class local_free_on_block_exit
32 | : private noncopyable
33 | {
34 | public:
35 | // Constructor blocks all signals for the calling thread.
36 | explicit local_free_on_block_exit(void* p)
37 | : p_(p)
38 | {
39 | }
40 |
41 | // Destructor restores the previous signal mask.
42 | ~local_free_on_block_exit()
43 | {
44 | ::LocalFree(p_);
45 | }
46 |
47 | private:
48 | void* p_;
49 | };
50 |
51 | } // namespace detail
52 | } // namespace asio
53 |
54 | #include "asio/detail/pop_options.hpp"
55 |
56 | #endif // !defined(ASIO_WINDOWS_APP)
57 | #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
58 |
59 | #endif // ASIO_DETAIL_LOCAL_FREE_ON_BLOCK_EXIT_HPP
60 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/throw_exception.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/throw_exception.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_THROW_EXCEPTION_HPP
12 | #define ASIO_DETAIL_THROW_EXCEPTION_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_BOOST_THROW_EXCEPTION)
21 | # include
22 | #endif // defined(ASIO_BOOST_THROW_EXCEPTION)
23 |
24 | namespace asio {
25 | namespace detail {
26 |
27 | #if defined(ASIO_HAS_BOOST_THROW_EXCEPTION)
28 | using boost::throw_exception;
29 | #else // defined(ASIO_HAS_BOOST_THROW_EXCEPTION)
30 |
31 | // Declare the throw_exception function for all targets.
32 | template
33 | void throw_exception(const Exception& e);
34 |
35 | // Only define the throw_exception function when exceptions are enabled.
36 | // Otherwise, it is up to the application to provide a definition of this
37 | // function.
38 | # if !defined(ASIO_NO_EXCEPTIONS)
39 | template
40 | void throw_exception(const Exception& e)
41 | {
42 | throw e;
43 | }
44 | # endif // !defined(ASIO_NO_EXCEPTIONS)
45 |
46 | #endif // defined(ASIO_HAS_BOOST_THROW_EXCEPTION)
47 |
48 | } // namespace detail
49 | } // namespace asio
50 |
51 | #endif // ASIO_DETAIL_THROW_EXCEPTION_HPP
52 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/keyword_tss_ptr.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/keyword_tss_ptr.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_KEYWORD_TSS_PTR_HPP
12 | #define ASIO_DETAIL_KEYWORD_TSS_PTR_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_THREAD_KEYWORD_EXTENSION)
21 |
22 | #include "asio/detail/noncopyable.hpp"
23 |
24 | #include "asio/detail/push_options.hpp"
25 |
26 | namespace asio {
27 | namespace detail {
28 |
29 | template
30 | class keyword_tss_ptr
31 | : private noncopyable
32 | {
33 | public:
34 | // Constructor.
35 | keyword_tss_ptr()
36 | {
37 | }
38 |
39 | // Destructor.
40 | ~keyword_tss_ptr()
41 | {
42 | }
43 |
44 | // Get the value.
45 | operator T*() const
46 | {
47 | return value_;
48 | }
49 |
50 | // Set the value.
51 | void operator=(T* value)
52 | {
53 | value_ = value;
54 | }
55 |
56 | private:
57 | static ASIO_THREAD_KEYWORD T* value_;
58 | };
59 |
60 | template
61 | ASIO_THREAD_KEYWORD T* keyword_tss_ptr::value_;
62 |
63 | } // namespace detail
64 | } // namespace asio
65 |
66 | #include "asio/detail/pop_options.hpp"
67 |
68 | #endif // defined(ASIO_HAS_THREAD_KEYWORD_EXTENSION)
69 |
70 | #endif // ASIO_DETAIL_KEYWORD_TSS_PTR_HPP
71 |
--------------------------------------------------------------------------------
/pc_application/include/asio/handler_continuation_hook.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // handler_continuation_hook.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_HANDLER_CONTINUATION_HOOK_HPP
12 | #define ASIO_HANDLER_CONTINUATION_HOOK_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #include "asio/detail/push_options.hpp"
21 |
22 | namespace asio {
23 |
24 | /// Default continuation function for handlers.
25 | /**
26 | * Asynchronous operations may represent a continuation of the asynchronous
27 | * control flow associated with the current handler. The implementation can use
28 | * this knowledge to optimise scheduling of the handler.
29 | *
30 | * Implement asio_handler_is_continuation for your own handlers to indicate
31 | * when a handler represents a continuation.
32 | *
33 | * The default implementation of the continuation hook returns false.
34 | *
35 | * @par Example
36 | * @code
37 | * class my_handler;
38 | *
39 | * bool asio_handler_is_continuation(my_handler* context)
40 | * {
41 | * return true;
42 | * }
43 | * @endcode
44 | */
45 | inline bool asio_handler_is_continuation(...)
46 | {
47 | return false;
48 | }
49 |
50 | } // namespace asio
51 |
52 | #include "asio/detail/pop_options.hpp"
53 |
54 | #endif // ASIO_HANDLER_CONTINUATION_HOOK_HPP
55 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/std_thread.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/std_thread.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_STD_THREAD_HPP
12 | #define ASIO_DETAIL_STD_THREAD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_STD_THREAD)
21 |
22 | #include
23 | #include "asio/detail/noncopyable.hpp"
24 |
25 | #include "asio/detail/push_options.hpp"
26 |
27 | namespace asio {
28 | namespace detail {
29 |
30 | class std_thread
31 | : private noncopyable
32 | {
33 | public:
34 | // Constructor.
35 | template
36 | std_thread(Function f, unsigned int = 0)
37 | : thread_(f)
38 | {
39 | }
40 |
41 | // Destructor.
42 | ~std_thread()
43 | {
44 | join();
45 | }
46 |
47 | // Wait for the thread to exit.
48 | void join()
49 | {
50 | if (thread_.joinable())
51 | thread_.join();
52 | }
53 |
54 | // Get number of CPUs.
55 | static std::size_t hardware_concurrency()
56 | {
57 | return std::thread::hardware_concurrency();
58 | }
59 |
60 | private:
61 | std::thread thread_;
62 | };
63 |
64 | } // namespace detail
65 | } // namespace asio
66 |
67 | #include "asio/detail/pop_options.hpp"
68 |
69 | #endif // defined(ASIO_HAS_STD_THREAD)
70 |
71 | #endif // ASIO_DETAIL_STD_THREAD_HPP
72 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/posix_static_mutex.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/posix_static_mutex.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_POSIX_STATIC_MUTEX_HPP
12 | #define ASIO_DETAIL_POSIX_STATIC_MUTEX_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_PTHREADS)
21 |
22 | #include
23 | #include "asio/detail/scoped_lock.hpp"
24 |
25 | #include "asio/detail/push_options.hpp"
26 |
27 | namespace asio {
28 | namespace detail {
29 |
30 | struct posix_static_mutex
31 | {
32 | typedef asio::detail::scoped_lock scoped_lock;
33 |
34 | // Initialise the mutex.
35 | void init()
36 | {
37 | // Nothing to do.
38 | }
39 |
40 | // Lock the mutex.
41 | void lock()
42 | {
43 | (void)::pthread_mutex_lock(&mutex_); // Ignore EINVAL.
44 | }
45 |
46 | // Unlock the mutex.
47 | void unlock()
48 | {
49 | (void)::pthread_mutex_unlock(&mutex_); // Ignore EINVAL.
50 | }
51 |
52 | ::pthread_mutex_t mutex_;
53 | };
54 |
55 | #define ASIO_POSIX_STATIC_MUTEX_INIT { PTHREAD_MUTEX_INITIALIZER }
56 |
57 | } // namespace detail
58 | } // namespace asio
59 |
60 | #include "asio/detail/pop_options.hpp"
61 |
62 | #endif // defined(ASIO_HAS_PTHREADS)
63 |
64 | #endif // ASIO_DETAIL_POSIX_STATIC_MUTEX_HPP
65 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/winrt_async_op.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/winrt_async_op.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_WINRT_ASYNC_OP_HPP
12 | #define ASIO_DETAIL_WINRT_ASYNC_OP_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/detail/operation.hpp"
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 | namespace detail {
25 |
26 | template
27 | class winrt_async_op
28 | : public operation
29 | {
30 | public:
31 | // The error code to be passed to the completion handler.
32 | asio::error_code ec_;
33 |
34 | // The result of the operation, to be passed to the completion handler.
35 | TResult result_;
36 |
37 | protected:
38 | winrt_async_op(func_type complete_func)
39 | : operation(complete_func),
40 | result_()
41 | {
42 | }
43 | };
44 |
45 | template <>
46 | class winrt_async_op
47 | : public operation
48 | {
49 | public:
50 | // The error code to be passed to the completion handler.
51 | asio::error_code ec_;
52 |
53 | protected:
54 | winrt_async_op(func_type complete_func)
55 | : operation(complete_func)
56 | {
57 | }
58 | };
59 |
60 | } // namespace detail
61 | } // namespace asio
62 |
63 | #include "asio/detail/pop_options.hpp"
64 |
65 | #endif // ASIO_DETAIL_WINRT_ASYNC_OP_HPP
66 |
--------------------------------------------------------------------------------
/pc_application/Makefile:
--------------------------------------------------------------------------------
1 | # mingw-w64-x86_64-SDL2 in pacman
2 | # No extension for the executable
3 | TARGET_EXEC ?= JoyCon_Droid_PC.exe
4 |
5 | BUILD_DIR ?= ./build
6 | SRC_DIRS ?= ./source
7 |
8 | # Set compilers to MinGW64 compilers
9 | CC := x86_64-w64-mingw32-gcc
10 | CXX := x86_64-w64-mingw32-g++
11 |
12 | # C flags
13 | CFLAGS := -std=gnu11
14 | # C++ flags
15 | # Single precision sets all defined floating point numbers to floats, saves on memory
16 | CXXFLAGS := -std=c++11 $(shell pkg-config --cflags sdl2) -I./include
17 | # C/C++ flags (no -pendantic)
18 | CPPFLAGS := -g -Wall -Wextra
19 | # Linker flags (-lpthread needed for threads)
20 | # Include Winsock for getting the IP address
21 | # Can't use normal pkg config output because we don't want -mswindows
22 | LDFLAGS := -lpthread -LC:/msys2/mingw64/lib -lmingw32 -lSDL2main -lSDL2 -lws2_32 -lwsock32
23 |
24 | SRCS := $(shell find $(SRC_DIRS) -name *.cpp -or -name *.c -or -name *.s)
25 | OBJS := $(SRCS:%=$(BUILD_DIR)/%.o)
26 | DEPS := $(OBJS:.o=.d)
27 |
28 | INC_DIRS := $(shell find $(SRC_DIRS) -type d)
29 | INC_FLAGS := $(addprefix -I,$(INC_DIRS))
30 |
31 | CPPFLAGS ?= $(INC_FLAGS) -MMD -MP
32 |
33 | $(BUILD_DIR)/$(TARGET_EXEC): $(OBJS)
34 | $(CXX) $(OBJS) -o $@ $(LDFLAGS)
35 |
36 | # assembly
37 | $(BUILD_DIR)/%.s.o: %.s
38 | $(MKDIR_P) $(dir $@)
39 | $(AS) $(ASFLAGS) -c $< -o $@
40 |
41 | # c source
42 | $(BUILD_DIR)/%.c.o: %.c
43 | $(MKDIR_P) $(dir $@)
44 | $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
45 |
46 | # c++ source
47 | $(BUILD_DIR)/%.cpp.o: %.cpp
48 | $(MKDIR_P) $(dir $@)
49 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@
50 |
51 |
52 | .PHONY: clean
53 |
54 | clean:
55 | $(RM) -r $(BUILD_DIR)
56 |
57 | -include $(DEPS)
58 |
59 | MKDIR_P ?= mkdir -p
60 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/cstdint.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/cstdint.hpp
3 | // ~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_CSTDINT_HPP
12 | #define ASIO_DETAIL_CSTDINT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_CSTDINT)
21 | # include
22 | #else // defined(ASIO_HAS_CSTDINT)
23 | # include
24 | #endif // defined(ASIO_HAS_CSTDINT)
25 |
26 | namespace asio {
27 |
28 | #if defined(ASIO_HAS_CSTDINT)
29 | using std::int16_t;
30 | using std::int_least16_t;
31 | using std::uint16_t;
32 | using std::uint_least16_t;
33 | using std::int32_t;
34 | using std::int_least32_t;
35 | using std::uint32_t;
36 | using std::uint_least32_t;
37 | using std::int64_t;
38 | using std::int_least64_t;
39 | using std::uint64_t;
40 | using std::uint_least64_t;
41 | using std::uintmax_t;
42 | #else // defined(ASIO_HAS_CSTDINT)
43 | using boost::int16_t;
44 | using boost::int_least16_t;
45 | using boost::uint16_t;
46 | using boost::uint_least16_t;
47 | using boost::int32_t;
48 | using boost::int_least32_t;
49 | using boost::uint32_t;
50 | using boost::uint_least32_t;
51 | using boost::int64_t;
52 | using boost::int_least64_t;
53 | using boost::uint64_t;
54 | using boost::uint_least64_t;
55 | using boost::uintmax_t;
56 | #endif // defined(ASIO_HAS_CSTDINT)
57 |
58 | } // namespace asio
59 |
60 | #endif // ASIO_DETAIL_CSTDINT_HPP
61 |
--------------------------------------------------------------------------------
/pc_application/include/asio/handler_type.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // handler_type.hpp
3 | // ~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_HANDLER_TYPE_HPP
12 | #define ASIO_HANDLER_TYPE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/detail/type_traits.hpp"
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 |
25 | /// (Deprecated: Use two-parameter version of async_result.) Default handler
26 | /// type traits provided for all completion token types.
27 | /**
28 | * The handler_type traits class is used for determining the concrete handler
29 | * type to be used for an asynchronous operation. It allows the handler type to
30 | * be determined at the point where the specific completion handler signature
31 | * is known.
32 | *
33 | * This template may be specialised for user-defined completion token types.
34 | */
35 | template
36 | struct handler_type
37 | {
38 | /// The handler type for the specific signature.
39 | typedef typename conditional<
40 | is_same::type>::value,
41 | decay,
42 | handler_type::type, Signature>
43 | >::type::type type;
44 | };
45 |
46 | } // namespace asio
47 |
48 | #include "asio/detail/pop_options.hpp"
49 |
50 | #endif // ASIO_HANDLER_TYPE_HPP
51 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ssl/detail/password_callback.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ssl/detail/password_callback.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_SSL_DETAIL_PASSWORD_CALLBACK_HPP
12 | #define ASIO_SSL_DETAIL_PASSWORD_CALLBACK_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #include
21 | #include
22 | #include "asio/ssl/context_base.hpp"
23 |
24 | #include "asio/detail/push_options.hpp"
25 |
26 | namespace asio {
27 | namespace ssl {
28 | namespace detail {
29 |
30 | class password_callback_base
31 | {
32 | public:
33 | virtual ~password_callback_base()
34 | {
35 | }
36 |
37 | virtual std::string call(std::size_t size,
38 | context_base::password_purpose purpose) = 0;
39 | };
40 |
41 | template
42 | class password_callback : public password_callback_base
43 | {
44 | public:
45 | explicit password_callback(PasswordCallback callback)
46 | : callback_(callback)
47 | {
48 | }
49 |
50 | virtual std::string call(std::size_t size,
51 | context_base::password_purpose purpose)
52 | {
53 | return callback_(size, purpose);
54 | }
55 |
56 | private:
57 | PasswordCallback callback_;
58 | };
59 |
60 | } // namespace detail
61 | } // namespace ssl
62 | } // namespace asio
63 |
64 | #include "asio/detail/pop_options.hpp"
65 |
66 | #endif // ASIO_SSL_DETAIL_PASSWORD_CALLBACK_HPP
67 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/null_reactor.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/null_reactor.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_NULL_REACTOR_HPP
12 | #define ASIO_DETAIL_NULL_REACTOR_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_IOCP) || defined(ASIO_WINDOWS_RUNTIME)
21 |
22 | #include "asio/detail/scheduler_operation.hpp"
23 | #include "asio/execution_context.hpp"
24 |
25 | #include "asio/detail/push_options.hpp"
26 |
27 | namespace asio {
28 | namespace detail {
29 |
30 | class null_reactor
31 | : public execution_context_service_base
32 | {
33 | public:
34 | // Constructor.
35 | null_reactor(asio::execution_context& ctx)
36 | : execution_context_service_base(ctx)
37 | {
38 | }
39 |
40 | // Destructor.
41 | ~null_reactor()
42 | {
43 | }
44 |
45 | // Destroy all user-defined handler objects owned by the service.
46 | void shutdown()
47 | {
48 | }
49 |
50 | // No-op because should never be called.
51 | void run(long /*usec*/, op_queue& /*ops*/)
52 | {
53 | }
54 |
55 | // No-op.
56 | void interrupt()
57 | {
58 | }
59 | };
60 |
61 | } // namespace detail
62 | } // namespace asio
63 |
64 | #include "asio/detail/pop_options.hpp"
65 |
66 | #endif // defined(ASIO_HAS_IOCP) || defined(ASIO_WINDOWS_RUNTIME)
67 |
68 | #endif // ASIO_DETAIL_NULL_REACTOR_HPP
69 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/thread.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/thread.hpp
3 | // ~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_THREAD_HPP
12 | #define ASIO_DETAIL_THREAD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if !defined(ASIO_HAS_THREADS)
21 | # include "asio/detail/null_thread.hpp"
22 | #elif defined(ASIO_WINDOWS)
23 | # if defined(UNDER_CE)
24 | # include "asio/detail/wince_thread.hpp"
25 | # elif defined(ASIO_WINDOWS_APP)
26 | # include "asio/detail/winapp_thread.hpp"
27 | # else
28 | # include "asio/detail/win_thread.hpp"
29 | # endif
30 | #elif defined(ASIO_HAS_PTHREADS)
31 | # include "asio/detail/posix_thread.hpp"
32 | #elif defined(ASIO_HAS_STD_THREAD)
33 | # include "asio/detail/std_thread.hpp"
34 | #else
35 | # error Only Windows, POSIX and std::thread are supported!
36 | #endif
37 |
38 | namespace asio {
39 | namespace detail {
40 |
41 | #if !defined(ASIO_HAS_THREADS)
42 | typedef null_thread thread;
43 | #elif defined(ASIO_WINDOWS)
44 | # if defined(UNDER_CE)
45 | typedef wince_thread thread;
46 | # elif defined(ASIO_WINDOWS_APP)
47 | typedef winapp_thread thread;
48 | # else
49 | typedef win_thread thread;
50 | # endif
51 | #elif defined(ASIO_HAS_PTHREADS)
52 | typedef posix_thread thread;
53 | #elif defined(ASIO_HAS_STD_THREAD)
54 | typedef std_thread thread;
55 | #endif
56 |
57 | } // namespace detail
58 | } // namespace asio
59 |
60 | #endif // ASIO_DETAIL_THREAD_HPP
61 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/scoped_ptr.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/scoped_ptr.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_SCOPED_PTR_HPP
12 | #define ASIO_DETAIL_SCOPED_PTR_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #include "asio/detail/push_options.hpp"
21 |
22 | namespace asio {
23 | namespace detail {
24 |
25 | template
26 | class scoped_ptr
27 | {
28 | public:
29 | // Constructor.
30 | explicit scoped_ptr(T* p = 0)
31 | : p_(p)
32 | {
33 | }
34 |
35 | // Destructor.
36 | ~scoped_ptr()
37 | {
38 | delete p_;
39 | }
40 |
41 | // Access.
42 | T* get()
43 | {
44 | return p_;
45 | }
46 |
47 | // Access.
48 | T* operator->()
49 | {
50 | return p_;
51 | }
52 |
53 | // Dereference.
54 | T& operator*()
55 | {
56 | return *p_;
57 | }
58 |
59 | // Reset pointer.
60 | void reset(T* p = 0)
61 | {
62 | delete p_;
63 | p_ = p;
64 | }
65 |
66 | // Release ownership of the pointer.
67 | T* release()
68 | {
69 | T* tmp = p_;
70 | p_ = 0;
71 | return tmp;
72 | }
73 |
74 | private:
75 | // Disallow copying and assignment.
76 | scoped_ptr(const scoped_ptr&);
77 | scoped_ptr& operator=(const scoped_ptr&);
78 |
79 | T* p_;
80 | };
81 |
82 | } // namespace detail
83 | } // namespace asio
84 |
85 | #include "asio/detail/pop_options.hpp"
86 |
87 | #endif // ASIO_DETAIL_SCOPED_PTR_HPP
88 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "spellright.language": [
3 | "en"
4 | ],
5 | "spellright.documentTypes": [
6 | "markdown",
7 | "latex",
8 | "python"
9 | ],
10 | "files.associations": {
11 | "functional": "cpp",
12 | "array": "cpp",
13 | "atomic": "cpp",
14 | "bit": "cpp",
15 | "*.tcc": "cpp",
16 | "bitset": "cpp",
17 | "cctype": "cpp",
18 | "chrono": "cpp",
19 | "clocale": "cpp",
20 | "cmath": "cpp",
21 | "codecvt": "cpp",
22 | "condition_variable": "cpp",
23 | "csignal": "cpp",
24 | "cstdarg": "cpp",
25 | "cstddef": "cpp",
26 | "cstdint": "cpp",
27 | "cstdio": "cpp",
28 | "cstdlib": "cpp",
29 | "cstring": "cpp",
30 | "ctime": "cpp",
31 | "cwchar": "cpp",
32 | "cwctype": "cpp",
33 | "deque": "cpp",
34 | "list": "cpp",
35 | "map": "cpp",
36 | "set": "cpp",
37 | "unordered_map": "cpp",
38 | "unordered_set": "cpp",
39 | "vector": "cpp",
40 | "exception": "cpp",
41 | "algorithm": "cpp",
42 | "iterator": "cpp",
43 | "memory": "cpp",
44 | "memory_resource": "cpp",
45 | "numeric": "cpp",
46 | "optional": "cpp",
47 | "random": "cpp",
48 | "ratio": "cpp",
49 | "regex": "cpp",
50 | "string": "cpp",
51 | "string_view": "cpp",
52 | "system_error": "cpp",
53 | "tuple": "cpp",
54 | "type_traits": "cpp",
55 | "utility": "cpp",
56 | "fstream": "cpp",
57 | "future": "cpp",
58 | "initializer_list": "cpp",
59 | "iomanip": "cpp",
60 | "iosfwd": "cpp",
61 | "iostream": "cpp",
62 | "istream": "cpp",
63 | "limits": "cpp",
64 | "mutex": "cpp",
65 | "new": "cpp",
66 | "ostream": "cpp",
67 | "shared_mutex": "cpp",
68 | "sstream": "cpp",
69 | "stdexcept": "cpp",
70 | "streambuf": "cpp",
71 | "thread": "cpp",
72 | "cinttypes": "cpp",
73 | "typeinfo": "cpp",
74 | "valarray": "cpp",
75 | "*.ipp": "cpp"
76 | }
77 | }
--------------------------------------------------------------------------------
/pc_application/source/getIpAddress.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #ifdef _WIN32
4 | #include
5 | // Atrociously messes with RapidJson
6 | #undef GetObject
7 | #else
8 | #include
9 | #include
10 | #include
11 | #include
12 | #endif
13 |
14 | #include
15 | #include
16 | #include
17 | #include
18 | #include
19 | #include
20 |
21 | namespace GetIP {
22 | // https://www.geeksforgeeks.org/c-program-display-hostname-ip-address/
23 | // Driver code
24 |
25 | bool getMyIP(char* ipAddress, int port) {
26 | // https://stackoverflow.com/a/122225
27 | // This is the hostname
28 | char szBuffer[1024];
29 |
30 | #ifdef WIN32
31 | WSADATA wsaData;
32 | WORD wVersionRequested = MAKEWORD(2, 0);
33 | if(::WSAStartup(wVersionRequested, &wsaData) != 0)
34 | return false;
35 | #endif
36 |
37 | if(gethostname(szBuffer, sizeof(szBuffer)) == SOCKET_ERROR) {
38 | #ifdef WIN32
39 | WSACleanup();
40 | #endif
41 | return false;
42 | }
43 |
44 | struct hostent* host = gethostbyname(szBuffer);
45 | if(host == NULL) {
46 | #ifdef WIN32
47 | WSACleanup();
48 | #endif
49 | return false;
50 | }
51 |
52 | // Obtain the computer's IP
53 | uint8_t b1 = (uint8_t)((struct in_addr*)(host->h_addr))->S_un.S_un_b.s_b1;
54 | uint8_t b2 = (uint8_t)((struct in_addr*)(host->h_addr))->S_un.S_un_b.s_b2;
55 | uint8_t b3 = (uint8_t)((struct in_addr*)(host->h_addr))->S_un.S_un_b.s_b3;
56 | uint8_t b4 = (uint8_t)((struct in_addr*)(host->h_addr))->S_un.S_un_b.s_b4;
57 |
58 | #ifdef WIN32
59 | WSACleanup();
60 | #endif
61 |
62 | // Copy into buffer (with port, for convinence)
63 | sprintf(ipAddress, "%d.%d.%d.%d:%d", b1, b2, b3, b4, port);
64 |
65 | return true;
66 | }
67 | } // namespace GetIP
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/static_mutex.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/static_mutex.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_STATIC_MUTEX_HPP
12 | #define ASIO_DETAIL_STATIC_MUTEX_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if !defined(ASIO_HAS_THREADS)
21 | # include "asio/detail/null_static_mutex.hpp"
22 | #elif defined(ASIO_WINDOWS)
23 | # include "asio/detail/win_static_mutex.hpp"
24 | #elif defined(ASIO_HAS_PTHREADS)
25 | # include "asio/detail/posix_static_mutex.hpp"
26 | #elif defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR)
27 | # include "asio/detail/std_static_mutex.hpp"
28 | #else
29 | # error Only Windows and POSIX are supported!
30 | #endif
31 |
32 | namespace asio {
33 | namespace detail {
34 |
35 | #if !defined(ASIO_HAS_THREADS)
36 | typedef null_static_mutex static_mutex;
37 | # define ASIO_STATIC_MUTEX_INIT ASIO_NULL_STATIC_MUTEX_INIT
38 | #elif defined(ASIO_WINDOWS)
39 | typedef win_static_mutex static_mutex;
40 | # define ASIO_STATIC_MUTEX_INIT ASIO_WIN_STATIC_MUTEX_INIT
41 | #elif defined(ASIO_HAS_PTHREADS)
42 | typedef posix_static_mutex static_mutex;
43 | # define ASIO_STATIC_MUTEX_INIT ASIO_POSIX_STATIC_MUTEX_INIT
44 | #elif defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR)
45 | typedef std_static_mutex static_mutex;
46 | # define ASIO_STATIC_MUTEX_INIT ASIO_STD_STATIC_MUTEX_INIT
47 | #endif
48 |
49 | } // namespace detail
50 | } // namespace asio
51 |
52 | #endif // ASIO_DETAIL_STATIC_MUTEX_HPP
53 |
--------------------------------------------------------------------------------
/pc_application/include/asio/impl/handler_alloc_hook.ipp:
--------------------------------------------------------------------------------
1 | //
2 | // impl/handler_alloc_hook.ipp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IMPL_HANDLER_ALLOC_HOOK_IPP
12 | #define ASIO_IMPL_HANDLER_ALLOC_HOOK_IPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/detail/thread_context.hpp"
20 | #include "asio/detail/thread_info_base.hpp"
21 | #include "asio/handler_alloc_hook.hpp"
22 |
23 | #include "asio/detail/push_options.hpp"
24 |
25 | namespace asio {
26 |
27 | void* asio_handler_allocate(std::size_t size, ...)
28 | {
29 | #if !defined(ASIO_DISABLE_SMALL_BLOCK_RECYCLING)
30 | return detail::thread_info_base::allocate(
31 | detail::thread_context::thread_call_stack::top(), size);
32 | #else // !defined(ASIO_DISABLE_SMALL_BLOCK_RECYCLING)
33 | return ::operator new(size);
34 | #endif // !defined(ASIO_DISABLE_SMALL_BLOCK_RECYCLING)
35 | }
36 |
37 | void asio_handler_deallocate(void* pointer, std::size_t size, ...)
38 | {
39 | #if !defined(ASIO_DISABLE_SMALL_BLOCK_RECYCLING)
40 | detail::thread_info_base::deallocate(
41 | detail::thread_context::thread_call_stack::top(), pointer, size);
42 | #else // !defined(ASIO_DISABLE_SMALL_BLOCK_RECYCLING)
43 | (void)size;
44 | ::operator delete(pointer);
45 | #endif // !defined(ASIO_DISABLE_SMALL_BLOCK_RECYCLING)
46 | }
47 |
48 | } // namespace asio
49 |
50 | #include "asio/detail/pop_options.hpp"
51 |
52 | #endif // ASIO_IMPL_HANDLER_ALLOC_HOOK_IPP
53 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/gcc_hppa_fenced_block.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/gcc_hppa_fenced_block.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_GCC_HPPA_FENCED_BLOCK_HPP
12 | #define ASIO_DETAIL_GCC_HPPA_FENCED_BLOCK_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(__GNUC__) && (defined(__hppa) || defined(__hppa__))
21 |
22 | #include "asio/detail/noncopyable.hpp"
23 |
24 | #include "asio/detail/push_options.hpp"
25 |
26 | namespace asio {
27 | namespace detail {
28 |
29 | class gcc_hppa_fenced_block
30 | : private noncopyable
31 | {
32 | public:
33 | enum half_t { half };
34 | enum full_t { full };
35 |
36 | // Constructor for a half fenced block.
37 | explicit gcc_hppa_fenced_block(half_t)
38 | {
39 | }
40 |
41 | // Constructor for a full fenced block.
42 | explicit gcc_hppa_fenced_block(full_t)
43 | {
44 | barrier();
45 | }
46 |
47 | // Destructor.
48 | ~gcc_hppa_fenced_block()
49 | {
50 | barrier();
51 | }
52 |
53 | private:
54 | static void barrier()
55 | {
56 | // This is just a placeholder and almost certainly not sufficient.
57 | __asm__ __volatile__ ("" : : : "memory");
58 | }
59 | };
60 |
61 | } // namespace detail
62 | } // namespace asio
63 |
64 | #include "asio/detail/pop_options.hpp"
65 |
66 | #endif // defined(__GNUC__) && (defined(__hppa) || defined(__hppa__))
67 |
68 | #endif // ASIO_DETAIL_GCC_HPPA_FENCED_BLOCK_HPP
69 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/std_global.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/std_global.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_STD_GLOBAL_HPP
12 | #define ASIO_DETAIL_STD_GLOBAL_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_STD_CALL_ONCE)
21 |
22 | #include
23 | #include
24 |
25 | #include "asio/detail/push_options.hpp"
26 |
27 | namespace asio {
28 | namespace detail {
29 |
30 | template
31 | struct std_global_impl
32 | {
33 | // Helper function to perform initialisation.
34 | static void do_init()
35 | {
36 | instance_.ptr_ = new T;
37 | }
38 |
39 | // Destructor automatically cleans up the global.
40 | ~std_global_impl()
41 | {
42 | delete ptr_;
43 | }
44 |
45 | static std::once_flag init_once_;
46 | static std_global_impl instance_;
47 | T* ptr_;
48 | };
49 |
50 | template
51 | std::once_flag std_global_impl::init_once_;
52 |
53 | template
54 | std_global_impl std_global_impl::instance_;
55 |
56 | template
57 | T& std_global()
58 | {
59 | std::call_once(std_global_impl::init_once_, &std_global_impl::do_init);
60 | return *std_global_impl::instance_.ptr_;
61 | }
62 |
63 | } // namespace detail
64 | } // namespace asio
65 |
66 | #include "asio/detail/pop_options.hpp"
67 |
68 | #endif // defined(ASIO_HAS_STD_CALL_ONCE)
69 |
70 | #endif // ASIO_DETAIL_STD_GLOBAL_HPP
71 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ip/impl/address.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ip/impl/address.hpp
3 | // ~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IP_IMPL_ADDRESS_HPP
12 | #define ASIO_IP_IMPL_ADDRESS_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #if !defined(ASIO_NO_IOSTREAM)
19 |
20 | #include "asio/detail/throw_error.hpp"
21 |
22 | #include "asio/detail/push_options.hpp"
23 |
24 | namespace asio {
25 | namespace ip {
26 |
27 | #if !defined(ASIO_NO_DEPRECATED)
28 |
29 | inline address address::from_string(const char* str)
30 | {
31 | return asio::ip::make_address(str);
32 | }
33 |
34 | inline address address::from_string(
35 | const char* str, asio::error_code& ec)
36 | {
37 | return asio::ip::make_address(str, ec);
38 | }
39 |
40 | inline address address::from_string(const std::string& str)
41 | {
42 | return asio::ip::make_address(str);
43 | }
44 |
45 | inline address address::from_string(
46 | const std::string& str, asio::error_code& ec)
47 | {
48 | return asio::ip::make_address(str, ec);
49 | }
50 |
51 | #endif // !defined(ASIO_NO_DEPRECATED)
52 |
53 | template
54 | std::basic_ostream& operator<<(
55 | std::basic_ostream& os, const address& addr)
56 | {
57 | return os << addr.to_string().c_str();
58 | }
59 |
60 | } // namespace ip
61 | } // namespace asio
62 |
63 | #include "asio/detail/pop_options.hpp"
64 |
65 | #endif // !defined(ASIO_NO_IOSTREAM)
66 |
67 | #endif // ASIO_IP_IMPL_ADDRESS_HPP
68 |
--------------------------------------------------------------------------------
/pc_application/include/asio/is_read_buffered.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // is_read_buffered.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IS_READ_BUFFERED_HPP
12 | #define ASIO_IS_READ_BUFFERED_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/buffered_read_stream_fwd.hpp"
20 | #include "asio/buffered_stream_fwd.hpp"
21 |
22 | #include "asio/detail/push_options.hpp"
23 |
24 | namespace asio {
25 |
26 | namespace detail {
27 |
28 | template
29 | char is_read_buffered_helper(buffered_stream* s);
30 |
31 | template
32 | char is_read_buffered_helper(buffered_read_stream* s);
33 |
34 | struct is_read_buffered_big_type { char data[10]; };
35 | is_read_buffered_big_type is_read_buffered_helper(...);
36 |
37 | } // namespace detail
38 |
39 | /// The is_read_buffered class is a traits class that may be used to determine
40 | /// whether a stream type supports buffering of read data.
41 | template
42 | class is_read_buffered
43 | {
44 | public:
45 | #if defined(GENERATING_DOCUMENTATION)
46 | /// The value member is true only if the Stream type supports buffering of
47 | /// read data.
48 | static const bool value;
49 | #else
50 | ASIO_STATIC_CONSTANT(bool,
51 | value = sizeof(detail::is_read_buffered_helper((Stream*)0)) == 1);
52 | #endif
53 | };
54 |
55 | } // namespace asio
56 |
57 | #include "asio/detail/pop_options.hpp"
58 |
59 | #endif // ASIO_IS_READ_BUFFERED_HPP
60 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/buffer_resize_guard.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/buffer_resize_guard.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_BUFFER_RESIZE_GUARD_HPP
12 | #define ASIO_DETAIL_BUFFER_RESIZE_GUARD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/detail/limits.hpp"
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 | namespace detail {
25 |
26 | // Helper class to manage buffer resizing in an exception safe way.
27 | template
28 | class buffer_resize_guard
29 | {
30 | public:
31 | // Constructor.
32 | buffer_resize_guard(Buffer& buffer)
33 | : buffer_(buffer),
34 | old_size_(buffer.size())
35 | {
36 | }
37 |
38 | // Destructor rolls back the buffer resize unless commit was called.
39 | ~buffer_resize_guard()
40 | {
41 | if (old_size_ != (std::numeric_limits::max)())
42 | {
43 | buffer_.resize(old_size_);
44 | }
45 | }
46 |
47 | // Commit the resize transaction.
48 | void commit()
49 | {
50 | old_size_ = (std::numeric_limits::max)();
51 | }
52 |
53 | private:
54 | // The buffer being managed.
55 | Buffer& buffer_;
56 |
57 | // The size of the buffer at the time the guard was constructed.
58 | size_t old_size_;
59 | };
60 |
61 | } // namespace detail
62 | } // namespace asio
63 |
64 | #include "asio/detail/pop_options.hpp"
65 |
66 | #endif // ASIO_DETAIL_BUFFER_RESIZE_GUARD_HPP
67 |
--------------------------------------------------------------------------------
/pc_application/include/asio/impl/system_context.ipp:
--------------------------------------------------------------------------------
1 | //
2 | // impl/system_context.ipp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IMPL_SYSTEM_CONTEXT_IPP
12 | #define ASIO_IMPL_SYSTEM_CONTEXT_IPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/system_context.hpp"
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 |
25 | struct system_context::thread_function
26 | {
27 | detail::scheduler* scheduler_;
28 |
29 | void operator()()
30 | {
31 | asio::error_code ec;
32 | scheduler_->run(ec);
33 | }
34 | };
35 |
36 | system_context::system_context()
37 | : scheduler_(use_service(*this))
38 | {
39 | scheduler_.work_started();
40 |
41 | thread_function f = { &scheduler_ };
42 | std::size_t num_threads = detail::thread::hardware_concurrency() * 2;
43 | threads_.create_threads(f, num_threads ? num_threads : 2);
44 | }
45 |
46 | system_context::~system_context()
47 | {
48 | scheduler_.work_finished();
49 | scheduler_.stop();
50 | threads_.join();
51 | }
52 |
53 | void system_context::stop()
54 | {
55 | scheduler_.stop();
56 | }
57 |
58 | bool system_context::stopped() const ASIO_NOEXCEPT
59 | {
60 | return scheduler_.stopped();
61 | }
62 |
63 | void system_context::join()
64 | {
65 | scheduler_.work_finished();
66 | threads_.join();
67 | }
68 |
69 | } // namespace asio
70 |
71 | #include "asio/detail/pop_options.hpp"
72 |
73 | #endif // ASIO_IMPL_SYSTEM_CONTEXT_IPP
74 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/null_signal_blocker.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/null_signal_blocker.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_NULL_SIGNAL_BLOCKER_HPP
12 | #define ASIO_DETAIL_NULL_SIGNAL_BLOCKER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if !defined(ASIO_HAS_THREADS) \
21 | || defined(ASIO_WINDOWS) \
22 | || defined(ASIO_WINDOWS_RUNTIME) \
23 | || defined(__CYGWIN__) \
24 | || defined(__SYMBIAN32__)
25 |
26 | #include "asio/detail/noncopyable.hpp"
27 |
28 | #include "asio/detail/push_options.hpp"
29 |
30 | namespace asio {
31 | namespace detail {
32 |
33 | class null_signal_blocker
34 | : private noncopyable
35 | {
36 | public:
37 | // Constructor blocks all signals for the calling thread.
38 | null_signal_blocker()
39 | {
40 | }
41 |
42 | // Destructor restores the previous signal mask.
43 | ~null_signal_blocker()
44 | {
45 | }
46 |
47 | // Block all signals for the calling thread.
48 | void block()
49 | {
50 | }
51 |
52 | // Restore the previous signal mask.
53 | void unblock()
54 | {
55 | }
56 | };
57 |
58 | } // namespace detail
59 | } // namespace asio
60 |
61 | #include "asio/detail/pop_options.hpp"
62 |
63 | #endif // !defined(ASIO_HAS_THREADS)
64 | // || defined(ASIO_WINDOWS)
65 | // || defined(ASIO_WINDOWS_RUNTIME)
66 | // || defined(__CYGWIN__)
67 | // || defined(__SYMBIAN32__)
68 |
69 | #endif // ASIO_DETAIL_NULL_SIGNAL_BLOCKER_HPP
70 |
--------------------------------------------------------------------------------
/pc_application/include/asio/is_write_buffered.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // is_write_buffered.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IS_WRITE_BUFFERED_HPP
12 | #define ASIO_IS_WRITE_BUFFERED_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/buffered_stream_fwd.hpp"
20 | #include "asio/buffered_write_stream_fwd.hpp"
21 |
22 | #include "asio/detail/push_options.hpp"
23 |
24 | namespace asio {
25 |
26 | namespace detail {
27 |
28 | template
29 | char is_write_buffered_helper(buffered_stream* s);
30 |
31 | template
32 | char is_write_buffered_helper(buffered_write_stream* s);
33 |
34 | struct is_write_buffered_big_type { char data[10]; };
35 | is_write_buffered_big_type is_write_buffered_helper(...);
36 |
37 | } // namespace detail
38 |
39 | /// The is_write_buffered class is a traits class that may be used to determine
40 | /// whether a stream type supports buffering of written data.
41 | template
42 | class is_write_buffered
43 | {
44 | public:
45 | #if defined(GENERATING_DOCUMENTATION)
46 | /// The value member is true only if the Stream type supports buffering of
47 | /// written data.
48 | static const bool value;
49 | #else
50 | ASIO_STATIC_CONSTANT(bool,
51 | value = sizeof(detail::is_write_buffered_helper((Stream*)0)) == 1);
52 | #endif
53 | };
54 |
55 | } // namespace asio
56 |
57 | #include "asio/detail/pop_options.hpp"
58 |
59 | #endif // ASIO_IS_WRITE_BUFFERED_HPP
60 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/std_static_mutex.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/std_static_mutex.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_STD_STATIC_MUTEX_HPP
12 | #define ASIO_DETAIL_STD_STATIC_MUTEX_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR)
21 |
22 | #include
23 | #include "asio/detail/noncopyable.hpp"
24 | #include "asio/detail/scoped_lock.hpp"
25 |
26 | #include "asio/detail/push_options.hpp"
27 |
28 | namespace asio {
29 | namespace detail {
30 |
31 | class std_event;
32 |
33 | class std_static_mutex
34 | : private noncopyable
35 | {
36 | public:
37 | typedef asio::detail::scoped_lock scoped_lock;
38 |
39 | // Constructor.
40 | std_static_mutex(int)
41 | {
42 | }
43 |
44 | // Destructor.
45 | ~std_static_mutex()
46 | {
47 | }
48 |
49 | // Initialise the mutex.
50 | void init()
51 | {
52 | // Nothing to do.
53 | }
54 |
55 | // Lock the mutex.
56 | void lock()
57 | {
58 | mutex_.lock();
59 | }
60 |
61 | // Unlock the mutex.
62 | void unlock()
63 | {
64 | mutex_.unlock();
65 | }
66 |
67 | private:
68 | friend class std_event;
69 | std::mutex mutex_;
70 | };
71 |
72 | #define ASIO_STD_STATIC_MUTEX_INIT 0
73 |
74 | } // namespace detail
75 | } // namespace asio
76 |
77 | #include "asio/detail/pop_options.hpp"
78 |
79 | #endif // defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR)
80 |
81 | #endif // ASIO_DETAIL_STD_STATIC_MUTEX_HPP
82 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ip/impl/address_v4.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ip/impl/address_v4.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IP_IMPL_ADDRESS_V4_HPP
12 | #define ASIO_IP_IMPL_ADDRESS_V4_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #if !defined(ASIO_NO_IOSTREAM)
19 |
20 | #include "asio/detail/throw_error.hpp"
21 |
22 | #include "asio/detail/push_options.hpp"
23 |
24 | namespace asio {
25 | namespace ip {
26 |
27 | #if !defined(ASIO_NO_DEPRECATED)
28 |
29 | inline address_v4 address_v4::from_string(const char* str)
30 | {
31 | return asio::ip::make_address_v4(str);
32 | }
33 |
34 | inline address_v4 address_v4::from_string(
35 | const char* str, asio::error_code& ec)
36 | {
37 | return asio::ip::make_address_v4(str, ec);
38 | }
39 |
40 | inline address_v4 address_v4::from_string(const std::string& str)
41 | {
42 | return asio::ip::make_address_v4(str);
43 | }
44 |
45 | inline address_v4 address_v4::from_string(
46 | const std::string& str, asio::error_code& ec)
47 | {
48 | return asio::ip::make_address_v4(str, ec);
49 | }
50 |
51 | #endif // !defined(ASIO_NO_DEPRECATED)
52 |
53 | template
54 | std::basic_ostream& operator<<(
55 | std::basic_ostream& os, const address_v4& addr)
56 | {
57 | return os << addr.to_string().c_str();
58 | }
59 |
60 | } // namespace ip
61 | } // namespace asio
62 |
63 | #include "asio/detail/pop_options.hpp"
64 |
65 | #endif // !defined(ASIO_NO_IOSTREAM)
66 |
67 | #endif // ASIO_IP_IMPL_ADDRESS_V4_HPP
68 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ip/impl/address_v6.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ip/impl/address_v6.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IP_IMPL_ADDRESS_V6_HPP
12 | #define ASIO_IP_IMPL_ADDRESS_V6_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #if !defined(ASIO_NO_IOSTREAM)
19 |
20 | #include "asio/detail/throw_error.hpp"
21 |
22 | #include "asio/detail/push_options.hpp"
23 |
24 | namespace asio {
25 | namespace ip {
26 |
27 | #if !defined(ASIO_NO_DEPRECATED)
28 |
29 | inline address_v6 address_v6::from_string(const char* str)
30 | {
31 | return asio::ip::make_address_v6(str);
32 | }
33 |
34 | inline address_v6 address_v6::from_string(
35 | const char* str, asio::error_code& ec)
36 | {
37 | return asio::ip::make_address_v6(str, ec);
38 | }
39 |
40 | inline address_v6 address_v6::from_string(const std::string& str)
41 | {
42 | return asio::ip::make_address_v6(str);
43 | }
44 |
45 | inline address_v6 address_v6::from_string(
46 | const std::string& str, asio::error_code& ec)
47 | {
48 | return asio::ip::make_address_v6(str, ec);
49 | }
50 |
51 | #endif // !defined(ASIO_NO_DEPRECATED)
52 |
53 | template
54 | std::basic_ostream& operator<<(
55 | std::basic_ostream& os, const address_v6& addr)
56 | {
57 | return os << addr.to_string().c_str();
58 | }
59 |
60 | } // namespace ip
61 | } // namespace asio
62 |
63 | #include "asio/detail/pop_options.hpp"
64 |
65 | #endif // !defined(ASIO_NO_IOSTREAM)
66 |
67 | #endif // ASIO_IP_IMPL_ADDRESS_V6_HPP
68 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ssl/detail/read_op.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ssl/detail/read_op.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_SSL_DETAIL_READ_OP_HPP
12 | #define ASIO_SSL_DETAIL_READ_OP_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #include "asio/detail/buffer_sequence_adapter.hpp"
21 | #include "asio/ssl/detail/engine.hpp"
22 |
23 | #include "asio/detail/push_options.hpp"
24 |
25 | namespace asio {
26 | namespace ssl {
27 | namespace detail {
28 |
29 | template
30 | class read_op
31 | {
32 | public:
33 | read_op(const MutableBufferSequence& buffers)
34 | : buffers_(buffers)
35 | {
36 | }
37 |
38 | engine::want operator()(engine& eng,
39 | asio::error_code& ec,
40 | std::size_t& bytes_transferred) const
41 | {
42 | asio::mutable_buffer buffer =
43 | asio::detail::buffer_sequence_adapter::first(buffers_);
45 |
46 | return eng.read(buffer, ec, bytes_transferred);
47 | }
48 |
49 | template
50 | void call_handler(Handler& handler,
51 | const asio::error_code& ec,
52 | const std::size_t& bytes_transferred) const
53 | {
54 | handler(ec, bytes_transferred);
55 | }
56 |
57 | private:
58 | MutableBufferSequence buffers_;
59 | };
60 |
61 | } // namespace detail
62 | } // namespace ssl
63 | } // namespace asio
64 |
65 | #include "asio/detail/pop_options.hpp"
66 |
67 | #endif // ASIO_SSL_DETAIL_READ_OP_HPP
68 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ssl/detail/write_op.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ssl/detail/write_op.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_SSL_DETAIL_WRITE_OP_HPP
12 | #define ASIO_SSL_DETAIL_WRITE_OP_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #include "asio/detail/buffer_sequence_adapter.hpp"
21 | #include "asio/ssl/detail/engine.hpp"
22 |
23 | #include "asio/detail/push_options.hpp"
24 |
25 | namespace asio {
26 | namespace ssl {
27 | namespace detail {
28 |
29 | template
30 | class write_op
31 | {
32 | public:
33 | write_op(const ConstBufferSequence& buffers)
34 | : buffers_(buffers)
35 | {
36 | }
37 |
38 | engine::want operator()(engine& eng,
39 | asio::error_code& ec,
40 | std::size_t& bytes_transferred) const
41 | {
42 | asio::const_buffer buffer =
43 | asio::detail::buffer_sequence_adapter::first(buffers_);
45 |
46 | return eng.write(buffer, ec, bytes_transferred);
47 | }
48 |
49 | template
50 | void call_handler(Handler& handler,
51 | const asio::error_code& ec,
52 | const std::size_t& bytes_transferred) const
53 | {
54 | handler(ec, bytes_transferred);
55 | }
56 |
57 | private:
58 | ConstBufferSequence buffers_;
59 | };
60 |
61 | } // namespace detail
62 | } // namespace ssl
63 | } // namespace asio
64 |
65 | #include "asio/detail/pop_options.hpp"
66 |
67 | #endif // ASIO_SSL_DETAIL_WRITE_OP_HPP
68 |
--------------------------------------------------------------------------------
/pc_application/include/websocketpp/client.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014, Peter Thorson. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are met:
6 | * * Redistributions of source code must retain the above copyright
7 | * notice, this list of conditions and the following disclaimer.
8 | * * Redistributions in binary form must reproduce the above copyright
9 | * notice, this list of conditions and the following disclaimer in the
10 | * documentation and/or other materials provided with the distribution.
11 | * * Neither the name of the WebSocket++ Project nor the
12 | * names of its contributors may be used to endorse or promote products
13 | * derived from this software without specific prior written permission.
14 | *
15 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 | * ARE DISCLAIMED. IN NO EVENT SHALL PETER THORSON BE LIABLE FOR ANY
19 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 | *
26 | */
27 |
28 | #ifndef WEBSOCKETPP_CLIENT_HPP
29 | #define WEBSOCKETPP_CLIENT_HPP
30 |
31 | #include
32 |
33 | #endif //WEBSOCKETPP_CLIENT_HPP
34 |
--------------------------------------------------------------------------------
/pc_application/include/websocketpp/server.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014, Peter Thorson. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are met:
6 | * * Redistributions of source code must retain the above copyright
7 | * notice, this list of conditions and the following disclaimer.
8 | * * Redistributions in binary form must reproduce the above copyright
9 | * notice, this list of conditions and the following disclaimer in the
10 | * documentation and/or other materials provided with the distribution.
11 | * * Neither the name of the WebSocket++ Project nor the
12 | * names of its contributors may be used to endorse or promote products
13 | * derived from this software without specific prior written permission.
14 | *
15 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 | * ARE DISCLAIMED. IN NO EVENT SHALL PETER THORSON BE LIABLE FOR ANY
19 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 | *
26 | */
27 |
28 | #ifndef WEBSOCKETPP_SERVER_HPP
29 | #define WEBSOCKETPP_SERVER_HPP
30 |
31 | #include
32 |
33 | #endif //WEBSOCKETPP_SERVER_HPP
34 |
--------------------------------------------------------------------------------
/pc_application/include/asio/impl/thread_pool.ipp:
--------------------------------------------------------------------------------
1 | //
2 | // impl/thread_pool.ipp
3 | // ~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IMPL_THREAD_POOL_IPP
12 | #define ASIO_IMPL_THREAD_POOL_IPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/thread_pool.hpp"
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 |
25 | struct thread_pool::thread_function
26 | {
27 | detail::scheduler* scheduler_;
28 |
29 | void operator()()
30 | {
31 | asio::error_code ec;
32 | scheduler_->run(ec);
33 | }
34 | };
35 |
36 | thread_pool::thread_pool()
37 | : scheduler_(use_service(*this))
38 | {
39 | scheduler_.work_started();
40 |
41 | thread_function f = { &scheduler_ };
42 | std::size_t num_threads = detail::thread::hardware_concurrency() * 2;
43 | threads_.create_threads(f, num_threads ? num_threads : 2);
44 | }
45 |
46 | thread_pool::thread_pool(std::size_t num_threads)
47 | : scheduler_(use_service(*this))
48 | {
49 | scheduler_.work_started();
50 |
51 | thread_function f = { &scheduler_ };
52 | threads_.create_threads(f, num_threads);
53 | }
54 |
55 | thread_pool::~thread_pool()
56 | {
57 | stop();
58 | join();
59 | }
60 |
61 | void thread_pool::stop()
62 | {
63 | scheduler_.stop();
64 | }
65 |
66 | void thread_pool::join()
67 | {
68 | scheduler_.work_finished();
69 | threads_.join();
70 | }
71 |
72 | } // namespace asio
73 |
74 | #include "asio/detail/pop_options.hpp"
75 |
76 | #endif // ASIO_IMPL_THREAD_POOL_IPP
77 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/reactor_op.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/reactor_op.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_REACTOR_OP_HPP
12 | #define ASIO_DETAIL_REACTOR_OP_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/detail/operation.hpp"
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 | namespace detail {
25 |
26 | class reactor_op
27 | : public operation
28 | {
29 | public:
30 | // The error code to be passed to the completion handler.
31 | asio::error_code ec_;
32 |
33 | // The number of bytes transferred, to be passed to the completion handler.
34 | std::size_t bytes_transferred_;
35 |
36 | // Status returned by perform function. May be used to decide whether it is
37 | // worth performing more operations on the descriptor immediately.
38 | enum status { not_done, done, done_and_exhausted };
39 |
40 | // Perform the operation. Returns true if it is finished.
41 | status perform()
42 | {
43 | return perform_func_(this);
44 | }
45 |
46 | protected:
47 | typedef status (*perform_func_type)(reactor_op*);
48 |
49 | reactor_op(perform_func_type perform_func, func_type complete_func)
50 | : operation(complete_func),
51 | bytes_transferred_(0),
52 | perform_func_(perform_func)
53 | {
54 | }
55 |
56 | private:
57 | perform_func_type perform_func_;
58 | };
59 |
60 | } // namespace detail
61 | } // namespace asio
62 |
63 | #include "asio/detail/pop_options.hpp"
64 |
65 | #endif // ASIO_DETAIL_REACTOR_OP_HPP
66 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/gcc_sync_fenced_block.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/gcc_sync_fenced_block.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_GCC_SYNC_FENCED_BLOCK_HPP
12 | #define ASIO_DETAIL_GCC_SYNC_FENCED_BLOCK_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(__GNUC__) \
21 | && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)) \
22 | && !defined(__INTEL_COMPILER) && !defined(__ICL) \
23 | && !defined(__ICC) && !defined(__ECC) && !defined(__PATHSCALE__)
24 |
25 | #include "asio/detail/noncopyable.hpp"
26 |
27 | #include "asio/detail/push_options.hpp"
28 |
29 | namespace asio {
30 | namespace detail {
31 |
32 | class gcc_sync_fenced_block
33 | : private noncopyable
34 | {
35 | public:
36 | enum half_or_full_t { half, full };
37 |
38 | // Constructor.
39 | explicit gcc_sync_fenced_block(half_or_full_t)
40 | : value_(0)
41 | {
42 | __sync_lock_test_and_set(&value_, 1);
43 | }
44 |
45 | // Destructor.
46 | ~gcc_sync_fenced_block()
47 | {
48 | __sync_lock_release(&value_);
49 | }
50 |
51 | private:
52 | int value_;
53 | };
54 |
55 | } // namespace detail
56 | } // namespace asio
57 |
58 | #include "asio/detail/pop_options.hpp"
59 |
60 | #endif // defined(__GNUC__)
61 | // && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4))
62 | // && !defined(__INTEL_COMPILER) && !defined(__ICL)
63 | // && !defined(__ICC) && !defined(__ECC) && !defined(__PATHSCALE__)
64 |
65 | #endif // ASIO_DETAIL_GCC_SYNC_FENCED_BLOCK_HPP
66 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/handler_invoke_helpers.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/handler_invoke_helpers.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_HANDLER_INVOKE_HELPERS_HPP
12 | #define ASIO_DETAIL_HANDLER_INVOKE_HELPERS_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/detail/memory.hpp"
20 | #include "asio/handler_invoke_hook.hpp"
21 |
22 | #include "asio/detail/push_options.hpp"
23 |
24 | // Calls to asio_handler_invoke must be made from a namespace that does not
25 | // contain overloads of this function. The asio_handler_invoke_helpers
26 | // namespace is defined here for that purpose.
27 | namespace asio_handler_invoke_helpers {
28 |
29 | template
30 | inline void invoke(Function& function, Context& context)
31 | {
32 | #if !defined(ASIO_HAS_HANDLER_HOOKS)
33 | Function tmp(function);
34 | tmp();
35 | #else
36 | using asio::asio_handler_invoke;
37 | asio_handler_invoke(function, asio::detail::addressof(context));
38 | #endif
39 | }
40 |
41 | template
42 | inline void invoke(const Function& function, Context& context)
43 | {
44 | #if !defined(ASIO_HAS_HANDLER_HOOKS)
45 | Function tmp(function);
46 | tmp();
47 | #else
48 | using asio::asio_handler_invoke;
49 | asio_handler_invoke(function, asio::detail::addressof(context));
50 | #endif
51 | }
52 |
53 | } // namespace asio_handler_invoke_helpers
54 |
55 | #include "asio/detail/pop_options.hpp"
56 |
57 | #endif // ASIO_DETAIL_HANDLER_INVOKE_HELPERS_HPP
58 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/posix_mutex.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/posix_mutex.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_POSIX_MUTEX_HPP
12 | #define ASIO_DETAIL_POSIX_MUTEX_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_PTHREADS)
21 |
22 | #include
23 | #include "asio/detail/noncopyable.hpp"
24 | #include "asio/detail/scoped_lock.hpp"
25 |
26 | #include "asio/detail/push_options.hpp"
27 |
28 | namespace asio {
29 | namespace detail {
30 |
31 | class posix_event;
32 |
33 | class posix_mutex
34 | : private noncopyable
35 | {
36 | public:
37 | typedef asio::detail::scoped_lock scoped_lock;
38 |
39 | // Constructor.
40 | ASIO_DECL posix_mutex();
41 |
42 | // Destructor.
43 | ~posix_mutex()
44 | {
45 | ::pthread_mutex_destroy(&mutex_); // Ignore EBUSY.
46 | }
47 |
48 | // Lock the mutex.
49 | void lock()
50 | {
51 | (void)::pthread_mutex_lock(&mutex_); // Ignore EINVAL.
52 | }
53 |
54 | // Unlock the mutex.
55 | void unlock()
56 | {
57 | (void)::pthread_mutex_unlock(&mutex_); // Ignore EINVAL.
58 | }
59 |
60 | private:
61 | friend class posix_event;
62 | ::pthread_mutex_t mutex_;
63 | };
64 |
65 | } // namespace detail
66 | } // namespace asio
67 |
68 | #include "asio/detail/pop_options.hpp"
69 |
70 | #if defined(ASIO_HEADER_ONLY)
71 | # include "asio/detail/impl/posix_mutex.ipp"
72 | #endif // defined(ASIO_HEADER_ONLY)
73 |
74 | #endif // defined(ASIO_HAS_PTHREADS)
75 |
76 | #endif // ASIO_DETAIL_POSIX_MUTEX_HPP
77 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/impl/posix_event.ipp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/impl/posix_event.ipp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_IMPL_POSIX_EVENT_IPP
12 | #define ASIO_DETAIL_IMPL_POSIX_EVENT_IPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_HAS_PTHREADS)
21 |
22 | #include "asio/detail/posix_event.hpp"
23 | #include "asio/detail/throw_error.hpp"
24 | #include "asio/error.hpp"
25 |
26 | #include "asio/detail/push_options.hpp"
27 |
28 | namespace asio {
29 | namespace detail {
30 |
31 | posix_event::posix_event()
32 | : state_(0)
33 | {
34 | #if (defined(__MACH__) && defined(__APPLE__)) \
35 | || (defined(__ANDROID__) && (__ANDROID_API__ < 21))
36 | int error = ::pthread_cond_init(&cond_, 0);
37 | #else // (defined(__MACH__) && defined(__APPLE__))
38 | // || (defined(__ANDROID__) && (__ANDROID_API__ < 21))
39 | ::pthread_condattr_t attr;
40 | ::pthread_condattr_init(&attr);
41 | int error = ::pthread_condattr_setclock(&attr, CLOCK_MONOTONIC);
42 | if (error == 0)
43 | error = ::pthread_cond_init(&cond_, &attr);
44 | #endif // (defined(__MACH__) && defined(__APPLE__))
45 | // || (defined(__ANDROID__) && (__ANDROID_API__ < 21))
46 |
47 | asio::error_code ec(error,
48 | asio::error::get_system_category());
49 | asio::detail::throw_error(ec, "event");
50 | }
51 |
52 | } // namespace detail
53 | } // namespace asio
54 |
55 | #include "asio/detail/pop_options.hpp"
56 |
57 | #endif // defined(ASIO_HAS_PTHREADS)
58 |
59 | #endif // ASIO_DETAIL_IMPL_POSIX_EVENT_IPP
60 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/timer_queue_set.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/timer_queue_set.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_TIMER_QUEUE_SET_HPP
12 | #define ASIO_DETAIL_TIMER_QUEUE_SET_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/detail/timer_queue_base.hpp"
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 | namespace detail {
25 |
26 | class timer_queue_set
27 | {
28 | public:
29 | // Constructor.
30 | ASIO_DECL timer_queue_set();
31 |
32 | // Add a timer queue to the set.
33 | ASIO_DECL void insert(timer_queue_base* q);
34 |
35 | // Remove a timer queue from the set.
36 | ASIO_DECL void erase(timer_queue_base* q);
37 |
38 | // Determine whether all queues are empty.
39 | ASIO_DECL bool all_empty() const;
40 |
41 | // Get the wait duration in milliseconds.
42 | ASIO_DECL long wait_duration_msec(long max_duration) const;
43 |
44 | // Get the wait duration in microseconds.
45 | ASIO_DECL long wait_duration_usec(long max_duration) const;
46 |
47 | // Dequeue all ready timers.
48 | ASIO_DECL void get_ready_timers(op_queue& ops);
49 |
50 | // Dequeue all timers.
51 | ASIO_DECL void get_all_timers(op_queue& ops);
52 |
53 | private:
54 | timer_queue_base* first_;
55 | };
56 |
57 | } // namespace detail
58 | } // namespace asio
59 |
60 | #include "asio/detail/pop_options.hpp"
61 |
62 | #if defined(ASIO_HEADER_ONLY)
63 | # include "asio/detail/impl/timer_queue_set.ipp"
64 | #endif // defined(ASIO_HEADER_ONLY)
65 |
66 | #endif // ASIO_DETAIL_TIMER_QUEUE_SET_HPP
67 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ip/unicast.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ip/unicast.hpp
3 | // ~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IP_UNICAST_HPP
12 | #define ASIO_IP_UNICAST_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include
20 | #include "asio/ip/detail/socket_option.hpp"
21 |
22 | #include "asio/detail/push_options.hpp"
23 |
24 | namespace asio {
25 | namespace ip {
26 | namespace unicast {
27 |
28 | /// Socket option for time-to-live associated with outgoing unicast packets.
29 | /**
30 | * Implements the IPPROTO_IP/IP_UNICAST_TTL socket option.
31 | *
32 | * @par Examples
33 | * Setting the option:
34 | * @code
35 | * asio::ip::udp::socket socket(io_context);
36 | * ...
37 | * asio::ip::unicast::hops option(4);
38 | * socket.set_option(option);
39 | * @endcode
40 | *
41 | * @par
42 | * Getting the current option value:
43 | * @code
44 | * asio::ip::udp::socket socket(io_context);
45 | * ...
46 | * asio::ip::unicast::hops option;
47 | * socket.get_option(option);
48 | * int ttl = option.value();
49 | * @endcode
50 | *
51 | * @par Concepts:
52 | * GettableSocketOption, SettableSocketOption.
53 | */
54 | #if defined(GENERATING_DOCUMENTATION)
55 | typedef implementation_defined hops;
56 | #else
57 | typedef asio::ip::detail::socket_option::unicast_hops<
58 | ASIO_OS_DEF(IPPROTO_IP),
59 | ASIO_OS_DEF(IP_TTL),
60 | ASIO_OS_DEF(IPPROTO_IPV6),
61 | ASIO_OS_DEF(IPV6_UNICAST_HOPS)> hops;
62 | #endif
63 |
64 | } // namespace unicast
65 | } // namespace ip
66 | } // namespace asio
67 |
68 | #include "asio/detail/pop_options.hpp"
69 |
70 | #endif // ASIO_IP_UNICAST_HPP
71 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ssl/verify_mode.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ssl/verify_mode.hpp
3 | // ~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_SSL_VERIFY_MODE_HPP
12 | #define ASIO_SSL_VERIFY_MODE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/ssl/detail/openssl_types.hpp"
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 | namespace ssl {
25 |
26 | /// Bitmask type for peer verification.
27 | /**
28 | * Possible values are:
29 | *
30 | * @li @ref verify_none
31 | * @li @ref verify_peer
32 | * @li @ref verify_fail_if_no_peer_cert
33 | * @li @ref verify_client_once
34 | */
35 | typedef int verify_mode;
36 |
37 | #if defined(GENERATING_DOCUMENTATION)
38 | /// No verification.
39 | const int verify_none = implementation_defined;
40 |
41 | /// Verify the peer.
42 | const int verify_peer = implementation_defined;
43 |
44 | /// Fail verification if the peer has no certificate. Ignored unless
45 | /// @ref verify_peer is set.
46 | const int verify_fail_if_no_peer_cert = implementation_defined;
47 |
48 | /// Do not request client certificate on renegotiation. Ignored unless
49 | /// @ref verify_peer is set.
50 | const int verify_client_once = implementation_defined;
51 | #else
52 | const int verify_none = SSL_VERIFY_NONE;
53 | const int verify_peer = SSL_VERIFY_PEER;
54 | const int verify_fail_if_no_peer_cert = SSL_VERIFY_FAIL_IF_NO_PEER_CERT;
55 | const int verify_client_once = SSL_VERIFY_CLIENT_ONCE;
56 | #endif
57 |
58 | } // namespace ssl
59 | } // namespace asio
60 |
61 | #include "asio/detail/pop_options.hpp"
62 |
63 | #endif // ASIO_SSL_VERIFY_MODE_HPP
64 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/base_from_completion_cond.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/base_from_completion_cond.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_BASE_FROM_COMPLETION_COND_HPP
12 | #define ASIO_DETAIL_BASE_FROM_COMPLETION_COND_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/completion_condition.hpp"
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 | namespace detail {
25 |
26 | template
27 | class base_from_completion_cond
28 | {
29 | protected:
30 | explicit base_from_completion_cond(CompletionCondition completion_condition)
31 | : completion_condition_(completion_condition)
32 | {
33 | }
34 |
35 | std::size_t check_for_completion(
36 | const asio::error_code& ec,
37 | std::size_t total_transferred)
38 | {
39 | return detail::adapt_completion_condition_result(
40 | completion_condition_(ec, total_transferred));
41 | }
42 |
43 | private:
44 | CompletionCondition completion_condition_;
45 | };
46 |
47 | template <>
48 | class base_from_completion_cond
49 | {
50 | protected:
51 | explicit base_from_completion_cond(transfer_all_t)
52 | {
53 | }
54 |
55 | static std::size_t check_for_completion(
56 | const asio::error_code& ec,
57 | std::size_t total_transferred)
58 | {
59 | return transfer_all_t()(ec, total_transferred);
60 | }
61 | };
62 |
63 | } // namespace detail
64 | } // namespace asio
65 |
66 | #include "asio/detail/pop_options.hpp"
67 |
68 | #endif // ASIO_DETAIL_BASE_FROM_COMPLETION_COND_HPP
69 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ssl/verify_context.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ssl/verify_context.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_SSL_VERIFY_CONTEXT_HPP
12 | #define ASIO_SSL_VERIFY_CONTEXT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #include "asio/detail/noncopyable.hpp"
21 | #include "asio/ssl/detail/openssl_types.hpp"
22 |
23 | #include "asio/detail/push_options.hpp"
24 |
25 | namespace asio {
26 | namespace ssl {
27 |
28 | /// A simple wrapper around the X509_STORE_CTX type, used during verification of
29 | /// a peer certificate.
30 | /**
31 | * @note The verify_context does not own the underlying X509_STORE_CTX object.
32 | */
33 | class verify_context
34 | : private noncopyable
35 | {
36 | public:
37 | /// The native handle type of the verification context.
38 | typedef X509_STORE_CTX* native_handle_type;
39 |
40 | /// Constructor.
41 | explicit verify_context(native_handle_type handle)
42 | : handle_(handle)
43 | {
44 | }
45 |
46 | /// Get the underlying implementation in the native type.
47 | /**
48 | * This function may be used to obtain the underlying implementation of the
49 | * context. This is intended to allow access to context functionality that is
50 | * not otherwise provided.
51 | */
52 | native_handle_type native_handle()
53 | {
54 | return handle_;
55 | }
56 |
57 | private:
58 | // The underlying native implementation.
59 | native_handle_type handle_;
60 | };
61 |
62 | } // namespace ssl
63 | } // namespace asio
64 |
65 | #include "asio/detail/pop_options.hpp"
66 |
67 | #endif // ASIO_SSL_VERIFY_CONTEXT_HPP
68 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/timer_queue_base.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/timer_queue_base.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_TIMER_QUEUE_BASE_HPP
12 | #define ASIO_DETAIL_TIMER_QUEUE_BASE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/detail/noncopyable.hpp"
20 | #include "asio/detail/op_queue.hpp"
21 | #include "asio/detail/operation.hpp"
22 |
23 | #include "asio/detail/push_options.hpp"
24 |
25 | namespace asio {
26 | namespace detail {
27 |
28 | class timer_queue_base
29 | : private noncopyable
30 | {
31 | public:
32 | // Constructor.
33 | timer_queue_base() : next_(0) {}
34 |
35 | // Destructor.
36 | virtual ~timer_queue_base() {}
37 |
38 | // Whether there are no timers in the queue.
39 | virtual bool empty() const = 0;
40 |
41 | // Get the time to wait until the next timer.
42 | virtual long wait_duration_msec(long max_duration) const = 0;
43 |
44 | // Get the time to wait until the next timer.
45 | virtual long wait_duration_usec(long max_duration) const = 0;
46 |
47 | // Dequeue all ready timers.
48 | virtual void get_ready_timers(op_queue& ops) = 0;
49 |
50 | // Dequeue all timers.
51 | virtual void get_all_timers(op_queue& ops) = 0;
52 |
53 | private:
54 | friend class timer_queue_set;
55 |
56 | // Next timer queue in the set.
57 | timer_queue_base* next_;
58 | };
59 |
60 | template
61 | class timer_queue;
62 |
63 | } // namespace detail
64 | } // namespace asio
65 |
66 | #include "asio/detail/pop_options.hpp"
67 |
68 | #endif // ASIO_DETAIL_TIMER_QUEUE_BASE_HPP
69 |
--------------------------------------------------------------------------------
/pc_application/include/websocketpp/endpoint_base.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014, Peter Thorson. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are met:
6 | * * Redistributions of source code must retain the above copyright
7 | * notice, this list of conditions and the following disclaimer.
8 | * * Redistributions in binary form must reproduce the above copyright
9 | * notice, this list of conditions and the following disclaimer in the
10 | * documentation and/or other materials provided with the distribution.
11 | * * Neither the name of the WebSocket++ Project nor the
12 | * names of its contributors may be used to endorse or promote products
13 | * derived from this software without specific prior written permission.
14 | *
15 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 | * ARE DISCLAIMED. IN NO EVENT SHALL PETER THORSON BE LIABLE FOR ANY
19 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 | *
26 | */
27 |
28 | #ifndef WEBSOCKETPP_ENDPOINT_BASE_HPP
29 | #define WEBSOCKETPP_ENDPOINT_BASE_HPP
30 |
31 | namespace websocketpp {
32 |
33 | /// Stub for user supplied base class.
34 | class endpoint_base {};
35 |
36 | } // namespace websocketpp
37 |
38 | #endif // WEBSOCKETPP_ENDPOINT_BASE_HPP
39 |
--------------------------------------------------------------------------------
/pc_application/include/asio/ip/v6_only.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ip/v6_only.hpp
3 | // ~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_IP_V6_ONLY_HPP
12 | #define ASIO_IP_V6_ONLY_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include "asio/detail/socket_option.hpp"
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 | namespace ip {
25 |
26 | /// Socket option for determining whether an IPv6 socket supports IPv6
27 | /// communication only.
28 | /**
29 | * Implements the IPPROTO_IPV6/IP_V6ONLY socket option.
30 | *
31 | * @par Examples
32 | * Setting the option:
33 | * @code
34 | * asio::ip::tcp::socket socket(io_context);
35 | * ...
36 | * asio::ip::v6_only option(true);
37 | * socket.set_option(option);
38 | * @endcode
39 | *
40 | * @par
41 | * Getting the current option value:
42 | * @code
43 | * asio::ip::tcp::socket socket(io_context);
44 | * ...
45 | * asio::ip::v6_only option;
46 | * socket.get_option(option);
47 | * bool v6_only = option.value();
48 | * @endcode
49 | *
50 | * @par Concepts:
51 | * GettableSocketOption, SettableSocketOption.
52 | */
53 | #if defined(GENERATING_DOCUMENTATION)
54 | typedef implementation_defined v6_only;
55 | #elif defined(IPV6_V6ONLY)
56 | typedef asio::detail::socket_option::boolean<
57 | IPPROTO_IPV6, IPV6_V6ONLY> v6_only;
58 | #else
59 | typedef asio::detail::socket_option::boolean<
60 | asio::detail::custom_socket_option_level,
61 | asio::detail::always_fail_option> v6_only;
62 | #endif
63 |
64 | } // namespace ip
65 | } // namespace asio
66 |
67 | #include "asio/detail/pop_options.hpp"
68 |
69 | #endif // ASIO_IP_V6_ONLY_HPP
70 |
--------------------------------------------------------------------------------
/pc_application/include/asio/detail/win_tss_ptr.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/win_tss_ptr.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_DETAIL_WIN_TSS_PTR_HPP
12 | #define ASIO_DETAIL_WIN_TSS_PTR_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 |
20 | #if defined(ASIO_WINDOWS)
21 |
22 | #include "asio/detail/noncopyable.hpp"
23 | #include "asio/detail/socket_types.hpp"
24 |
25 | #include "asio/detail/push_options.hpp"
26 |
27 | namespace asio {
28 | namespace detail {
29 |
30 | // Helper function to create thread-specific storage.
31 | ASIO_DECL DWORD win_tss_ptr_create();
32 |
33 | template
34 | class win_tss_ptr
35 | : private noncopyable
36 | {
37 | public:
38 | // Constructor.
39 | win_tss_ptr()
40 | : tss_key_(win_tss_ptr_create())
41 | {
42 | }
43 |
44 | // Destructor.
45 | ~win_tss_ptr()
46 | {
47 | ::TlsFree(tss_key_);
48 | }
49 |
50 | // Get the value.
51 | operator T*() const
52 | {
53 | return static_cast(::TlsGetValue(tss_key_));
54 | }
55 |
56 | // Set the value.
57 | void operator=(T* value)
58 | {
59 | ::TlsSetValue(tss_key_, value);
60 | }
61 |
62 | private:
63 | // Thread-specific storage to allow unlocked access to determine whether a
64 | // thread is a member of the pool.
65 | DWORD tss_key_;
66 | };
67 |
68 | } // namespace detail
69 | } // namespace asio
70 |
71 | #include "asio/detail/pop_options.hpp"
72 |
73 | #if defined(ASIO_HEADER_ONLY)
74 | # include "asio/detail/impl/win_tss_ptr.ipp"
75 | #endif // defined(ASIO_HEADER_ONLY)
76 |
77 | #endif // defined(ASIO_WINDOWS)
78 |
79 | #endif // ASIO_DETAIL_WIN_TSS_PTR_HPP
80 |
--------------------------------------------------------------------------------
/pc_application/include/websocketpp/connection_base.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014, Peter Thorson. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are met:
6 | * * Redistributions of source code must retain the above copyright
7 | * notice, this list of conditions and the following disclaimer.
8 | * * Redistributions in binary form must reproduce the above copyright
9 | * notice, this list of conditions and the following disclaimer in the
10 | * documentation and/or other materials provided with the distribution.
11 | * * Neither the name of the WebSocket++ Project nor the
12 | * names of its contributors may be used to endorse or promote products
13 | * derived from this software without specific prior written permission.
14 | *
15 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 | * ARE DISCLAIMED. IN NO EVENT SHALL PETER THORSON BE LIABLE FOR ANY
19 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 | *
26 | */
27 |
28 | #ifndef WEBSOCKETPP_CONNECTION_BASE_HPP
29 | #define WEBSOCKETPP_CONNECTION_BASE_HPP
30 |
31 | namespace websocketpp {
32 |
33 | /// Stub for user supplied base class.
34 | class connection_base {};
35 |
36 | } // namespace websocketpp
37 |
38 | #endif // WEBSOCKETPP_CONNECTION_BASE_HPP
39 |
--------------------------------------------------------------------------------
/pc_application/include/asio/experimental/detached.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // experimental/detached.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef ASIO_EXPERIMENTAL_DETACHED_HPP
12 | #define ASIO_EXPERIMENTAL_DETACHED_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "asio/detail/config.hpp"
19 | #include
20 |
21 | #include "asio/detail/push_options.hpp"
22 |
23 | namespace asio {
24 | namespace experimental {
25 |
26 | /// Class used to specify that an asynchronous operation is detached.
27 | /**
28 |
29 | * The detached_t class is used to indicate that an asynchronous operation is
30 | * detached. That is, there is no completion handler waiting for the
31 | * operation's result. A detached_t object may be passed as a handler to an
32 | * asynchronous operation, typically using the special value
33 | * @c asio::experimental::detached. For example:
34 |
35 | * @code my_socket.async_send(my_buffer, asio::experimental::detached);
36 | * @endcode
37 | */
38 | class detached_t
39 | {
40 | public:
41 | /// Constructor.
42 | ASIO_CONSTEXPR detached_t()
43 | {
44 | }
45 | };
46 |
47 | /// A special value, similar to std::nothrow.
48 | /**
49 | * See the documentation for asio::experimental::detached_t for a usage
50 | * example.
51 | */
52 | #if defined(ASIO_HAS_CONSTEXPR) || defined(GENERATING_DOCUMENTATION)
53 | constexpr detached_t detached;
54 | #elif defined(ASIO_MSVC)
55 | __declspec(selectany) detached_t detached;
56 | #endif
57 |
58 | } // namespace experimental
59 | } // namespace asio
60 |
61 | #include "asio/detail/pop_options.hpp"
62 |
63 | #include "asio/experimental/impl/detached.hpp"
64 |
65 | #endif // ASIO_EXPERIMENTAL_DETACHED_HPP
66 |
--------------------------------------------------------------------------------