├── .appveyor.yml ├── .bazelrc ├── .clang-format ├── .doxygen ├── .gitignore ├── .travis.yml ├── BUILD.bazel ├── BUILD.gtest ├── CHANGELOG.md ├── CMakeLists.txt ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── WORKSPACE ├── assets └── images │ ├── tacopie_logger.png │ └── tacopie_logo.jpg ├── clang_format.sh ├── docs ├── html │ ├── annotated.html │ ├── bc_s.png │ ├── bdwn.png │ ├── classes.html │ ├── classtacopie_1_1io__service-members.html │ ├── classtacopie_1_1io__service.html │ ├── classtacopie_1_1logger-members.html │ ├── classtacopie_1_1logger.html │ ├── classtacopie_1_1logger.png │ ├── classtacopie_1_1logger__iface-members.html │ ├── classtacopie_1_1logger__iface.html │ ├── classtacopie_1_1logger__iface.png │ ├── classtacopie_1_1self__pipe-members.html │ ├── classtacopie_1_1self__pipe.html │ ├── classtacopie_1_1tacopie__error-members.html │ ├── classtacopie_1_1tacopie__error.html │ ├── classtacopie_1_1tacopie__error.png │ ├── classtacopie_1_1tcp__client-members.html │ ├── classtacopie_1_1tcp__client.html │ ├── classtacopie_1_1tcp__server-members.html │ ├── classtacopie_1_1tcp__server.html │ ├── classtacopie_1_1tcp__socket-members.html │ ├── classtacopie_1_1tcp__socket.html │ ├── classtacopie_1_1utils_1_1thread__pool-members.html │ ├── classtacopie_1_1utils_1_1thread__pool.html │ ├── closed.png │ ├── dir_09e761304027c904456130627fd4dcf5.html │ ├── dir_1619eefbac1db14eaf18adaf83ce3ccc.html │ ├── dir_38b559f7600c1df65fbc4b39f02eb3f8.html │ ├── dir_9a013686e2522dd95763481288c1f90f.html │ ├── doc.png │ ├── doxygen.css │ ├── doxygen.png │ ├── dynsections.js │ ├── error_8hpp.html │ ├── error_8hpp_source.html │ ├── files.html │ ├── folderclosed.png │ ├── folderopen.png │ ├── functions.html │ ├── functions_enum.html │ ├── functions_func.html │ ├── functions_type.html │ ├── functions_vars.html │ ├── globals.html │ ├── globals_defs.html │ ├── hierarchy.html │ ├── index.html │ ├── io__service_8hpp.html │ ├── io__service_8hpp_source.html │ ├── jquery.js │ ├── logger_8hpp.html │ ├── logger_8hpp_source.html │ ├── menu.js │ ├── menudata.js │ ├── namespacemembers.html │ ├── namespacemembers_func.html │ ├── namespacemembers_type.html │ ├── namespacemembers_vars.html │ ├── namespaces.html │ ├── namespacetacopie.html │ ├── namespacetacopie_1_1utils.html │ ├── nav_f.png │ ├── nav_g.png │ ├── nav_h.png │ ├── open.png │ ├── search │ │ ├── all_0.html │ │ ├── all_0.js │ │ ├── all_1.html │ │ ├── all_1.js │ │ ├── all_10.html │ │ ├── all_10.js │ │ ├── all_11.html │ │ ├── all_11.js │ │ ├── all_12.html │ │ ├── all_12.js │ │ ├── all_13.html │ │ ├── all_13.js │ │ ├── all_2.html │ │ ├── all_2.js │ │ ├── all_3.html │ │ ├── all_3.js │ │ ├── all_4.html │ │ ├── all_4.js │ │ ├── all_5.html │ │ ├── all_5.js │ │ ├── all_6.html │ │ ├── all_6.js │ │ ├── all_7.html │ │ ├── all_7.js │ │ ├── all_8.html │ │ ├── all_8.js │ │ ├── all_9.html │ │ ├── all_9.js │ │ ├── all_a.html │ │ ├── all_a.js │ │ ├── all_b.html │ │ ├── all_b.js │ │ ├── all_c.html │ │ ├── all_c.js │ │ ├── all_d.html │ │ ├── all_d.js │ │ ├── all_e.html │ │ ├── all_e.js │ │ ├── all_f.html │ │ ├── all_f.js │ │ ├── classes_0.html │ │ ├── classes_0.js │ │ ├── classes_1.html │ │ ├── classes_1.js │ │ ├── classes_2.html │ │ ├── classes_2.js │ │ ├── classes_3.html │ │ ├── classes_3.js │ │ ├── classes_4.html │ │ ├── classes_4.js │ │ ├── classes_5.html │ │ ├── classes_5.js │ │ ├── close.png │ │ ├── defines_0.html │ │ ├── defines_0.js │ │ ├── enums_0.html │ │ ├── enums_0.js │ │ ├── enums_1.html │ │ ├── enums_1.js │ │ ├── enumvalues_0.html │ │ ├── enumvalues_0.js │ │ ├── enumvalues_1.html │ │ ├── enumvalues_1.js │ │ ├── enumvalues_2.html │ │ ├── enumvalues_2.js │ │ ├── enumvalues_3.html │ │ ├── enumvalues_3.js │ │ ├── enumvalues_4.html │ │ ├── enumvalues_4.js │ │ ├── enumvalues_5.html │ │ ├── enumvalues_5.js │ │ ├── enumvalues_6.html │ │ ├── enumvalues_6.js │ │ ├── files_0.html │ │ ├── files_0.js │ │ ├── files_1.html │ │ ├── files_1.js │ │ ├── files_2.html │ │ ├── files_2.js │ │ ├── files_3.html │ │ ├── files_3.js │ │ ├── files_4.html │ │ ├── files_4.js │ │ ├── functions_0.html │ │ ├── functions_0.js │ │ ├── functions_1.html │ │ ├── functions_1.js │ │ ├── functions_10.html │ │ ├── functions_10.js │ │ ├── functions_11.html │ │ ├── functions_11.js │ │ ├── functions_2.html │ │ ├── functions_2.js │ │ ├── functions_3.html │ │ ├── functions_3.js │ │ ├── functions_4.html │ │ ├── functions_4.js │ │ ├── functions_5.html │ │ ├── functions_5.js │ │ ├── functions_6.html │ │ ├── functions_6.js │ │ ├── functions_7.html │ │ ├── functions_7.js │ │ ├── functions_8.html │ │ ├── functions_8.js │ │ ├── functions_9.html │ │ ├── functions_9.js │ │ ├── functions_a.html │ │ ├── functions_a.js │ │ ├── functions_b.html │ │ ├── functions_b.js │ │ ├── functions_c.html │ │ ├── functions_c.js │ │ ├── functions_d.html │ │ ├── functions_d.js │ │ ├── functions_e.html │ │ ├── functions_e.js │ │ ├── functions_f.html │ │ ├── functions_f.js │ │ ├── mag_sel.png │ │ ├── namespaces_0.html │ │ ├── namespaces_0.js │ │ ├── nomatches.html │ │ ├── search.css │ │ ├── search.js │ │ ├── search_l.png │ │ ├── search_m.png │ │ ├── search_r.png │ │ ├── searchdata.js │ │ ├── typedefs_0.html │ │ ├── typedefs_0.js │ │ ├── typedefs_1.html │ │ ├── typedefs_1.js │ │ ├── typedefs_2.html │ │ ├── typedefs_2.js │ │ ├── typedefs_3.html │ │ ├── typedefs_3.js │ │ ├── typedefs_4.html │ │ ├── typedefs_4.js │ │ ├── typedefs_5.html │ │ ├── typedefs_5.js │ │ ├── variables_0.html │ │ ├── variables_0.js │ │ ├── variables_1.html │ │ ├── variables_1.js │ │ ├── variables_2.html │ │ ├── variables_2.js │ │ ├── variables_3.html │ │ ├── variables_3.js │ │ ├── variables_4.html │ │ ├── variables_4.js │ │ ├── variables_5.html │ │ ├── variables_5.js │ │ ├── variables_6.html │ │ └── variables_6.js │ ├── self__pipe_8hpp.html │ ├── self__pipe_8hpp_source.html │ ├── splitbar.png │ ├── structtacopie_1_1io__service_1_1tracked__socket-members.html │ ├── structtacopie_1_1io__service_1_1tracked__socket.html │ ├── structtacopie_1_1tcp__client_1_1read__request-members.html │ ├── structtacopie_1_1tcp__client_1_1read__request.html │ ├── structtacopie_1_1tcp__client_1_1read__result-members.html │ ├── structtacopie_1_1tcp__client_1_1read__result.html │ ├── structtacopie_1_1tcp__client_1_1write__request-members.html │ ├── structtacopie_1_1tcp__client_1_1write__request.html │ ├── structtacopie_1_1tcp__client_1_1write__result-members.html │ ├── structtacopie_1_1tcp__client_1_1write__result.html │ ├── sync_off.png │ ├── sync_on.png │ ├── tab_a.png │ ├── tab_b.png │ ├── tab_h.png │ ├── tab_s.png │ ├── tabs.css │ ├── tacopie_logo.jpg │ ├── tcp__client_8hpp.html │ ├── tcp__client_8hpp_source.html │ ├── tcp__server_8hpp.html │ ├── tcp__server_8hpp_source.html │ ├── tcp__socket_8hpp.html │ ├── tcp__socket_8hpp_source.html │ ├── thread__pool_8hpp.html │ ├── thread__pool_8hpp_source.html │ ├── typedefs_8hpp.html │ └── typedefs_8hpp_source.html └── latex │ ├── Makefile │ ├── annotated.tex │ ├── classtacopie_1_1io__service.tex │ ├── classtacopie_1_1logger.eps │ ├── classtacopie_1_1logger.pdf │ ├── classtacopie_1_1logger.tex │ ├── classtacopie_1_1logger__iface.eps │ ├── classtacopie_1_1logger__iface.pdf │ ├── classtacopie_1_1logger__iface.tex │ ├── classtacopie_1_1self__pipe.tex │ ├── classtacopie_1_1tacopie__error.eps │ ├── classtacopie_1_1tacopie__error.pdf │ ├── classtacopie_1_1tacopie__error.tex │ ├── classtacopie_1_1tcp__client.tex │ ├── classtacopie_1_1tcp__server.tex │ ├── classtacopie_1_1tcp__socket.tex │ ├── classtacopie_1_1utils_1_1thread__pool.tex │ ├── dir_09e761304027c904456130627fd4dcf5.tex │ ├── dir_1619eefbac1db14eaf18adaf83ce3ccc.tex │ ├── dir_38b559f7600c1df65fbc4b39f02eb3f8.tex │ ├── dir_9a013686e2522dd95763481288c1f90f.tex │ ├── doxygen.sty │ ├── error_8hpp.tex │ ├── files.tex │ ├── hierarchy.tex │ ├── io__service_8hpp.tex │ ├── logger_8hpp.tex │ ├── namespaces.tex │ ├── namespacetacopie.tex │ ├── namespacetacopie_1_1utils.tex │ ├── refman.tex │ ├── self__pipe_8hpp.tex │ ├── structtacopie_1_1io__service_1_1tracked__socket.tex │ ├── structtacopie_1_1tcp__client_1_1read__request.tex │ ├── structtacopie_1_1tcp__client_1_1read__result.tex │ ├── structtacopie_1_1tcp__client_1_1write__request.tex │ ├── structtacopie_1_1tcp__client_1_1write__result.tex │ ├── tacopie_logo.jpg │ ├── tcp__client_8hpp.tex │ ├── tcp__server_8hpp.tex │ ├── tcp__socket_8hpp.tex │ ├── thread__pool_8hpp.tex │ └── typedefs_8hpp.tex ├── examples ├── CMakeLists.txt ├── logger.cpp ├── tcp_client.cpp └── tcp_server.cpp ├── includes └── tacopie │ ├── network │ ├── io_service.hpp │ ├── self_pipe.hpp │ ├── tcp_client.hpp │ ├── tcp_server.hpp │ └── tcp_socket.hpp │ ├── tacopie │ └── utils │ ├── error.hpp │ ├── logger.hpp │ ├── thread_pool.hpp │ └── typedefs.hpp ├── msvc15 ├── tacopie.sln ├── tacopie.vcxproj └── tacopie.vcxproj.filters ├── sources ├── network │ ├── common │ │ └── tcp_socket.cpp │ ├── io_service.cpp │ ├── tcp_client.cpp │ ├── tcp_server.cpp │ ├── unix │ │ ├── unix_self_pipe.cpp │ │ └── unix_tcp_socket.cpp │ └── windows │ │ ├── windows_self_pipe.cpp │ │ └── windows_tcp_socket.cpp └── utils │ ├── error.cpp │ ├── logger.cpp │ └── thread_pool.cpp ├── tacopie.pc.in └── tests ├── CMakeLists.txt └── sources └── main.cpp /.appveyor.yml: -------------------------------------------------------------------------------- 1 | # Notes: 2 | # - Minimal appveyor.yml file is an empty file. All sections are optional. 3 | # - Indent each level of configuration with 2 spaces. Do not use tabs! 4 | # - All section names are case-sensitive. 5 | # - Section names should be unique on each level. 6 | 7 | #---------------------------------# 8 | # general configuration # 9 | #---------------------------------# 10 | 11 | # version format 12 | version: 1.0.{build} 13 | 14 | #---------------------------------# 15 | # environment configuration # 16 | #---------------------------------# 17 | 18 | # Build worker image (VM template) 19 | image: Visual Studio 2017 20 | 21 | platform: 22 | - x64 23 | - x86 24 | 25 | configuration: 26 | - Debug 27 | - Release 28 | -------------------------------------------------------------------------------- /.bazelrc: -------------------------------------------------------------------------------- 1 | build --cxxopt='--std=c++14' 2 | build --cxxopt='-Wall' 3 | build --cxxopt='-Wextra' 4 | # Disable logging by default. 5 | build --cxxopt='-D__TACOPIE_LOGGING_ENABLED=0' 6 | build:opt --cxxopt='-O3' 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files 2 | *.slo 3 | *.lo 4 | *.o 5 | *.obj 6 | 7 | # Precompiled Headers 8 | *.gch 9 | *.pch 10 | 11 | # Compiled Dynamic libraries 12 | *.so 13 | *.dylib 14 | *.dll 15 | 16 | # Fortran module files 17 | *.mod 18 | 19 | # Compiled Static libraries 20 | *.lai 21 | *.la 22 | *.a 23 | *.lib 24 | 25 | build 26 | deps 27 | target 28 | 29 | # Executables 30 | *.exe 31 | *.out 32 | *.app 33 | .vs/ 34 | *.sln 35 | *.vcxproj 36 | *.suo 37 | *.user 38 | *.filters 39 | *.VC.db 40 | *.opendb 41 | .gitignore 42 | .project 43 | cmake_install.cmake 44 | 45 | CMakeCache.txt 46 | CMakeFiles/ 47 | Release/ 48 | Debug/ 49 | 50 | # bazel 51 | bazel-* 52 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: cpp 2 | 3 | compiler: 4 | - clang 5 | - gcc 6 | 7 | cache: ccache 8 | 9 | os: 10 | - linux 11 | - osx 12 | 13 | addons: 14 | apt: 15 | sources: 16 | - ubuntu-toolchain-r-test 17 | packages: 18 | - gcc-4.8 19 | - g++-4.8 20 | - clang 21 | 22 | before_install: 23 | - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi 24 | - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install llvm --with-clang; fi 25 | 26 | install: 27 | - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install ccache; fi 28 | - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export PATH="/usr/local/opt/ccache/libexec:$PATH"; fi 29 | - if [[ "$TRAVIS_OS_NAME" != "osx" && "$CXX" = "g++" ]]; then export CXX="g++-4.8" CC="gcc-4.8"; fi 30 | 31 | script: mkdir build && cd build && cmake .. -DBUILD_TESTS=true -DBUILD_EXAMPLES=true && make && ./bin/tacopie_tests 32 | -------------------------------------------------------------------------------- /BUILD.bazel: -------------------------------------------------------------------------------- 1 | cc_library( 2 | name = "tacopie", 3 | srcs = [ 4 | "sources/network/common/tcp_socket.cpp", 5 | "sources/network/io_service.cpp", 6 | "sources/network/tcp_client.cpp", 7 | "sources/network/tcp_server.cpp", 8 | "sources/network/unix/unix_self_pipe.cpp", 9 | "sources/network/unix/unix_tcp_socket.cpp", 10 | "sources/network/windows/windows_self_pipe.cpp", 11 | "sources/network/windows/windows_tcp_socket.cpp", 12 | "sources/utils/error.cpp", 13 | "sources/utils/logger.cpp", 14 | "sources/utils/thread_pool.cpp", 15 | ], 16 | hdrs = [ 17 | "includes/tacopie/network/io_service.hpp", 18 | "includes/tacopie/network/self_pipe.hpp", 19 | "includes/tacopie/network/tcp_client.hpp", 20 | "includes/tacopie/network/tcp_server.hpp", 21 | "includes/tacopie/network/tcp_socket.hpp", 22 | "includes/tacopie/tacopie", 23 | "includes/tacopie/utils/error.hpp", 24 | "includes/tacopie/utils/logger.hpp", 25 | "includes/tacopie/utils/thread_pool.hpp", 26 | "includes/tacopie/utils/typedefs.hpp", 27 | ], 28 | strip_include_prefix = "includes", 29 | visibility = ["//visibility:public"], 30 | ) 31 | 32 | cc_binary( 33 | name = "example_logger", 34 | srcs = ["examples/logger.cpp"], 35 | # This example is pointless if logging is disabled, so enable it. 36 | copts = ["-D__TACOPIE_LOGGING_ENABLED=1"], 37 | deps = ["tacopie"], 38 | ) 39 | 40 | cc_binary( 41 | name = "example_tcp_client", 42 | srcs = ["examples/tcp_client.cpp"], 43 | # TODO (steple): For windows, link ws2_32 instead. 44 | linkopts = ["-lpthread"], 45 | deps = ["tacopie"], 46 | ) 47 | 48 | cc_binary( 49 | name = "example_tcp_server", 50 | srcs = ["examples/tcp_server.cpp"], 51 | # TODO (steple): For windows, link ws2_32 instead. 52 | linkopts = ["-lpthread"], 53 | deps = ["tacopie"], 54 | ) 55 | 56 | # Note: Basic infrastructure for gtest-based tests exists, but no tests are 57 | # actually implemented (this will always pass). 58 | cc_test( 59 | name = "test", 60 | srcs = ["tests/sources/main.cpp"], 61 | deps = ["@gtest"], 62 | ) 63 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | ## 1. Fork the repository 3 | ## 2. Clone the forked repository 4 | ## 3. Create a new branch 5 | ```bash 6 | # Create a new branch 7 | git checkout -b my_new_branch 8 | ``` 9 | 10 | ## 4. Build the entire library 11 | ```bash 12 | # Install the development dependencies (GoogleTest) 13 | ./install_deps.sh 14 | # Build the entire library as well as the tests 15 | mkdir build 16 | cd build 17 | cmake .. -DBUILD_TESTS=true -DBUILD_EXAMPLES=true -DLOGGING_ENABLED=1 18 | make 19 | # Run tests and examples 20 | ./bin/tacopie_tests 21 | ./bin/tacopie_example 22 | ``` 23 | 24 | ## 5. Code your changes 25 | Develop your new features or bugfix. 26 | 27 | Please: 28 | * follow the same coding style and convention used in the existing code 29 | * the library, examples and tests are all still compiling 30 | * ensure that all the tests are passing on your computer at every step of the development 31 | * add some tests if you are developing new features 32 | 33 | You also need to use the formatting tool so that your code has the same coding style as the existing code: 34 | 35 | ```bash 36 | # Use the formatting tool 37 | ./clang-format 38 | ``` 39 | 40 | ## 7. Commit your changes 41 | ```bash 42 | git add . 43 | git commit -m 'some description of the changes' 44 | ``` 45 | You can do as many commits as you want: we will squash them into a single commit. 46 | 47 | ## 8. Before the Pull Request 48 | Before submitting the pull request, ensure that: 49 | * your feature works as expected and is tested 50 | * all tests pass on both your computer and the [Travis](travis-ci.org/Cylix/tacopie) 51 | * you have used the formatting tool 52 | 53 | ## 9. Submit your Pull Request on Github 54 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016-2017 Simon Ninon 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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Important 2 | 3 | Please be advised that this library **is no longer maintained**. 4 | 5 | I have maintained this library for over 2 years, but I do not have enough time to provide a reliable support and continuous development for any longer. 6 | 7 | Any existing or new issues will **not** be treated and I do not guarantee to merge any new pull request. 8 | 9 | If anyone is willing to take over this project, feel free to fork this project and message me to add a link to your fork in this README. 10 | 11 |

12 | 13 |

14 | 15 | # Taco Pie [![Build Status](https://travis-ci.org/Cylix/tacopie.svg?branch=master)](https://travis-ci.org/Cylix/tacopie) [![Build status](https://ci.appveyor.com/api/projects/status/lvy4ovvr87c5jvgn?svg=true)](https://ci.appveyor.com/project/Cylix/tacopie) 16 | `tacopie` is a multi-platform TCP Client & Server C++11 library. 17 | 18 | ## Requirement 19 | `tacopie` has **no dependency**. Its only requirement is `C++11`. 20 | 21 | ## Example 22 | `tacopie::tcp_server`: 23 | ```cpp 24 | tacopie::tcp_server s; 25 | s.start("127.0.0.1", 3001, [] (const std::shared_ptr& client) -> bool { 26 | std::cout << "New client" << std::endl; 27 | return true; 28 | }); 29 | ``` 30 | `tacopie::tcp_server` [full documentation](https://github.com/Cylix/tacopie/wiki/TCP-Server) and [detailed example](https://github.com/Cylix/tacopie/wiki/Examples#tcp-server). 31 | 32 | `tacopie::tcp_client`: 33 | ```cpp 34 | tacopie::tcp_client client; 35 | client.connect("127.0.0.1", 3001); 36 | client.async_read({ 1024, [&] (tacopie::tcp_client::read_result& res) { 37 | client.async_write({ res.buffer, nullptr }); 38 | } }); 39 | ``` 40 | `tacopie::tcp_client` [full documentation](https://github.com/Cylix/tacopie/wiki/TCP-Client) and [detailed example](https://github.com/Cylix/tacopie/wiki/Examples#tcp-client). 41 | 42 | ## Wiki 43 | A [Wiki](https://github.com/Cylix/tacopie/wiki) is available and provides full documentation for the library as well as [installation explanations](https://github.com/Cylix/tacopie/wiki/Installation). 44 | 45 | # Doxygen 46 | A [Doxygen documentation](https://cylix.github.io/tacopie/html/index.html) is available and provides full API documentation for the library. 47 | 48 | ## License 49 | `tacopie` is under [MIT License](LICENSE). 50 | 51 | ## Contributing 52 | Please refer to [CONTRIBUTING.md](CONTRIBUTING.md). 53 | 54 | ## Author 55 | [Simon Ninon](http://simon-ninon.fr) 56 | -------------------------------------------------------------------------------- /WORKSPACE: -------------------------------------------------------------------------------- 1 | new_http_archive( 2 | name = "gtest", 3 | build_file = "BUILD.gtest", 4 | sha256 = "f3ed3b58511efd272eb074a3a6d6fb79d7c2e6a0e374323d1e6bcbcc1ef141bf", 5 | strip_prefix = "googletest-release-1.8.0", 6 | url = "https://github.com/google/googletest/archive/release-1.8.0.zip", 7 | ) 8 | -------------------------------------------------------------------------------- /assets/images/tacopie_logger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/assets/images/tacopie_logger.png -------------------------------------------------------------------------------- /assets/images/tacopie_logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/assets/images/tacopie_logo.jpg -------------------------------------------------------------------------------- /clang_format.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | find sources includes tests examples \( -name '*.cpp' -o -name '*.hpp' -o -name '*.ipp' -o -name '*.c' -o -name '*.h' \) -exec clang-format -i {} ';' 4 | -------------------------------------------------------------------------------- /docs/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/bc_s.png -------------------------------------------------------------------------------- /docs/html/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/bdwn.png -------------------------------------------------------------------------------- /docs/html/classtacopie_1_1logger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/classtacopie_1_1logger.png -------------------------------------------------------------------------------- /docs/html/classtacopie_1_1logger__iface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/classtacopie_1_1logger__iface.png -------------------------------------------------------------------------------- /docs/html/classtacopie_1_1tacopie__error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/classtacopie_1_1tacopie__error.png -------------------------------------------------------------------------------- /docs/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/closed.png -------------------------------------------------------------------------------- /docs/html/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/doc.png -------------------------------------------------------------------------------- /docs/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/doxygen.png -------------------------------------------------------------------------------- /docs/html/folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/folderclosed.png -------------------------------------------------------------------------------- /docs/html/folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/folderopen.png -------------------------------------------------------------------------------- /docs/html/menu.js: -------------------------------------------------------------------------------- 1 | function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { 2 | function makeTree(data,relPath) { 3 | var result=''; 4 | if ('children' in data) { 5 | result+=''; 12 | } 13 | return result; 14 | } 15 | 16 | $('#main-nav').append(makeTree(menudata,relPath)); 17 | $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); 18 | if (searchEnabled) { 19 | if (serverSide) { 20 | $('#main-menu').append('
  • '); 21 | } else { 22 | $('#main-menu').append('
  • '); 23 | } 24 | } 25 | $('#main-menu').smartmenus(); 26 | } 27 | -------------------------------------------------------------------------------- /docs/html/menudata.js: -------------------------------------------------------------------------------- 1 | var menudata={children:[ 2 | {text:"Main Page",url:"index.html"}, 3 | {text:"Classes",url:"annotated.html",children:[ 4 | {text:"Class List",url:"annotated.html"}, 5 | {text:"Class Index",url:"classes.html"}, 6 | {text:"Class Hierarchy",url:"hierarchy.html"}, 7 | {text:"Class Members",url:"functions.html",children:[ 8 | {text:"All",url:"functions.html",children:[ 9 | {text:"a",url:"functions.html#index_a"}, 10 | {text:"b",url:"functions.html#index_b"}, 11 | {text:"c",url:"functions.html#index_c"}, 12 | {text:"d",url:"functions.html#index_d"}, 13 | {text:"e",url:"functions.html#index_e"}, 14 | {text:"g",url:"functions.html#index_g"}, 15 | {text:"i",url:"functions.html#index_i"}, 16 | {text:"l",url:"functions.html#index_l"}, 17 | {text:"n",url:"functions.html#index_n"}, 18 | {text:"o",url:"functions.html#index_o"}, 19 | {text:"r",url:"functions.html#index_r"}, 20 | {text:"s",url:"functions.html#index_s"}, 21 | {text:"t",url:"functions.html#index_t"}, 22 | {text:"u",url:"functions.html#index_u"}, 23 | {text:"w",url:"functions.html#index_w"}, 24 | {text:"~",url:"functions.html#index_0x7e"}]}, 25 | {text:"Functions",url:"functions_func.html",children:[ 26 | {text:"a",url:"functions_func.html#index_a"}, 27 | {text:"b",url:"functions_func.html#index_b"}, 28 | {text:"c",url:"functions_func.html#index_c"}, 29 | {text:"d",url:"functions_func.html#index_d"}, 30 | {text:"e",url:"functions_func.html#index_e"}, 31 | {text:"g",url:"functions_func.html#index_g"}, 32 | {text:"i",url:"functions_func.html#index_i"}, 33 | {text:"l",url:"functions_func.html#index_l"}, 34 | {text:"n",url:"functions_func.html#index_n"}, 35 | {text:"o",url:"functions_func.html#index_o"}, 36 | {text:"r",url:"functions_func.html#index_r"}, 37 | {text:"s",url:"functions_func.html#index_s"}, 38 | {text:"t",url:"functions_func.html#index_t"}, 39 | {text:"u",url:"functions_func.html#index_u"}, 40 | {text:"w",url:"functions_func.html#index_w"}, 41 | {text:"~",url:"functions_func.html#index_0x7e"}]}, 42 | {text:"Variables",url:"functions_vars.html"}, 43 | {text:"Typedefs",url:"functions_type.html"}, 44 | {text:"Enumerations",url:"functions_enum.html"}]}]}, 45 | {text:"Files",url:"files.html",children:[ 46 | {text:"File List",url:"files.html"}]}]} 47 | -------------------------------------------------------------------------------- /docs/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/nav_f.png -------------------------------------------------------------------------------- /docs/html/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/nav_g.png -------------------------------------------------------------------------------- /docs/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/nav_h.png -------------------------------------------------------------------------------- /docs/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/open.png -------------------------------------------------------------------------------- /docs/html/search/all_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['accept',['accept',['../classtacopie_1_1tcp__socket.html#af5113c9332f83643cdaaf15c3f137760',1,'tacopie::tcp_socket']]], 4 | ['add_5ftask',['add_task',['../classtacopie_1_1utils_1_1thread__pool.html#a450bee2b7b2cd0aa0bc3935c8adc9ace',1,'tacopie::utils::thread_pool']]], 5 | ['async_5fread',['async_read',['../classtacopie_1_1tcp__client.html#a120e3ec2902acc902f7a0b27074bda6b',1,'tacopie::tcp_client']]], 6 | ['async_5fread_5fcallback',['async_read_callback',['../structtacopie_1_1tcp__client_1_1read__request.html#a3d495e82e38efebf763f595392b0db46',1,'tacopie::tcp_client::read_request']]], 7 | ['async_5fread_5fcallback_5ft',['async_read_callback_t',['../classtacopie_1_1tcp__client.html#acdf9dea8bac6c56f7b04ce38b9432322',1,'tacopie::tcp_client']]], 8 | ['async_5fwrite',['async_write',['../classtacopie_1_1tcp__client.html#a2304ed6d4ca0cbc74e6aa72d3e92b76a',1,'tacopie::tcp_client']]], 9 | ['async_5fwrite_5fcallback',['async_write_callback',['../structtacopie_1_1tcp__client_1_1write__request.html#a04fd3e5484ba322d0112024bf8823623',1,'tacopie::tcp_client::write_request']]], 10 | ['async_5fwrite_5fcallback_5ft',['async_write_callback_t',['../classtacopie_1_1tcp__client.html#ad48b8c8dff8a77490eb2e3e802c82b97',1,'tacopie::tcp_client']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/html/search/all_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['bind',['bind',['../classtacopie_1_1tcp__socket.html#a910a183d7c45483f1cdacd10a1896155',1,'tacopie::tcp_socket']]], 4 | ['buffer',['buffer',['../structtacopie_1_1tcp__client_1_1read__result.html#a50d22ea3a43d085d88d54bbf59a357dc',1,'tacopie::tcp_client::read_result::buffer()'],['../structtacopie_1_1tcp__client_1_1write__request.html#a4ee0c159b630c14f81d6b6d7d4b4e826',1,'tacopie::tcp_client::write_request::buffer()']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/all_10.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_11.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_11.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['unknown',['UNKNOWN',['../classtacopie_1_1tcp__socket.html#ad8376e85df96ab9523f5d079ed7172aba696b031073e74bf2cb98e5ef201d4aa3',1,'tacopie::tcp_socket']]], 4 | ['untrack',['untrack',['../classtacopie_1_1io__service.html#a9a7672f0894a0fc1a3e6c593ca6df22c',1,'tacopie::io_service']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/all_12.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_12.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['wait_5ffor_5fremoval',['wait_for_removal',['../classtacopie_1_1io__service.html#aa57db619baeaa6db0aeb22e67b895cd7',1,'tacopie::io_service']]], 4 | ['warn',['warn',['../classtacopie_1_1logger__iface.html#ab96d8f6bc2e2b514c7ceec4c856f8921',1,'tacopie::logger_iface::warn()'],['../classtacopie_1_1logger.html#aa4cd2ffc3f4b9d096a35c5c2aa8e0970',1,'tacopie::logger::warn(const std::string &msg, const std::string &file, std::size_t line)'],['../classtacopie_1_1logger.html#ae7dd235972bbf86a017fc39b3af80efea1ea4c3ab05ee0c6d4de30740443769cb',1,'tacopie::logger::warn()'],['../namespacetacopie.html#ac0a2f06f2f9fb6ded97b659d8573c25d',1,'tacopie::warn()']]], 5 | ['wr_5fcallback',['wr_callback',['../structtacopie_1_1io__service_1_1tracked__socket.html#ae46fc6ee7102027316eceff64116ba9d',1,'tacopie::io_service::tracked_socket']]], 6 | ['write_5frequest',['write_request',['../structtacopie_1_1tcp__client_1_1write__request.html',1,'tacopie::tcp_client']]], 7 | ['write_5fresult',['write_result',['../structtacopie_1_1tcp__client_1_1write__result.html',1,'tacopie::tcp_client']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/html/search/all_13.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_13.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_7eio_5fservice',['~io_service',['../classtacopie_1_1io__service.html#ae423d7e4b13f07fe41fb051345ffbf8d',1,'tacopie::io_service']]], 4 | ['_7elogger',['~logger',['../classtacopie_1_1logger.html#af5c89b85935dbe3b4da3199247d50398',1,'tacopie::logger']]], 5 | ['_7elogger_5fiface',['~logger_iface',['../classtacopie_1_1logger__iface.html#a562dcc605198ca90904ba21fa98eb6ea',1,'tacopie::logger_iface']]], 6 | ['_7eself_5fpipe',['~self_pipe',['../classtacopie_1_1self__pipe.html#a10a6c4b0d67a4a14abea397a05cee54c',1,'tacopie::self_pipe']]], 7 | ['_7etacopie_5ferror',['~tacopie_error',['../classtacopie_1_1tacopie__error.html#a5bf6b0967f7f4cf2b8f8d0a2ef0912b2',1,'tacopie::tacopie_error']]], 8 | ['_7etcp_5fclient',['~tcp_client',['../classtacopie_1_1tcp__client.html#ae58e13ec11ab68e3b9e1af2f96933a64',1,'tacopie::tcp_client']]], 9 | ['_7etcp_5fserver',['~tcp_server',['../classtacopie_1_1tcp__server.html#a7841dc528e2d3dfc94fbe9b93824da50',1,'tacopie::tcp_server']]], 10 | ['_7etcp_5fsocket',['~tcp_socket',['../classtacopie_1_1tcp__socket.html#a4bd737a76a2a326be03d704f79a35282',1,'tacopie::tcp_socket']]], 11 | ['_7ethread_5fpool',['~thread_pool',['../classtacopie_1_1utils_1_1thread__pool.html#accddfc6fad613b0c6d407028799abfc5',1,'tacopie::utils::thread_pool']]] 12 | ]; 13 | -------------------------------------------------------------------------------- /docs/html/search/all_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['close',['close',['../classtacopie_1_1tcp__socket.html#ad5a30b17b1dad9f0ff40305e246a9213',1,'tacopie::tcp_socket']]], 4 | ['clr_5fbuffer',['clr_buffer',['../classtacopie_1_1self__pipe.html#a4f55a34bd882d59bdcc73b87222ba3d8',1,'tacopie::self_pipe']]], 5 | ['connect',['connect',['../classtacopie_1_1tcp__client.html#a0cfbb18cb72aa3b6a41921f61cacc425',1,'tacopie::tcp_client::connect()'],['../classtacopie_1_1tcp__socket.html#a6748c78312763dca6b8be05c4c8c3419',1,'tacopie::tcp_socket::connect()']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/all_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['debug',['debug',['../classtacopie_1_1logger__iface.html#a156abb02ab852ea4033fc13f4902ee7a',1,'tacopie::logger_iface::debug()'],['../classtacopie_1_1logger.html#aff31bbc7d3fdbbe60a2331fe24ec76ff',1,'tacopie::logger::debug()']]], 4 | ['disconnect',['disconnect',['../classtacopie_1_1tcp__client.html#a7562e0bfa24912595d6f695f848b9e51',1,'tacopie::tcp_client']]], 5 | ['disconnection_5fhandler_5ft',['disconnection_handler_t',['../classtacopie_1_1tcp__client.html#aca5df52e5ee6fa673cf212532ada1453',1,'tacopie::tcp_client']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/all_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['error',['error',['../classtacopie_1_1logger__iface.html#a18f9c02fc19be4b9900ac9fb1a361624',1,'tacopie::logger_iface::error()'],['../classtacopie_1_1logger.html#a3fe1be02ac2f4e4fe44a0bdaf8359546',1,'tacopie::logger::error()']]], 4 | ['event_5fcallback_5ft',['event_callback_t',['../classtacopie_1_1io__service.html#abb66850c32d9c724f4418d77bd04bcfd',1,'tacopie::io_service']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/all_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['get_5fclients',['get_clients',['../classtacopie_1_1tcp__server.html#a0df81b943243ad51102c37d4944be8d7',1,'tacopie::tcp_server']]], 4 | ['get_5ffd',['get_fd',['../classtacopie_1_1tcp__socket.html#a4fd367a1802ed6ae7fa0e33fc07ed255',1,'tacopie::tcp_socket']]], 5 | ['get_5ffile',['get_file',['../classtacopie_1_1tacopie__error.html#a10360163c780a1bd9c95fcecca5aa6da',1,'tacopie::tacopie_error']]], 6 | ['get_5fhost',['get_host',['../classtacopie_1_1tcp__client.html#ad38ab710c5eca64de2f887abc455b15d',1,'tacopie::tcp_client::get_host()'],['../classtacopie_1_1tcp__socket.html#ad294565f9a0fa52639ecfbf133eecd59',1,'tacopie::tcp_socket::get_host()']]], 7 | ['get_5fio_5fservice',['get_io_service',['../classtacopie_1_1tcp__client.html#aafbf0aa37cd0472778d09fb163362314',1,'tacopie::tcp_client::get_io_service()'],['../classtacopie_1_1tcp__server.html#aace4796627b6abccccce1a541908414f',1,'tacopie::tcp_server::get_io_service()']]], 8 | ['get_5fline',['get_line',['../classtacopie_1_1tacopie__error.html#a39704d2cb6f076aa47d45f53f174b257',1,'tacopie::tacopie_error']]], 9 | ['get_5fport',['get_port',['../classtacopie_1_1tcp__client.html#a3b42ae2afe6d5ee5f2f16b8bd7846f37',1,'tacopie::tcp_client::get_port()'],['../classtacopie_1_1tcp__socket.html#a5276fdc687ac3c5089a05e3e2d9de4fb',1,'tacopie::tcp_socket::get_port()']]], 10 | ['get_5fread_5ffd',['get_read_fd',['../classtacopie_1_1self__pipe.html#a301b416f5f8236a383065b381385b88c',1,'tacopie::self_pipe']]], 11 | ['get_5fsocket',['get_socket',['../classtacopie_1_1tcp__client.html#a1a3834deb1d263ec5816066f74286298',1,'tacopie::tcp_client::get_socket(void)'],['../classtacopie_1_1tcp__client.html#a9cf1f3ccf43f9a0a883a17b15e3668d6',1,'tacopie::tcp_client::get_socket(void) const'],['../classtacopie_1_1tcp__server.html#a39a51b9203d42babfd9c4c1a0f4cc340',1,'tacopie::tcp_server::get_socket(void)'],['../classtacopie_1_1tcp__server.html#a373aec294e24a52c3ef6c44920af36e2',1,'tacopie::tcp_server::get_socket(void) const']]], 12 | ['get_5ftype',['get_type',['../classtacopie_1_1tcp__socket.html#a4f663be51b845520505bc20a88b411ee',1,'tacopie::tcp_socket']]], 13 | ['get_5fwrite_5ffd',['get_write_fd',['../classtacopie_1_1self__pipe.html#ab36a4deb45bb408988f26315aedc0d74',1,'tacopie::self_pipe']]] 14 | ]; 15 | -------------------------------------------------------------------------------- /docs/html/search/all_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['info',['info',['../classtacopie_1_1logger__iface.html#af176525bca036944f75bad6469860929',1,'tacopie::logger_iface::info()'],['../classtacopie_1_1logger.html#a5089c5a6127586d4f2ea3a69a0bf6570',1,'tacopie::logger::info()']]], 4 | ['io_5fservice',['io_service',['../classtacopie_1_1io__service.html',1,'tacopie::io_service'],['../classtacopie_1_1io__service.html#a4cd4a873cb4457cdc28bd2d00665d15a',1,'tacopie::io_service::io_service(void)'],['../classtacopie_1_1io__service.html#ad5da7503d8fec083c6d28455ec9e21c7',1,'tacopie::io_service::io_service(const io_service &)=delete']]], 5 | ['is_5fconnected',['is_connected',['../classtacopie_1_1tcp__client.html#a9bf568812c8350260843842e7952c8c3',1,'tacopie::tcp_client']]], 6 | ['is_5fipv6',['is_ipv6',['../classtacopie_1_1tcp__socket.html#a6d9933c767572b03fbb4b5ced4bd1fc4',1,'tacopie::tcp_socket']]], 7 | ['is_5frunning',['is_running',['../classtacopie_1_1tcp__server.html#a76162141e6443953f3ad8e11c4e4d3d7',1,'tacopie::tcp_server::is_running()'],['../classtacopie_1_1utils_1_1thread__pool.html#a77a647a75be188a5c5f83b922c061107',1,'tacopie::utils::thread_pool::is_running()']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/html/search/all_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['listen',['listen',['../classtacopie_1_1tcp__socket.html#af0957ded2a84fb06d940cba98df477fb',1,'tacopie::tcp_socket']]], 4 | ['log_5flevel',['log_level',['../classtacopie_1_1logger.html#ae7dd235972bbf86a017fc39b3af80efe',1,'tacopie::logger']]], 5 | ['logger',['logger',['../classtacopie_1_1logger.html',1,'tacopie::logger'],['../classtacopie_1_1logger.html#af863301c0ef7f646469eb944285cb280',1,'tacopie::logger::logger(log_level level=log_level::info)'],['../classtacopie_1_1logger.html#af22e5c126a0e0dbd4c82dc1c40b2d16f',1,'tacopie::logger::logger(const logger &)=default']]], 6 | ['logger_5fiface',['logger_iface',['../classtacopie_1_1logger__iface.html',1,'tacopie::logger_iface'],['../classtacopie_1_1logger__iface.html#afccf838f815d168e82e4722e2c4d0d90',1,'tacopie::logger_iface::logger_iface(void)=default'],['../classtacopie_1_1logger__iface.html#a34fb7873b2c5e908afd2d4a0d4965ec1',1,'tacopie::logger_iface::logger_iface(const logger_iface &)=default']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/html/search/all_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['notify',['notify',['../classtacopie_1_1self__pipe.html#ade9e0e3d19b8d4d22977935a578d508e',1,'tacopie::self_pipe']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/all_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['on_5fnew_5fconnection_5fcallback_5ft',['on_new_connection_callback_t',['../classtacopie_1_1tcp__server.html#a103cb4e6fcab00f88a708aabd38b66ff',1,'tacopie::tcp_server']]], 4 | ['operator_21_3d',['operator!=',['../classtacopie_1_1tcp__client.html#af352b6b1e939c919aec2761517051eb9',1,'tacopie::tcp_client::operator!=()'],['../classtacopie_1_1tcp__server.html#aa45611b77d60b536aeaf626d1724342d',1,'tacopie::tcp_server::operator!=()'],['../classtacopie_1_1tcp__socket.html#a76f69612969374b5aa542378d37ee398',1,'tacopie::tcp_socket::operator!=()']]], 5 | ['operator_3c_3c',['operator<<',['../classtacopie_1_1utils_1_1thread__pool.html#afb7befd9fa5f1fbd44423fddc8cbc5d3',1,'tacopie::utils::thread_pool']]], 6 | ['operator_3d',['operator=',['../classtacopie_1_1io__service.html#a980652008516b38357d405c16eda07fa',1,'tacopie::io_service::operator=()'],['../classtacopie_1_1self__pipe.html#a14e0fa3a880b6c9559c087eac480c518',1,'tacopie::self_pipe::operator=()'],['../classtacopie_1_1tcp__client.html#aeadcfb8cd727b2917ebcd357311d0a6b',1,'tacopie::tcp_client::operator=()'],['../classtacopie_1_1tcp__server.html#a7e7da4352e2e016f8d40d19bf9fee54b',1,'tacopie::tcp_server::operator=()'],['../classtacopie_1_1tcp__socket.html#aae3234c92bd36d5a614e44472d42bbf4',1,'tacopie::tcp_socket::operator=()'],['../classtacopie_1_1tacopie__error.html#ad30ae4932d33b460f75570f5f3a6e3f3',1,'tacopie::tacopie_error::operator=()'],['../classtacopie_1_1logger__iface.html#ac3ca89b7c5d227b8ed3a5adaa5b72527',1,'tacopie::logger_iface::operator=()'],['../classtacopie_1_1logger.html#a4ee4e53fa0857ee404ddfd5b40759162',1,'tacopie::logger::operator=()'],['../classtacopie_1_1utils_1_1thread__pool.html#aa0077461da4da6ba3f4dcac029351234',1,'tacopie::utils::thread_pool::operator=()']]], 7 | ['operator_3d_3d',['operator==',['../classtacopie_1_1tcp__client.html#af7a1796c04efd00542349ecab692e073',1,'tacopie::tcp_client::operator==()'],['../classtacopie_1_1tcp__server.html#ab9b95a27afb405668bb4d5b1a312ceae',1,'tacopie::tcp_server::operator==()'],['../classtacopie_1_1tcp__socket.html#a69fde61058ab72d88ce48f557d8216cf',1,'tacopie::tcp_socket::operator==()']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/html/search/all_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['read_5frequest',['read_request',['../structtacopie_1_1tcp__client_1_1read__request.html',1,'tacopie::tcp_client']]], 4 | ['read_5fresult',['read_result',['../structtacopie_1_1tcp__client_1_1read__result.html',1,'tacopie::tcp_client']]], 5 | ['recv',['recv',['../classtacopie_1_1tcp__socket.html#a0d6d30258a902d12b3c2c62644756685',1,'tacopie::tcp_socket']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/all_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['self_5fpipe',['self_pipe',['../classtacopie_1_1self__pipe.html',1,'tacopie::self_pipe'],['../classtacopie_1_1self__pipe.html#add8d2c43863d1505e6851789ab5d9b97',1,'tacopie::self_pipe::self_pipe(void)'],['../classtacopie_1_1self__pipe.html#a09ffc77b89ad48bc8db6635108c68b6b',1,'tacopie::self_pipe::self_pipe(const self_pipe &)=delete']]], 4 | ['send',['send',['../classtacopie_1_1tcp__socket.html#a36521a8f502adc665ad0fb1c53583d04',1,'tacopie::tcp_socket']]], 5 | ['set_5fnb_5fthreads',['set_nb_threads',['../classtacopie_1_1utils_1_1thread__pool.html#a7c7ae922cedff8fa323828ebb6dea829',1,'tacopie::utils::thread_pool']]], 6 | ['set_5fnb_5fworkers',['set_nb_workers',['../classtacopie_1_1io__service.html#a7e2b0700c0a4591f86c344df8748b3a5',1,'tacopie::io_service']]], 7 | ['set_5fon_5fdisconnection_5fhandler',['set_on_disconnection_handler',['../classtacopie_1_1tcp__client.html#a8c290d681186edb0578051c04f3c0762',1,'tacopie::tcp_client']]], 8 | ['set_5frd_5fcallback',['set_rd_callback',['../classtacopie_1_1io__service.html#a8094c1fec76c6821cc0c008fe524c89a',1,'tacopie::io_service']]], 9 | ['set_5ftype',['set_type',['../classtacopie_1_1tcp__socket.html#a89be86ab254eec3fc16eedfba8b16fb2',1,'tacopie::tcp_socket']]], 10 | ['set_5fwr_5fcallback',['set_wr_callback',['../classtacopie_1_1io__service.html#a7c4f56c7790c7ba52b09837a42aaffb1',1,'tacopie::io_service']]], 11 | ['size',['size',['../structtacopie_1_1tcp__client_1_1write__result.html#acee9eca954a6f1b6283c6188eead2ab1',1,'tacopie::tcp_client::write_result::size()'],['../structtacopie_1_1tcp__client_1_1read__request.html#ad8b69f61884c60596aface363ca947a3',1,'tacopie::tcp_client::read_request::size()']]], 12 | ['start',['start',['../classtacopie_1_1tcp__server.html#a6cb98b50d865b32dba497273a0eca1e9',1,'tacopie::tcp_server']]], 13 | ['stop',['stop',['../classtacopie_1_1tcp__server.html#abc099e162432e2218faed93fc84180fd',1,'tacopie::tcp_server::stop()'],['../classtacopie_1_1utils_1_1thread__pool.html#a8874d7040d12fbe446519bc9f2bcff37',1,'tacopie::utils::thread_pool::stop()']]], 14 | ['success',['success',['../structtacopie_1_1tcp__client_1_1read__result.html#a9bb917b8d210159a95655a6f8da8e96e',1,'tacopie::tcp_client::read_result::success()'],['../structtacopie_1_1tcp__client_1_1write__result.html#a4a8d5706c83068a97c10e63c6080e6a3',1,'tacopie::tcp_client::write_result::success()']]] 15 | ]; 16 | -------------------------------------------------------------------------------- /docs/html/search/all_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['tacopie_5ferror',['tacopie_error',['../classtacopie_1_1tacopie__error.html',1,'tacopie::tacopie_error'],['../classtacopie_1_1tacopie__error.html#a524fb8e9ac1825a57664421a3f32b9ce',1,'tacopie::tacopie_error::tacopie_error(const std::string &what, const std::string &file, std::size_t line)'],['../classtacopie_1_1tacopie__error.html#a0cb2a911165e08818ca03308891633e1',1,'tacopie::tacopie_error::tacopie_error(const tacopie_error &)=default']]], 4 | ['task_5ft',['task_t',['../classtacopie_1_1utils_1_1thread__pool.html#a8ae8886fdeaa8e5c0abad12626a47296',1,'tacopie::utils::thread_pool']]], 5 | ['tcp_5fclient',['tcp_client',['../classtacopie_1_1tcp__client.html',1,'tacopie::tcp_client'],['../classtacopie_1_1tcp__client.html#a9293d5ef2b804f17d778504165ba0c52',1,'tacopie::tcp_client::tcp_client(void)'],['../classtacopie_1_1tcp__client.html#a773fbcbb5b79324c8d065e363de73282',1,'tacopie::tcp_client::tcp_client(tcp_socket &&socket)'],['../classtacopie_1_1tcp__client.html#a5e326782c52f63814cc8f42a901ffaf6',1,'tacopie::tcp_client::tcp_client(const tcp_client &)=delete']]], 6 | ['tcp_5fserver',['tcp_server',['../classtacopie_1_1tcp__server.html',1,'tacopie::tcp_server'],['../classtacopie_1_1tcp__server.html#a4f67a38a0764924768cbcc7cf68527bf',1,'tacopie::tcp_server::tcp_server(void)'],['../classtacopie_1_1tcp__server.html#a2d9c6a2dea95a3c6a919c655d6e8e0ba',1,'tacopie::tcp_server::tcp_server(const tcp_server &)=delete']]], 7 | ['tcp_5fsocket',['tcp_socket',['../classtacopie_1_1tcp__socket.html',1,'tacopie::tcp_socket'],['../classtacopie_1_1tcp__socket.html#a88ed1cadb0263591c4d31805e0a1a001',1,'tacopie::tcp_socket::tcp_socket(void)'],['../classtacopie_1_1tcp__socket.html#a191ffa48e0753ad4ec87d4d3a4a97822',1,'tacopie::tcp_socket::tcp_socket(fd_t fd, const std::string &host, std::uint32_t port, type t)'],['../classtacopie_1_1tcp__socket.html#a64f69cd1c185b523b543d4ea53cee1a2',1,'tacopie::tcp_socket::tcp_socket(tcp_socket &&)'],['../classtacopie_1_1tcp__socket.html#a5ae1a5b0f9713ef256164afdbeb1c193',1,'tacopie::tcp_socket::tcp_socket(const tcp_socket &)=delete']]], 8 | ['thread_5fpool',['thread_pool',['../classtacopie_1_1utils_1_1thread__pool.html',1,'tacopie::utils::thread_pool'],['../classtacopie_1_1utils_1_1thread__pool.html#aa0068f000b8ecb21b2b0a0c50f77877c',1,'tacopie::utils::thread_pool::thread_pool(std::size_t nb_threads)'],['../classtacopie_1_1utils_1_1thread__pool.html#a63a850c39d21058eda9d655bb7eff452',1,'tacopie::utils::thread_pool::thread_pool(const thread_pool &)=delete']]], 9 | ['track',['track',['../classtacopie_1_1io__service.html#a9f4c8bce3c0f6d660515b0b5eb109df8',1,'tacopie::io_service']]], 10 | ['type',['type',['../classtacopie_1_1tcp__socket.html#ad8376e85df96ab9523f5d079ed7172ab',1,'tacopie::tcp_socket']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/html/search/all_d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['untrack',['untrack',['../classtacopie_1_1io__service.html#a9a7672f0894a0fc1a3e6c593ca6df22c',1,'tacopie::io_service']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/all_e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['wait_5ffor_5fremoval',['wait_for_removal',['../classtacopie_1_1io__service.html#aa57db619baeaa6db0aeb22e67b895cd7',1,'tacopie::io_service']]], 4 | ['warn',['warn',['../classtacopie_1_1logger__iface.html#ab96d8f6bc2e2b514c7ceec4c856f8921',1,'tacopie::logger_iface::warn()'],['../classtacopie_1_1logger.html#aa4cd2ffc3f4b9d096a35c5c2aa8e0970',1,'tacopie::logger::warn()']]], 5 | ['write_5frequest',['write_request',['../structtacopie_1_1tcp__client_1_1write__request.html',1,'tacopie::tcp_client']]], 6 | ['write_5fresult',['write_result',['../structtacopie_1_1tcp__client_1_1write__result.html',1,'tacopie::tcp_client']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/html/search/all_f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/all_f.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_7eio_5fservice',['~io_service',['../classtacopie_1_1io__service.html#ae423d7e4b13f07fe41fb051345ffbf8d',1,'tacopie::io_service']]], 4 | ['_7elogger',['~logger',['../classtacopie_1_1logger.html#af5c89b85935dbe3b4da3199247d50398',1,'tacopie::logger']]], 5 | ['_7elogger_5fiface',['~logger_iface',['../classtacopie_1_1logger__iface.html#a562dcc605198ca90904ba21fa98eb6ea',1,'tacopie::logger_iface']]], 6 | ['_7eself_5fpipe',['~self_pipe',['../classtacopie_1_1self__pipe.html#a10a6c4b0d67a4a14abea397a05cee54c',1,'tacopie::self_pipe']]], 7 | ['_7etacopie_5ferror',['~tacopie_error',['../classtacopie_1_1tacopie__error.html#a5bf6b0967f7f4cf2b8f8d0a2ef0912b2',1,'tacopie::tacopie_error']]], 8 | ['_7etcp_5fserver',['~tcp_server',['../classtacopie_1_1tcp__server.html#a7841dc528e2d3dfc94fbe9b93824da50',1,'tacopie::tcp_server']]], 9 | ['_7etcp_5fsocket',['~tcp_socket',['../classtacopie_1_1tcp__socket.html#a4bd737a76a2a326be03d704f79a35282',1,'tacopie::tcp_socket']]], 10 | ['_7ethread_5fpool',['~thread_pool',['../classtacopie_1_1utils_1_1thread__pool.html#accddfc6fad613b0c6d407028799abfc5',1,'tacopie::utils::thread_pool']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/html/search/classes_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['io_5fservice',['io_service',['../classtacopie_1_1io__service.html',1,'tacopie']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/classes_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/classes_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['logger',['logger',['../classtacopie_1_1logger.html',1,'tacopie']]], 4 | ['logger_5fiface',['logger_iface',['../classtacopie_1_1logger__iface.html',1,'tacopie']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/classes_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/classes_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['read_5frequest',['read_request',['../structtacopie_1_1tcp__client_1_1read__request.html',1,'tacopie::tcp_client']]], 4 | ['read_5fresult',['read_result',['../structtacopie_1_1tcp__client_1_1read__result.html',1,'tacopie::tcp_client']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/classes_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/classes_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['self_5fpipe',['self_pipe',['../classtacopie_1_1self__pipe.html',1,'tacopie']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/classes_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/classes_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['tacopie_5ferror',['tacopie_error',['../classtacopie_1_1tacopie__error.html',1,'tacopie']]], 4 | ['tcp_5fclient',['tcp_client',['../classtacopie_1_1tcp__client.html',1,'tacopie']]], 5 | ['tcp_5fserver',['tcp_server',['../classtacopie_1_1tcp__server.html',1,'tacopie']]], 6 | ['tcp_5fsocket',['tcp_socket',['../classtacopie_1_1tcp__socket.html',1,'tacopie']]], 7 | ['thread_5fpool',['thread_pool',['../classtacopie_1_1utils_1_1thread__pool.html',1,'tacopie::utils']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/html/search/classes_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/classes_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['write_5frequest',['write_request',['../structtacopie_1_1tcp__client_1_1write__request.html',1,'tacopie::tcp_client']]], 4 | ['write_5fresult',['write_result',['../structtacopie_1_1tcp__client_1_1write__result.html',1,'tacopie::tcp_client']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/search/close.png -------------------------------------------------------------------------------- /docs/html/search/defines_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/defines_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_5f_5ftacopie_5fconnection_5fqueue_5fsize',['__TACOPIE_CONNECTION_QUEUE_SIZE',['../tcp__server_8hpp.html#adebb9fdca4ff2a2f68e6177d77a5ce7b',1,'tcp_server.hpp']]], 4 | ['_5f_5ftacopie_5finvalid_5ffd',['__TACOPIE_INVALID_FD',['../typedefs_8hpp.html#a0e879255fa9ca4ba90dfc6f91c5f592f',1,'typedefs.hpp']]], 5 | ['_5f_5ftacopie_5fio_5fservice_5fnb_5fworkers',['__TACOPIE_IO_SERVICE_NB_WORKERS',['../io__service_8hpp.html#a822f465d034836ecbc765ad422eec064',1,'io_service.hpp']]], 6 | ['_5f_5ftacopie_5flog',['__TACOPIE_LOG',['../logger_8hpp.html#a845e651e4529d5322a7cebc54a923bce',1,'logger.hpp']]], 7 | ['_5f_5ftacopie_5fthrow',['__TACOPIE_THROW',['../error_8hpp.html#aacdfb7799f2e2e2f57d6f1392ff3220a',1,'error.hpp']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/html/search/enums_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/enums_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['log_5flevel',['log_level',['../classtacopie_1_1logger.html#ae7dd235972bbf86a017fc39b3af80efe',1,'tacopie::logger']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/enums_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/enums_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['type',['type',['../classtacopie_1_1tcp__socket.html#ad8376e85df96ab9523f5d079ed7172ab',1,'tacopie::tcp_socket']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/enumvalues_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/enumvalues_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['client',['CLIENT',['../classtacopie_1_1tcp__socket.html#ad8376e85df96ab9523f5d079ed7172abaef10c650df47bffd6399e5e78da2a9b1',1,'tacopie::tcp_socket']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/enumvalues_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/enumvalues_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['debug',['debug',['../classtacopie_1_1logger.html#ae7dd235972bbf86a017fc39b3af80efeaad42f6697b035b7580e4fef93be20b4d',1,'tacopie::logger']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/enumvalues_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/enumvalues_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['error',['error',['../classtacopie_1_1logger.html#ae7dd235972bbf86a017fc39b3af80efeacb5e100e5a9a3e7f6d1fd97512215282',1,'tacopie::logger']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/enumvalues_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/enumvalues_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['info',['info',['../classtacopie_1_1logger.html#ae7dd235972bbf86a017fc39b3af80efeacaf9b6b99962bf5c2264824231d7a40c',1,'tacopie::logger']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/enumvalues_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/enumvalues_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['server',['SERVER',['../classtacopie_1_1tcp__socket.html#ad8376e85df96ab9523f5d079ed7172aba3d27c95bfdbea691b250894d96852844',1,'tacopie::tcp_socket']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/enumvalues_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/enumvalues_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['unknown',['UNKNOWN',['../classtacopie_1_1tcp__socket.html#ad8376e85df96ab9523f5d079ed7172aba696b031073e74bf2cb98e5ef201d4aa3',1,'tacopie::tcp_socket']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/enumvalues_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/enumvalues_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['warn',['warn',['../classtacopie_1_1logger.html#ae7dd235972bbf86a017fc39b3af80efea1ea4c3ab05ee0c6d4de30740443769cb',1,'tacopie::logger']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/files_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/files_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['error_2ehpp',['error.hpp',['../error_8hpp.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/files_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/files_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['io_5fservice_2ehpp',['io_service.hpp',['../io__service_8hpp.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/files_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/files_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['logger_2ehpp',['logger.hpp',['../logger_8hpp.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/files_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/files_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['self_5fpipe_2ehpp',['self_pipe.hpp',['../self__pipe_8hpp.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/files_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/files_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['tcp_5fclient_2ehpp',['tcp_client.hpp',['../tcp__client_8hpp.html',1,'']]], 4 | ['tcp_5fserver_2ehpp',['tcp_server.hpp',['../tcp__server_8hpp.html',1,'']]], 5 | ['tcp_5fsocket_2ehpp',['tcp_socket.hpp',['../tcp__socket_8hpp.html',1,'']]], 6 | ['thread_5fpool_2ehpp',['thread_pool.hpp',['../thread__pool_8hpp.html',1,'']]], 7 | ['typedefs_2ehpp',['typedefs.hpp',['../typedefs_8hpp.html',1,'']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/html/search/functions_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/functions_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['accept',['accept',['../classtacopie_1_1tcp__socket.html#af5113c9332f83643cdaaf15c3f137760',1,'tacopie::tcp_socket']]], 4 | ['add_5ftask',['add_task',['../classtacopie_1_1utils_1_1thread__pool.html#a450bee2b7b2cd0aa0bc3935c8adc9ace',1,'tacopie::utils::thread_pool']]], 5 | ['async_5fread',['async_read',['../classtacopie_1_1tcp__client.html#a120e3ec2902acc902f7a0b27074bda6b',1,'tacopie::tcp_client']]], 6 | ['async_5fwrite',['async_write',['../classtacopie_1_1tcp__client.html#a2304ed6d4ca0cbc74e6aa72d3e92b76a',1,'tacopie::tcp_client']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/html/search/functions_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/functions_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['bind',['bind',['../classtacopie_1_1tcp__socket.html#a910a183d7c45483f1cdacd10a1896155',1,'tacopie::tcp_socket']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/functions_10.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/functions_10.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['wait_5ffor_5fremoval',['wait_for_removal',['../classtacopie_1_1io__service.html#aa57db619baeaa6db0aeb22e67b895cd7',1,'tacopie::io_service']]], 4 | ['warn',['warn',['../classtacopie_1_1logger__iface.html#ab96d8f6bc2e2b514c7ceec4c856f8921',1,'tacopie::logger_iface::warn()'],['../classtacopie_1_1logger.html#aa4cd2ffc3f4b9d096a35c5c2aa8e0970',1,'tacopie::logger::warn()'],['../namespacetacopie.html#ac0a2f06f2f9fb6ded97b659d8573c25d',1,'tacopie::warn()']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/functions_11.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/functions_11.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_7eio_5fservice',['~io_service',['../classtacopie_1_1io__service.html#ae423d7e4b13f07fe41fb051345ffbf8d',1,'tacopie::io_service']]], 4 | ['_7elogger',['~logger',['../classtacopie_1_1logger.html#af5c89b85935dbe3b4da3199247d50398',1,'tacopie::logger']]], 5 | ['_7elogger_5fiface',['~logger_iface',['../classtacopie_1_1logger__iface.html#a562dcc605198ca90904ba21fa98eb6ea',1,'tacopie::logger_iface']]], 6 | ['_7eself_5fpipe',['~self_pipe',['../classtacopie_1_1self__pipe.html#a10a6c4b0d67a4a14abea397a05cee54c',1,'tacopie::self_pipe']]], 7 | ['_7etacopie_5ferror',['~tacopie_error',['../classtacopie_1_1tacopie__error.html#a5bf6b0967f7f4cf2b8f8d0a2ef0912b2',1,'tacopie::tacopie_error']]], 8 | ['_7etcp_5fclient',['~tcp_client',['../classtacopie_1_1tcp__client.html#ae58e13ec11ab68e3b9e1af2f96933a64',1,'tacopie::tcp_client']]], 9 | ['_7etcp_5fserver',['~tcp_server',['../classtacopie_1_1tcp__server.html#a7841dc528e2d3dfc94fbe9b93824da50',1,'tacopie::tcp_server']]], 10 | ['_7etcp_5fsocket',['~tcp_socket',['../classtacopie_1_1tcp__socket.html#a4bd737a76a2a326be03d704f79a35282',1,'tacopie::tcp_socket']]], 11 | ['_7ethread_5fpool',['~thread_pool',['../classtacopie_1_1utils_1_1thread__pool.html#accddfc6fad613b0c6d407028799abfc5',1,'tacopie::utils::thread_pool']]] 12 | ]; 13 | -------------------------------------------------------------------------------- /docs/html/search/functions_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/functions_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['close',['close',['../classtacopie_1_1tcp__socket.html#ad5a30b17b1dad9f0ff40305e246a9213',1,'tacopie::tcp_socket']]], 4 | ['clr_5fbuffer',['clr_buffer',['../classtacopie_1_1self__pipe.html#a4f55a34bd882d59bdcc73b87222ba3d8',1,'tacopie::self_pipe']]], 5 | ['connect',['connect',['../classtacopie_1_1tcp__client.html#a0cfbb18cb72aa3b6a41921f61cacc425',1,'tacopie::tcp_client::connect()'],['../classtacopie_1_1tcp__socket.html#a6748c78312763dca6b8be05c4c8c3419',1,'tacopie::tcp_socket::connect()']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/functions_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/functions_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['debug',['debug',['../classtacopie_1_1logger__iface.html#a156abb02ab852ea4033fc13f4902ee7a',1,'tacopie::logger_iface::debug()'],['../classtacopie_1_1logger.html#aff31bbc7d3fdbbe60a2331fe24ec76ff',1,'tacopie::logger::debug()']]], 4 | ['disconnect',['disconnect',['../classtacopie_1_1tcp__client.html#a7562e0bfa24912595d6f695f848b9e51',1,'tacopie::tcp_client']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/functions_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/functions_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['error',['error',['../classtacopie_1_1logger__iface.html#a18f9c02fc19be4b9900ac9fb1a361624',1,'tacopie::logger_iface::error()'],['../classtacopie_1_1logger.html#a3fe1be02ac2f4e4fe44a0bdaf8359546',1,'tacopie::logger::error()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/functions_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/functions_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['get_5fclients',['get_clients',['../classtacopie_1_1tcp__server.html#a0df81b943243ad51102c37d4944be8d7',1,'tacopie::tcp_server']]], 4 | ['get_5ffd',['get_fd',['../classtacopie_1_1tcp__socket.html#a4fd367a1802ed6ae7fa0e33fc07ed255',1,'tacopie::tcp_socket']]], 5 | ['get_5ffile',['get_file',['../classtacopie_1_1tacopie__error.html#a10360163c780a1bd9c95fcecca5aa6da',1,'tacopie::tacopie_error']]], 6 | ['get_5fhost',['get_host',['../classtacopie_1_1tcp__client.html#ad38ab710c5eca64de2f887abc455b15d',1,'tacopie::tcp_client::get_host()'],['../classtacopie_1_1tcp__socket.html#ad294565f9a0fa52639ecfbf133eecd59',1,'tacopie::tcp_socket::get_host()']]], 7 | ['get_5fio_5fservice',['get_io_service',['../classtacopie_1_1tcp__client.html#aafbf0aa37cd0472778d09fb163362314',1,'tacopie::tcp_client::get_io_service()'],['../classtacopie_1_1tcp__server.html#aace4796627b6abccccce1a541908414f',1,'tacopie::tcp_server::get_io_service()']]], 8 | ['get_5fline',['get_line',['../classtacopie_1_1tacopie__error.html#a39704d2cb6f076aa47d45f53f174b257',1,'tacopie::tacopie_error']]], 9 | ['get_5fport',['get_port',['../classtacopie_1_1tcp__client.html#a3b42ae2afe6d5ee5f2f16b8bd7846f37',1,'tacopie::tcp_client::get_port()'],['../classtacopie_1_1tcp__socket.html#a5276fdc687ac3c5089a05e3e2d9de4fb',1,'tacopie::tcp_socket::get_port()']]], 10 | ['get_5fread_5ffd',['get_read_fd',['../classtacopie_1_1self__pipe.html#a301b416f5f8236a383065b381385b88c',1,'tacopie::self_pipe']]], 11 | ['get_5fsocket',['get_socket',['../classtacopie_1_1tcp__client.html#a1a3834deb1d263ec5816066f74286298',1,'tacopie::tcp_client::get_socket(void)'],['../classtacopie_1_1tcp__client.html#a9cf1f3ccf43f9a0a883a17b15e3668d6',1,'tacopie::tcp_client::get_socket(void) const'],['../classtacopie_1_1tcp__server.html#a39a51b9203d42babfd9c4c1a0f4cc340',1,'tacopie::tcp_server::get_socket(void)'],['../classtacopie_1_1tcp__server.html#a373aec294e24a52c3ef6c44920af36e2',1,'tacopie::tcp_server::get_socket(void) const']]], 12 | ['get_5ftype',['get_type',['../classtacopie_1_1tcp__socket.html#a4f663be51b845520505bc20a88b411ee',1,'tacopie::tcp_socket']]], 13 | ['get_5fwrite_5ffd',['get_write_fd',['../classtacopie_1_1self__pipe.html#ab36a4deb45bb408988f26315aedc0d74',1,'tacopie::self_pipe']]] 14 | ]; 15 | -------------------------------------------------------------------------------- /docs/html/search/functions_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/functions_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['info',['info',['../classtacopie_1_1logger__iface.html#af176525bca036944f75bad6469860929',1,'tacopie::logger_iface::info()'],['../classtacopie_1_1logger.html#a5089c5a6127586d4f2ea3a69a0bf6570',1,'tacopie::logger::info()']]], 4 | ['io_5fservice',['io_service',['../classtacopie_1_1io__service.html#a4cd4a873cb4457cdc28bd2d00665d15a',1,'tacopie::io_service::io_service(void)'],['../classtacopie_1_1io__service.html#ad5da7503d8fec083c6d28455ec9e21c7',1,'tacopie::io_service::io_service(const io_service &)=delete']]], 5 | ['is_5fconnected',['is_connected',['../classtacopie_1_1tcp__client.html#a9bf568812c8350260843842e7952c8c3',1,'tacopie::tcp_client']]], 6 | ['is_5fipv6',['is_ipv6',['../classtacopie_1_1tcp__socket.html#a6d9933c767572b03fbb4b5ced4bd1fc4',1,'tacopie::tcp_socket']]], 7 | ['is_5frunning',['is_running',['../classtacopie_1_1tcp__server.html#a76162141e6443953f3ad8e11c4e4d3d7',1,'tacopie::tcp_server::is_running()'],['../classtacopie_1_1utils_1_1thread__pool.html#a77a647a75be188a5c5f83b922c061107',1,'tacopie::utils::thread_pool::is_running()']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/html/search/functions_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/functions_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['listen',['listen',['../classtacopie_1_1tcp__socket.html#af0957ded2a84fb06d940cba98df477fb',1,'tacopie::tcp_socket']]], 4 | ['logger',['logger',['../classtacopie_1_1logger.html#af863301c0ef7f646469eb944285cb280',1,'tacopie::logger::logger(log_level level=log_level::info)'],['../classtacopie_1_1logger.html#af22e5c126a0e0dbd4c82dc1c40b2d16f',1,'tacopie::logger::logger(const logger &)=default']]], 5 | ['logger_5fiface',['logger_iface',['../classtacopie_1_1logger__iface.html#afccf838f815d168e82e4722e2c4d0d90',1,'tacopie::logger_iface::logger_iface(void)=default'],['../classtacopie_1_1logger__iface.html#a34fb7873b2c5e908afd2d4a0d4965ec1',1,'tacopie::logger_iface::logger_iface(const logger_iface &)=default']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/functions_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/functions_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['notify',['notify',['../classtacopie_1_1self__pipe.html#ade9e0e3d19b8d4d22977935a578d508e',1,'tacopie::self_pipe']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/functions_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/functions_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['operator_21_3d',['operator!=',['../classtacopie_1_1tcp__client.html#af352b6b1e939c919aec2761517051eb9',1,'tacopie::tcp_client::operator!=()'],['../classtacopie_1_1tcp__server.html#aa45611b77d60b536aeaf626d1724342d',1,'tacopie::tcp_server::operator!=()'],['../classtacopie_1_1tcp__socket.html#a76f69612969374b5aa542378d37ee398',1,'tacopie::tcp_socket::operator!=()']]], 4 | ['operator_3c_3c',['operator<<',['../classtacopie_1_1utils_1_1thread__pool.html#afb7befd9fa5f1fbd44423fddc8cbc5d3',1,'tacopie::utils::thread_pool']]], 5 | ['operator_3d',['operator=',['../classtacopie_1_1io__service.html#a980652008516b38357d405c16eda07fa',1,'tacopie::io_service::operator=()'],['../classtacopie_1_1self__pipe.html#a14e0fa3a880b6c9559c087eac480c518',1,'tacopie::self_pipe::operator=()'],['../classtacopie_1_1tcp__client.html#aeadcfb8cd727b2917ebcd357311d0a6b',1,'tacopie::tcp_client::operator=()'],['../classtacopie_1_1tcp__server.html#a7e7da4352e2e016f8d40d19bf9fee54b',1,'tacopie::tcp_server::operator=()'],['../classtacopie_1_1tcp__socket.html#aae3234c92bd36d5a614e44472d42bbf4',1,'tacopie::tcp_socket::operator=()'],['../classtacopie_1_1tacopie__error.html#ad30ae4932d33b460f75570f5f3a6e3f3',1,'tacopie::tacopie_error::operator=()'],['../classtacopie_1_1logger__iface.html#ac3ca89b7c5d227b8ed3a5adaa5b72527',1,'tacopie::logger_iface::operator=()'],['../classtacopie_1_1logger.html#a4ee4e53fa0857ee404ddfd5b40759162',1,'tacopie::logger::operator=()'],['../classtacopie_1_1utils_1_1thread__pool.html#aa0077461da4da6ba3f4dcac029351234',1,'tacopie::utils::thread_pool::operator=()']]], 6 | ['operator_3d_3d',['operator==',['../classtacopie_1_1tcp__client.html#af7a1796c04efd00542349ecab692e073',1,'tacopie::tcp_client::operator==()'],['../classtacopie_1_1tcp__server.html#ab9b95a27afb405668bb4d5b1a312ceae',1,'tacopie::tcp_server::operator==()'],['../classtacopie_1_1tcp__socket.html#a69fde61058ab72d88ce48f557d8216cf',1,'tacopie::tcp_socket::operator==()']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/html/search/functions_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/functions_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['recv',['recv',['../classtacopie_1_1tcp__socket.html#a0d6d30258a902d12b3c2c62644756685',1,'tacopie::tcp_socket']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/functions_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/functions_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['self_5fpipe',['self_pipe',['../classtacopie_1_1self__pipe.html#add8d2c43863d1505e6851789ab5d9b97',1,'tacopie::self_pipe::self_pipe(void)'],['../classtacopie_1_1self__pipe.html#a09ffc77b89ad48bc8db6635108c68b6b',1,'tacopie::self_pipe::self_pipe(const self_pipe &)=delete']]], 4 | ['send',['send',['../classtacopie_1_1tcp__socket.html#a36521a8f502adc665ad0fb1c53583d04',1,'tacopie::tcp_socket']]], 5 | ['set_5fnb_5fthreads',['set_nb_threads',['../classtacopie_1_1utils_1_1thread__pool.html#a7c7ae922cedff8fa323828ebb6dea829',1,'tacopie::utils::thread_pool']]], 6 | ['set_5fnb_5fworkers',['set_nb_workers',['../classtacopie_1_1io__service.html#a7e2b0700c0a4591f86c344df8748b3a5',1,'tacopie::io_service']]], 7 | ['set_5fon_5fdisconnection_5fhandler',['set_on_disconnection_handler',['../classtacopie_1_1tcp__client.html#a8c290d681186edb0578051c04f3c0762',1,'tacopie::tcp_client']]], 8 | ['set_5frd_5fcallback',['set_rd_callback',['../classtacopie_1_1io__service.html#a8094c1fec76c6821cc0c008fe524c89a',1,'tacopie::io_service']]], 9 | ['set_5ftype',['set_type',['../classtacopie_1_1tcp__socket.html#a89be86ab254eec3fc16eedfba8b16fb2',1,'tacopie::tcp_socket']]], 10 | ['set_5fwr_5fcallback',['set_wr_callback',['../classtacopie_1_1io__service.html#a7c4f56c7790c7ba52b09837a42aaffb1',1,'tacopie::io_service']]], 11 | ['start',['start',['../classtacopie_1_1tcp__server.html#a6cb98b50d865b32dba497273a0eca1e9',1,'tacopie::tcp_server']]], 12 | ['stop',['stop',['../classtacopie_1_1tcp__server.html#abc099e162432e2218faed93fc84180fd',1,'tacopie::tcp_server::stop()'],['../classtacopie_1_1utils_1_1thread__pool.html#a8874d7040d12fbe446519bc9f2bcff37',1,'tacopie::utils::thread_pool::stop()']]] 13 | ]; 14 | -------------------------------------------------------------------------------- /docs/html/search/functions_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/functions_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['tacopie_5ferror',['tacopie_error',['../classtacopie_1_1tacopie__error.html#a524fb8e9ac1825a57664421a3f32b9ce',1,'tacopie::tacopie_error::tacopie_error(const std::string &what, const std::string &file, std::size_t line)'],['../classtacopie_1_1tacopie__error.html#a0cb2a911165e08818ca03308891633e1',1,'tacopie::tacopie_error::tacopie_error(const tacopie_error &)=default']]], 4 | ['tcp_5fclient',['tcp_client',['../classtacopie_1_1tcp__client.html#a9293d5ef2b804f17d778504165ba0c52',1,'tacopie::tcp_client::tcp_client(void)'],['../classtacopie_1_1tcp__client.html#a773fbcbb5b79324c8d065e363de73282',1,'tacopie::tcp_client::tcp_client(tcp_socket &&socket)'],['../classtacopie_1_1tcp__client.html#a5e326782c52f63814cc8f42a901ffaf6',1,'tacopie::tcp_client::tcp_client(const tcp_client &)=delete']]], 5 | ['tcp_5fserver',['tcp_server',['../classtacopie_1_1tcp__server.html#a4f67a38a0764924768cbcc7cf68527bf',1,'tacopie::tcp_server::tcp_server(void)'],['../classtacopie_1_1tcp__server.html#a2d9c6a2dea95a3c6a919c655d6e8e0ba',1,'tacopie::tcp_server::tcp_server(const tcp_server &)=delete']]], 6 | ['tcp_5fsocket',['tcp_socket',['../classtacopie_1_1tcp__socket.html#a88ed1cadb0263591c4d31805e0a1a001',1,'tacopie::tcp_socket::tcp_socket(void)'],['../classtacopie_1_1tcp__socket.html#a191ffa48e0753ad4ec87d4d3a4a97822',1,'tacopie::tcp_socket::tcp_socket(fd_t fd, const std::string &host, std::uint32_t port, type t)'],['../classtacopie_1_1tcp__socket.html#a64f69cd1c185b523b543d4ea53cee1a2',1,'tacopie::tcp_socket::tcp_socket(tcp_socket &&)'],['../classtacopie_1_1tcp__socket.html#a5ae1a5b0f9713ef256164afdbeb1c193',1,'tacopie::tcp_socket::tcp_socket(const tcp_socket &)=delete']]], 7 | ['thread_5fpool',['thread_pool',['../classtacopie_1_1utils_1_1thread__pool.html#aa0068f000b8ecb21b2b0a0c50f77877c',1,'tacopie::utils::thread_pool::thread_pool(std::size_t nb_threads)'],['../classtacopie_1_1utils_1_1thread__pool.html#a63a850c39d21058eda9d655bb7eff452',1,'tacopie::utils::thread_pool::thread_pool(const thread_pool &)=delete']]], 8 | ['track',['track',['../classtacopie_1_1io__service.html#a9f4c8bce3c0f6d660515b0b5eb109df8',1,'tacopie::io_service']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /docs/html/search/functions_d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/functions_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['untrack',['untrack',['../classtacopie_1_1io__service.html#a9a7672f0894a0fc1a3e6c593ca6df22c',1,'tacopie::io_service']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/functions_e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/functions_e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['wait_5ffor_5fremoval',['wait_for_removal',['../classtacopie_1_1io__service.html#aa57db619baeaa6db0aeb22e67b895cd7',1,'tacopie::io_service']]], 4 | ['warn',['warn',['../classtacopie_1_1logger__iface.html#ab96d8f6bc2e2b514c7ceec4c856f8921',1,'tacopie::logger_iface::warn()'],['../classtacopie_1_1logger.html#aa4cd2ffc3f4b9d096a35c5c2aa8e0970',1,'tacopie::logger::warn()']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/functions_f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/functions_f.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_7eio_5fservice',['~io_service',['../classtacopie_1_1io__service.html#ae423d7e4b13f07fe41fb051345ffbf8d',1,'tacopie::io_service']]], 4 | ['_7elogger',['~logger',['../classtacopie_1_1logger.html#af5c89b85935dbe3b4da3199247d50398',1,'tacopie::logger']]], 5 | ['_7elogger_5fiface',['~logger_iface',['../classtacopie_1_1logger__iface.html#a562dcc605198ca90904ba21fa98eb6ea',1,'tacopie::logger_iface']]], 6 | ['_7eself_5fpipe',['~self_pipe',['../classtacopie_1_1self__pipe.html#a10a6c4b0d67a4a14abea397a05cee54c',1,'tacopie::self_pipe']]], 7 | ['_7etacopie_5ferror',['~tacopie_error',['../classtacopie_1_1tacopie__error.html#a5bf6b0967f7f4cf2b8f8d0a2ef0912b2',1,'tacopie::tacopie_error']]], 8 | ['_7etcp_5fserver',['~tcp_server',['../classtacopie_1_1tcp__server.html#a7841dc528e2d3dfc94fbe9b93824da50',1,'tacopie::tcp_server']]], 9 | ['_7etcp_5fsocket',['~tcp_socket',['../classtacopie_1_1tcp__socket.html#a4bd737a76a2a326be03d704f79a35282',1,'tacopie::tcp_socket']]], 10 | ['_7ethread_5fpool',['~thread_pool',['../classtacopie_1_1utils_1_1thread__pool.html#accddfc6fad613b0c6d407028799abfc5',1,'tacopie::utils::thread_pool']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/html/search/mag_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/search/mag_sel.png -------------------------------------------------------------------------------- /docs/html/search/namespaces_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/namespaces_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['tacopie',['tacopie',['../namespacetacopie.html',1,'']]], 4 | ['utils',['utils',['../namespacetacopie_1_1utils.html',1,'tacopie']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
    9 |
    No Matches
    10 |
    11 | 12 | 13 | -------------------------------------------------------------------------------- /docs/html/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/search/search_l.png -------------------------------------------------------------------------------- /docs/html/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/search/search_m.png -------------------------------------------------------------------------------- /docs/html/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/search/search_r.png -------------------------------------------------------------------------------- /docs/html/search/searchdata.js: -------------------------------------------------------------------------------- 1 | var indexSectionsWithContent = 2 | { 3 | 0: "abcdegilnorstuw~", 4 | 1: "ilrstw", 5 | 2: "abcdegilnorstuw~", 6 | 3: "abs", 7 | 4: "adeot", 8 | 5: "lt" 9 | }; 10 | 11 | var indexSectionNames = 12 | { 13 | 0: "all", 14 | 1: "classes", 15 | 2: "functions", 16 | 3: "variables", 17 | 4: "typedefs", 18 | 5: "enums" 19 | }; 20 | 21 | var indexSectionLabels = 22 | { 23 | 0: "All", 24 | 1: "Classes", 25 | 2: "Functions", 26 | 3: "Variables", 27 | 4: "Typedefs", 28 | 5: "Enumerations" 29 | }; 30 | 31 | -------------------------------------------------------------------------------- /docs/html/search/typedefs_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/typedefs_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['async_5fread_5fcallback_5ft',['async_read_callback_t',['../classtacopie_1_1tcp__client.html#acdf9dea8bac6c56f7b04ce38b9432322',1,'tacopie::tcp_client']]], 4 | ['async_5fwrite_5fcallback_5ft',['async_write_callback_t',['../classtacopie_1_1tcp__client.html#ad48b8c8dff8a77490eb2e3e802c82b97',1,'tacopie::tcp_client']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/typedefs_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/typedefs_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['disconnection_5fhandler_5ft',['disconnection_handler_t',['../classtacopie_1_1tcp__client.html#aca5df52e5ee6fa673cf212532ada1453',1,'tacopie::tcp_client']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/typedefs_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/typedefs_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['event_5fcallback_5ft',['event_callback_t',['../classtacopie_1_1io__service.html#abb66850c32d9c724f4418d77bd04bcfd',1,'tacopie::io_service']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/typedefs_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/typedefs_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['on_5fnew_5fconnection_5fcallback_5ft',['on_new_connection_callback_t',['../classtacopie_1_1tcp__server.html#a103cb4e6fcab00f88a708aabd38b66ff',1,'tacopie::tcp_server']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/typedefs_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/typedefs_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['task_5ft',['task_t',['../classtacopie_1_1utils_1_1thread__pool.html#a8ae8886fdeaa8e5c0abad12626a47296',1,'tacopie::utils::thread_pool']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/typedefs_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/typedefs_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['task_5ft',['task_t',['../classtacopie_1_1utils_1_1thread__pool.html#a8ae8886fdeaa8e5c0abad12626a47296',1,'tacopie::utils::thread_pool']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/variables_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/variables_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['async_5fread_5fcallback',['async_read_callback',['../structtacopie_1_1tcp__client_1_1read__request.html#a3d495e82e38efebf763f595392b0db46',1,'tacopie::tcp_client::read_request']]], 4 | ['async_5fwrite_5fcallback',['async_write_callback',['../structtacopie_1_1tcp__client_1_1write__request.html#a04fd3e5484ba322d0112024bf8823623',1,'tacopie::tcp_client::write_request']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/variables_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/variables_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['buffer',['buffer',['../structtacopie_1_1tcp__client_1_1read__result.html#a50d22ea3a43d085d88d54bbf59a357dc',1,'tacopie::tcp_client::read_result::buffer()'],['../structtacopie_1_1tcp__client_1_1write__request.html#a4ee0c159b630c14f81d6b6d7d4b4e826',1,'tacopie::tcp_client::write_request::buffer()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/variables_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/variables_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['size',['size',['../structtacopie_1_1tcp__client_1_1write__result.html#acee9eca954a6f1b6283c6188eead2ab1',1,'tacopie::tcp_client::write_result::size()'],['../structtacopie_1_1tcp__client_1_1read__request.html#ad8b69f61884c60596aface363ca947a3',1,'tacopie::tcp_client::read_request::size()']]], 4 | ['success',['success',['../structtacopie_1_1tcp__client_1_1read__result.html#a9bb917b8d210159a95655a6f8da8e96e',1,'tacopie::tcp_client::read_result::success()'],['../structtacopie_1_1tcp__client_1_1write__result.html#a4a8d5706c83068a97c10e63c6080e6a3',1,'tacopie::tcp_client::write_result::success()']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/variables_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/variables_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/variables_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['rd_5fcallback',['rd_callback',['../structtacopie_1_1io__service_1_1tracked__socket.html#a4e44d4d8132f5272de80e83156d44fc6',1,'tacopie::io_service::tracked_socket']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/variables_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/variables_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['size',['size',['../structtacopie_1_1tcp__client_1_1write__result.html#acee9eca954a6f1b6283c6188eead2ab1',1,'tacopie::tcp_client::write_result::size()'],['../structtacopie_1_1tcp__client_1_1read__request.html#ad8b69f61884c60596aface363ca947a3',1,'tacopie::tcp_client::read_request::size()']]], 4 | ['success',['success',['../structtacopie_1_1tcp__client_1_1read__result.html#a9bb917b8d210159a95655a6f8da8e96e',1,'tacopie::tcp_client::read_result::success()'],['../structtacopie_1_1tcp__client_1_1write__result.html#a4a8d5706c83068a97c10e63c6080e6a3',1,'tacopie::tcp_client::write_result::success()']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/variables_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 |
    Loading...
    12 |
    13 | 16 |
    Searching...
    17 |
    No Matches
    18 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/html/search/variables_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['wr_5fcallback',['wr_callback',['../structtacopie_1_1io__service_1_1tracked__socket.html#ae46fc6ee7102027316eceff64116ba9d',1,'tacopie::io_service::tracked_socket']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/splitbar.png -------------------------------------------------------------------------------- /docs/html/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/sync_off.png -------------------------------------------------------------------------------- /docs/html/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/sync_on.png -------------------------------------------------------------------------------- /docs/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/tab_a.png -------------------------------------------------------------------------------- /docs/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/tab_b.png -------------------------------------------------------------------------------- /docs/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/tab_h.png -------------------------------------------------------------------------------- /docs/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/tab_s.png -------------------------------------------------------------------------------- /docs/html/tacopie_logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/html/tacopie_logo.jpg -------------------------------------------------------------------------------- /docs/latex/Makefile: -------------------------------------------------------------------------------- 1 | all: refman.pdf 2 | 3 | pdf: refman.pdf 4 | 5 | refman.pdf: clean refman.tex 6 | pdflatex refman 7 | makeindex refman.idx 8 | pdflatex refman 9 | latex_count=8 ; \ 10 | while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ 11 | do \ 12 | echo "Rerunning latex...." ;\ 13 | pdflatex refman ;\ 14 | latex_count=`expr $$latex_count - 1` ;\ 15 | done 16 | makeindex refman.idx 17 | pdflatex refman 18 | 19 | 20 | clean: 21 | rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf 22 | -------------------------------------------------------------------------------- /docs/latex/annotated.tex: -------------------------------------------------------------------------------- 1 | \section{Class List} 2 | Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList} 3 | \item\contentsline{section}{\hyperlink{classtacopie_1_1io__service}{tacopie\+::io\+\_\+service} }{\pageref{classtacopie_1_1io__service}}{} 4 | \item\contentsline{section}{\hyperlink{classtacopie_1_1logger}{tacopie\+::logger} }{\pageref{classtacopie_1_1logger}}{} 5 | \item\contentsline{section}{\hyperlink{classtacopie_1_1logger__iface}{tacopie\+::logger\+\_\+iface} }{\pageref{classtacopie_1_1logger__iface}}{} 6 | \item\contentsline{section}{\hyperlink{structtacopie_1_1tcp__client_1_1read__request}{tacopie\+::tcp\+\_\+client\+::read\+\_\+request} }{\pageref{structtacopie_1_1tcp__client_1_1read__request}}{} 7 | \item\contentsline{section}{\hyperlink{structtacopie_1_1tcp__client_1_1read__result}{tacopie\+::tcp\+\_\+client\+::read\+\_\+result} }{\pageref{structtacopie_1_1tcp__client_1_1read__result}}{} 8 | \item\contentsline{section}{\hyperlink{classtacopie_1_1self__pipe}{tacopie\+::self\+\_\+pipe} }{\pageref{classtacopie_1_1self__pipe}}{} 9 | \item\contentsline{section}{\hyperlink{classtacopie_1_1tacopie__error}{tacopie\+::tacopie\+\_\+error} }{\pageref{classtacopie_1_1tacopie__error}}{} 10 | \item\contentsline{section}{\hyperlink{classtacopie_1_1tcp__client}{tacopie\+::tcp\+\_\+client} }{\pageref{classtacopie_1_1tcp__client}}{} 11 | \item\contentsline{section}{\hyperlink{classtacopie_1_1tcp__server}{tacopie\+::tcp\+\_\+server} }{\pageref{classtacopie_1_1tcp__server}}{} 12 | \item\contentsline{section}{\hyperlink{classtacopie_1_1tcp__socket}{tacopie\+::tcp\+\_\+socket} }{\pageref{classtacopie_1_1tcp__socket}}{} 13 | \item\contentsline{section}{\hyperlink{classtacopie_1_1utils_1_1thread__pool}{tacopie\+::utils\+::thread\+\_\+pool} }{\pageref{classtacopie_1_1utils_1_1thread__pool}}{} 14 | \item\contentsline{section}{\hyperlink{structtacopie_1_1tcp__client_1_1write__request}{tacopie\+::tcp\+\_\+client\+::write\+\_\+request} }{\pageref{structtacopie_1_1tcp__client_1_1write__request}}{} 15 | \item\contentsline{section}{\hyperlink{structtacopie_1_1tcp__client_1_1write__result}{tacopie\+::tcp\+\_\+client\+::write\+\_\+result} }{\pageref{structtacopie_1_1tcp__client_1_1write__result}}{} 16 | \end{DoxyCompactList} 17 | -------------------------------------------------------------------------------- /docs/latex/classtacopie_1_1logger.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/latex/classtacopie_1_1logger.pdf -------------------------------------------------------------------------------- /docs/latex/classtacopie_1_1logger__iface.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/latex/classtacopie_1_1logger__iface.pdf -------------------------------------------------------------------------------- /docs/latex/classtacopie_1_1tacopie__error.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/latex/classtacopie_1_1tacopie__error.pdf -------------------------------------------------------------------------------- /docs/latex/dir_09e761304027c904456130627fd4dcf5.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{dir_09e761304027c904456130627fd4dcf5}{}\section{includes Directory Reference} 2 | \label{dir_09e761304027c904456130627fd4dcf5}\index{includes Directory Reference@{includes Directory Reference}} 3 | -------------------------------------------------------------------------------- /docs/latex/dir_1619eefbac1db14eaf18adaf83ce3ccc.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{dir_1619eefbac1db14eaf18adaf83ce3ccc}{}\section{includes/tacopie/network Directory Reference} 2 | \label{dir_1619eefbac1db14eaf18adaf83ce3ccc}\index{includes/tacopie/network Directory Reference@{includes/tacopie/network Directory Reference}} 3 | -------------------------------------------------------------------------------- /docs/latex/dir_38b559f7600c1df65fbc4b39f02eb3f8.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{dir_38b559f7600c1df65fbc4b39f02eb3f8}{}\section{includes/tacopie/utils Directory Reference} 2 | \label{dir_38b559f7600c1df65fbc4b39f02eb3f8}\index{includes/tacopie/utils Directory Reference@{includes/tacopie/utils Directory Reference}} 3 | -------------------------------------------------------------------------------- /docs/latex/dir_9a013686e2522dd95763481288c1f90f.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{dir_9a013686e2522dd95763481288c1f90f}{}\section{includes/tacopie Directory Reference} 2 | \label{dir_9a013686e2522dd95763481288c1f90f}\index{includes/tacopie Directory Reference@{includes/tacopie Directory Reference}} 3 | \subsection*{Directories} 4 | \begin{DoxyCompactItemize} 5 | \end{DoxyCompactItemize} 6 | -------------------------------------------------------------------------------- /docs/latex/error_8hpp.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{error_8hpp}{}\section{includes/tacopie/utils/error.hpp File Reference} 2 | \label{error_8hpp}\index{includes/tacopie/utils/error.\+hpp@{includes/tacopie/utils/error.\+hpp}} 3 | {\ttfamily \#include $<$cstdint$>$}\newline 4 | {\ttfamily \#include $<$stdexcept$>$}\newline 5 | {\ttfamily \#include $<$string$>$}\newline 6 | {\ttfamily \#include $<$tacopie/utils/logger.\+hpp$>$}\newline 7 | \subsection*{Classes} 8 | \begin{DoxyCompactItemize} 9 | \item 10 | class \hyperlink{classtacopie_1_1tacopie__error}{tacopie\+::tacopie\+\_\+error} 11 | \end{DoxyCompactItemize} 12 | \subsection*{Namespaces} 13 | \begin{DoxyCompactItemize} 14 | \item 15 | \hyperlink{namespacetacopie}{tacopie} 16 | \end{DoxyCompactItemize} 17 | \subsection*{Macros} 18 | \begin{DoxyCompactItemize} 19 | \item 20 | \#define \hyperlink{error_8hpp_aacdfb7799f2e2e2f57d6f1392ff3220a}{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+T\+H\+R\+OW}(level, what) 21 | \begin{DoxyCompactList}\small\item\em macro for convenience \end{DoxyCompactList}\end{DoxyCompactItemize} 22 | 23 | 24 | \subsection{Macro Definition Documentation} 25 | \mbox{\Hypertarget{error_8hpp_aacdfb7799f2e2e2f57d6f1392ff3220a}\label{error_8hpp_aacdfb7799f2e2e2f57d6f1392ff3220a}} 26 | \index{error.\+hpp@{error.\+hpp}!\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+T\+H\+R\+OW@{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+T\+H\+R\+OW}} 27 | \index{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+T\+H\+R\+OW@{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+T\+H\+R\+OW}!error.\+hpp@{error.\+hpp}} 28 | \subsubsection{\texorpdfstring{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+T\+H\+R\+OW}{\_\_TACOPIE\_THROW}} 29 | {\footnotesize\ttfamily \#define \+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+T\+H\+R\+OW(\begin{DoxyParamCaption}\item[{}]{level, }\item[{}]{what }\end{DoxyParamCaption})} 30 | 31 | {\bfseries Value\+:} 32 | \begin{DoxyCode} 33 | \{ \(\backslash\) 34 | \_\_TACOPIE\_LOG(level, (what)); \(\backslash\) 35 | throw \hyperlink{classtacopie_1_1tacopie__error}{tacopie::tacopie\_error}((what), \_\_FILE\_\_, \_\_LINE\_\_); \(\backslash\) 36 | \} 37 | \end{DoxyCode} 38 | 39 | 40 | macro for convenience 41 | 42 | -------------------------------------------------------------------------------- /docs/latex/files.tex: -------------------------------------------------------------------------------- 1 | \section{File List} 2 | Here is a list of all files with brief descriptions\+:\begin{DoxyCompactList} 3 | \item\contentsline{section}{includes/tacopie/network/\hyperlink{io__service_8hpp}{io\+\_\+service.\+hpp} }{\pageref{io__service_8hpp}}{} 4 | \item\contentsline{section}{includes/tacopie/network/\hyperlink{self__pipe_8hpp}{self\+\_\+pipe.\+hpp} }{\pageref{self__pipe_8hpp}}{} 5 | \item\contentsline{section}{includes/tacopie/network/\hyperlink{tcp__client_8hpp}{tcp\+\_\+client.\+hpp} }{\pageref{tcp__client_8hpp}}{} 6 | \item\contentsline{section}{includes/tacopie/network/\hyperlink{tcp__server_8hpp}{tcp\+\_\+server.\+hpp} }{\pageref{tcp__server_8hpp}}{} 7 | \item\contentsline{section}{includes/tacopie/network/\hyperlink{tcp__socket_8hpp}{tcp\+\_\+socket.\+hpp} }{\pageref{tcp__socket_8hpp}}{} 8 | \item\contentsline{section}{includes/tacopie/utils/\hyperlink{error_8hpp}{error.\+hpp} }{\pageref{error_8hpp}}{} 9 | \item\contentsline{section}{includes/tacopie/utils/\hyperlink{logger_8hpp}{logger.\+hpp} }{\pageref{logger_8hpp}}{} 10 | \item\contentsline{section}{includes/tacopie/utils/\hyperlink{thread__pool_8hpp}{thread\+\_\+pool.\+hpp} }{\pageref{thread__pool_8hpp}}{} 11 | \item\contentsline{section}{includes/tacopie/utils/\hyperlink{typedefs_8hpp}{typedefs.\+hpp} }{\pageref{typedefs_8hpp}}{} 12 | \end{DoxyCompactList} 13 | -------------------------------------------------------------------------------- /docs/latex/hierarchy.tex: -------------------------------------------------------------------------------- 1 | \section{Class Hierarchy} 2 | This inheritance list is sorted roughly, but not completely, alphabetically\+:\begin{DoxyCompactList} 3 | \item \contentsline{section}{tacopie\+:\+:io\+\_\+service}{\pageref{classtacopie_1_1io__service}}{} 4 | \item \contentsline{section}{tacopie\+:\+:logger\+\_\+iface}{\pageref{classtacopie_1_1logger__iface}}{} 5 | \begin{DoxyCompactList} 6 | \item \contentsline{section}{tacopie\+:\+:logger}{\pageref{classtacopie_1_1logger}}{} 7 | \end{DoxyCompactList} 8 | \item \contentsline{section}{tacopie\+:\+:tcp\+\_\+client\+:\+:read\+\_\+request}{\pageref{structtacopie_1_1tcp__client_1_1read__request}}{} 9 | \item \contentsline{section}{tacopie\+:\+:tcp\+\_\+client\+:\+:read\+\_\+result}{\pageref{structtacopie_1_1tcp__client_1_1read__result}}{} 10 | \item runtime\+\_\+error\begin{DoxyCompactList} 11 | \item \contentsline{section}{tacopie\+:\+:tacopie\+\_\+error}{\pageref{classtacopie_1_1tacopie__error}}{} 12 | \end{DoxyCompactList} 13 | \item \contentsline{section}{tacopie\+:\+:self\+\_\+pipe}{\pageref{classtacopie_1_1self__pipe}}{} 14 | \item \contentsline{section}{tacopie\+:\+:tcp\+\_\+client}{\pageref{classtacopie_1_1tcp__client}}{} 15 | \item \contentsline{section}{tacopie\+:\+:tcp\+\_\+server}{\pageref{classtacopie_1_1tcp__server}}{} 16 | \item \contentsline{section}{tacopie\+:\+:tcp\+\_\+socket}{\pageref{classtacopie_1_1tcp__socket}}{} 17 | \item \contentsline{section}{tacopie\+:\+:utils\+:\+:thread\+\_\+pool}{\pageref{classtacopie_1_1utils_1_1thread__pool}}{} 18 | \item \contentsline{section}{tacopie\+:\+:tcp\+\_\+client\+:\+:write\+\_\+request}{\pageref{structtacopie_1_1tcp__client_1_1write__request}}{} 19 | \item \contentsline{section}{tacopie\+:\+:tcp\+\_\+client\+:\+:write\+\_\+result}{\pageref{structtacopie_1_1tcp__client_1_1write__result}}{} 20 | \end{DoxyCompactList} 21 | -------------------------------------------------------------------------------- /docs/latex/logger_8hpp.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{logger_8hpp}{}\section{includes/tacopie/utils/logger.hpp File Reference} 2 | \label{logger_8hpp}\index{includes/tacopie/utils/logger.\+hpp@{includes/tacopie/utils/logger.\+hpp}} 3 | {\ttfamily \#include $<$memory$>$}\newline 4 | {\ttfamily \#include $<$mutex$>$}\newline 5 | {\ttfamily \#include $<$string$>$}\newline 6 | \subsection*{Classes} 7 | \begin{DoxyCompactItemize} 8 | \item 9 | class \hyperlink{classtacopie_1_1logger__iface}{tacopie\+::logger\+\_\+iface} 10 | \item 11 | class \hyperlink{classtacopie_1_1logger}{tacopie\+::logger} 12 | \end{DoxyCompactItemize} 13 | \subsection*{Namespaces} 14 | \begin{DoxyCompactItemize} 15 | \item 16 | \hyperlink{namespacetacopie}{tacopie} 17 | \end{DoxyCompactItemize} 18 | \subsection*{Macros} 19 | \begin{DoxyCompactItemize} 20 | \item 21 | \#define \hyperlink{logger_8hpp_a845e651e4529d5322a7cebc54a923bce}{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+L\+OG}(level, msg) 22 | \end{DoxyCompactItemize} 23 | \subsection*{Functions} 24 | \begin{DoxyCompactItemize} 25 | \item 26 | void \hyperlink{namespacetacopie_a0833874b07ad56b5ba2c7847f1e514b0}{tacopie\+::debug} (const std\+::string \&msg, const std\+::string \&file, std\+::size\+\_\+t line) 27 | \item 28 | void \hyperlink{namespacetacopie_acaa581a9e021e4ca6a20270667ce4e21}{tacopie\+::info} (const std\+::string \&msg, const std\+::string \&file, std\+::size\+\_\+t line) 29 | \item 30 | void \hyperlink{namespacetacopie_ac0a2f06f2f9fb6ded97b659d8573c25d}{tacopie\+::warn} (const std\+::string \&msg, const std\+::string \&file, std\+::size\+\_\+t line) 31 | \item 32 | void \hyperlink{namespacetacopie_a48f7b277b1559f2333c1186fa629ef01}{tacopie\+::error} (const std\+::string \&msg, const std\+::string \&file, std\+::size\+\_\+t line) 33 | \end{DoxyCompactItemize} 34 | \subsection*{Variables} 35 | \begin{DoxyCompactItemize} 36 | \item 37 | std\+::unique\+\_\+ptr$<$ logger\+\_\+iface $>$ \hyperlink{namespacetacopie_a043624ac998613a9387aca78a7f39f41}{tacopie\+::active\+\_\+logger} 38 | \end{DoxyCompactItemize} 39 | 40 | 41 | \subsection{Macro Definition Documentation} 42 | \mbox{\Hypertarget{logger_8hpp_a845e651e4529d5322a7cebc54a923bce}\label{logger_8hpp_a845e651e4529d5322a7cebc54a923bce}} 43 | \index{logger.\+hpp@{logger.\+hpp}!\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+L\+OG@{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+L\+OG}} 44 | \index{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+L\+OG@{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+L\+OG}!logger.\+hpp@{logger.\+hpp}} 45 | \subsubsection{\texorpdfstring{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+L\+OG}{\_\_TACOPIE\_LOG}} 46 | {\footnotesize\ttfamily \#define \+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+L\+OG(\begin{DoxyParamCaption}\item[{}]{level, }\item[{}]{msg }\end{DoxyParamCaption})} 47 | 48 | convenience macro to log with file and line information -------------------------------------------------------------------------------- /docs/latex/namespaces.tex: -------------------------------------------------------------------------------- 1 | \section{Namespace List} 2 | Here is a list of all namespaces with brief descriptions\+:\begin{DoxyCompactList} 3 | \item\contentsline{section}{\hyperlink{namespacetacopie}{tacopie} }{\pageref{namespacetacopie}}{} 4 | \item\contentsline{section}{\hyperlink{namespacetacopie_1_1utils}{tacopie\+::utils} }{\pageref{namespacetacopie_1_1utils}}{} 5 | \end{DoxyCompactList} 6 | -------------------------------------------------------------------------------- /docs/latex/namespacetacopie_1_1utils.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{namespacetacopie_1_1utils}{}\section{tacopie\+:\+:utils Namespace Reference} 2 | \label{namespacetacopie_1_1utils}\index{tacopie\+::utils@{tacopie\+::utils}} 3 | \subsection*{Classes} 4 | \begin{DoxyCompactItemize} 5 | \item 6 | class \hyperlink{classtacopie_1_1utils_1_1thread__pool}{thread\+\_\+pool} 7 | \end{DoxyCompactItemize} 8 | -------------------------------------------------------------------------------- /docs/latex/self__pipe_8hpp.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{self__pipe_8hpp}{}\section{includes/tacopie/network/self\+\_\+pipe.hpp File Reference} 2 | \label{self__pipe_8hpp}\index{includes/tacopie/network/self\+\_\+pipe.\+hpp@{includes/tacopie/network/self\+\_\+pipe.\+hpp}} 3 | {\ttfamily \#include $<$tacopie/utils/typedefs.\+hpp$>$}\newline 4 | \subsection*{Classes} 5 | \begin{DoxyCompactItemize} 6 | \item 7 | class \hyperlink{classtacopie_1_1self__pipe}{tacopie\+::self\+\_\+pipe} 8 | \end{DoxyCompactItemize} 9 | \subsection*{Namespaces} 10 | \begin{DoxyCompactItemize} 11 | \item 12 | \hyperlink{namespacetacopie}{tacopie} 13 | \end{DoxyCompactItemize} 14 | -------------------------------------------------------------------------------- /docs/latex/structtacopie_1_1tcp__client_1_1read__result.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structtacopie_1_1tcp__client_1_1read__result}{}\section{tacopie\+:\+:tcp\+\_\+client\+:\+:read\+\_\+result Struct Reference} 2 | \label{structtacopie_1_1tcp__client_1_1read__result}\index{tacopie\+::tcp\+\_\+client\+::read\+\_\+result@{tacopie\+::tcp\+\_\+client\+::read\+\_\+result}} 3 | 4 | 5 | {\ttfamily \#include $<$tcp\+\_\+client.\+hpp$>$} 6 | 7 | \subsection*{Public Attributes} 8 | \begin{DoxyCompactItemize} 9 | \item 10 | bool \hyperlink{structtacopie_1_1tcp__client_1_1read__result_a9bb917b8d210159a95655a6f8da8e96e}{success} 11 | \item 12 | std\+::vector$<$ char $>$ \hyperlink{structtacopie_1_1tcp__client_1_1read__result_a50d22ea3a43d085d88d54bbf59a357dc}{buffer} 13 | \end{DoxyCompactItemize} 14 | 15 | 16 | \subsection{Detailed Description} 17 | structure to store read requests result 18 | \begin{DoxyItemize} 19 | \item success\+: Whether the read operation has succeeded or not. If false, the client has been disconnected 20 | \item buffer\+: Vector containing the read bytes 21 | \end{DoxyItemize} 22 | 23 | \subsection{Member Data Documentation} 24 | \mbox{\Hypertarget{structtacopie_1_1tcp__client_1_1read__result_a50d22ea3a43d085d88d54bbf59a357dc}\label{structtacopie_1_1tcp__client_1_1read__result_a50d22ea3a43d085d88d54bbf59a357dc}} 25 | \index{tacopie\+::tcp\+\_\+client\+::read\+\_\+result@{tacopie\+::tcp\+\_\+client\+::read\+\_\+result}!buffer@{buffer}} 26 | \index{buffer@{buffer}!tacopie\+::tcp\+\_\+client\+::read\+\_\+result@{tacopie\+::tcp\+\_\+client\+::read\+\_\+result}} 27 | \subsubsection{\texorpdfstring{buffer}{buffer}} 28 | {\footnotesize\ttfamily std\+::vector$<$char$>$ tacopie\+::tcp\+\_\+client\+::read\+\_\+result\+::buffer} 29 | 30 | read bytes \mbox{\Hypertarget{structtacopie_1_1tcp__client_1_1read__result_a9bb917b8d210159a95655a6f8da8e96e}\label{structtacopie_1_1tcp__client_1_1read__result_a9bb917b8d210159a95655a6f8da8e96e}} 31 | \index{tacopie\+::tcp\+\_\+client\+::read\+\_\+result@{tacopie\+::tcp\+\_\+client\+::read\+\_\+result}!success@{success}} 32 | \index{success@{success}!tacopie\+::tcp\+\_\+client\+::read\+\_\+result@{tacopie\+::tcp\+\_\+client\+::read\+\_\+result}} 33 | \subsubsection{\texorpdfstring{success}{success}} 34 | {\footnotesize\ttfamily bool tacopie\+::tcp\+\_\+client\+::read\+\_\+result\+::success} 35 | 36 | whether the operation succeeeded or not 37 | 38 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} 39 | \item 40 | includes/tacopie/network/tcp\+\_\+client.\+hpp\end{DoxyCompactItemize} 41 | -------------------------------------------------------------------------------- /docs/latex/structtacopie_1_1tcp__client_1_1write__result.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structtacopie_1_1tcp__client_1_1write__result}{}\section{tacopie\+:\+:tcp\+\_\+client\+:\+:write\+\_\+result Struct Reference} 2 | \label{structtacopie_1_1tcp__client_1_1write__result}\index{tacopie\+::tcp\+\_\+client\+::write\+\_\+result@{tacopie\+::tcp\+\_\+client\+::write\+\_\+result}} 3 | 4 | 5 | {\ttfamily \#include $<$tcp\+\_\+client.\+hpp$>$} 6 | 7 | \subsection*{Public Attributes} 8 | \begin{DoxyCompactItemize} 9 | \item 10 | bool \hyperlink{structtacopie_1_1tcp__client_1_1write__result_a4a8d5706c83068a97c10e63c6080e6a3}{success} 11 | \item 12 | std\+::size\+\_\+t \hyperlink{structtacopie_1_1tcp__client_1_1write__result_acee9eca954a6f1b6283c6188eead2ab1}{size} 13 | \end{DoxyCompactItemize} 14 | 15 | 16 | \subsection{Detailed Description} 17 | structure to store write requests result 18 | \begin{DoxyItemize} 19 | \item success\+: Whether the write operation has succeeded or not. If false, the client has been disconnected 20 | \item size\+: Number of bytes written 21 | \end{DoxyItemize} 22 | 23 | \subsection{Member Data Documentation} 24 | \mbox{\Hypertarget{structtacopie_1_1tcp__client_1_1write__result_acee9eca954a6f1b6283c6188eead2ab1}\label{structtacopie_1_1tcp__client_1_1write__result_acee9eca954a6f1b6283c6188eead2ab1}} 25 | \index{tacopie\+::tcp\+\_\+client\+::write\+\_\+result@{tacopie\+::tcp\+\_\+client\+::write\+\_\+result}!size@{size}} 26 | \index{size@{size}!tacopie\+::tcp\+\_\+client\+::write\+\_\+result@{tacopie\+::tcp\+\_\+client\+::write\+\_\+result}} 27 | \subsubsection{\texorpdfstring{size}{size}} 28 | {\footnotesize\ttfamily std\+::size\+\_\+t tacopie\+::tcp\+\_\+client\+::write\+\_\+result\+::size} 29 | 30 | number of bytes written \mbox{\Hypertarget{structtacopie_1_1tcp__client_1_1write__result_a4a8d5706c83068a97c10e63c6080e6a3}\label{structtacopie_1_1tcp__client_1_1write__result_a4a8d5706c83068a97c10e63c6080e6a3}} 31 | \index{tacopie\+::tcp\+\_\+client\+::write\+\_\+result@{tacopie\+::tcp\+\_\+client\+::write\+\_\+result}!success@{success}} 32 | \index{success@{success}!tacopie\+::tcp\+\_\+client\+::write\+\_\+result@{tacopie\+::tcp\+\_\+client\+::write\+\_\+result}} 33 | \subsubsection{\texorpdfstring{success}{success}} 34 | {\footnotesize\ttfamily bool tacopie\+::tcp\+\_\+client\+::write\+\_\+result\+::success} 35 | 36 | whether the operation succeeeded or not 37 | 38 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} 39 | \item 40 | includes/tacopie/network/tcp\+\_\+client.\+hpp\end{DoxyCompactItemize} 41 | -------------------------------------------------------------------------------- /docs/latex/tacopie_logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpp-redis/tacopie/6a0cfca305cb03dad91d680bff7b06fa8f4b7adc/docs/latex/tacopie_logo.jpg -------------------------------------------------------------------------------- /docs/latex/tcp__client_8hpp.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{tcp__client_8hpp}{}\section{includes/tacopie/network/tcp\+\_\+client.hpp File Reference} 2 | \label{tcp__client_8hpp}\index{includes/tacopie/network/tcp\+\_\+client.\+hpp@{includes/tacopie/network/tcp\+\_\+client.\+hpp}} 3 | {\ttfamily \#include $<$atomic$>$}\newline 4 | {\ttfamily \#include $<$cstdint$>$}\newline 5 | {\ttfamily \#include $<$mutex$>$}\newline 6 | {\ttfamily \#include $<$queue$>$}\newline 7 | {\ttfamily \#include $<$string$>$}\newline 8 | {\ttfamily \#include $<$tacopie/network/io\+\_\+service.\+hpp$>$}\newline 9 | {\ttfamily \#include $<$tacopie/network/tcp\+\_\+socket.\+hpp$>$}\newline 10 | {\ttfamily \#include $<$tacopie/utils/typedefs.\+hpp$>$}\newline 11 | \subsection*{Classes} 12 | \begin{DoxyCompactItemize} 13 | \item 14 | class \hyperlink{classtacopie_1_1tcp__client}{tacopie\+::tcp\+\_\+client} 15 | \item 16 | struct \hyperlink{structtacopie_1_1tcp__client_1_1read__result}{tacopie\+::tcp\+\_\+client\+::read\+\_\+result} 17 | \item 18 | struct \hyperlink{structtacopie_1_1tcp__client_1_1write__result}{tacopie\+::tcp\+\_\+client\+::write\+\_\+result} 19 | \item 20 | struct \hyperlink{structtacopie_1_1tcp__client_1_1read__request}{tacopie\+::tcp\+\_\+client\+::read\+\_\+request} 21 | \item 22 | struct \hyperlink{structtacopie_1_1tcp__client_1_1write__request}{tacopie\+::tcp\+\_\+client\+::write\+\_\+request} 23 | \end{DoxyCompactItemize} 24 | \subsection*{Namespaces} 25 | \begin{DoxyCompactItemize} 26 | \item 27 | \hyperlink{namespacetacopie}{tacopie} 28 | \end{DoxyCompactItemize} 29 | -------------------------------------------------------------------------------- /docs/latex/tcp__server_8hpp.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{tcp__server_8hpp}{}\section{includes/tacopie/network/tcp\+\_\+server.hpp File Reference} 2 | \label{tcp__server_8hpp}\index{includes/tacopie/network/tcp\+\_\+server.\+hpp@{includes/tacopie/network/tcp\+\_\+server.\+hpp}} 3 | {\ttfamily \#include $<$atomic$>$}\newline 4 | {\ttfamily \#include $<$cstdint$>$}\newline 5 | {\ttfamily \#include $<$list$>$}\newline 6 | {\ttfamily \#include $<$memory$>$}\newline 7 | {\ttfamily \#include $<$mutex$>$}\newline 8 | {\ttfamily \#include $<$string$>$}\newline 9 | {\ttfamily \#include $<$tacopie/network/io\+\_\+service.\+hpp$>$}\newline 10 | {\ttfamily \#include $<$tacopie/network/tcp\+\_\+client.\+hpp$>$}\newline 11 | {\ttfamily \#include $<$tacopie/network/tcp\+\_\+socket.\+hpp$>$}\newline 12 | {\ttfamily \#include $<$tacopie/utils/typedefs.\+hpp$>$}\newline 13 | \subsection*{Classes} 14 | \begin{DoxyCompactItemize} 15 | \item 16 | class \hyperlink{classtacopie_1_1tcp__server}{tacopie\+::tcp\+\_\+server} 17 | \end{DoxyCompactItemize} 18 | \subsection*{Namespaces} 19 | \begin{DoxyCompactItemize} 20 | \item 21 | \hyperlink{namespacetacopie}{tacopie} 22 | \end{DoxyCompactItemize} 23 | \subsection*{Macros} 24 | \begin{DoxyCompactItemize} 25 | \item 26 | \#define \hyperlink{tcp__server_8hpp_adebb9fdca4ff2a2f68e6177d77a5ce7b}{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+C\+O\+N\+N\+E\+C\+T\+I\+O\+N\+\_\+\+Q\+U\+E\+U\+E\+\_\+\+S\+I\+ZE}~1024 27 | \end{DoxyCompactItemize} 28 | 29 | 30 | \subsection{Macro Definition Documentation} 31 | \mbox{\Hypertarget{tcp__server_8hpp_adebb9fdca4ff2a2f68e6177d77a5ce7b}\label{tcp__server_8hpp_adebb9fdca4ff2a2f68e6177d77a5ce7b}} 32 | \index{tcp\+\_\+server.\+hpp@{tcp\+\_\+server.\+hpp}!\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+C\+O\+N\+N\+E\+C\+T\+I\+O\+N\+\_\+\+Q\+U\+E\+U\+E\+\_\+\+S\+I\+ZE@{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+C\+O\+N\+N\+E\+C\+T\+I\+O\+N\+\_\+\+Q\+U\+E\+U\+E\+\_\+\+S\+I\+ZE}} 33 | \index{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+C\+O\+N\+N\+E\+C\+T\+I\+O\+N\+\_\+\+Q\+U\+E\+U\+E\+\_\+\+S\+I\+ZE@{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+C\+O\+N\+N\+E\+C\+T\+I\+O\+N\+\_\+\+Q\+U\+E\+U\+E\+\_\+\+S\+I\+ZE}!tcp\+\_\+server.\+hpp@{tcp\+\_\+server.\+hpp}} 34 | \subsubsection{\texorpdfstring{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+C\+O\+N\+N\+E\+C\+T\+I\+O\+N\+\_\+\+Q\+U\+E\+U\+E\+\_\+\+S\+I\+ZE}{\_\_TACOPIE\_CONNECTION\_QUEUE\_SIZE}} 35 | {\footnotesize\ttfamily \#define \+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+C\+O\+N\+N\+E\+C\+T\+I\+O\+N\+\_\+\+Q\+U\+E\+U\+E\+\_\+\+S\+I\+ZE~1024} 36 | 37 | -------------------------------------------------------------------------------- /docs/latex/tcp__socket_8hpp.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{tcp__socket_8hpp}{}\section{includes/tacopie/network/tcp\+\_\+socket.hpp File Reference} 2 | \label{tcp__socket_8hpp}\index{includes/tacopie/network/tcp\+\_\+socket.\+hpp@{includes/tacopie/network/tcp\+\_\+socket.\+hpp}} 3 | {\ttfamily \#include $<$cstdint$>$}\newline 4 | {\ttfamily \#include $<$string$>$}\newline 5 | {\ttfamily \#include $<$vector$>$}\newline 6 | {\ttfamily \#include $<$tacopie/utils/typedefs.\+hpp$>$}\newline 7 | \subsection*{Classes} 8 | \begin{DoxyCompactItemize} 9 | \item 10 | class \hyperlink{classtacopie_1_1tcp__socket}{tacopie\+::tcp\+\_\+socket} 11 | \end{DoxyCompactItemize} 12 | \subsection*{Namespaces} 13 | \begin{DoxyCompactItemize} 14 | \item 15 | \hyperlink{namespacetacopie}{tacopie} 16 | \end{DoxyCompactItemize} 17 | -------------------------------------------------------------------------------- /docs/latex/thread__pool_8hpp.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{thread__pool_8hpp}{}\section{includes/tacopie/utils/thread\+\_\+pool.hpp File Reference} 2 | \label{thread__pool_8hpp}\index{includes/tacopie/utils/thread\+\_\+pool.\+hpp@{includes/tacopie/utils/thread\+\_\+pool.\+hpp}} 3 | {\ttfamily \#include $<$atomic$>$}\newline 4 | {\ttfamily \#include $<$condition\+\_\+variable$>$}\newline 5 | {\ttfamily \#include $<$functional$>$}\newline 6 | {\ttfamily \#include $<$mutex$>$}\newline 7 | {\ttfamily \#include $<$queue$>$}\newline 8 | {\ttfamily \#include $<$thread$>$}\newline 9 | {\ttfamily \#include $<$vector$>$}\newline 10 | \subsection*{Classes} 11 | \begin{DoxyCompactItemize} 12 | \item 13 | class \hyperlink{classtacopie_1_1utils_1_1thread__pool}{tacopie\+::utils\+::thread\+\_\+pool} 14 | \end{DoxyCompactItemize} 15 | \subsection*{Namespaces} 16 | \begin{DoxyCompactItemize} 17 | \item 18 | \hyperlink{namespacetacopie}{tacopie} 19 | \item 20 | \hyperlink{namespacetacopie_1_1utils}{tacopie\+::utils} 21 | \end{DoxyCompactItemize} 22 | -------------------------------------------------------------------------------- /docs/latex/typedefs_8hpp.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{typedefs_8hpp}{}\section{includes/tacopie/utils/typedefs.hpp File Reference} 2 | \label{typedefs_8hpp}\index{includes/tacopie/utils/typedefs.\+hpp@{includes/tacopie/utils/typedefs.\+hpp}} 3 | \subsection*{Namespaces} 4 | \begin{DoxyCompactItemize} 5 | \item 6 | \hyperlink{namespacetacopie}{tacopie} 7 | \end{DoxyCompactItemize} 8 | \subsection*{Macros} 9 | \begin{DoxyCompactItemize} 10 | \item 11 | \#define \hyperlink{typedefs_8hpp_a0e879255fa9ca4ba90dfc6f91c5f592f}{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+FD}~-\/1 12 | \end{DoxyCompactItemize} 13 | \subsection*{Typedefs} 14 | \begin{DoxyCompactItemize} 15 | \item 16 | typedef int \hyperlink{namespacetacopie_acce7ad26b2d30156b1e6fa353f727026}{tacopie\+::fd\+\_\+t} 17 | \begin{DoxyCompactList}\small\item\em file descriptor platform type \end{DoxyCompactList}\end{DoxyCompactItemize} 18 | 19 | 20 | \subsection{Macro Definition Documentation} 21 | \mbox{\Hypertarget{typedefs_8hpp_a0e879255fa9ca4ba90dfc6f91c5f592f}\label{typedefs_8hpp_a0e879255fa9ca4ba90dfc6f91c5f592f}} 22 | \index{typedefs.\+hpp@{typedefs.\+hpp}!\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+FD@{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+FD}} 23 | \index{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+FD@{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+FD}!typedefs.\+hpp@{typedefs.\+hpp}} 24 | \subsubsection{\texorpdfstring{\+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+FD}{\_\_TACOPIE\_INVALID\_FD}} 25 | {\footnotesize\ttfamily \#define \+\_\+\+\_\+\+T\+A\+C\+O\+P\+I\+E\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+FD~-\/1} 26 | 27 | -------------------------------------------------------------------------------- /examples/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2016-2017 Simon Ninon 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 | 23 | ### 24 | # compilation options 25 | ### 26 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 27 | 28 | 29 | ### 30 | # includes 31 | ### 32 | include_directories(${PROJECT_SOURCE_DIR}/includes 33 | ${TACOPIE_INCLUDES}) 34 | 35 | 36 | ### 37 | # executable 38 | ### 39 | add_executable(tacopie_tcp_server tcp_server.cpp) 40 | target_link_libraries(tacopie_tcp_server tacopie) 41 | IF (LOGGING_ENABLED) 42 | set_target_properties(tacopie_tcp_server PROPERTIES COMPILE_DEFINITIONS "__TACOPIE_LOGGING_ENABLED=${LOGGING_ENABLED}") 43 | ENDIF (LOGGING_ENABLED) 44 | 45 | add_executable(tacopie_tcp_client tcp_client.cpp) 46 | target_link_libraries(tacopie_tcp_client tacopie) 47 | IF (LOGGING_ENABLED) 48 | set_target_properties(tacopie_tcp_client PROPERTIES COMPILE_DEFINITIONS "__TACOPIE_LOGGING_ENABLED=${LOGGING_ENABLED}") 49 | ENDIF (LOGGING_ENABLED) 50 | 51 | add_executable(tacopie_logger logger.cpp) 52 | target_link_libraries(tacopie_logger tacopie) 53 | IF (LOGGING_ENABLED) 54 | set_target_properties(tacopie_logger PROPERTIES COMPILE_DEFINITIONS "__TACOPIE_LOGGING_ENABLED=${LOGGING_ENABLED}") 55 | ENDIF (LOGGING_ENABLED) 56 | -------------------------------------------------------------------------------- /examples/tcp_client.cpp: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2016-2017 Simon Ninon 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 | 23 | #include 24 | 25 | #include 26 | #include 27 | #include 28 | #include 29 | 30 | #ifdef _WIN32 31 | #include 32 | #endif /* _WIN32 */ 33 | 34 | std::condition_variable cv; 35 | 36 | void 37 | signint_handler(int) { 38 | cv.notify_all(); 39 | } 40 | 41 | void 42 | on_new_message(tacopie::tcp_client& client, const tacopie::tcp_client::read_result& res) { 43 | if (res.success) { 44 | std::cout << "Client recv data" << std::endl; 45 | client.async_write({res.buffer, nullptr}); 46 | client.async_read({1024, std::bind(&on_new_message, std::ref(client), std::placeholders::_1)}); 47 | } 48 | else { 49 | std::cout << "Client disconnected" << std::endl; 50 | client.disconnect(); 51 | } 52 | } 53 | 54 | int 55 | main(void) { 56 | #ifdef _WIN32 57 | //! Windows netword DLL init 58 | WORD version = MAKEWORD(2, 2); 59 | WSADATA data; 60 | 61 | if (WSAStartup(version, &data) != 0) { 62 | std::cerr << "WSAStartup() failure" << std::endl; 63 | return -1; 64 | } 65 | #endif /* _WIN32 */ 66 | 67 | tacopie::tcp_client client; 68 | client.connect("127.0.0.1", 3001); 69 | client.async_read({1024, std::bind(&on_new_message, std::ref(client), std::placeholders::_1)}); 70 | 71 | signal(SIGINT, &signint_handler); 72 | 73 | std::mutex mtx; 74 | std::unique_lock lock(mtx); 75 | cv.wait(lock); 76 | 77 | #ifdef _WIN32 78 | WSACleanup(); 79 | #endif /* _WIN32 */ 80 | 81 | return 0; 82 | } 83 | -------------------------------------------------------------------------------- /examples/tcp_server.cpp: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2016-2017 Simon Ninon 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 | 23 | #include 24 | 25 | #include 26 | #include 27 | #include 28 | #include 29 | 30 | #ifdef _WIN32 31 | #include 32 | #endif /* _WIN32 */ 33 | 34 | std::condition_variable cv; 35 | 36 | void 37 | signint_handler(int) { 38 | cv.notify_all(); 39 | } 40 | 41 | void 42 | on_new_message(const std::shared_ptr& client, const tacopie::tcp_client::read_result& res) { 43 | if (res.success) { 44 | std::cout << "Client recv data" << std::endl; 45 | client->async_write({res.buffer, nullptr}); 46 | client->async_read({1024, std::bind(&on_new_message, client, std::placeholders::_1)}); 47 | } 48 | else { 49 | std::cout << "Client disconnected" << std::endl; 50 | client->disconnect(); 51 | } 52 | } 53 | 54 | int 55 | main(void) { 56 | #ifdef _WIN32 57 | //! Windows netword DLL init 58 | WORD version = MAKEWORD(2, 2); 59 | WSADATA data; 60 | 61 | if (WSAStartup(version, &data) != 0) { 62 | std::cerr << "WSAStartup() failure" << std::endl; 63 | return -1; 64 | } 65 | #endif /* _WIN32 */ 66 | 67 | tacopie::tcp_server s; 68 | s.start("127.0.0.1", 3001, [](const std::shared_ptr& client) -> bool { 69 | std::cout << "New client" << std::endl; 70 | client->async_read({1024, std::bind(&on_new_message, client, std::placeholders::_1)}); 71 | return true; 72 | }); 73 | 74 | signal(SIGINT, &signint_handler); 75 | 76 | std::mutex mtx; 77 | std::unique_lock lock(mtx); 78 | cv.wait(lock); 79 | 80 | #ifdef _WIN32 81 | WSACleanup(); 82 | #endif /* _WIN32 */ 83 | 84 | return 0; 85 | } 86 | -------------------------------------------------------------------------------- /includes/tacopie/network/self_pipe.hpp: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2016-2017 Simon Ninon 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 | 23 | #pragma once 24 | 25 | #include 26 | 27 | namespace tacopie { 28 | 29 | //! 30 | //! used to force poll to wake up 31 | //! simply make poll watch for read events on one side of the pipe and write to the other side 32 | //! 33 | class self_pipe { 34 | public: 35 | //! ctor 36 | self_pipe(void); 37 | //! dtor 38 | ~self_pipe(void); 39 | 40 | //! copy ctor 41 | self_pipe(const self_pipe&) = delete; 42 | //! assignment operator 43 | self_pipe& operator=(const self_pipe&) = delete; 44 | 45 | public: 46 | //! 47 | //! \return the read fd of the pipe 48 | //! 49 | fd_t get_read_fd(void) const; 50 | 51 | //! 52 | //! \return the write fd of the pipe 53 | //! 54 | fd_t get_write_fd(void) const; 55 | 56 | //! 57 | //! notify the self pipe (basically write to the pipe) 58 | //! 59 | void notify(void); 60 | 61 | //! 62 | //! clear the pipe (basically read from the pipe) 63 | //! 64 | void clr_buffer(void); 65 | 66 | private: 67 | #ifdef _WIN32 68 | //! 69 | //! socket fd 70 | //! 71 | fd_t m_fd; 72 | 73 | //! 74 | //! socket information 75 | //! 76 | struct sockaddr m_addr; 77 | 78 | //! 79 | //! socket information (addr len) 80 | //! 81 | int m_addr_len; 82 | #else 83 | //! 84 | //! pipe file descriptors 85 | //! 86 | fd_t m_fds[2]; 87 | #endif /* _WIN32 */ 88 | }; 89 | 90 | } // namespace tacopie 91 | -------------------------------------------------------------------------------- /includes/tacopie/tacopie: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2016-2017 Simon Ninon 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 | 23 | #pragma once 24 | 25 | #ifdef _WIN32 26 | #pragma comment( lib, "ws2_32.lib") 27 | #endif /* _WIN32 */ 28 | 29 | //! utils 30 | #include 31 | #include 32 | #include 33 | 34 | //! network 35 | #include 36 | #include 37 | #include 38 | 39 | //! utils 40 | #include 41 | -------------------------------------------------------------------------------- /includes/tacopie/utils/error.hpp: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2016-2017 Simon Ninon 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 | 23 | #pragma once 24 | 25 | #include 26 | #include 27 | #include 28 | 29 | #include 30 | 31 | namespace tacopie { 32 | 33 | //! 34 | //! specialized runtime_error used for tacopie error 35 | //! 36 | class tacopie_error : public std::runtime_error { 37 | public: 38 | //! ctor 39 | tacopie_error(const std::string& what, const std::string& file, std::size_t line); 40 | //! assignment operator 41 | ~tacopie_error(void) = default; 42 | 43 | //! copy ctor 44 | tacopie_error(const tacopie_error&) = default; 45 | //! assignment operator 46 | tacopie_error& operator=(const tacopie_error&) = default; 47 | 48 | public: 49 | //! 50 | //! \return file in which error occured 51 | //! 52 | const std::string& get_file(void) const; 53 | 54 | //! 55 | //! \return line at which the error occured 56 | //! 57 | std::size_t get_line(void) const; 58 | 59 | private: 60 | //! 61 | //! file location of the error 62 | //! 63 | std::string m_file; 64 | 65 | //! 66 | //! line location of the error 67 | //! 68 | std::size_t m_line; 69 | }; 70 | 71 | } // namespace tacopie 72 | 73 | //! macro for convenience 74 | #define __TACOPIE_THROW(level, what) \ 75 | { \ 76 | __TACOPIE_LOG(level, (what)); \ 77 | throw tacopie::tacopie_error((what), __FILE__, __LINE__); \ 78 | } 79 | -------------------------------------------------------------------------------- /includes/tacopie/utils/typedefs.hpp: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2016-2017 Simon Ninon 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 | 23 | #pragma once 24 | 25 | #ifdef _WIN32 26 | #include 27 | #endif /* _WIN32 */ 28 | 29 | namespace tacopie { 30 | 31 | //! file descriptor platform type 32 | #ifdef _WIN32 33 | typedef SOCKET fd_t; 34 | #define __TACOPIE_INVALID_FD INVALID_SOCKET 35 | #else 36 | typedef int fd_t; 37 | #define __TACOPIE_INVALID_FD -1 38 | #endif /* _WIN32 */ 39 | 40 | //! ssize_t 41 | #if defined(_MSC_VER) 42 | #include 43 | typedef SSIZE_T ssize_t; 44 | #endif 45 | 46 | } //! tacopie 47 | -------------------------------------------------------------------------------- /msvc15/tacopie.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.26430.16 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tacopie", "tacopie.vcxproj", "{5DC28D31-04A5-4509-8EE3-CF16DE77475B}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Debug|x86 = Debug|x86 12 | Release|x64 = Release|x64 13 | Release|x86 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {5DC28D31-04A5-4509-8EE3-CF16DE77475B}.Debug|x64.ActiveCfg = Debug|x64 17 | {5DC28D31-04A5-4509-8EE3-CF16DE77475B}.Debug|x64.Build.0 = Debug|x64 18 | {5DC28D31-04A5-4509-8EE3-CF16DE77475B}.Debug|x86.ActiveCfg = Debug|Win32 19 | {5DC28D31-04A5-4509-8EE3-CF16DE77475B}.Debug|x86.Build.0 = Debug|Win32 20 | {5DC28D31-04A5-4509-8EE3-CF16DE77475B}.Release|x64.ActiveCfg = Release|x64 21 | {5DC28D31-04A5-4509-8EE3-CF16DE77475B}.Release|x64.Build.0 = Release|x64 22 | {5DC28D31-04A5-4509-8EE3-CF16DE77475B}.Release|x86.ActiveCfg = Release|Win32 23 | {5DC28D31-04A5-4509-8EE3-CF16DE77475B}.Release|x86.Build.0 = Release|Win32 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /sources/network/unix/unix_self_pipe.cpp: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2016-2017 Simon Ninon 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 | 23 | //! guard for bulk content integration depending on how user integrates the library 24 | #ifndef _WIN32 25 | 26 | #include 27 | #include 28 | 29 | #include 30 | #include 31 | 32 | namespace tacopie { 33 | 34 | //! 35 | //! ctor & dtor 36 | //! 37 | self_pipe::self_pipe(void) 38 | : m_fds{__TACOPIE_INVALID_FD, __TACOPIE_INVALID_FD} { 39 | if (pipe(m_fds) == -1) { __TACOPIE_THROW(error, "pipe() failure"); } 40 | } 41 | 42 | self_pipe::~self_pipe(void) { 43 | if (m_fds[0] != __TACOPIE_INVALID_FD) { 44 | close(m_fds[0]); 45 | } 46 | 47 | if (m_fds[1] != __TACOPIE_INVALID_FD) { 48 | close(m_fds[1]); 49 | } 50 | } 51 | 52 | //! 53 | //! get rd/wr fds 54 | //! 55 | fd_t 56 | self_pipe::get_read_fd(void) const { 57 | return m_fds[0]; 58 | } 59 | 60 | fd_t 61 | self_pipe::get_write_fd(void) const { 62 | return m_fds[1]; 63 | } 64 | 65 | template 66 | void 67 | ___ignore_unused(T1 const&) {} 68 | 69 | //! 70 | //! notify 71 | //! 72 | void 73 | self_pipe::notify(void) { 74 | ___ignore_unused(write(m_fds[1], "a", 1)); 75 | } 76 | 77 | //! 78 | //! clr buffer 79 | //! 80 | void 81 | self_pipe::clr_buffer(void) { 82 | char buf[1024]; 83 | ___ignore_unused(read(m_fds[0], buf, 1024)); 84 | } 85 | 86 | } // namespace tacopie 87 | 88 | #endif /* _WIN32 */ 89 | -------------------------------------------------------------------------------- /sources/utils/error.cpp: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2016-2017 Simon Ninon 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 | 23 | #include 24 | 25 | namespace tacopie { 26 | 27 | //! 28 | //! ctor & dtor 29 | //! 30 | 31 | tacopie_error::tacopie_error(const std::string& what, const std::string& file, std::size_t line) 32 | : std::runtime_error(what) 33 | , m_file(file) 34 | , m_line(line) {} 35 | 36 | //! 37 | //! get location of the error 38 | //! 39 | 40 | const std::string& 41 | tacopie_error::get_file(void) const { 42 | return m_file; 43 | } 44 | 45 | std::size_t 46 | tacopie_error::get_line(void) const { 47 | return m_line; 48 | } 49 | 50 | } // namespace tacopie 51 | -------------------------------------------------------------------------------- /tacopie.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | libdir=${prefix}/lib 3 | includedir=${prefix}/include 4 | 5 | Name: @PROJECT_NAME@ 6 | Description: tacopie is a multi-platform TCP Client & Server C++11 library. 7 | Version: @PROJECT_VERSION@ 8 | Libs: -L${libdir} -ltacopie 9 | Cflags: -I${includedir} -------------------------------------------------------------------------------- /tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2016-2017 Simon Ninon 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 | 23 | ### 24 | # project 25 | ### 26 | set(PROJECT tacopie_tests) 27 | project(${PROJECT} CXX) 28 | 29 | 30 | ### 31 | # compilation options 32 | ### 33 | IF (NOT WIN32) 34 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 35 | ENDIF (NOT WIN32) 36 | 37 | 38 | ### 39 | # includes 40 | ### 41 | include_directories(${DEPS_INCLUDES} ${TACOPIE_INCLUDES}) 42 | 43 | 44 | ### 45 | # libraries 46 | ### 47 | link_directories(${DEPS_LIBRARIES}) 48 | 49 | 50 | ### 51 | # sources 52 | ### 53 | set(SOURCES "") 54 | set(DIRS "sources" "sources/spec" "sources/spec/**") 55 | foreach(dir ${DIRS}) 56 | # get directory sources 57 | file(GLOB s_${dir} "${dir}/*.cpp") 58 | # set sources 59 | set(SOURCES ${SOURCES} ${s_${dir}}) 60 | endforeach() 61 | 62 | 63 | ### 64 | # executable 65 | ### 66 | add_executable(${PROJECT} ${SOURCES}) 67 | 68 | target_link_libraries(${PROJECT} tacopie gtest) 69 | 70 | IF (WIN32) 71 | target_link_libraries(${PROJECT} ws2_32) 72 | ELSE () 73 | target_link_libraries(${PROJECT} pthread) 74 | ENDIF (WIN32) 75 | -------------------------------------------------------------------------------- /tests/sources/main.cpp: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2016-2017 Simon Ninon 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 | 23 | #include 24 | 25 | int 26 | main(int argc, char** argv) { 27 | ::testing::InitGoogleTest(&argc, argv); 28 | 29 | return RUN_ALL_TESTS(); 30 | } 31 | --------------------------------------------------------------------------------