Compare commits

...

No commits in common. "gh-pages" and "main" have entirely different histories.

992 changed files with 16463 additions and 49498 deletions

41
.clang-format Normal file
View File

@ -0,0 +1,41 @@
BasedOnStyle: llvm
---
AccessModifierOffset: -4
AlignEscapedNewlines: DontAlign
AllowShortBlocksOnASingleLine: Empty
AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: Empty
AllowShortIfStatementsOnASingleLine: WithoutElse
AllowShortLoopsOnASingleLine: true
AlwaysBreakTemplateDeclarations: Yes
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeTernaryOperators: true
ColumnLimit: 0
DerivePointerAlignment: false
IncludeCategories:
- Regex: '<[[:alnum:]_]+>'
Priority: 1
- Regex: '<(gtest|gmock)/'
Priority: 2
- Regex: '<[[:alnum:]_./]+>'
Priority: 3
- Regex: '<entt/'
Priority: 4
- Regex: '.*'
Priority: 5
IndentPPDirectives: AfterHash
IndentWidth: 4
KeepEmptyLinesAtTheStartOfBlocks: false
Language: Cpp
PointerAlignment: Right
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: false
SpaceAroundPointerQualifiers: After
SpaceBeforeCaseColon: false
SpaceBeforeCtorInitializerColon: false
SpaceBeforeInheritanceColon: false
SpaceBeforeParens: Never
SpaceBeforeRangeBasedForLoopColon: false
Standard: Latest
TabWidth: 4
UseTab: Never

12
.clang-tidy Normal file
View File

@ -0,0 +1,12 @@
Checks: >
bugprone-*,
-bugprone-easily-swappable-parameters,
concurrency-*,
modernize-*,
-modernize-avoid-c-arrays,
-modernize-use-trailing-return-type,
performance-*,
portability-*,
CheckOptions:
- key: bugprone-suspicious-include.HeaderFileExtensions
value: ";h;hpp;ipp"

53
.conan/build.py Normal file
View File

@ -0,0 +1,53 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import re
import platform
from cpt.packager import ConanMultiPackager
def get_version():
with open("CMakeLists.txt") as cmake:
content = cmake.read()
match = re.search(r'project\(uvw VERSION (.*)\)', content)
if match:
return match.group(1)
tag_version = os.getenv("GITHUB_REF")
package_version = tag_version.replace("refs/tags/v", "")
return package_version
def get_username():
return os.getenv("CONAN_USERNAME", "skypjack")
def get_reference():
version = get_version()
username = get_username()
return "uvw/{}@{}/stable".format(version, username)
def get_upload():
username = get_username()
url = "https://api.bintray.com/conan/{}/conan".format(username)
default_upload = url if os.getenv("GITHUB_REF") else False
return os.getenv("CONAN_UPLOAD", default_upload)
def upload_when_stable():
return os.getenv("CONAN_UPLOAD_ONLY_WHEN_STABLE", "1").lower() not in ["0", "false", "no"]
if __name__ == "__main__":
test_folder = os.path.join(".conan", "test_package")
builder = ConanMultiPackager(reference=get_reference(),
username=get_username(),
upload=get_upload(),
test_folder=test_folder,
stable_branch_pattern=r'v?\d+\.\d+\.\d+.*',
upload_only_when_stable=upload_when_stable())
if platform.system() == "Linux":
builder.add(settings={"compiler": "gcc", "compiler.version": "8",
"arch": "x86_64", "build_type": "Release"},
options={}, env_vars={}, build_requires={})
builder.run()

View File

@ -0,0 +1,10 @@
project(test_package)
cmake_minimum_required(VERSION 2.8)
set(CMAKE_VERBOSE_MAKEFILE TRUE)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup(TARGETS)
add_executable(${PROJECT_NAME} test_package.cpp)
target_link_libraries(${PROJECT_NAME} CONAN_PKG::uvw)

View File

@ -0,0 +1,18 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from conans import ConanFile, CMake
class TestPackageConan(ConanFile):
settings = "os", "compiler", "build_type", "arch"
generators = "cmake"
def build(self):
cmake = CMake(self)
cmake.configure()
cmake.build()
def test(self):
test_package = os.path.join("bin", "test_package")
self.run(test_package, run_environment=True)

View File

@ -0,0 +1,48 @@
#include <cstdlib>
#include <iostream>
#include <uvw.hpp>
#include <memory>
void listen(uvw::loop &loop) {
std::shared_ptr<uvw::tcp_handle> tcp = loop.resource<uvw::tcp_handle>();
tcp->on<uvw::listen_event>([](const uvw::listen_event &, uvw::tcp_handle &srv) {
std::shared_ptr<uvw::tcp_handle> client = srv.loop().resource<uvw::tcp_handle>();
client->on<uvw::close_event>([ptr = srv.shared_from_this()](const uvw::close_event &, uvw::tcp_handle &) { ptr->close(); });
client->on<uvw::end_event>([](const uvw::end_event &, uvw::tcp_handle &client) { client.close(); });
srv.accept(*client);
client->read();
});
tcp->bind("127.0.0.1", 4242);
tcp->listen();
}
void conn(uvw::loop &loop) {
auto tcp = loop.resource<uvw::tcp_handle>();
tcp->on<uvw::error_event>([](const uvw::error_event &, uvw::tcp_handle &) { /* handle errors */ });
tcp->on<uvw::connect_event>([](const uvw::connect_event &, uvw::tcp_handle &tcp) {
auto dataWrite = std::unique_ptr<char[]>(new char[2]{ 'b', 'c' });
tcp.write(std::move(dataWrite), 2);
tcp.close();
});
tcp->connect(std::string{"127.0.0.1"}, 4242);
}
int main() {
std::cout << "Getting UVW loop ...\n";
auto loop = uvw::loop::get_default();
std::cout << "Staring UVW listener ...\n";
listen(*loop);
std::cout << "Connecting ...\n";
conn(*loop);
loop->run();
std::cout << "Done!\n";
return EXIT_SUCCESS;
}

12
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,12 @@
# These are supported funding model platforms
github: skypjack
patreon:
open_collective:
ko_fi:
tidelift:
community_bridge:
liberapay:
issuehunt:
otechie:
custom: https://www.paypal.me/skypjack

21
.github/workflows/build-macos.yml vendored Normal file
View File

@ -0,0 +1,21 @@
name: build-macos
on: [push, pull_request]
jobs:
macos:
timeout-minutes: 60
runs-on: macOS-latest
strategy:
matrix:
mode: [-DUVW_BUILD_SHARED_LIB=ON, -DUVW_BUILD_LIBS=ON, -DUVW_BUILD_LIBS=OFF]
steps:
- uses: actions/checkout@v4
- name: Compile tests
working-directory: build
run: |
cmake ${{ matrix.mode }} -DUVW_BUILD_TESTING=ON -Dlibuv_buildtests=OFF ..
make -j2

25
.github/workflows/build-meson.yml vendored Normal file
View File

@ -0,0 +1,25 @@
name: build-meson
on: [push, pull_request]
jobs:
meson:
timeout-minutes: 60
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Install Meson
env:
DEBIAN_FRONTEND: noninteractive
run: |
sudo apt-get update --fix-missing
sudo apt-get install -y meson
- name: Meson Build (shared)
run: |
meson setup build
meson compile -C build
- name: Meson Build (static)
run: |
rm -rf build/
meson setup build --default-library=static
meson compile -C build

View File

@ -0,0 +1,39 @@
name: build-ubuntu-20.04
on: [push, pull_request]
jobs:
linux:
timeout-minutes: 60
strategy:
matrix:
compiler:
- { pkg: g++, exe: 'g++', version: 7 }
- { pkg: g++, exe: 'g++', version: 8 }
- { pkg: g++, exe: 'g++', version: 9 }
- { pkg: clang, exe: 'clang++', version: 8 }
- { pkg: clang, exe: 'clang++', version: 9 }
- { pkg: clang, exe: 'clang++', version: 10 }
- { pkg: clang, exe: 'clang++', version: 11 }
mode: [-DUVW_BUILD_SHARED_LIB=ON, -DUVW_BUILD_LIBS=ON, -DUVW_BUILD_LIBS=OFF]
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Install ${{ matrix.compiler.exe }}
run: |
sudo apt-get update --fix-missing
sudo apt install -y ${{ matrix.compiler.pkg }}-${{ matrix.compiler.version }}
- name: Compile tests
env:
CXX: ${{ matrix.compiler.exe }}-${{ matrix.compiler.version }}
run: |
cmake ${{ matrix.mode }} --preset ci-ubuntu
cmake --build build/ --parallel 2
- name: Run tests
working-directory: build
env:
CTEST_OUTPUT_ON_FAILURE: 1
run: ctest --timeout 5 -C Debug -j2

View File

@ -0,0 +1,38 @@
name: build-ubuntu-latest
on: [push, pull_request]
jobs:
linux:
timeout-minutes: 60
strategy:
matrix:
compiler:
- { pkg: g++, exe: 'g++', version: 10 }
- { pkg: g++, exe: 'g++', version: 11 }
- { pkg: g++, exe: 'g++', version: 12 }
- { pkg: clang, exe: 'clang++', version: 12 }
- { pkg: clang, exe: 'clang++', version: 13 }
- { pkg: clang, exe: 'clang++', version: 14 }
mode: [-DUVW_BUILD_SHARED_LIB=ON, -DUVW_BUILD_LIBS=ON, -DUVW_BUILD_LIBS=OFF]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install ${{ matrix.compiler.exe }}
run: |
sudo apt-get update --fix-missing
sudo apt install -y ${{ matrix.compiler.pkg }}-${{ matrix.compiler.version }}
- name: Compile tests
env:
CXX: ${{ matrix.compiler.exe }}-${{ matrix.compiler.version }}
run: |
cmake ${{ matrix.mode }} --preset ci-ubuntu
cmake --build build/ --parallel 2
- name: Run tests
working-directory: build
env:
CTEST_OUTPUT_ON_FAILURE: 1
run: ctest --timeout 5 -C Debug -j2

22
.github/workflows/build-win.yml vendored Normal file
View File

@ -0,0 +1,22 @@
name: build-win
on: [push, pull_request]
jobs:
windows:
timeout-minutes: 60
runs-on: windows-latest
strategy:
matrix:
generator: [Visual Studio 17 2022]
mode: [-DUVW_BUILD_SHARED_LIB=ON, -DUVW_BUILD_LIBS=ON, -DUVW_BUILD_LIBS=OFF]
steps:
- uses: actions/checkout@v4
- name: Compile tests
working-directory: build
run: |
cmake -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE ${{ matrix.mode }} -DUVW_BUILD_TESTING=ON -Dlibuv_buildtests=OFF -DCMAKE_CXX_FLAGS=/W1 -G"${{ matrix.generator }}" ..
cmake --build . -j 2

33
.github/workflows/coverage.yml vendored Normal file
View File

@ -0,0 +1,33 @@
name: coverage
on: [push, pull_request]
jobs:
codecov:
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Compile tests
working-directory: build
env:
CXXFLAGS: "-O0 --coverage -fno-inline -fno-inline-small-functions -fno-default-inline"
CXX: g++
run: |
cmake -DUVW_BUILD_TESTING=ON -Dlibuv_buildtests=OFF ..
make -j4
- name: Run tests
working-directory: build
env:
CTEST_OUTPUT_ON_FAILURE: 1
run: ctest --timeout 5 -C Debug -j4
- name: Upload coverage to Codecov
working-directory: build
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
run: |
wget https://codecov.io/bash -O codecov
chmod +x codecov
./codecov -t $CODECOV_TOKEN -B $GITHUB_REF -s .

32
.github/workflows/deploy.yml vendored Normal file
View File

@ -0,0 +1,32 @@
name: deploy
on:
push:
tags:
- v*
jobs:
conan:
timeout-minutes: 5
runs-on: ubuntu-latest
steps:
- uses: docker://conanio/gcc8
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@master
with:
version: 3.7
- name: Install
run: |
pip install --upgrade wheel
pip install conan_package_tools
- name: Deploy
env:
CONAN_LOGIN_USERNAME: ${{ secrets.CONAN_LOGIN_USERNAME }}
CONAN_PASSWORD: ${{ secrets.CONAN_PASSWORD }}
CONAN_UPLOAD: ${{ secrets.CONAN_UPLOAD }}
CONAN_GCC_VERSIONS: 8
run: |
python .conan/build.py

30
.github/workflows/sanitizer.yml vendored Normal file
View File

@ -0,0 +1,30 @@
name: sanitizer
on: [push, pull_request]
jobs:
clang:
timeout-minutes: 15
strategy:
matrix:
compiler: [clang++]
sanitizer: [ASAN, UBSAN]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Compile tests
working-directory: build
env:
CXX: ${{ matrix.compiler }}
run: |
cmake ${{ matrix.mode }} -DUVW_BUILD_TESTING=ON -DUVW_USE_${{ matrix.sanitizer }}=ON -Dlibuv_buildtests=OFF ..
make -j2
- name: Run tests
working-directory: build
env:
CTEST_OUTPUT_ON_FAILURE: 1
run: ctest --timeout 5 -C Debug -j2

78
.github/workflows/tools.yml vendored Normal file
View File

@ -0,0 +1,78 @@
name: tools
on:
push:
branches:
- tools
jobs:
iwyu:
timeout-minutes: 60
env:
IWYU: "0.22"
LLVM: "18"
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4
- name: Install llvm/clang
# see: https://apt.llvm.org/
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo add-apt-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-$LLVM main"
sudo apt update
sudo apt remove -y "llvm*"
sudo apt remove -y "libclang-dev*"
sudo apt remove -y "clang*"
sudo apt install -y llvm-$LLVM-dev
sudo apt install -y libclang-$LLVM-dev
sudo apt install -y clang-$LLVM
- name: Compile iwyu
# see: https://github.com/include-what-you-use/include-what-you-use
working-directory: build
run: |
git clone https://github.com/include-what-you-use/include-what-you-use.git --branch $IWYU --depth 1
mkdir include-what-you-use/build
cd include-what-you-use/build
cmake -DCMAKE_C_COMPILER=clang-$LLVM \
-DCMAKE_CXX_COMPILER=clang++-$LLVM \
-DCMAKE_INSTALL_PREFIX=./ \
..
make -j4
bin/include-what-you-use --version
- name: Compile tests
working-directory: build
run: |
export PATH=$PATH:${GITHUB_WORKSPACE}/build/include-what-you-use/build/bin
cmake -DUVW_BUILD_TESTING=ON \
-Dlibuv_buildtests=OFF \
-DCMAKE_C_COMPILER=clang-$LLVM \
-DCMAKE_CXX_COMPILER=clang++-$LLVM \
-DCMAKE_CXX_INCLUDE_WHAT_YOU_USE="include-what-you-use;-Xiwyu;--mapping_file=${GITHUB_WORKSPACE}/uvw.imp;-Xiwyu;--no_fwd_decls;-Xiwyu;--verbose=1" \
..
make -j4
clang-tidy:
timeout-minutes: 60
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4
- name: Compile tests
working-directory: build
env:
CXX: clang++
run: |
cmake -DUVW_BUILD_TESTING=ON -DUVW_USE_CLANG_TIDY=ON -Dlibuv_buildtests=OFF ..
make -j4
- name: Run tests
working-directory: build
env:
CTEST_OUTPUT_ON_FAILURE: 1
run: ctest -C Debug -j4

9
.gitignore vendored Normal file
View File

@ -0,0 +1,9 @@
*.user
CMakeSettings.json
.conan/test_package/build
cmake-build-debug/
.idea/
.vs/
.vscode/
.cache/
out/

29
AUTHORS Normal file
View File

@ -0,0 +1,29 @@
# Author
skypjack
# Collaborators
morbo84
stefanofiorentino
# Contributors
lessness
lordlukas
lpmi-13
Zikoel
fradefe
tusharpm
fcelda
raoul
filonik
yisonPylkita
Miigon
slyshykO
bmagistro
richardbmx
wnsgml972
ffontaine
elindsey
erez-o

264
CMakeLists.txt Normal file
View File

@ -0,0 +1,264 @@
#
# uvw
#
cmake_minimum_required(VERSION 3.13)
#
# Building in-tree is not allowed (we take care of your craziness).
#
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
message(FATAL_ERROR "Prevented in-tree built. Please create a build directory outside of the source code and call cmake from there. Thank you.")
endif()
#
# Project configuration
#
set(UVW_VERSION_MAJOR 3)
set(UVW_VERSION_MINOR 5)
set(UVW_VERSION_PATCH 0)
project(
uvw
VERSION ${UVW_VERSION_MAJOR}.${UVW_VERSION_MINOR}.${UVW_VERSION_PATCH}
DESCRIPTION "Header-only, event based, tiny and easy to use libuv wrapper in modern C++ - now available also as static library!"
HOMEPAGE_URL "https://github.com/skypjack/uvw"
LANGUAGES C CXX
)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug)
endif()
option(UVW_USE_LIBCPP "Use libc++ by adding -stdlib=libc++ flag if available." ON)
option(UVW_USE_ASAN "Use address sanitizer by adding -fsanitize=address -fno-omit-frame-pointer flags" OFF)
option(UVW_USE_UBSAN "Use address sanitizer by adding -fsanitize=undefined -fno-sanitize-recover=all -fno-omit-frame-pointer flags" OFF)
option(UVW_USE_CLANG_TIDY "Enable static analysis with clang-tidy" OFF)
option(UVW_BUILD_LIBS "Prepare targets for static library rather than for a header-only library." OFF)
option(UVW_BUILD_SHARED_LIB "Prepare targets for shared library rather than for a header-only library." OFF)
option(UVW_FIND_LIBUV "Try finding libuv library development files in the system" OFF)
if(UVW_BUILD_SHARED_LIB)
set(UVW_BUILD_LIBS BOOL:ON)
endif()
#
# Compiler stuff
#
if(NOT WIN32 AND UVW_USE_LIBCPP)
include(CheckCXXSourceCompiles)
include(CMakePushCheckState)
cmake_push_check_state()
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -stdlib=libc++")
check_cxx_source_compiles("
#include<type_traits>
int main() { return std::is_same_v<int, char>; }
" UVW_HAS_LIBCPP)
if(NOT UVW_HAS_LIBCPP)
message(WARNING "The option UVW_USE_LIBCPP is set (by default) but libc++ is not available. The flag will not be added to the target.")
endif()
cmake_pop_check_state()
endif()
if(UVW_USE_CLANG_TIDY)
find_program(UVW_CLANG_TIDY_EXECUTABLE "clang-tidy")
if(NOT UVW_CLANG_TIDY_EXECUTABLE)
message(VERBOSE "The option UVW_USE_CLANG_TIDY is set but clang-tidy executable is not available.")
endif()
endif()
# Required minimal libuv version
set(UVW_LIBUV_VERSION 1.49.0)
function(fetch_libuv)
if (UVW_FETCH_LIBUV)
include(FetchContent)
FetchContent_Declare(
libuv
GIT_REPOSITORY https://github.com/libuv/libuv.git
GIT_TAG "v${UVW_LIBUV_VERSION}"
GIT_SHALLOW 1
)
FetchContent_GetProperties(libuv)
if(NOT libuv_POPULATED)
FetchContent_Populate(libuv)
add_subdirectory(${libuv_SOURCE_DIR} ${libuv_BINARY_DIR} EXCLUDE_FROM_ALL)
endif()
if(UVW_BUILD_SHARED_LIB)
add_library(uv::uv-shared ALIAS uv)
set_target_properties(uv PROPERTIES POSITION_INDEPENDENT_CODE 1)
else()
add_library(uv::uv-static ALIAS uv_a)
set_target_properties(uv_a PROPERTIES POSITION_INDEPENDENT_CODE 1)
endif()
endif(UVW_FETCH_LIBUV)
endfunction()
function(use_libuv)
set(UVW_FETCH_LIBUV_DEFAULT ON)
if (UVW_FIND_LIBUV)
find_package(libuv ${LIBUV_VERSION} QUIET)
if (libuv_FOUND)
add_library(uv::uv-shared ALIAS uv)
set(UVW_FETCH_LIBUV_DEFAULT OFF)
message(STATUS "libuv ${libuv_VERSION} found via cmake")
else(libuv_FOUND)
find_package(PkgConfig QUIET)
if (PkgConfig_FOUND)
pkg_check_modules(libuv IMPORTED_TARGET libuv>=${LIBUV_VERSION})
if (libuv_FOUND)
add_library(uv::uv-shared ALIAS PkgConfig::libuv)
set(UVW_FETCH_LIBUV_DEFAULT OFF)
message(STATUS "libuv ${libuv_VERSION} found via pkg-config")
endif(libuv_FOUND)
endif(PkgConfig_FOUND)
endif(libuv_FOUND)
endif(UVW_FIND_LIBUV)
option(UVW_FETCH_LIBUV "Fetch the libuv repo using CMake FetchContent facility" ${UVW_FETCH_LIBUV_DEFAULT})
fetch_libuv()
endfunction()
#
# Add uvw target
#
include(GNUInstallDirs)
if(UVW_BUILD_LIBS)
use_libuv()
add_subdirectory(src)
file(GLOB HEADERS src/uvw/*.h src/uvw/*.hpp)
else()
add_library(uvw INTERFACE)
add_library(uvw::uvw ALIAS uvw)
target_compile_features(uvw INTERFACE cxx_std_17)
target_include_directories(
uvw
INTERFACE
$<BUILD_INTERFACE:${uvw_SOURCE_DIR}/src>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
if(UVW_USE_ASAN)
target_compile_options(uvw INTERFACE $<$<CONFIG:Debug>:-fsanitize=address -fno-omit-frame-pointer>)
target_link_libraries(uvw INTERFACE $<$<CONFIG:Debug>:-fsanitize=address>)
endif()
if(UVW_USE_UBSAN)
target_compile_options(uvw INTERFACE $<$<CONFIG:Debug>:-fsanitize=undefined -fno-sanitize-recover=all -fno-omit-frame-pointer>)
target_link_libraries(uvw INTERFACE $<$<CONFIG:Debug>:-fsanitize=undefined>)
endif()
if(UVW_CLANG_TIDY_EXECUTABLE)
set(CMAKE_CXX_CLANG_TIDY "${UVW_CLANG_TIDY_EXECUTABLE};--config-file=${uvw_SOURCE_DIR}/.clang-tidy;--header-filter=${uvw_SOURCE_DIR}/src/uvw/.*")
endif()
if(UVW_HAS_LIBCPP)
target_compile_options(uvw BEFORE INTERFACE -stdlib=libc++)
endif()
file(GLOB HEADERS src/uvw/*.h src/uvw/*.hpp)
endif()
#
# Install targets
#
install(
FILES ${HEADERS}
COMPONENT ${PROJECT_NAME}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/uvw
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
)
install(
FILES src/uvw.hpp
COMPONENT ${PROJECT_NAME}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
)
#
# Install targets
#
if (UVW_BUILD_LIBS)
set_target_properties(
uvw PROPERTIES
VERSION ${UVW_VERSION_MAJOR}.${UVW_VERSION_MINOR}.${UVW_VERSION_PATCH}
SOVERSION ${UVW_VERSION_MAJOR}
)
endif()
install(
EXPORT uvwConfig
NAMESPACE uvw::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/uvw
)
install(
TARGETS uvw
EXPORT uvwConfig
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
if(UVW_FETCH_LIBUV AND UVW_BUILD_LIBS)
# libuv is only fetched when both above conditions are true
install(DIRECTORY ${libuv_SOURCE_DIR}/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/uvw/uv/include)
if (UVW_BUILD_SHARED_LIB)
install(TARGETS uv EXPORT uvwConfig LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/uvw)
else()
install(TARGETS uv_a EXPORT uvwConfig ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/uvw)
endif()
endif(UVW_FETCH_LIBUV AND UVW_BUILD_LIBS)
export(EXPORT uvwConfig)
### Testing
option(UVW_BUILD_TESTING "Enable testing with ctest." OFF)
if(UVW_BUILD_TESTING)
option(UVW_FIND_GTEST_PACKAGE "Enable finding gtest package." OFF)
if (NOT UVW_BUILD_LIBS)
use_libuv()
endif()
enable_testing()
add_subdirectory(test)
endif()
#
# Documentation
#
option(UVW_BUILD_DOCS "Enable building with documentation." OFF)
if(UVW_BUILD_DOCS)
find_package(Doxygen 1.10)
if(DOXYGEN_FOUND)
add_subdirectory(docs)
endif()
endif()

59
CMakePresets.json Normal file
View File

@ -0,0 +1,59 @@
{
"version": 2,
"cmakeMinimumRequired": {
"major": 3,
"minor": 13,
"patch": 0
},
"configurePresets": [
{
"name": "cmake-pedantic",
"description": "Enables all CMake warnings.`",
"hidden": true,
"warnings": {
"dev": true,
"deprecated": true,
"uninitialized": true,
"unusedCli": true,
"systemVars": false
}
},
{
"name": "dev-mode",
"hidden": true,
"description": "Common (non-OS specific) mode for development",
"inherits": "cmake-pedantic",
"cacheVariables": {
"UVW_BUILD_TESTING": true,
"libuv_buildtests": false
}
},
{
"name": "flags-linux",
"hidden": true,
"description": "Compiler flags for GNU and Clang compilers. When compiling in DEBUG mode, all warnings will be converted into errors.",
"cacheVariables": {
"CMAKE_CXX_FLAGS": "-Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -Wcast-qual -Wformat=2 -Wundef -Wshadow -Wcast-align -Wunused -Wnull-dereference -Wimplicit-fallthrough -Woverloaded-virtual -Wnon-virtual-dtor -Wold-style-cast",
"CMAKE_CXX_FLAGS_DEBUG": "-Werror"
}
},
{
"name": "ci-linux",
"generator": "Unix Makefiles",
"hidden": true,
"inherits": ["flags-linux"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
}
},
{
"name": "ci-build",
"binaryDir": "${sourceDir}/build",
"hidden": true
},
{
"name": "ci-ubuntu",
"inherits": ["ci-build", "ci-linux", "dev-mode"]
}
]
}

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2016-2024 Michele Caini
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copy of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copy or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

456
README.md Normal file
View File

@ -0,0 +1,456 @@
![uvw - libuv wrapper in modern C++](https://user-images.githubusercontent.com/1812216/46069406-c977a600-c17b-11e8-9a47-9bba6f412c57.png)
[![Build Status](https://github.com/skypjack/uvw/workflows/build/badge.svg)](https://github.com/skypjack/uvw/actions)
[![Coverage](https://codecov.io/gh/skypjack/uvw/branch/master/graph/badge.svg)](https://codecov.io/gh/skypjack/uvw)
[![Documentation](https://img.shields.io/badge/docs-doxygen-blue)](https://skypjack.github.io/uvw/)
[![Vcpkg port](https://img.shields.io/vcpkg/v/uvw)](https://vcpkg.link/ports/uvw)
[![Gitter chat](https://badges.gitter.im/skypjack/uvw.png)](https://gitter.im/skypjack/uvw)
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/skypjack)
Do you have a **question** that doesn't require you to open an issue? Join the
[gitter channel](https://gitter.im/skypjack/uvw).<br/>
If you use `uvw` and you want to say thanks or support the project, please
**consider becoming a
[sponsor](https://github.com/users/skypjack/sponsorship)**.<br/>
You can help me make the difference.
[Many thanks](https://skypjack.github.io/sponsorship/) to those who supported me
and still support me today.
# Introduction
`uvw` started as a header-only, event based, tiny and easy to use wrapper for
[`libuv`](https://github.com/libuv/libuv) written in modern C++.<br/>
Now it's finally available also as a compilable static library.
The basic idea is to wrap the *C-ish* interface of `libuv` behind a graceful C++
API.<br/>
Note that `uvw` stays true to the API of `libuv` and it doesn't add anything to
its interface. For the same reasons, users of the library must follow the same
rules which are used with `libuv`.<br/>
As an example, a *handle* should be initialized before any other operation and
closed once it is no longer in use.
## Code Example
```cpp
#include <uvw.hpp>
#include <memory>
void listen(uvw::loop &loop) {
std::shared_ptr<uvw::tcp_handle> tcp = loop.resource<uvw::tcp_handle>();
tcp->on<uvw::listen_event>([](const uvw::listen_event &, uvw::tcp_handle &srv) {
std::shared_ptr<uvw::tcp_handle> client = srv.parent().resource<uvw::tcp_handle>();
client->on<uvw::close_event>([ptr = srv.shared_from_this()](const uvw::close_event &, uvw::tcp_handle &) { ptr->close(); });
client->on<uvw::end_event>([](const uvw::end_event &, uvw::tcp_handle &client) { client.close(); });
srv.accept(*client);
client->read();
});
tcp->bind("127.0.0.1", 4242);
tcp->listen();
}
void conn(uvw::loop &loop) {
auto tcp = loop.resource<uvw::tcp_handle>();
tcp->on<uvw::error_event>([](const uvw::error_event &, uvw::tcp_handle &) { /* handle errors */ });
tcp->on<uvw::connect_event>([](const uvw::connect_event &, uvw::tcp_handle &tcp) {
auto dataWrite = std::unique_ptr<char[]>(new char[2]{ 'b', 'c' });
tcp.write(std::move(dataWrite), 2);
tcp.close();
});
tcp->connect(std::string{"127.0.0.1"}, 4242);
}
int main() {
auto loop = uvw::loop::get_default();
listen(*loop);
conn(*loop);
loop->run();
}
```
## Motivation
The main reason for which `uvw` has been written is the fact that there does not
exist a valid `libuv` wrapper in C++. That's all.
# Build Instructions
## Requirements
To be able to use `uvw`, users must provide the following system-wide tools:
* A full-featured compiler that supports at least C++17.
* `libuv` (which version depends on the tag of `uvw` in use)
* If you use `meson`, libuv will be downloaded for you
The requirements below are mandatory to compile the tests and to extract the
documentation:
* CMake version 3.13 or later.
* Doxygen version 1.8 or later.
Note that `libuv` is part of the dependencies of the project and may be cloned
by `CMake` in some cases (see below for further details).<br/>
Because of that, users don't have to install it to run the tests or when `uvw`
libraries are compiled through `CMake`.
## Meson
You can use `uvw` with [meson](https://mesonbuild.com/) by simply adding it to
your `subprojects` directory in your project.
To compile `uvw` from source without using it as a subproject, in the `uvw`
source directory, run:
* `$ meson setup build`
* If you want a static library, add `--default-library=static`
* `$ cd build`
* `$ meson compile`
## Library
`uvw` is a dual-mode library. It can be used in its header-only form or as a
compiled static library.<br/>
The following sections describe what to do in both cases to get `uvw` up and
runningin your own project.
### Header-only
To use `uvw` as a header-only library, all is needed is to include the `uvw.hpp`
header or one of the other `uvw/*.hpp` files.<br/>
It's a matter of adding the following line at the top of a file:
```cpp
#include <uvw.hpp>
```
Then pass the proper `-I` argument to the compiler to add the `src` directory to
the include paths.<br/>
Note that users are required to correctly setup the include directories and
libraries search paths for `libuv` in this case.
When used through `CMake`, the `uvw::uvw` target is exported for convenience.
### Static
To use `uvw` as a compiled library, set the `UVW_BUILD_LIBS` options in cmake
before including the project.<br/>
This option triggers the generation of a targets named
`uvw::uvw-static`. The matching version of `libuv` is also
compiled and exported as `uv::uv-static` for convenience.
In case you don't use or don't want to use `CMake`, you can still compile all
`.cpp` files and include all `.h` files to get the job done. In this case, users
are required to correctly setup the include directories and libraries search
paths for `libuv`.
## Versioning
Starting with tag _v1.12.0_ of `libuv`, `uvw` follows the
[semantic versioning](http://semver.org/) scheme.<br/>
The problem is that any version of `uvw` also requires to track explicitly the
version of `libuv` to which it is bound.<br/>
Because of that, the latter wil be appended to the version of `uvw`. As an
example:
vU.V.W_libuv-vX.Y
In particular, the following applies:
* _U.V.W_ are major, minor and patch versions of `uvw`.
* _X.Y_ is the version of `libuv` to which to refer (where any patch version is
valid).
In other terms, tags will look like this from now on:
v1.0.0_libuv-v1.12
Branch `master` of `uvw` will be a work in progress branch that follows branch
_v1.x_ of `libuv` (at least as long as it remains their _master_ branch).<br/>
## Documentation
The documentation is based on
[`doxygen`](https://www.doxygen.nl/). To build it:
* `$ cd build`
* `$ cmake ..`
* `$ make docs`
The API reference will be created in HTML format within the directory
`build/docs/html`.<br/>
To navigate it with your favorite browser:
* `$ cd build`
* `$ your_favorite_browser docs/html/index.html`
The same version is also available [online](https://skypjack.github.io/uvw/)
for the latest release, that is the last stable tag.
### Note
The documentation is mostly inspired by the official
[libuv API documentation](http://docs.libuv.org/en/v1.x/) for obvious
reasons.
## Tests
To compile and run the tests, `uvw` requires `libuv` and `googletest`.<br/>
`CMake` will download and compile both the libraries before compiling anything
else.
To build the tests:
* `$ cd build`
* `$ cmake .. -DUVW_BUILD_TESTING=ON`
* `$ make`
* `$ ctest -j4 -R uvw`
Omit `-R uvw` if you also want to test `libuv` and other dependencies.
# Crash Course
## Vademecum
There is only one rule when using `uvw`: always initialize the resources and
terminate them.
Resources belong mainly to two families: _handles_ and _requests_.<br/>
Handles represent long-lived objects capable of performing certain operations
while active.<br/>
Requests represent (typically) short-lived operations performed either over a
handle or standalone.
The following sections will explain in short what it means to initialize and
terminate these kinds of resources.<br/>
For more details, please refer to the
[online documentation](https://skypjack.github.io/uvw/).
## Handles
Initialization is usually performed under the hood and can be even passed over,
as far as handles are created using the `loop::resource` member function.<br/>
On the other side, handles keep themselves alive until one explicitly closes
them. Because of that, memory usage will grow if users simply forget about a
handle.<br/>
Therefore the rule quickly becomes *always close your handles*. It's as simple
as calling the `close` member function on them.
## Requests
Usually initializing a request object is not required. Anyway, the recommended
way to create a request is still through the `loop::resource` member
function.<br/>
Requests will keep themselves alive as long as they are bound to unfinished
underlying activities. This means that users don't have to discard a
request explicitly .<br/>
Therefore the rule quickly becomes *feel free to make a request and forget about
it*. It's as simple as calling a member function on them.
## The Loop and the Resource
The first thing to do to use `uvw` is to create a loop. In case the default one
is enough, it's easy as doing this:
```cpp
auto loop = uvw::loop::get_default();
```
Note that loop objects don't require being closed explicitly, even if they offer
the `close` member function in case a user wants to do that.<br/>
Loops can be started using the `run` member function. The two calls below are
equivalent:
```cpp
loop->run();
loop->run(uvw::loop::run_mode::DEFAULT);
```
Available modes are: `DEFAULT`, `ONCE`, `NOWAIT`. Please refer to the
documentation of `libuv` for further details.
In order to create a resource and to bind it to the given loop, just do the
following:
```cpp
auto tcp = loop->resource<uvw::tcp_handle>();
```
The line above creates and initializes a tcp handle, then a shared pointer to
that resource is returned.<br/>
Users should check if pointers have been correctly initialized: in case of
errors, they won't be.<br/>
It also is possible to create uninitialized resources to init later on as:
```cpp
auto tcp = loop->uninitialized_resource<uvw::tcp_handle>();
tcp->init();
```
All resources also accept arbitrary user-data that won't be touched in any
case.<br/>
Users can set and get them through the `data` member function as it follows:
```cpp
resource->data(std::make_shared<int>(42));
std::shared_ptr<void> data = resource->data();
```
Resources expect a `std::shared_pointer<void>` and return it, therefore any kind
of data is welcome.<br/>
Users can explicitly specify a type other than `void` when calling the `data`
member function:
```cpp
std::shared_ptr<int> data = resource->data<int>();
```
Remember from the previous section that a handle will keep itself alive until
one invokes the `close` member function on it.<br/>
To know what are the handles that are still alive and bound to a given loop,
there exists the `walk` member function. It returns handles with their types.
Therefore, the use of `overloaded` is recommended to be able to intercept all
types of interest:
```cpp
handle.parent().walk(uvw::overloaded{
[](uvw::timer_handle &h){ /* application code for timers here */ },
[](auto &&){ /* ignore all other types */ }
});
```
This function can also be used for a completely generic approach. For example,
all the pending handles can be closed easily as it follows:
```cpp
loop->walk([](auto &&h){ h.close(); });
```
No need to keep track of them.
## The event-based approach
`uvw` offers an event-based approach where resources are small event emitters to
which listeners are attached.<br/>
Attaching listeners to resources is the recommended way to receive notifications
about their operations.<br/>
Listeners are callable objects of type `void(event_type &, resource_type &)`,
where:
* `event_type` is the type of the event for which they have been designed.
* `resource_type` is the type of the resource that has originated the event.
It means that the following function types are all valid:
* `void(event_type &, resource_type &)`
* `void(const event_type &, resource_type &)`
* `void(event_type &, const resource_type &)`
* `void(const event_type &, const resource_type &)`
Please note that there is no need to keep around references to the resources,
since they pass themselves as an argument whenever an event is published.<br/>
The `on` member function is the way to go to register long-running listeners:
```cpp
resource.on<event_type>(listener)
```
To know if a listener exists for a given type, the class offers a `has` function
template. Similarly, the `reset` function template is be used to reset and thus
disconnect listeners, if any. A non-template version of `reset` also exists to
clear an emitter as a whole.
Almost all the resources emit `error_event` in case of errors.<br/>
All the other events are specific for the given resource and documented in the
API reference.
The code below shows how to create a simple tcp server using `uvw`:
```cpp
auto loop = uvw::loop::get_default();
auto tcp = loop->resource<uvw::tcp_handle>();
tcp->on<uvw::error_event>([](const uvw::error_event &, uvw::tcp_handle &) { /* something went wrong */ });
tcp->on<uvw::listen_event>([](const uvw::listen_event &, uvw::tcp_handle &srv) {
std::shared_ptr<uvw::tcp_handle> client = srv.parent().resource<uvw::tcp_handle>();
client->on<uvw::end_event>([](const uvw::end_event &, uvw::tcp_handle &client) { client.close(); });
client->on<uvw::data_event>([](const uvw::data_event &, uvw::tcp_handle &) { /* data received */ });
srv.accept(*client);
client->read();
});
tcp->bind("127.0.0.1", 4242);
tcp->listen();
```
Note also that `uvw::tcp_handle` already supports _IPv6_ out-of-the-box.<br/>
The API reference is the recommended documentation for further details about
resources and their methods.
## Going raw
In case users need to use functionalities not wrapped yet by `uvw` or if they
want to get the underlying data structures as defined by `libuv` for some other
reasons, almost all the classes in `uvw` give direct access to them.<br/>
Please, note that this functions should not be used directly unless users know
exactly what they are doing and what are the risks. Going raw is dangerous,
mainly because the lifetime management of a loop, a handle or a request is
completely controlled by the library and working around it could quickly break
things.
That being said, _going raw_ is a matter of using the `raw` member functions:
```cpp
auto loop = uvw::loop::get_default();
auto tcp = loop->resource<uvw::tcp_handle>();
uv_loop_t *raw = loop->raw();
uv_tcp_t *handle = tcp->raw();
```
Go the raw way at your own risk, but do not expect any support in case of bugs.
# Related projects
Interested in additional tools and libraries that build upon `uvw`? You might
find the following useful then:
- [`uvw_net`](https://github.com/mincequi/uvw_net): a networking library with a
collection of clients (HTTP/Modbus/SunSpec) that also includes discovery
impementations like dns-sd/mdns.
Feel free to add your tool to the list if you like.
# Contributors
If you want to contribute, please send patches as pull requests against the
branch master.<br/>
Check the
[contributors list](https://github.com/skypjack/uvw/blob/master/AUTHORS) to see
who has partecipated so far.
# License
Code and documentation Copyright (c) 2016-2024 Michele Caini.<br/>
Logo Copyright (c) 2018-2021 Richard Caseres.
Code and documentation released under
[the MIT license](https://github.com/skypjack/uvw/blob/master/LICENSE).<br/>
Logo released under
[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/).
# Support
If you want to support this project, you can
[offer me](https://github.com/users/skypjack/sponsorship) an espresso.<br/>
If you find that it's not enough, feel free to
[help me](https://www.paypal.me/skypjack) the way you prefer.

5
TODO Normal file
View File

@ -0,0 +1,5 @@
* do not send error events when the return value is enough (still wip)
* also cleanup error event mentions in the doc
* Make all tests pass on all platforms
* add iwyu and clean up everything
* Allocator support

View File

@ -1,158 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: Class List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Class List</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceuvw.html" target="_self">uvw</a></td><td class="desc"><code>uvw</code> default namespace </td></tr>
<tr id="row_0_0_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1addr__info__event.html" target="_self">addr_info_event</a></td><td class="desc">The addrinfo event </td></tr>
<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1async__event.html" target="_self">async_event</a></td><td class="desc">Async event </td></tr>
<tr id="row_0_2_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1async__handle.html" target="_self">async_handle</a></td><td class="desc">The async handle </td></tr>
<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1barrier.html" target="_self">barrier</a></td><td class="desc">The barrier wrapper </td></tr>
<tr id="row_0_4_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1check__event.html" target="_self">check_event</a></td><td class="desc">Check event </td></tr>
<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1check__handle.html" target="_self">check_handle</a></td><td class="desc">The check handle </td></tr>
<tr id="row_0_6_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1close__event.html" target="_self">close_event</a></td><td class="desc">Close event </td></tr>
<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1condition.html" target="_self">condition</a></td><td class="desc">The condition wrapper </td></tr>
<tr id="row_0_8_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1connect__event.html" target="_self">connect_event</a></td><td class="desc">Connect event </td></tr>
<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1cpu__info.html" target="_self">cpu_info</a></td><td class="desc">CPU information </td></tr>
<tr id="row_0_10_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1data__event.html" target="_self">data_event</a></td><td class="desc">Data event </td></tr>
<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1emitter.html" target="_self">emitter</a></td><td class="desc">Event emitter base class </td></tr>
<tr id="row_0_12_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1end__event.html" target="_self">end_event</a></td><td class="desc">End event </td></tr>
<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1error__event.html" target="_self">error_event</a></td><td class="desc">Error event </td></tr>
<tr id="row_0_14_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1exit__event.html" target="_self">exit_event</a></td><td class="desc">Exit event </td></tr>
<tr id="row_0_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1file__req.html" target="_self">file_req</a></td><td class="desc">The file request </td></tr>
<tr id="row_0_16_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1fs__event.html" target="_self">fs_event</a></td><td class="desc">Common fs event </td></tr>
<tr id="row_0_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1fs__event__event.html" target="_self">fs_event_event</a></td><td class="desc">Fs event event </td></tr>
<tr id="row_0_18_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1fs__event__handle.html" target="_self">fs_event_handle</a></td><td class="desc">The fs event handle </td></tr>
<tr id="row_0_19_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1fs__helper.html" target="_self">fs_helper</a></td><td class="desc">Helper functions </td></tr>
<tr id="row_0_20_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1fs__poll__event.html" target="_self">fs_poll_event</a></td><td class="desc">Fs pos event </td></tr>
<tr id="row_0_21_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1fs__poll__handle.html" target="_self">fs_poll_handle</a></td><td class="desc">The fs poll handle </td></tr>
<tr id="row_0_22_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1fs__req.html" target="_self">fs_req</a></td><td class="desc">The fs request </td></tr>
<tr id="row_0_23_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1fs__request.html" target="_self">fs_request</a></td><td class="desc">Base class for fs/file request </td></tr>
<tr id="row_0_24_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1get__addr__info__req.html" target="_self">get_addr_info_req</a></td><td class="desc">The getaddrinfo request </td></tr>
<tr id="row_0_25_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1get__name__info__req.html" target="_self">get_name_info_req</a></td><td class="desc">The getnameinfo request </td></tr>
<tr id="row_0_26_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1handle.html" target="_self">handle</a></td><td class="desc">Handle base class </td></tr>
<tr id="row_0_27_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1idle__event.html" target="_self">idle_event</a></td><td class="desc">Idle event </td></tr>
<tr id="row_0_28_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1idle__handle.html" target="_self">idle_handle</a></td><td class="desc">The idle handle </td></tr>
<tr id="row_0_29_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1interface__address.html" target="_self">interface_address</a></td><td class="desc">Interface address </td></tr>
<tr id="row_0_30_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1ipv4.html" target="_self">ipv4</a></td><td class="desc">The IPv4 tag </td></tr>
<tr id="row_0_31_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1ipv6.html" target="_self">ipv6</a></td><td class="desc">The IPv6 tag </td></tr>
<tr id="row_0_32_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1listen__event.html" target="_self">listen_event</a></td><td class="desc">Listen event </td></tr>
<tr id="row_0_33_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1loop.html" target="_self">loop</a></td><td class="desc">The loop class </td></tr>
<tr id="row_0_34_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1mutex.html" target="_self">mutex</a></td><td class="desc">The mutex wrapper </td></tr>
<tr id="row_0_35_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1name__info__event.html" target="_self">name_info_event</a></td><td class="desc">The nameinfo event </td></tr>
<tr id="row_0_36_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1once.html" target="_self">once</a></td><td class="desc">The once wrapper </td></tr>
<tr id="row_0_37_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1overloaded.html" target="_self">overloaded</a></td><td class="desc">Helper type for visitors </td></tr>
<tr id="row_0_38_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1passwd__info.html" target="_self">passwd_info</a></td><td class="desc">Utility class </td></tr>
<tr id="row_0_39_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1pipe__handle.html" target="_self">pipe_handle</a></td><td class="desc">The pipe handle </td></tr>
<tr id="row_0_40_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1poll__event.html" target="_self">poll_event</a></td><td class="desc">Poll event </td></tr>
<tr id="row_0_41_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1poll__handle.html" target="_self">poll_handle</a></td><td class="desc">The poll handle </td></tr>
<tr id="row_0_42_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1prepare__event.html" target="_self">prepare_event</a></td><td class="desc">Prepare event </td></tr>
<tr id="row_0_43_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1prepare__handle.html" target="_self">prepare_handle</a></td><td class="desc">The prepare handle </td></tr>
<tr id="row_0_44_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1process__handle.html" target="_self">process_handle</a></td><td class="desc">The process handle </td></tr>
<tr id="row_0_45_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1request.html" target="_self">request</a></td><td class="desc">Request base class </td></tr>
<tr id="row_0_46_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1resource.html" target="_self">resource</a></td><td class="desc">Common class for almost all the resources available in <code>uvw</code> </td></tr>
<tr id="row_0_47_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1rwlock.html" target="_self">rwlock</a></td><td class="desc">The rwlock wrapper </td></tr>
<tr id="row_0_48_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1semaphore.html" target="_self">semaphore</a></td><td class="desc">The semaphore wrapper </td></tr>
<tr id="row_0_49_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1send__event.html" target="_self">send_event</a></td><td class="desc">Send event </td></tr>
<tr id="row_0_50_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1shared__lib.html" target="_self">shared_lib</a></td><td class="desc">The shared lib class </td></tr>
<tr id="row_0_51_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1shutdown__event.html" target="_self">shutdown_event</a></td><td class="desc">Shutdown event </td></tr>
<tr id="row_0_52_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1signal__event.html" target="_self">signal_event</a></td><td class="desc">Signal event </td></tr>
<tr id="row_0_53_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1signal__handle.html" target="_self">signal_handle</a></td><td class="desc">The signal handle </td></tr>
<tr id="row_0_54_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1socket__address.html" target="_self">socket_address</a></td><td class="desc">Address representation </td></tr>
<tr id="row_0_55_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1stream__handle.html" target="_self">stream_handle</a></td><td class="desc">The stream handle </td></tr>
<tr id="row_0_56_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1tcp__handle.html" target="_self">tcp_handle</a></td><td class="desc">The TCP handle </td></tr>
<tr id="row_0_57_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1thread.html" target="_self">thread</a></td><td class="desc">The thread wrapper </td></tr>
<tr id="row_0_58_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1thread__local__storage.html" target="_self">thread_local_storage</a></td><td class="desc">The thread local storage wrapper </td></tr>
<tr id="row_0_59_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1timer__event.html" target="_self">timer_event</a></td><td class="desc">Timer event </td></tr>
<tr id="row_0_60_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1timer__handle.html" target="_self">timer_handle</a></td><td class="desc">The timer handle </td></tr>
<tr id="row_0_61_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1tty__handle.html" target="_self">tty_handle</a></td><td class="desc">The tty handle </td></tr>
<tr id="row_0_62_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1udp__data__event.html" target="_self">udp_data_event</a></td><td class="desc">UDP data event </td></tr>
<tr id="row_0_63_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1udp__handle.html" target="_self">udp_handle</a></td><td class="desc">The UDP handle </td></tr>
<tr id="row_0_64_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_64_" class="arrow" onclick="toggleFolder('0_64_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1utilities.html" target="_self">utilities</a></td><td class="desc">Miscellaneous utilities </td></tr>
<tr id="row_0_64_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1utilities_1_1os.html" target="_self">os</a></td><td class="desc">OS dedicated utilities </td></tr>
<tr id="row_0_65_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1uts__name.html" target="_self">uts_name</a></td><td class="desc">Utility class </td></tr>
<tr id="row_0_66_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1uv__type.html" target="_self">uv_type</a></td><td class="desc">Wrapper class for underlying types </td></tr>
<tr id="row_0_67_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1win__size.html" target="_self">win_size</a></td><td class="desc">Windows size representation </td></tr>
<tr id="row_0_68_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1work__event.html" target="_self">work_event</a></td><td class="desc">Work event </td></tr>
<tr id="row_0_69_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classuvw_1_1work__req.html" target="_self">work_req</a></td><td class="desc">The work request </td></tr>
<tr id="row_0_70_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structuvw_1_1write__event.html" target="_self">write_event</a></td><td class="desc">Write event </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,120 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: src/uvw/async.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_98934c98f70735fe3a272005a9eb8736.html">uvw</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">async.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef UVW_ASYNC_INCLUDE_H</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define UVW_ASYNC_INCLUDE_H</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include &lt;uv.h&gt;</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &quot;handle.hpp&quot;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &quot;loop.h&quot;</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"><a class="line" href="namespaceuvw.html"> 8</a></span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceuvw.html">uvw</a> {</div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"><a class="line" href="structuvw_1_1async__event.html"> 11</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structuvw_1_1async__event.html">async_event</a> {};</div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="classuvw_1_1async__handle.html"> 21</a></span><span class="keyword">class </span><a class="code hl_class" href="classuvw_1_1async__handle.html">async_handle</a> final: <span class="keyword">public</span> <a class="code hl_class" href="classuvw_1_1handle.html">handle</a>&lt;async_handle, uv_async_t, async_event&gt; {</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">static</span> <span class="keywordtype">void</span> send_callback(uv_async_t *hndl);</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">using </span>handle::handle;</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="classuvw_1_1async__handle.html#a65106a2ce19563ac1ca8a465bf4976ae"> 35</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="classuvw_1_1async__handle.html#a65106a2ce19563ac1ca8a465bf4976ae">init</a>() final;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classuvw_1_1async__handle.html#ac116dd3e44f3f7c9adbb0ee1cebca13f"> 49</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="classuvw_1_1async__handle.html#ac116dd3e44f3f7c9adbb0ee1cebca13f">send</a>();</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span>};</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span>} <span class="comment">// namespace uvw</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="preprocessor">#ifndef UVW_AS_LIB</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="preprocessor"># include &quot;async.cpp&quot;</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="preprocessor">#endif </span><span class="comment">// UVW_ASYNC_INCLUDE_H</span></div>
<div class="ttc" id="aclassuvw_1_1async__handle_html"><div class="ttname"><a href="classuvw_1_1async__handle.html">uvw::async_handle</a></div><div class="ttdoc">The async handle.</div><div class="ttdef"><b>Definition:</b> <a href="async_8h_source.html#l00021">async.h:21</a></div></div>
<div class="ttc" id="aclassuvw_1_1async__handle_html_a65106a2ce19563ac1ca8a465bf4976ae"><div class="ttname"><a href="classuvw_1_1async__handle.html#a65106a2ce19563ac1ca8a465bf4976ae">uvw::async_handle::init</a></div><div class="ttdeci">int init() final</div><div class="ttdoc">Initializes the handle.</div></div>
<div class="ttc" id="aclassuvw_1_1async__handle_html_ac116dd3e44f3f7c9adbb0ee1cebca13f"><div class="ttname"><a href="classuvw_1_1async__handle.html#ac116dd3e44f3f7c9adbb0ee1cebca13f">uvw::async_handle::send</a></div><div class="ttdeci">int send()</div><div class="ttdoc">Wakeups the event loop and emits the async event.</div></div>
<div class="ttc" id="aclassuvw_1_1handle_html"><div class="ttname"><a href="classuvw_1_1handle.html">uvw::handle</a></div><div class="ttdoc">Handle base class.</div><div class="ttdef"><b>Definition:</b> <a href="handle_8hpp_source.html#l00023">handle.hpp:23</a></div></div>
<div class="ttc" id="anamespaceuvw_html"><div class="ttname"><a href="namespaceuvw.html">uvw</a></div><div class="ttdoc">uvw default namespace.</div><div class="ttdef"><b>Definition:</b> <a href="async_8h_source.html#l00008">async.h:8</a></div></div>
<div class="ttc" id="astructuvw_1_1async__event_html"><div class="ttname"><a href="structuvw_1_1async__event.html">uvw::async_event</a></div><div class="ttdoc">Async event.</div><div class="ttdef"><b>Definition:</b> <a href="async_8h_source.html#l00011">async.h:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

BIN
bc_s.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 676 B

BIN
bc_sd.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 635 B

BIN
bdwn.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 B

2
build/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
*
!.gitignore

View File

@ -1,123 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: src/uvw/check.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_98934c98f70735fe3a272005a9eb8736.html">uvw</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">check.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef UVW_CHECK_INCLUDE_H</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define UVW_CHECK_INCLUDE_H</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include &lt;uv.h&gt;</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &quot;handle.hpp&quot;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &quot;loop.h&quot;</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceuvw.html">uvw</a> {</div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"><a class="line" href="structuvw_1_1check__event.html"> 11</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structuvw_1_1check__event.html">check_event</a> {};</div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="classuvw_1_1check__handle.html"> 21</a></span><span class="keyword">class </span><a class="code hl_class" href="classuvw_1_1check__handle.html">check_handle</a> final: <span class="keyword">public</span> <a class="code hl_class" href="classuvw_1_1handle.html">handle</a>&lt;check_handle, uv_check_t, check_event&gt; {</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">static</span> <span class="keywordtype">void</span> start_callback(uv_check_t *hndl);</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">using </span>handle::handle;</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="classuvw_1_1check__handle.html#a37750db5bc6d0509e2b0ba5505479572"> 31</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="classuvw_1_1check__handle.html#a37750db5bc6d0509e2b0ba5505479572">init</a>() final;</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="classuvw_1_1check__handle.html#adf7402458f2d172965daff5879d08fe9"> 41</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="classuvw_1_1check__handle.html#adf7402458f2d172965daff5879d08fe9">start</a>();</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="classuvw_1_1check__handle.html#a98bf089fdff6c9f505927429c65c0089"> 47</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="classuvw_1_1check__handle.html#a98bf089fdff6c9f505927429c65c0089">stop</a>();</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span>};</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span>} <span class="comment">// namespace uvw</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="preprocessor">#ifndef UVW_AS_LIB</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="preprocessor"># include &quot;check.cpp&quot;</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="preprocessor">#endif </span><span class="comment">// UVW_CHECK_INCLUDE_H</span></div>
<div class="ttc" id="aclassuvw_1_1check__handle_html"><div class="ttname"><a href="classuvw_1_1check__handle.html">uvw::check_handle</a></div><div class="ttdoc">The check handle.</div><div class="ttdef"><b>Definition:</b> <a href="check_8h_source.html#l00021">check.h:21</a></div></div>
<div class="ttc" id="aclassuvw_1_1check__handle_html_a37750db5bc6d0509e2b0ba5505479572"><div class="ttname"><a href="classuvw_1_1check__handle.html#a37750db5bc6d0509e2b0ba5505479572">uvw::check_handle::init</a></div><div class="ttdeci">int init() final</div><div class="ttdoc">Initializes the handle.</div></div>
<div class="ttc" id="aclassuvw_1_1check__handle_html_a98bf089fdff6c9f505927429c65c0089"><div class="ttname"><a href="classuvw_1_1check__handle.html#a98bf089fdff6c9f505927429c65c0089">uvw::check_handle::stop</a></div><div class="ttdeci">int stop()</div><div class="ttdoc">Stops the handle.</div></div>
<div class="ttc" id="aclassuvw_1_1check__handle_html_adf7402458f2d172965daff5879d08fe9"><div class="ttname"><a href="classuvw_1_1check__handle.html#adf7402458f2d172965daff5879d08fe9">uvw::check_handle::start</a></div><div class="ttdeci">int start()</div><div class="ttdoc">Starts the handle.</div></div>
<div class="ttc" id="aclassuvw_1_1handle_html"><div class="ttname"><a href="classuvw_1_1handle.html">uvw::handle</a></div><div class="ttdoc">Handle base class.</div><div class="ttdef"><b>Definition:</b> <a href="handle_8hpp_source.html#l00023">handle.hpp:23</a></div></div>
<div class="ttc" id="anamespaceuvw_html"><div class="ttname"><a href="namespaceuvw.html">uvw</a></div><div class="ttdoc">uvw default namespace.</div><div class="ttdef"><b>Definition:</b> <a href="async_8h_source.html#l00008">async.h:8</a></div></div>
<div class="ttc" id="astructuvw_1_1check__event_html"><div class="ttname"><a href="structuvw_1_1check__event.html">uvw::check_event</a></div><div class="ttdoc">Check event.</div><div class="ttdef"><b>Definition:</b> <a href="check_8h_source.html#l00011">check.h:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,141 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: Class Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Class Index</div></div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_N">N</a>&#160;|&#160;<a class="qindex" href="#letter_O">O</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a></div>
<div class="classindex">
<dl class="classindex even">
<dt class="alphachar"><a id="letter_A" name="letter_A">A</a></dt>
<dd><a class="el" href="structuvw_1_1addr__info__event.html">addr_info_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1async__event.html">async_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1async__handle.html">async_handle</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_B" name="letter_B">B</a></dt>
<dd><a class="el" href="classuvw_1_1barrier.html">barrier</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_C" name="letter_C">C</a></dt>
<dd><a class="el" href="structuvw_1_1check__event.html">check_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1check__handle.html">check_handle</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1close__event.html">close_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1condition.html">condition</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1connect__event.html">connect_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1cpu__info.html">cpu_info</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_D" name="letter_D">D</a></dt>
<dd><a class="el" href="structuvw_1_1data__event.html">data_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_E" name="letter_E">E</a></dt>
<dd><a class="el" href="classuvw_1_1emitter.html">emitter</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1end__event.html">end_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1error__event.html">error_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1exit__event.html">exit_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_F" name="letter_F">F</a></dt>
<dd><a class="el" href="classuvw_1_1file__req.html">file_req</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1fs__event.html">fs_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1fs__event__event.html">fs_event_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1fs__event__handle.html">fs_event_handle</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1fs__helper.html">fs_helper</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1fs__poll__event.html">fs_poll_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1fs__poll__handle.html">fs_poll_handle</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1fs__req.html">fs_req</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1fs__request.html">fs_request</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_G" name="letter_G">G</a></dt>
<dd><a class="el" href="classuvw_1_1get__addr__info__req.html">get_addr_info_req</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1get__name__info__req.html">get_name_info_req</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_H" name="letter_H">H</a></dt>
<dd><a class="el" href="classuvw_1_1handle.html">handle</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_I" name="letter_I">I</a></dt>
<dd><a class="el" href="structuvw_1_1idle__event.html">idle_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1idle__handle.html">idle_handle</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1interface__address.html">interface_address</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1ipv4.html">ipv4</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1ipv6.html">ipv6</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_L" name="letter_L">L</a></dt>
<dd><a class="el" href="structuvw_1_1listen__event.html">listen_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1loop.html">loop</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_M" name="letter_M">M</a></dt>
<dd><a class="el" href="classuvw_1_1mutex.html">mutex</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_N" name="letter_N">N</a></dt>
<dd><a class="el" href="structuvw_1_1name__info__event.html">name_info_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_O" name="letter_O">O</a></dt>
<dd><a class="el" href="classuvw_1_1once.html">once</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1utilities_1_1os.html">utilities::os</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1overloaded.html">overloaded</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_P" name="letter_P">P</a></dt>
<dd><a class="el" href="structuvw_1_1passwd__info.html">passwd_info</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1pipe__handle.html">pipe_handle</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1poll__event.html">poll_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1poll__handle.html">poll_handle</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1prepare__event.html">prepare_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1prepare__handle.html">prepare_handle</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1process__handle.html">process_handle</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_R" name="letter_R">R</a></dt>
<dd><a class="el" href="classuvw_1_1request.html">request</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1resource.html">resource</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1rwlock.html">rwlock</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_S" name="letter_S">S</a></dt>
<dd><a class="el" href="classuvw_1_1semaphore.html">semaphore</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1send__event.html">send_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1shared__lib.html">shared_lib</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1shutdown__event.html">shutdown_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1signal__event.html">signal_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1signal__handle.html">signal_handle</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1socket__address.html">socket_address</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1stream__handle.html">stream_handle</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_T" name="letter_T">T</a></dt>
<dd><a class="el" href="classuvw_1_1tcp__handle.html">tcp_handle</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1thread.html">thread</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1thread__local__storage.html">thread_local_storage</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1timer__event.html">timer_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1timer__handle.html">timer_handle</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1tty__handle.html">tty_handle</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_U" name="letter_U">U</a></dt>
<dd><a class="el" href="structuvw_1_1udp__data__event.html">udp_data_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1udp__handle.html">udp_handle</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1utilities.html">utilities</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1uts__name.html">uts_name</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1uv__type.html">uv_type</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_W" name="letter_W">W</a></dt>
<dd><a class="el" href="structuvw_1_1win__size.html">win_size</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1work__event.html">work_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="classuvw_1_1work__req.html">work_req</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd><dd><a class="el" href="structuvw_1_1write__event.html">write_event</a> (<a class="el" href="namespaceuvw.html">uvw</a>)</dd></dl>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,93 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1barrier.html">barrier</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">uvw::barrier Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classuvw_1_1barrier.html">uvw::barrier</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#ae97ffacc0b381610d8d18a62a957a69c">init</a>()</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_barrier_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#ae03b0ebbae151c6157c5ba6a24a39a7b">parent</a>() const noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_barrier_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#a06a6cb7ebde27aa348e340b76e49c6ae">raw</a>() const noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_barrier_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#af4b6f395815f2e99302b5f09be23767c">raw</a>() noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_barrier_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1barrier.html#a41911992bc4c06a947068a4bd12a0d1b">wait</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1barrier.html">uvw::barrier</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,171 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: uvw::barrier Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1barrier.html">barrier</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classuvw_1_1barrier-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">uvw::barrier Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>The barrier wrapper.
<a href="classuvw_1_1barrier.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="thread_8h_source.html">thread.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for uvw::barrier:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1barrier__inherit__graph.png" border="0" usemap="#auvw_1_1barrier_inherit__map" alt="Inheritance graph"/></div>
<map name="auvw_1_1barrier_inherit__map" id="auvw_1_1barrier_inherit__map">
<area shape="rect" title="The barrier wrapper." alt="" coords="55,79,141,104"/>
<area shape="rect" href="structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,191,31"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for uvw::barrier:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1barrier__coll__graph.png" border="0" usemap="#auvw_1_1barrier_coll__map" alt="Collaboration graph"/></div>
<map name="auvw_1_1barrier_coll__map" id="auvw_1_1barrier_coll__map">
<area shape="rect" title="The barrier wrapper." alt="" coords="55,79,141,104"/>
<area shape="rect" href="structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,191,31"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a41911992bc4c06a947068a4bd12a0d1b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1barrier.html#a41911992bc4c06a947068a4bd12a0d1b">wait</a> () noexcept</td></tr>
<tr class="memdesc:a41911992bc4c06a947068a4bd12a0d1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronizes at a barrier. <br /></td></tr>
<tr class="separator:a41911992bc4c06a947068a4bd12a0d1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_structuvw_1_1uv__type"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_structuvw_1_1uv__type')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_barrier_t &gt;</a></td></tr>
<tr class="memitem:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#ae97ffacc0b381610d8d18a62a957a69c">init</a> ()</td></tr>
<tr class="memdesc:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the handle. <br /></td></tr>
<tr class="separator:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classuvw_1_1loop.html">loop</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#ae03b0ebbae151c6157c5ba6a24a39a7b">parent</a> () const noexcept</td></tr>
<tr class="memdesc:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the loop from which the resource was originated. <br /></td></tr>
<tr class="separator:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">const uv_barrier_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#a06a6cb7ebde27aa348e340b76e49c6ae">raw</a> () const noexcept</td></tr>
<tr class="memdesc:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the underlying raw data structure. <br /></td></tr>
<tr class="separator:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">uv_barrier_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#af4b6f395815f2e99302b5f09be23767c">raw</a> () noexcept</td></tr>
<tr class="memdesc:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the underlying raw data structure. <br /></td></tr>
<tr class="separator:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The barrier wrapper. </p>
<p>To create a <code>barrier</code> through a <code>loop</code>, arguments follow:</p>
<ul>
<li>An unsigned integer that specifies the number of threads that must call <code>wait</code> before any of them successfully return from the call. The value specified must be greater than zero. </li>
</ul>
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00342">342</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a41911992bc4c06a947068a4bd12a0d1b" name="a41911992bc4c06a947068a4bd12a0d1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a41911992bc4c06a947068a4bd12a0d1b">&#9670;&#160;</a></span>wait()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool uvw::barrier::wait </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Synchronizes at a barrier. </p>
<dl class="section return"><dt>Returns</dt><dd>True in case of success, false otherwise. </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/uvw/<a class="el" href="thread_8h_source.html">thread.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,4 +0,0 @@
<map id="uvw::barrier" name="uvw::barrier">
<area shape="rect" id="node1" title="The barrier wrapper." alt="" coords="55,79,141,104"/>
<area shape="rect" id="node2" href="$structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,191,31"/>
</map>

View File

@ -1 +0,0 @@
269a3ca68273b6d281d6ad35c4ef837e

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,4 +0,0 @@
<map id="uvw::barrier" name="uvw::barrier">
<area shape="rect" id="node1" title="The barrier wrapper." alt="" coords="55,79,141,104"/>
<area shape="rect" id="node2" href="$structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,191,31"/>
</map>

View File

@ -1 +0,0 @@
269a3ca68273b6d281d6ad35c4ef837e

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,96 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1condition.html">condition</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">uvw::condition Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classuvw_1_1condition.html">uvw::condition</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1condition.html#aba9e52349e417204c43b2383008ead7a">broadcast</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1condition.html">uvw::condition</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#ae97ffacc0b381610d8d18a62a957a69c">init</a>()</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_cond_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#ae03b0ebbae151c6157c5ba6a24a39a7b">parent</a>() const noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_cond_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#a06a6cb7ebde27aa348e340b76e49c6ae">raw</a>() const noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_cond_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#af4b6f395815f2e99302b5f09be23767c">raw</a>() noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_cond_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1condition.html#a02dfe50d273ed1263c839edb504213a0">signal</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1condition.html">uvw::condition</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1condition.html#af1ca0e3ae4854fc8e16068922db667a4">timed_wait</a>(mutex &amp;mtx, uint64_t timeout) noexcept</td><td class="entry"><a class="el" href="classuvw_1_1condition.html">uvw::condition</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1condition.html#a49753b61acdfbf76ba87b70d6f441289">wait</a>(mutex &amp;mtx) noexcept</td><td class="entry"><a class="el" href="classuvw_1_1condition.html">uvw::condition</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,287 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: uvw::condition Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1condition.html">condition</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classuvw_1_1condition-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">uvw::condition Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>The condition wrapper.
<a href="classuvw_1_1condition.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="thread_8h_source.html">thread.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for uvw::condition:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1condition__inherit__graph.png" border="0" usemap="#auvw_1_1condition_inherit__map" alt="Inheritance graph"/></div>
<map name="auvw_1_1condition_inherit__map" id="auvw_1_1condition_inherit__map">
<area shape="rect" title="The condition wrapper." alt="" coords="43,79,145,104"/>
<area shape="rect" href="structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,183,31"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for uvw::condition:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1condition__coll__graph.png" border="0" usemap="#auvw_1_1condition_coll__map" alt="Collaboration graph"/></div>
<map name="auvw_1_1condition_coll__map" id="auvw_1_1condition_coll__map">
<area shape="rect" title="The condition wrapper." alt="" coords="43,79,145,104"/>
<area shape="rect" href="structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,183,31"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a02dfe50d273ed1263c839edb504213a0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1condition.html#a02dfe50d273ed1263c839edb504213a0">signal</a> () noexcept</td></tr>
<tr class="memdesc:a02dfe50d273ed1263c839edb504213a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals a condition. <br /></td></tr>
<tr class="separator:a02dfe50d273ed1263c839edb504213a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba9e52349e417204c43b2383008ead7a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1condition.html#aba9e52349e417204c43b2383008ead7a">broadcast</a> () noexcept</td></tr>
<tr class="memdesc:aba9e52349e417204c43b2383008ead7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Broadcasts a condition. <br /></td></tr>
<tr class="separator:aba9e52349e417204c43b2383008ead7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49753b61acdfbf76ba87b70d6f441289"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1condition.html#a49753b61acdfbf76ba87b70d6f441289">wait</a> (<a class="el" href="classuvw_1_1mutex.html">mutex</a> &amp;mtx) noexcept</td></tr>
<tr class="memdesc:a49753b61acdfbf76ba87b70d6f441289"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits on a condition. <br /></td></tr>
<tr class="separator:a49753b61acdfbf76ba87b70d6f441289"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1ca0e3ae4854fc8e16068922db667a4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1condition.html#af1ca0e3ae4854fc8e16068922db667a4">timed_wait</a> (<a class="el" href="classuvw_1_1mutex.html">mutex</a> &amp;mtx, uint64_t timeout) noexcept</td></tr>
<tr class="memdesc:af1ca0e3ae4854fc8e16068922db667a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits on a condition. <br /></td></tr>
<tr class="separator:af1ca0e3ae4854fc8e16068922db667a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_structuvw_1_1uv__type"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_structuvw_1_1uv__type')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_cond_t &gt;</a></td></tr>
<tr class="memitem:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#ae97ffacc0b381610d8d18a62a957a69c">init</a> ()</td></tr>
<tr class="memdesc:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the handle. <br /></td></tr>
<tr class="separator:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classuvw_1_1loop.html">loop</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#ae03b0ebbae151c6157c5ba6a24a39a7b">parent</a> () const noexcept</td></tr>
<tr class="memdesc:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the loop from which the resource was originated. <br /></td></tr>
<tr class="separator:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">const uv_cond_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#a06a6cb7ebde27aa348e340b76e49c6ae">raw</a> () const noexcept</td></tr>
<tr class="memdesc:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the underlying raw data structure. <br /></td></tr>
<tr class="separator:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">uv_cond_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#af4b6f395815f2e99302b5f09be23767c">raw</a> () noexcept</td></tr>
<tr class="memdesc:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the underlying raw data structure. <br /></td></tr>
<tr class="separator:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The condition wrapper. </p>
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00283">283</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="aba9e52349e417204c43b2383008ead7a" name="aba9e52349e417204c43b2383008ead7a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba9e52349e417204c43b2383008ead7a">&#9670;&#160;</a></span>broadcast()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void uvw::condition::broadcast </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Broadcasts a condition. </p>
<p>This function shall unblock threads blocked on a condition variable. </p>
</div>
</div>
<a id="a02dfe50d273ed1263c839edb504213a0" name="a02dfe50d273ed1263c839edb504213a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a02dfe50d273ed1263c839edb504213a0">&#9670;&#160;</a></span>signal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void uvw::condition::signal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Signals a condition. </p>
<p>This function shall unblock at least one of the threads that are blocked on the specified condition variable (if any threads are blocked on it). </p>
</div>
</div>
<a id="af1ca0e3ae4854fc8e16068922db667a4" name="af1ca0e3ae4854fc8e16068922db667a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1ca0e3ae4854fc8e16068922db667a4">&#9670;&#160;</a></span>timed_wait()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool uvw::condition::timed_wait </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classuvw_1_1mutex.html">mutex</a> &amp;&#160;</td>
<td class="paramname"><em>mtx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Waits on a condition. </p>
<p>These function atomically releases the mutex and causes the calling thread to block on the condition variable.<br />
The functions returns with an error if the absolute time specified passes (that is, system time equals or exceeds it) before the condition is signaled or broadcasted, or if the absolute time specified has already been passed at the time of the call.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">mtx</td><td>A mutex locked by the calling thread, otherwise expect undefined behavior. </td></tr>
<tr><td class="paramname">timeout</td><td>The maximum time to wait before to return. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True in case of success, false otherwise. </dd></dl>
</div>
</div>
<a id="a49753b61acdfbf76ba87b70d6f441289" name="a49753b61acdfbf76ba87b70d6f441289"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49753b61acdfbf76ba87b70d6f441289">&#9670;&#160;</a></span>wait()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void uvw::condition::wait </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classuvw_1_1mutex.html">mutex</a> &amp;&#160;</td>
<td class="paramname"><em>mtx</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Waits on a condition. </p>
<p>These function atomically releases the mutex and causes the calling thread to block on the condition variable.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">mtx</td><td>A mutex locked by the calling thread, otherwise expect undefined behavior. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/uvw/<a class="el" href="thread_8h_source.html">thread.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,4 +0,0 @@
<map id="uvw::condition" name="uvw::condition">
<area shape="rect" id="node1" title="The condition wrapper." alt="" coords="43,79,145,104"/>
<area shape="rect" id="node2" href="$structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,183,31"/>
</map>

View File

@ -1 +0,0 @@
abb142ff54470204e0cb56e1563fa887

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,4 +0,0 @@
<map id="uvw::condition" name="uvw::condition">
<area shape="rect" id="node1" title="The condition wrapper." alt="" coords="43,79,145,104"/>
<area shape="rect" id="node2" href="$structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,183,31"/>
</map>

View File

@ -1 +0,0 @@
abb142ff54470204e0cb56e1563fa887

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,92 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1emitter.html">emitter</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">uvw::emitter&lt; T, E &gt; Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; T, E &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1emitter.html#ac02a29fe156faba7571b50450fc4f780">has</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; T, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1emitter.html#ab913fa1c005a33c73b2eb2b0d1051b1f">on</a>(listener_t&lt; U &gt; f)</td><td class="entry"><a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; T, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1emitter.html#accff5c096692f5eebbe941189644e69d">reset</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; T, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1emitter.html#aa71435e74e775cfa7012fe2e52ca5193">reset</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; T, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,232 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: uvw::emitter&lt; T, E &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1emitter.html">emitter</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classuvw_1_1emitter-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">uvw::emitter&lt; T, E &gt; Class Template Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Event emitter base class.
<a href="classuvw_1_1emitter.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="emitter_8h_source.html">emitter.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for uvw::emitter&lt; T, E &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1emitter__inherit__graph.png" border="0" usemap="#auvw_1_1emitter_3_01T_00_01E_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="auvw_1_1emitter_3_01T_00_01E_01_4_inherit__map" id="auvw_1_1emitter_3_01T_00_01E_01_4_inherit__map">
<area shape="rect" title="Event emitter base class." alt="" coords="5,832,144,857"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="223,5,371,60"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="223,84,371,139"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="211,163,383,203"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="225,228,370,283"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="207,307,388,347"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="214,372,381,427"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="229,451,365,491"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="217,516,377,571"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="222,595,373,649"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="221,674,373,714"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="199,739,395,793"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="192,817,403,872"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="230,896,365,951"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="229,975,366,1029"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="230,1053,365,1108"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="219,1132,375,1187"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="218,1211,377,1265"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="224,1289,371,1344"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="216,1368,379,1423"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="226,1447,369,1501"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="218,1525,377,1580"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="215,1604,380,1659"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="221,1683,374,1723"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab913fa1c005a33c73b2eb2b0d1051b1f"><td class="memTemplParams" colspan="2">template&lt;typename U &gt; </td></tr>
<tr class="memitem:ab913fa1c005a33c73b2eb2b0d1051b1f"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classuvw_1_1emitter.html#ab913fa1c005a33c73b2eb2b0d1051b1f">on</a> (listener_t&lt; U &gt; f)</td></tr>
<tr class="memdesc:ab913fa1c005a33c73b2eb2b0d1051b1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a long-lived listener with the event emitter. <br /></td></tr>
<tr class="separator:ab913fa1c005a33c73b2eb2b0d1051b1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accff5c096692f5eebbe941189644e69d"><td class="memTemplParams" colspan="2"><a id="accff5c096692f5eebbe941189644e69d" name="accff5c096692f5eebbe941189644e69d"></a>
template&lt;typename U &gt; </td></tr>
<tr class="memitem:accff5c096692f5eebbe941189644e69d"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>reset</b> () noexcept</td></tr>
<tr class="memdesc:accff5c096692f5eebbe941189644e69d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects the listener for the given event type. <br /></td></tr>
<tr class="separator:accff5c096692f5eebbe941189644e69d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa71435e74e775cfa7012fe2e52ca5193"><td class="memItemLeft" align="right" valign="top"><a id="aa71435e74e775cfa7012fe2e52ca5193" name="aa71435e74e775cfa7012fe2e52ca5193"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>reset</b> () noexcept</td></tr>
<tr class="memdesc:aa71435e74e775cfa7012fe2e52ca5193"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects all listeners. <br /></td></tr>
<tr class="separator:aa71435e74e775cfa7012fe2e52ca5193"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac02a29fe156faba7571b50450fc4f780"><td class="memTemplParams" colspan="2">template&lt;typename U &gt; </td></tr>
<tr class="memitem:ac02a29fe156faba7571b50450fc4f780"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classuvw_1_1emitter.html#ac02a29fe156faba7571b50450fc4f780">has</a> () const noexcept</td></tr>
<tr class="memdesc:ac02a29fe156faba7571b50450fc4f780"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if there is a listener registered for the specific event. <br /></td></tr>
<tr class="separator:ac02a29fe156faba7571b50450fc4f780"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;typename T, typename... E&gt;<br />
class uvw::emitter&lt; T, E &gt;</div><p>Event emitter base class. </p>
<p>Almost everything in <code>uvw</code> is an event emitter.<br />
This is the base class from which resources and loops inherit. </p>
<p class="definition">Definition at line <a class="el" href="emitter_8h_source.html#l00083">83</a> of file <a class="el" href="emitter_8h_source.html">emitter.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ac02a29fe156faba7571b50450fc4f780" name="ac02a29fe156faba7571b50450fc4f780"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac02a29fe156faba7571b50450fc4f780">&#9670;&#160;</a></span>has()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename... E&gt; </div>
<div class="memtemplate">
template&lt;typename U &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classuvw_1_1emitter.html">uvw::emitter</a>&lt; T, E &gt;::has </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if there is a listener registered for the specific event. </p>
<dl class="section return"><dt>Returns</dt><dd>True if there is a listener registered for the specific event, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="emitter_8h_source.html#l00145">145</a> of file <a class="el" href="emitter_8h_source.html">emitter.h</a>.</p>
</div>
</div>
<a id="ab913fa1c005a33c73b2eb2b0d1051b1f" name="ab913fa1c005a33c73b2eb2b0d1051b1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab913fa1c005a33c73b2eb2b0d1051b1f">&#9670;&#160;</a></span>on()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename... E&gt; </div>
<div class="memtemplate">
template&lt;typename U &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classuvw_1_1emitter.html">uvw::emitter</a>&lt; T, E &gt;::on </td>
<td>(</td>
<td class="paramtype">listener_t&lt; U &gt;&#160;</td>
<td class="paramname"><em>f</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Registers a long-lived listener with the event emitter. </p>
<p>This method is used to register a listener with the emitter.<br />
A listener is usually defined as a callable object assignable to a <code>std::function&lt;void(const E &amp;, T &amp;)</code>, where <code>E</code> is the type of the event and <code>T</code> is the type of the resource.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">f</td><td>A valid listener to be registered. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="emitter_8h_source.html#l00123">123</a> of file <a class="el" href="emitter_8h_source.html">emitter.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/uvw/<a class="el" href="emitter_8h_source.html">emitter.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,26 +0,0 @@
<map id="uvw::emitter&lt; T, E &gt;" name="uvw::emitter&lt; T, E &gt;">
<area shape="rect" id="node1" title="Event emitter base class." alt="" coords="5,832,144,857"/>
<area shape="rect" id="node2" href="$classuvw_1_1resource.html" title=" " alt="" coords="223,5,371,60"/>
<area shape="rect" id="node3" href="$classuvw_1_1resource.html" title=" " alt="" coords="223,84,371,139"/>
<area shape="rect" id="node4" href="$classuvw_1_1resource.html" title=" " alt="" coords="211,163,383,203"/>
<area shape="rect" id="node5" href="$classuvw_1_1resource.html" title=" " alt="" coords="225,228,370,283"/>
<area shape="rect" id="node6" href="$classuvw_1_1resource.html" title=" " alt="" coords="207,307,388,347"/>
<area shape="rect" id="node7" href="$classuvw_1_1resource.html" title=" " alt="" coords="214,372,381,427"/>
<area shape="rect" id="node8" href="$classuvw_1_1resource.html" title=" " alt="" coords="229,451,365,491"/>
<area shape="rect" id="node9" href="$classuvw_1_1resource.html" title=" " alt="" coords="217,516,377,571"/>
<area shape="rect" id="node10" href="$classuvw_1_1resource.html" title=" " alt="" coords="222,595,373,649"/>
<area shape="rect" id="node11" href="$classuvw_1_1resource.html" title=" " alt="" coords="221,674,373,714"/>
<area shape="rect" id="node12" href="$classuvw_1_1resource.html" title=" " alt="" coords="199,739,395,793"/>
<area shape="rect" id="node13" href="$classuvw_1_1resource.html" title=" " alt="" coords="192,817,403,872"/>
<area shape="rect" id="node14" href="$classuvw_1_1resource.html" title=" " alt="" coords="230,896,365,951"/>
<area shape="rect" id="node15" href="$classuvw_1_1resource.html" title=" " alt="" coords="229,975,366,1029"/>
<area shape="rect" id="node16" href="$classuvw_1_1resource.html" title=" " alt="" coords="230,1053,365,1108"/>
<area shape="rect" id="node17" href="$classuvw_1_1resource.html" title=" " alt="" coords="219,1132,375,1187"/>
<area shape="rect" id="node18" href="$classuvw_1_1resource.html" title=" " alt="" coords="218,1211,377,1265"/>
<area shape="rect" id="node19" href="$classuvw_1_1resource.html" title=" " alt="" coords="224,1289,371,1344"/>
<area shape="rect" id="node20" href="$classuvw_1_1resource.html" title=" " alt="" coords="216,1368,379,1423"/>
<area shape="rect" id="node21" href="$classuvw_1_1resource.html" title=" " alt="" coords="226,1447,369,1501"/>
<area shape="rect" id="node22" href="$classuvw_1_1resource.html" title=" " alt="" coords="218,1525,377,1580"/>
<area shape="rect" id="node23" href="$classuvw_1_1resource.html" title=" " alt="" coords="215,1604,380,1659"/>
<area shape="rect" id="node24" href="$classuvw_1_1resource.html" title=" " alt="" coords="221,1683,374,1723"/>
</map>

View File

@ -1 +0,0 @@
ec86312c5e2b6686ba053e715b1757fa

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

View File

@ -1,112 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1handle.html">handle</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">uvw::handle&lt; T, U, E &gt; Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classuvw_1_1handle.html">uvw::handle&lt; T, U, E &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1handle.html#a938d3ac6e5cc78f9442f9bb851170643">active</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1handle.html">uvw::handle&lt; T, U, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1handle.html#a80c5ba8c4db128cc525406e998549b96">category</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1handle.html">uvw::handle&lt; T, U, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1handle.html#a3648ed9805e8d0e8963f137f8584e483">close</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1handle.html">uvw::handle&lt; T, U, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1handle.html#ae93cbf2156f0d673093e48832104a3cc">closing</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1handle.html">uvw::handle&lt; T, U, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1resource.html#a7c05e988ebaa14d1dbbc781951dc3a88">data</a>() const</td><td class="entry"><a class="el" href="classuvw_1_1resource.html">uvw::resource&lt; T, U, close_event, E... &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1resource.html#a759079eb405e5d2fda795d199d8efa80">data</a>(std::shared_ptr&lt; void &gt; udata)</td><td class="entry"><a class="el" href="classuvw_1_1resource.html">uvw::resource&lt; T, U, close_event, E... &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1handle.html#a0ce9568c94aa0122ff4cee6a57b4fae5">fd</a>() const</td><td class="entry"><a class="el" href="classuvw_1_1handle.html">uvw::handle&lt; T, U, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1emitter.html#ac02a29fe156faba7571b50450fc4f780">has</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; T, E... &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#ae97ffacc0b381610d8d18a62a957a69c">init</a>()</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; U &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1emitter.html#ab913fa1c005a33c73b2eb2b0d1051b1f">on</a>(listener_t&lt; U &gt; f)</td><td class="entry"><a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; T, E... &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#ae03b0ebbae151c6157c5ba6a24a39a7b">parent</a>() const noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; U &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#a06a6cb7ebde27aa348e340b76e49c6ae">raw</a>() const noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; U &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#af4b6f395815f2e99302b5f09be23767c">raw</a>() noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; U &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1handle.html#a7a3337ef0c68ed5ba0e9bea0e2e90539">recv_buffer_size</a>()</td><td class="entry"><a class="el" href="classuvw_1_1handle.html">uvw::handle&lt; T, U, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1handle.html#ace23bb725f6f80ae7a611f5228ad9f8d">recv_buffer_size</a>(int value)</td><td class="entry"><a class="el" href="classuvw_1_1handle.html">uvw::handle&lt; T, U, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1handle.html#a2f0d788997368ab1af2dc475126a46d2">reference</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1handle.html">uvw::handle&lt; T, U, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1handle.html#a1403f961ab40063f79c4a293c78ed63c">referenced</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1handle.html">uvw::handle&lt; T, U, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1emitter.html#accff5c096692f5eebbe941189644e69d">reset</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; T, E... &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1emitter.html#aa71435e74e775cfa7012fe2e52ca5193">reset</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; T, E... &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1handle.html#aa99406ca909aeaac17522959db8c71a4">send_buffer_size</a>()</td><td class="entry"><a class="el" href="classuvw_1_1handle.html">uvw::handle&lt; T, U, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1handle.html#a917ab9c1f011232b50f9980f29167ee2">send_buffer_size</a>(int value)</td><td class="entry"><a class="el" href="classuvw_1_1handle.html">uvw::handle&lt; T, U, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1handle.html#a5852080ba1fd71a302c2424cf2df9a27">size</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1handle.html">uvw::handle&lt; T, U, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1handle.html#a88018be1fa3105e958c50a9f1881baa9">type</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1handle.html">uvw::handle&lt; T, U, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1handle.html#a83a91d1353c19f1a05aace78dc2cc453">unreference</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1handle.html">uvw::handle&lt; T, U, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,696 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: uvw::handle&lt; T, U, E &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1handle.html">handle</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classuvw_1_1handle-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">uvw::handle&lt; T, U, E &gt; Class Template Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Handle base class.
<a href="classuvw_1_1handle.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="handle_8hpp_source.html">handle.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for uvw::handle&lt; T, U, E &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1handle__inherit__graph.png" border="0" usemap="#auvw_1_1handle_3_01T_00_01U_00_01E_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="auvw_1_1handle_3_01T_00_01U_00_01E_01_4_inherit__map" id="auvw_1_1handle_3_01T_00_01U_00_01E_01_4_inherit__map">
<area shape="rect" title="Handle base class." alt="" coords="393,77,548,102"/>
<area shape="rect" href="classuvw_1_1stream__handle.html" title=" " alt="" coords="596,5,773,45"/>
<area shape="rect" href="classuvw_1_1stream__handle.html" title=" " alt="" coords="602,69,767,109"/>
<area shape="rect" href="classuvw_1_1stream__handle.html" title=" " alt="" coords="605,133,764,173"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="204,69,345,109"/>
<area shape="rect" href="structuvw_1_1uv__type.html" title="Wrapper class for underlying types." alt="" coords="17,51,145,77"/>
<area shape="rect" href="classuvw_1_1emitter.html" title=" " alt="" coords="5,101,156,126"/>
<area shape="rect" href="classuvw_1_1pipe__handle.html" title="The pipe handle." alt="" coords="821,13,941,38"/>
<area shape="rect" href="classuvw_1_1tcp__handle.html" title="The TCP handle." alt="" coords="824,77,939,102"/>
<area shape="rect" href="classuvw_1_1tty__handle.html" title="The tty handle." alt="" coords="826,141,937,166"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for uvw::handle&lt; T, U, E &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1handle__coll__graph.png" border="0" usemap="#auvw_1_1handle_3_01T_00_01U_00_01E_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="auvw_1_1handle_3_01T_00_01U_00_01E_01_4_coll__map" id="auvw_1_1handle_3_01T_00_01U_00_01E_01_4_coll__map">
<area shape="rect" title="Handle base class." alt="" coords="73,167,228,192"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="80,79,221,119"/>
<area shape="rect" href="structuvw_1_1uv__type.html" title="Wrapper class for underlying types." alt="" coords="5,5,133,31"/>
<area shape="rect" href="classuvw_1_1emitter.html" title=" " alt="" coords="158,5,309,31"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a80c5ba8c4db128cc525406e998549b96"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceuvw.html#a9e28e1855691dd1af105626ed11f3ac4">handle_category</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a80c5ba8c4db128cc525406e998549b96">category</a> () const noexcept</td></tr>
<tr class="memdesc:a80c5ba8c4db128cc525406e998549b96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the category of the handle. <br /></td></tr>
<tr class="separator:a80c5ba8c4db128cc525406e998549b96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88018be1fa3105e958c50a9f1881baa9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceuvw.html#a3954d5751b5b6ebb0c90c195e9b94edd">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a88018be1fa3105e958c50a9f1881baa9">type</a> () const noexcept</td></tr>
<tr class="memdesc:a88018be1fa3105e958c50a9f1881baa9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the type of the handle. <br /></td></tr>
<tr class="separator:a88018be1fa3105e958c50a9f1881baa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a938d3ac6e5cc78f9442f9bb851170643"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a938d3ac6e5cc78f9442f9bb851170643">active</a> () const noexcept</td></tr>
<tr class="memdesc:a938d3ac6e5cc78f9442f9bb851170643"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the handle is active. <br /></td></tr>
<tr class="separator:a938d3ac6e5cc78f9442f9bb851170643"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae93cbf2156f0d673093e48832104a3cc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#ae93cbf2156f0d673093e48832104a3cc">closing</a> () const noexcept</td></tr>
<tr class="memdesc:ae93cbf2156f0d673093e48832104a3cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if a handle is closing or closed. <br /></td></tr>
<tr class="separator:ae93cbf2156f0d673093e48832104a3cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3648ed9805e8d0e8963f137f8584e483"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a3648ed9805e8d0e8963f137f8584e483">close</a> () noexcept</td></tr>
<tr class="memdesc:a3648ed9805e8d0e8963f137f8584e483"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request handle to be closed. <br /></td></tr>
<tr class="separator:a3648ed9805e8d0e8963f137f8584e483"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f0d788997368ab1af2dc475126a46d2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a2f0d788997368ab1af2dc475126a46d2">reference</a> () noexcept</td></tr>
<tr class="memdesc:a2f0d788997368ab1af2dc475126a46d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference the given handle. <br /></td></tr>
<tr class="separator:a2f0d788997368ab1af2dc475126a46d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83a91d1353c19f1a05aace78dc2cc453"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a83a91d1353c19f1a05aace78dc2cc453">unreference</a> () noexcept</td></tr>
<tr class="memdesc:a83a91d1353c19f1a05aace78dc2cc453"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unreference the given handle. <br /></td></tr>
<tr class="separator:a83a91d1353c19f1a05aace78dc2cc453"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1403f961ab40063f79c4a293c78ed63c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a1403f961ab40063f79c4a293c78ed63c">referenced</a> () const noexcept</td></tr>
<tr class="memdesc:a1403f961ab40063f79c4a293c78ed63c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the given handle referenced. <br /></td></tr>
<tr class="separator:a1403f961ab40063f79c4a293c78ed63c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5852080ba1fd71a302c2424cf2df9a27"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a5852080ba1fd71a302c2424cf2df9a27">size</a> () const noexcept</td></tr>
<tr class="memdesc:a5852080ba1fd71a302c2424cf2df9a27"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the size of the underlying handle type. <br /></td></tr>
<tr class="separator:a5852080ba1fd71a302c2424cf2df9a27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa99406ca909aeaac17522959db8c71a4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#aa99406ca909aeaac17522959db8c71a4">send_buffer_size</a> ()</td></tr>
<tr class="memdesc:aa99406ca909aeaac17522959db8c71a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the size of the send buffer used for the socket. <br /></td></tr>
<tr class="separator:aa99406ca909aeaac17522959db8c71a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a917ab9c1f011232b50f9980f29167ee2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a917ab9c1f011232b50f9980f29167ee2">send_buffer_size</a> (int value)</td></tr>
<tr class="memdesc:a917ab9c1f011232b50f9980f29167ee2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the size of the send buffer used for the socket. <br /></td></tr>
<tr class="separator:a917ab9c1f011232b50f9980f29167ee2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a3337ef0c68ed5ba0e9bea0e2e90539"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a7a3337ef0c68ed5ba0e9bea0e2e90539">recv_buffer_size</a> ()</td></tr>
<tr class="memdesc:a7a3337ef0c68ed5ba0e9bea0e2e90539"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the size of the receive buffer used for the socket. <br /></td></tr>
<tr class="separator:a7a3337ef0c68ed5ba0e9bea0e2e90539"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace23bb725f6f80ae7a611f5228ad9f8d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#ace23bb725f6f80ae7a611f5228ad9f8d">recv_buffer_size</a> (int value)</td></tr>
<tr class="memdesc:ace23bb725f6f80ae7a611f5228ad9f8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the size of the receive buffer used for the socket. <br /></td></tr>
<tr class="separator:ace23bb725f6f80ae7a611f5228ad9f8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ce9568c94aa0122ff4cee6a57b4fae5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceuvw.html#a1a4f79e341b89257a11403ee0739f2b4">os_file_descriptor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1handle.html#a0ce9568c94aa0122ff4cee6a57b4fae5">fd</a> () const</td></tr>
<tr class="memdesc:a0ce9568c94aa0122ff4cee6a57b4fae5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the platform dependent file descriptor equivalent. <br /></td></tr>
<tr class="separator:a0ce9568c94aa0122ff4cee6a57b4fae5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classuvw_1_1resource"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classuvw_1_1resource')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classuvw_1_1resource.html">uvw::resource&lt; T, U, close_event, E... &gt;</a></td></tr>
<tr class="memitem:a7c05e988ebaa14d1dbbc781951dc3a88 inherit pub_methods_classuvw_1_1resource"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; R &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1resource.html#a7c05e988ebaa14d1dbbc781951dc3a88">data</a> () const</td></tr>
<tr class="memdesc:a7c05e988ebaa14d1dbbc781951dc3a88 inherit pub_methods_classuvw_1_1resource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets user-defined data. <code>uvw</code> won't use this field in any case. <br /></td></tr>
<tr class="separator:a7c05e988ebaa14d1dbbc781951dc3a88 inherit pub_methods_classuvw_1_1resource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a759079eb405e5d2fda795d199d8efa80 inherit pub_methods_classuvw_1_1resource"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1resource.html#a759079eb405e5d2fda795d199d8efa80">data</a> (std::shared_ptr&lt; void &gt; udata)</td></tr>
<tr class="memdesc:a759079eb405e5d2fda795d199d8efa80 inherit pub_methods_classuvw_1_1resource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets arbitrary data. <code>uvw</code> won't use this field in any case. <br /></td></tr>
<tr class="separator:a759079eb405e5d2fda795d199d8efa80 inherit pub_methods_classuvw_1_1resource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_structuvw_1_1uv__type"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_structuvw_1_1uv__type')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; U &gt;</a></td></tr>
<tr class="memitem:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#ae97ffacc0b381610d8d18a62a957a69c">init</a> ()</td></tr>
<tr class="memdesc:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the handle. <br /></td></tr>
<tr class="separator:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classuvw_1_1loop.html">loop</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#ae03b0ebbae151c6157c5ba6a24a39a7b">parent</a> () const noexcept</td></tr>
<tr class="memdesc:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the loop from which the resource was originated. <br /></td></tr>
<tr class="separator:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">const U *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#a06a6cb7ebde27aa348e340b76e49c6ae">raw</a> () const noexcept</td></tr>
<tr class="memdesc:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the underlying raw data structure. <br /></td></tr>
<tr class="separator:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">U *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#af4b6f395815f2e99302b5f09be23767c">raw</a> () noexcept</td></tr>
<tr class="memdesc:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the underlying raw data structure. <br /></td></tr>
<tr class="separator:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classuvw_1_1emitter"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classuvw_1_1emitter')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; T, E... &gt;</a></td></tr>
<tr class="memitem:ab913fa1c005a33c73b2eb2b0d1051b1f inherit pub_methods_classuvw_1_1emitter"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1emitter.html#ab913fa1c005a33c73b2eb2b0d1051b1f">on</a> (listener_t&lt; U &gt; f)</td></tr>
<tr class="memdesc:ab913fa1c005a33c73b2eb2b0d1051b1f inherit pub_methods_classuvw_1_1emitter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a long-lived listener with the event emitter. <br /></td></tr>
<tr class="separator:ab913fa1c005a33c73b2eb2b0d1051b1f inherit pub_methods_classuvw_1_1emitter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accff5c096692f5eebbe941189644e69d inherit pub_methods_classuvw_1_1emitter"><td class="memItemLeft" align="right" valign="top"><a id="accff5c096692f5eebbe941189644e69d" name="accff5c096692f5eebbe941189644e69d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>reset</b> () noexcept</td></tr>
<tr class="memdesc:accff5c096692f5eebbe941189644e69d inherit pub_methods_classuvw_1_1emitter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects the listener for the given event type. <br /></td></tr>
<tr class="separator:accff5c096692f5eebbe941189644e69d inherit pub_methods_classuvw_1_1emitter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa71435e74e775cfa7012fe2e52ca5193 inherit pub_methods_classuvw_1_1emitter"><td class="memItemLeft" align="right" valign="top"><a id="aa71435e74e775cfa7012fe2e52ca5193" name="aa71435e74e775cfa7012fe2e52ca5193"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>reset</b> () noexcept</td></tr>
<tr class="memdesc:aa71435e74e775cfa7012fe2e52ca5193 inherit pub_methods_classuvw_1_1emitter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects all listeners. <br /></td></tr>
<tr class="separator:aa71435e74e775cfa7012fe2e52ca5193 inherit pub_methods_classuvw_1_1emitter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac02a29fe156faba7571b50450fc4f780 inherit pub_methods_classuvw_1_1emitter"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1emitter.html#ac02a29fe156faba7571b50450fc4f780">has</a> () const noexcept</td></tr>
<tr class="memdesc:ac02a29fe156faba7571b50450fc4f780 inherit pub_methods_classuvw_1_1emitter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if there is a listener registered for the specific event. <br /></td></tr>
<tr class="separator:ac02a29fe156faba7571b50450fc4f780 inherit pub_methods_classuvw_1_1emitter"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;typename T, typename U, typename... E&gt;<br />
class uvw::handle&lt; T, U, E &gt;</div><p>Handle base class. </p>
<p>Base type for all <code>uvw</code> handle types. </p>
<p class="definition">Definition at line <a class="el" href="handle_8hpp_source.html#l00023">23</a> of file <a class="el" href="handle_8hpp_source.html">handle.hpp</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a938d3ac6e5cc78f9442f9bb851170643" name="a938d3ac6e5cc78f9442f9bb851170643"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a938d3ac6e5cc78f9442f9bb851170643">&#9670;&#160;</a></span>active()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename U , typename... E&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classuvw_1_1handle.html">uvw::handle</a>&lt; T, U, E &gt;::active </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if the handle is active. </p>
<p>What <em>active</em> means depends on the type of handle:</p>
<ul>
<li>An <a class="el" href="classuvw_1_1async__handle.html" title="The async handle.">async_handle</a> handle is always active and cannot be deactivated, except by closing it with uv_close().</li>
<li>A pipe, tcp, udp, etc. handle - basically any handle that deals with I/O - is active when it is doing something that involves I/O, like reading, writing, connecting, accepting new connections, etc.</li>
<li>A check, idle, timer, etc. handle is active when it has been started with a call to <code>start()</code>.</li>
</ul>
<p>Rule of thumb: if a handle of type <code>foo_handle</code> has a <code>start()</code> member method, then its active from the moment that method is called. Likewise, <code>stop()</code> deactivates the handle again.</p>
<dl class="section return"><dt>Returns</dt><dd>True if the handle is active, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="handle_8hpp_source.html#l00088">88</a> of file <a class="el" href="handle_8hpp_source.html">handle.hpp</a>.</p>
</div>
</div>
<a id="a80c5ba8c4db128cc525406e998549b96" name="a80c5ba8c4db128cc525406e998549b96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80c5ba8c4db128cc525406e998549b96">&#9670;&#160;</a></span>category()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename U , typename... E&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceuvw.html#a9e28e1855691dd1af105626ed11f3ac4">handle_category</a> <a class="el" href="classuvw_1_1handle.html">uvw::handle</a>&lt; T, U, E &gt;::category </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the category of the handle. </p>
<p>A base handle offers no functionality to promote it to the actual handle type. By means of this function, an opaque value that identifies the category of the handle is made available to the users.</p>
<dl class="section return"><dt>Returns</dt><dd>The actual category of the handle. </dd></dl>
<p class="definition">Definition at line <a class="el" href="handle_8hpp_source.html#l00052">52</a> of file <a class="el" href="handle_8hpp_source.html">handle.hpp</a>.</p>
</div>
</div>
<a id="a3648ed9805e8d0e8963f137f8584e483" name="a3648ed9805e8d0e8963f137f8584e483"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3648ed9805e8d0e8963f137f8584e483">&#9670;&#160;</a></span>close()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename U , typename... E&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classuvw_1_1handle.html">uvw::handle</a>&lt; T, U, E &gt;::close </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Request handle to be closed. </p>
<p>This <b>must</b> be called on each handle before memory is released.<br />
In-progress requests are cancelled and this can result in errors.</p>
<p>The handle will emit a close event when finished. </p>
<p class="definition">Definition at line <a class="el" href="handle_8hpp_source.html#l00112">112</a> of file <a class="el" href="handle_8hpp_source.html">handle.hpp</a>.</p>
</div>
</div>
<a id="ae93cbf2156f0d673093e48832104a3cc" name="ae93cbf2156f0d673093e48832104a3cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae93cbf2156f0d673093e48832104a3cc">&#9670;&#160;</a></span>closing()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename U , typename... E&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classuvw_1_1handle.html">uvw::handle</a>&lt; T, U, E &gt;::closing </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if a handle is closing or closed. </p>
<p>This function should only be used between the initialization of the handle and the arrival of the close callback.</p>
<dl class="section return"><dt>Returns</dt><dd>True if the handle is closing or closed, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="handle_8hpp_source.html#l00100">100</a> of file <a class="el" href="handle_8hpp_source.html">handle.hpp</a>.</p>
</div>
</div>
<a id="a0ce9568c94aa0122ff4cee6a57b4fae5" name="a0ce9568c94aa0122ff4cee6a57b4fae5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ce9568c94aa0122ff4cee6a57b4fae5">&#9670;&#160;</a></span>fd()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename U , typename... E&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceuvw.html#a1a4f79e341b89257a11403ee0739f2b4">os_file_descriptor</a> <a class="el" href="classuvw_1_1handle.html">uvw::handle</a>&lt; T, U, E &gt;::fd </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the platform dependent file descriptor equivalent. </p>
<p>Supported handles:</p>
<ul>
<li><a class="el" href="classuvw_1_1tcp__handle.html" title="The TCP handle.">tcp_handle</a></li>
<li><a class="el" href="classuvw_1_1pipe__handle.html" title="The pipe handle.">pipe_handle</a></li>
<li><a class="el" href="classuvw_1_1tty__handle.html" title="The tty handle.">tty_handle</a></li>
<li><a class="el" href="classuvw_1_1udp__handle.html" title="The UDP handle.">udp_handle</a></li>
<li><a class="el" href="classuvw_1_1poll__handle.html" title="The poll handle.">poll_handle</a></li>
</ul>
<p>If invoked on a different handle, one that doesnt have an attached file descriptor yet or one which was closed, an invalid value is returned.</p>
<p>See the official <a href="http://docs.libuv.org/en/v1.x/handle.html#c.uv_fileno">documentation</a> for further details.</p>
<dl class="section return"><dt>Returns</dt><dd>The file descriptor attached to the hande or a negative value in case of errors. </dd></dl>
<p class="definition">Definition at line <a class="el" href="handle_8hpp_source.html#l00241">241</a> of file <a class="el" href="handle_8hpp_source.html">handle.hpp</a>.</p>
</div>
</div>
<a id="a7a3337ef0c68ed5ba0e9bea0e2e90539" name="a7a3337ef0c68ed5ba0e9bea0e2e90539"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a3337ef0c68ed5ba0e9bea0e2e90539">&#9670;&#160;</a></span>recv_buffer_size() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename U , typename... E&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="classuvw_1_1handle.html">uvw::handle</a>&lt; T, U, E &gt;::recv_buffer_size </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the size of the receive buffer used for the socket. </p>
<p>Gets the size of the receive buffer that the operating system uses for the socket.<br />
This function works for tcp, pipe and udp handles on Unix and for tcp and udp handles on Windows.<br />
Note that Linux will return double the size of the original set value.</p>
<dl class="section return"><dt>Returns</dt><dd>The size of the receive buffer, the underlying return value in case of errors. </dd></dl>
<p class="definition">Definition at line <a class="el" href="handle_8hpp_source.html#l00199">199</a> of file <a class="el" href="handle_8hpp_source.html">handle.hpp</a>.</p>
</div>
</div>
<a id="ace23bb725f6f80ae7a611f5228ad9f8d" name="ace23bb725f6f80ae7a611f5228ad9f8d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace23bb725f6f80ae7a611f5228ad9f8d">&#9670;&#160;</a></span>recv_buffer_size() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename U , typename... E&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="classuvw_1_1handle.html">uvw::handle</a>&lt; T, U, E &gt;::recv_buffer_size </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the size of the receive buffer used for the socket. </p>
<p>Sets the size of the receive buffer that the operating system uses for the socket.<br />
This function works for tcp, pipe and udp handles on Unix and for tcp and udp handles on Windows.<br />
Note that Linux will set double the size.</p>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
<p class="definition">Definition at line <a class="el" href="handle_8hpp_source.html#l00216">216</a> of file <a class="el" href="handle_8hpp_source.html">handle.hpp</a>.</p>
</div>
</div>
<a id="a2f0d788997368ab1af2dc475126a46d2" name="a2f0d788997368ab1af2dc475126a46d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f0d788997368ab1af2dc475126a46d2">&#9670;&#160;</a></span>reference()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename U , typename... E&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classuvw_1_1handle.html">uvw::handle</a>&lt; T, U, E &gt;::reference </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reference the given handle. </p>
<p>References are idempotent, that is, if a handle is already referenced calling this function again will have no effect. </p>
<p class="definition">Definition at line <a class="el" href="handle_8hpp_source.html#l00124">124</a> of file <a class="el" href="handle_8hpp_source.html">handle.hpp</a>.</p>
</div>
</div>
<a id="a1403f961ab40063f79c4a293c78ed63c" name="a1403f961ab40063f79c4a293c78ed63c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1403f961ab40063f79c4a293c78ed63c">&#9670;&#160;</a></span>referenced()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename U , typename... E&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classuvw_1_1handle.html">uvw::handle</a>&lt; T, U, E &gt;::referenced </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if the given handle referenced. </p>
<dl class="section return"><dt>Returns</dt><dd>True if the handle referenced, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="handle_8hpp_source.html#l00142">142</a> of file <a class="el" href="handle_8hpp_source.html">handle.hpp</a>.</p>
</div>
</div>
<a id="aa99406ca909aeaac17522959db8c71a4" name="aa99406ca909aeaac17522959db8c71a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa99406ca909aeaac17522959db8c71a4">&#9670;&#160;</a></span>send_buffer_size() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename U , typename... E&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="classuvw_1_1handle.html">uvw::handle</a>&lt; T, U, E &gt;::send_buffer_size </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the size of the send buffer used for the socket. </p>
<p>Gets the size of the send buffer that the operating system uses for the socket.<br />
This function works for tcp, pipeand udp handles on Unix and for tcp and udp handles on Windows.<br />
Note that Linux will return double the size of the original set value.</p>
<dl class="section return"><dt>Returns</dt><dd>The size of the send buffer, the underlying return value in case of errors. </dd></dl>
<p class="definition">Definition at line <a class="el" href="handle_8hpp_source.html#l00166">166</a> of file <a class="el" href="handle_8hpp_source.html">handle.hpp</a>.</p>
</div>
</div>
<a id="a917ab9c1f011232b50f9980f29167ee2" name="a917ab9c1f011232b50f9980f29167ee2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a917ab9c1f011232b50f9980f29167ee2">&#9670;&#160;</a></span>send_buffer_size() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename U , typename... E&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="classuvw_1_1handle.html">uvw::handle</a>&lt; T, U, E &gt;::send_buffer_size </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the size of the send buffer used for the socket. </p>
<p>Sets the size of the send buffer that the operating system uses for the socket.<br />
This function works for tcp, pipe and udp handles on Unix and for tcp and udp handles on Windows.<br />
Note that Linux will set double the size.</p>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
<p class="definition">Definition at line <a class="el" href="handle_8hpp_source.html#l00183">183</a> of file <a class="el" href="handle_8hpp_source.html">handle.hpp</a>.</p>
</div>
</div>
<a id="a5852080ba1fd71a302c2424cf2df9a27" name="a5852080ba1fd71a302c2424cf2df9a27"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5852080ba1fd71a302c2424cf2df9a27">&#9670;&#160;</a></span>size()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename U , typename... E&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::size_t <a class="el" href="classuvw_1_1handle.html">uvw::handle</a>&lt; T, U, E &gt;::size </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the size of the underlying handle type. </p>
<dl class="section return"><dt>Returns</dt><dd>The size of the underlying handle type. </dd></dl>
<p class="definition">Definition at line <a class="el" href="handle_8hpp_source.html#l00150">150</a> of file <a class="el" href="handle_8hpp_source.html">handle.hpp</a>.</p>
</div>
</div>
<a id="a88018be1fa3105e958c50a9f1881baa9" name="a88018be1fa3105e958c50a9f1881baa9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88018be1fa3105e958c50a9f1881baa9">&#9670;&#160;</a></span>type()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename U , typename... E&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceuvw.html#a3954d5751b5b6ebb0c90c195e9b94edd">handle_type</a> <a class="el" href="classuvw_1_1handle.html">uvw::handle</a>&lt; T, U, E &gt;::type </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the type of the handle. </p>
<p>A base handle offers no functionality to promote it to the actual handle type. By means of this function, the type of the underlying handle as specified by handle_type is made available to the users.</p>
<dl class="section return"><dt>Returns</dt><dd>The actual type of the handle. </dd></dl>
<p class="definition">Definition at line <a class="el" href="handle_8hpp_source.html#l00065">65</a> of file <a class="el" href="handle_8hpp_source.html">handle.hpp</a>.</p>
</div>
</div>
<a id="a83a91d1353c19f1a05aace78dc2cc453" name="a83a91d1353c19f1a05aace78dc2cc453"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83a91d1353c19f1a05aace78dc2cc453">&#9670;&#160;</a></span>unreference()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename U , typename... E&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classuvw_1_1handle.html">uvw::handle</a>&lt; T, U, E &gt;::unreference </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Unreference the given handle. </p>
<p>References are idempotent, that is, if a handle is not referenced calling this function again will have no effect. </p>
<p class="definition">Definition at line <a class="el" href="handle_8hpp_source.html#l00134">134</a> of file <a class="el" href="handle_8hpp_source.html">handle.hpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/uvw/<a class="el" href="handle_8hpp_source.html">handle.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,6 +0,0 @@
<map id="uvw::handle&lt; T, U, E &gt;" name="uvw::handle&lt; T, U, E &gt;">
<area shape="rect" id="node1" title="Handle base class." alt="" coords="73,167,228,192"/>
<area shape="rect" id="node2" href="$classuvw_1_1resource.html" title=" " alt="" coords="80,79,221,119"/>
<area shape="rect" id="node3" href="$structuvw_1_1uv__type.html" title="Wrapper class for underlying types." alt="" coords="5,5,133,31"/>
<area shape="rect" id="node4" href="$classuvw_1_1emitter.html" title=" " alt="" coords="158,5,309,31"/>
</map>

View File

@ -1 +0,0 @@
36a27886966a231dc3a2d0405d62477b

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -1,12 +0,0 @@
<map id="uvw::handle&lt; T, U, E &gt;" name="uvw::handle&lt; T, U, E &gt;">
<area shape="rect" id="node1" title="Handle base class." alt="" coords="393,77,548,102"/>
<area shape="rect" id="node5" href="$classuvw_1_1stream__handle.html" title=" " alt="" coords="596,5,773,45"/>
<area shape="rect" id="node7" href="$classuvw_1_1stream__handle.html" title=" " alt="" coords="602,69,767,109"/>
<area shape="rect" id="node9" href="$classuvw_1_1stream__handle.html" title=" " alt="" coords="605,133,764,173"/>
<area shape="rect" id="node2" href="$classuvw_1_1resource.html" title=" " alt="" coords="204,69,345,109"/>
<area shape="rect" id="node3" href="$structuvw_1_1uv__type.html" title="Wrapper class for underlying types." alt="" coords="17,51,145,77"/>
<area shape="rect" id="node4" href="$classuvw_1_1emitter.html" title=" " alt="" coords="5,101,156,126"/>
<area shape="rect" id="node6" href="$classuvw_1_1pipe__handle.html" title="The pipe handle." alt="" coords="821,13,941,38"/>
<area shape="rect" id="node8" href="$classuvw_1_1tcp__handle.html" title="The TCP handle." alt="" coords="824,77,939,102"/>
<area shape="rect" id="node10" href="$classuvw_1_1tty__handle.html" title="The tty handle." alt="" coords="826,141,937,166"/>
</map>

View File

@ -1 +0,0 @@
23c7a695736c159a73b8dd7fa2ca0e8e

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,114 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1loop.html">loop</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">uvw::loop Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classuvw_1_1loop.html">uvw::loop</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1loop.html#a5d56b835e022e812d4930367b0a4f210">alive</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1loop.html#ac0a8719f173a417a722fe779792a52e6">close</a>()</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1loop.html#acb38eaee2680ed1c4ba74459e5c2a84a">configure</a>(option flag, Args &amp;&amp;...args)</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1loop.html#a77a8922defbd7643a4b18550d263a8d6">create</a>()</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1loop.html#ad4d9897ff0dbc9a534bf38731fa16b46">create</a>(uv_loop_t *res)</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1loop.html#a1b1266e74e2a0edf9493394af3847bb3">data</a>() const</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1loop.html#a7b5f858b0de8daf348f89af2997063c7">data</a>(std::shared_ptr&lt; void &gt; ud)</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1loop.html#addbc84b4d00e0e61cf68bff4b7560b1f">descriptor</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1loop.html#a2a569b877ff0c1cd3f66e21d5a2ded4c">fork</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1loop.html#a6392ce48b55f9b5644eeec2d6ce0e6d4">get_default</a>()</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1emitter.html#ac02a29fe156faba7571b50450fc4f780">has</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; loop &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1loop.html#aeae404d30c956b2c5fa15ec3997f47fc">idle_time</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1loop.html#a22d30bda64387cb70bd348f8e3b2932d">metrics</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1loop.html#ab48abde5d862db1a856900b08ecc02dd">now</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1emitter.html#ab913fa1c005a33c73b2eb2b0d1051b1f">on</a>(listener_t&lt; U &gt; f)</td><td class="entry"><a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; loop &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1loop.html#a4e1f127cadc84b1729bc7835b697d3bf">raw</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1loop.html#a8be924a8e240c444c69fe7c4e754892f">raw</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1emitter.html#accff5c096692f5eebbe941189644e69d">reset</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; loop &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1emitter.html#aa71435e74e775cfa7012fe2e52ca5193">reset</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; loop &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1loop.html#a36e1eb17d55ab7b8d089e55823015618">resource</a>(Args &amp;&amp;...args)</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1loop.html#a199e23bce642f5618e3d0c2b1e8d0cdf">run</a>(run_mode mode=run_mode::DEFAULT) noexcept</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1loop.html#aaafbdbc9022bf12d4aad3db16dcee442">stop</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1loop.html#aa358c1daf70696679edd08513e1f3e31">timeout</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1loop.html#aef0dbe4d1e82e43a8df3df1c7386efca">uninitialized_resource</a>(Args &amp;&amp;...args)</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1loop.html#a762ed24cc491eef2c942505d1885b0aa">update</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1loop.html#aa46a050e186935c0be4eca7815cd9207">walk</a>(Func callback)</td><td class="entry"><a class="el" href="classuvw_1_1loop.html">uvw::loop</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,915 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: uvw::loop Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1loop.html">loop</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classuvw_1_1loop-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">uvw::loop Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>The loop class.
<a href="classuvw_1_1loop.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="loop_8h_source.html">loop.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for uvw::loop:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1loop__inherit__graph.png" border="0" usemap="#auvw_1_1loop_inherit__map" alt="Inheritance graph"/></div>
<map name="auvw_1_1loop_inherit__map" id="auvw_1_1loop_inherit__map">
<area shape="rect" title="The loop class." alt="" coords="37,79,112,104"/>
<area shape="rect" href="classuvw_1_1emitter.html" title=" " alt="" coords="5,5,144,31"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for uvw::loop:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1loop__coll__graph.png" border="0" usemap="#auvw_1_1loop_coll__map" alt="Collaboration graph"/></div>
<map name="auvw_1_1loop_coll__map" id="auvw_1_1loop_coll__map">
<area shape="rect" title="The loop class." alt="" coords="37,79,112,104"/>
<area shape="rect" href="classuvw_1_1emitter.html" title=" " alt="" coords="5,5,144,31"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:acb38eaee2680ed1c4ba74459e5c2a84a"><td class="memTemplParams" colspan="2">template&lt;typename... Args&gt; </td></tr>
<tr class="memitem:acb38eaee2680ed1c4ba74459e5c2a84a"><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#acb38eaee2680ed1c4ba74459e5c2a84a">configure</a> (option flag, Args &amp;&amp;...args)</td></tr>
<tr class="memdesc:acb38eaee2680ed1c4ba74459e5c2a84a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets additional loop options. <br /></td></tr>
<tr class="separator:acb38eaee2680ed1c4ba74459e5c2a84a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36e1eb17d55ab7b8d089e55823015618"><td class="memTemplParams" colspan="2">template&lt;typename R , typename... Args&gt; </td></tr>
<tr class="memitem:a36e1eb17d55ab7b8d089e55823015618"><td class="memTemplItemLeft" align="right" valign="top">std::shared_ptr&lt; R &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#a36e1eb17d55ab7b8d089e55823015618">resource</a> (Args &amp;&amp;...args)</td></tr>
<tr class="memdesc:a36e1eb17d55ab7b8d089e55823015618"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates resources of any type. <br /></td></tr>
<tr class="separator:a36e1eb17d55ab7b8d089e55823015618"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef0dbe4d1e82e43a8df3df1c7386efca"><td class="memTemplParams" colspan="2">template&lt;typename R , typename... Args&gt; </td></tr>
<tr class="memitem:aef0dbe4d1e82e43a8df3df1c7386efca"><td class="memTemplItemLeft" align="right" valign="top">std::shared_ptr&lt; R &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#aef0dbe4d1e82e43a8df3df1c7386efca">uninitialized_resource</a> (Args &amp;&amp;...args)</td></tr>
<tr class="memdesc:aef0dbe4d1e82e43a8df3df1c7386efca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates uninitialized resources of any type. <br /></td></tr>
<tr class="separator:aef0dbe4d1e82e43a8df3df1c7386efca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0a8719f173a417a722fe779792a52e6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#ac0a8719f173a417a722fe779792a52e6">close</a> ()</td></tr>
<tr class="memdesc:ac0a8719f173a417a722fe779792a52e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases all internal loop resources. <br /></td></tr>
<tr class="separator:ac0a8719f173a417a722fe779792a52e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a199e23bce642f5618e3d0c2b1e8d0cdf"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#a199e23bce642f5618e3d0c2b1e8d0cdf">run</a> (run_mode mode=run_mode::DEFAULT) noexcept</td></tr>
<tr class="memdesc:a199e23bce642f5618e3d0c2b1e8d0cdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs the event loop. <br /></td></tr>
<tr class="separator:a199e23bce642f5618e3d0c2b1e8d0cdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d56b835e022e812d4930367b0a4f210"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#a5d56b835e022e812d4930367b0a4f210">alive</a> () const noexcept</td></tr>
<tr class="memdesc:a5d56b835e022e812d4930367b0a4f210"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if there are active resources. <br /></td></tr>
<tr class="separator:a5d56b835e022e812d4930367b0a4f210"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaafbdbc9022bf12d4aad3db16dcee442"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#aaafbdbc9022bf12d4aad3db16dcee442">stop</a> () noexcept</td></tr>
<tr class="memdesc:aaafbdbc9022bf12d4aad3db16dcee442"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stops the event loop. <br /></td></tr>
<tr class="separator:aaafbdbc9022bf12d4aad3db16dcee442"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:addbc84b4d00e0e61cf68bff4b7560b1f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#addbc84b4d00e0e61cf68bff4b7560b1f">descriptor</a> () const noexcept</td></tr>
<tr class="memdesc:addbc84b4d00e0e61cf68bff4b7560b1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get backend file descriptor. <br /></td></tr>
<tr class="separator:addbc84b4d00e0e61cf68bff4b7560b1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa358c1daf70696679edd08513e1f3e31"><td class="memItemLeft" align="right" valign="top">std::pair&lt; bool, time &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#aa358c1daf70696679edd08513e1f3e31">timeout</a> () const noexcept</td></tr>
<tr class="memdesc:aa358c1daf70696679edd08513e1f3e31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the poll timeout. <br /></td></tr>
<tr class="separator:aa358c1daf70696679edd08513e1f3e31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeae404d30c956b2c5fa15ec3997f47fc"><td class="memItemLeft" align="right" valign="top">time&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#aeae404d30c956b2c5fa15ec3997f47fc">idle_time</a> () const noexcept</td></tr>
<tr class="memdesc:aeae404d30c956b2c5fa15ec3997f47fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the amount of time the event loop has been idle. The call is thread safe. <br /></td></tr>
<tr class="separator:aeae404d30c956b2c5fa15ec3997f47fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22d30bda64387cb70bd348f8e3b2932d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceuvw.html#af9dde6c7d8c096633c47b47962ba91e3">metrics_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#a22d30bda64387cb70bd348f8e3b2932d">metrics</a> () const noexcept</td></tr>
<tr class="memdesc:a22d30bda64387cb70bd348f8e3b2932d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tracks various internal operations of the event loop. <br /></td></tr>
<tr class="separator:a22d30bda64387cb70bd348f8e3b2932d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab48abde5d862db1a856900b08ecc02dd"><td class="memItemLeft" align="right" valign="top">time&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#ab48abde5d862db1a856900b08ecc02dd">now</a> () const noexcept</td></tr>
<tr class="memdesc:ab48abde5d862db1a856900b08ecc02dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current timestamp in milliseconds. <br /></td></tr>
<tr class="separator:ab48abde5d862db1a856900b08ecc02dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a762ed24cc491eef2c942505d1885b0aa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#a762ed24cc491eef2c942505d1885b0aa">update</a> () const noexcept</td></tr>
<tr class="memdesc:a762ed24cc491eef2c942505d1885b0aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the event loops concept of <em>now</em>. <br /></td></tr>
<tr class="separator:a762ed24cc491eef2c942505d1885b0aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa46a050e186935c0be4eca7815cd9207"><td class="memTemplParams" colspan="2">template&lt;typename Func &gt; </td></tr>
<tr class="memitem:aa46a050e186935c0be4eca7815cd9207"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#aa46a050e186935c0be4eca7815cd9207">walk</a> (Func callback)</td></tr>
<tr class="memdesc:aa46a050e186935c0be4eca7815cd9207"><td class="mdescLeft">&#160;</td><td class="mdescRight">Walks the list of handles. <br /></td></tr>
<tr class="separator:aa46a050e186935c0be4eca7815cd9207"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a569b877ff0c1cd3f66e21d5a2ded4c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#a2a569b877ff0c1cd3f66e21d5a2ded4c">fork</a> () noexcept</td></tr>
<tr class="memdesc:a2a569b877ff0c1cd3f66e21d5a2ded4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reinitialize any kernel state necessary in the child process after a fork(2) system call. <br /></td></tr>
<tr class="separator:a2a569b877ff0c1cd3f66e21d5a2ded4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b1266e74e2a0edf9493394af3847bb3"><td class="memTemplParams" colspan="2">template&lt;typename R = void&gt; </td></tr>
<tr class="memitem:a1b1266e74e2a0edf9493394af3847bb3"><td class="memTemplItemLeft" align="right" valign="top">std::shared_ptr&lt; R &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#a1b1266e74e2a0edf9493394af3847bb3">data</a> () const</td></tr>
<tr class="memdesc:a1b1266e74e2a0edf9493394af3847bb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets user-defined data. <code>uvw</code> won't use this field in any case. <br /></td></tr>
<tr class="separator:a1b1266e74e2a0edf9493394af3847bb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b5f858b0de8daf348f89af2997063c7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#a7b5f858b0de8daf348f89af2997063c7">data</a> (std::shared_ptr&lt; void &gt; ud)</td></tr>
<tr class="memdesc:a7b5f858b0de8daf348f89af2997063c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets arbitrary data. <code>uvw</code> won't use this field in any case. <br /></td></tr>
<tr class="separator:a7b5f858b0de8daf348f89af2997063c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e1f127cadc84b1729bc7835b697d3bf"><td class="memItemLeft" align="right" valign="top">const uv_loop_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#a4e1f127cadc84b1729bc7835b697d3bf">raw</a> () const noexcept</td></tr>
<tr class="memdesc:a4e1f127cadc84b1729bc7835b697d3bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the underlying raw data structure. <br /></td></tr>
<tr class="separator:a4e1f127cadc84b1729bc7835b697d3bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8be924a8e240c444c69fe7c4e754892f"><td class="memItemLeft" align="right" valign="top">uv_loop_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#a8be924a8e240c444c69fe7c4e754892f">raw</a> () noexcept</td></tr>
<tr class="memdesc:a8be924a8e240c444c69fe7c4e754892f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the underlying raw data structure. <br /></td></tr>
<tr class="separator:a8be924a8e240c444c69fe7c4e754892f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classuvw_1_1emitter"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classuvw_1_1emitter')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; loop &gt;</a></td></tr>
<tr class="memitem:ab913fa1c005a33c73b2eb2b0d1051b1f inherit pub_methods_classuvw_1_1emitter"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1emitter.html#ab913fa1c005a33c73b2eb2b0d1051b1f">on</a> (listener_t&lt; U &gt; f)</td></tr>
<tr class="memdesc:ab913fa1c005a33c73b2eb2b0d1051b1f inherit pub_methods_classuvw_1_1emitter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a long-lived listener with the event emitter. <br /></td></tr>
<tr class="separator:ab913fa1c005a33c73b2eb2b0d1051b1f inherit pub_methods_classuvw_1_1emitter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accff5c096692f5eebbe941189644e69d inherit pub_methods_classuvw_1_1emitter"><td class="memItemLeft" align="right" valign="top"><a id="accff5c096692f5eebbe941189644e69d" name="accff5c096692f5eebbe941189644e69d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>reset</b> () noexcept</td></tr>
<tr class="memdesc:accff5c096692f5eebbe941189644e69d inherit pub_methods_classuvw_1_1emitter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects the listener for the given event type. <br /></td></tr>
<tr class="separator:accff5c096692f5eebbe941189644e69d inherit pub_methods_classuvw_1_1emitter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa71435e74e775cfa7012fe2e52ca5193 inherit pub_methods_classuvw_1_1emitter"><td class="memItemLeft" align="right" valign="top"><a id="aa71435e74e775cfa7012fe2e52ca5193" name="aa71435e74e775cfa7012fe2e52ca5193"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>reset</b> () noexcept</td></tr>
<tr class="memdesc:aa71435e74e775cfa7012fe2e52ca5193 inherit pub_methods_classuvw_1_1emitter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects all listeners. <br /></td></tr>
<tr class="separator:aa71435e74e775cfa7012fe2e52ca5193 inherit pub_methods_classuvw_1_1emitter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac02a29fe156faba7571b50450fc4f780 inherit pub_methods_classuvw_1_1emitter"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1emitter.html#ac02a29fe156faba7571b50450fc4f780">has</a> () const noexcept</td></tr>
<tr class="memdesc:ac02a29fe156faba7571b50450fc4f780 inherit pub_methods_classuvw_1_1emitter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if there is a listener registered for the specific event. <br /></td></tr>
<tr class="separator:ac02a29fe156faba7571b50450fc4f780 inherit pub_methods_classuvw_1_1emitter"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a77a8922defbd7643a4b18550d263a8d6"><td class="memItemLeft" align="right" valign="top">static std::shared_ptr&lt; <a class="el" href="classuvw_1_1loop.html">loop</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#a77a8922defbd7643a4b18550d263a8d6">create</a> ()</td></tr>
<tr class="memdesc:a77a8922defbd7643a4b18550d263a8d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new loop instance. <br /></td></tr>
<tr class="separator:a77a8922defbd7643a4b18550d263a8d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4d9897ff0dbc9a534bf38731fa16b46"><td class="memItemLeft" align="right" valign="top">static std::shared_ptr&lt; <a class="el" href="classuvw_1_1loop.html">loop</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#ad4d9897ff0dbc9a534bf38731fa16b46">create</a> (uv_loop_t *res)</td></tr>
<tr class="memdesc:ad4d9897ff0dbc9a534bf38731fa16b46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new loop instance from an existing resource. <br /></td></tr>
<tr class="separator:ad4d9897ff0dbc9a534bf38731fa16b46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6392ce48b55f9b5644eeec2d6ce0e6d4"><td class="memItemLeft" align="right" valign="top">static std::shared_ptr&lt; <a class="el" href="classuvw_1_1loop.html">loop</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1loop.html#a6392ce48b55f9b5644eeec2d6ce0e6d4">get_default</a> ()</td></tr>
<tr class="memdesc:a6392ce48b55f9b5644eeec2d6ce0e6d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the initialized default loop. <br /></td></tr>
<tr class="separator:a6392ce48b55f9b5644eeec2d6ce0e6d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The loop class. </p>
<p>The event loop is the central part of <code>uvw</code>'s functionalities, as well as <code>libuv</code>'s ones.<br />
It takes care of polling for I/O and scheduling callbacks to be run based on different sources of events. </p>
<p class="definition">Definition at line <a class="el" href="loop_8h_source.html#l00060">60</a> of file <a class="el" href="loop_8h_source.html">loop.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a5d56b835e022e812d4930367b0a4f210" name="a5d56b835e022e812d4930367b0a4f210"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d56b835e022e812d4930367b0a4f210">&#9670;&#160;</a></span>alive()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool uvw::loop::alive </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if there are active resources. </p>
<dl class="section return"><dt>Returns</dt><dd>True if there are active resources in the loop. </dd></dl>
</div>
</div>
<a id="ac0a8719f173a417a722fe779792a52e6" name="ac0a8719f173a417a722fe779792a52e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0a8719f173a417a722fe779792a52e6">&#9670;&#160;</a></span>close()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int uvw::loop::close </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Releases all internal loop resources. </p>
<p>Call this function only when the loop has finished executing and all open handles and requests have been closed, or the loop will error.</p>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="acb38eaee2680ed1c4ba74459e5c2a84a" name="acb38eaee2680ed1c4ba74459e5c2a84a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb38eaee2680ed1c4ba74459e5c2a84a">&#9670;&#160;</a></span>configure()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int uvw::loop::configure </td>
<td>(</td>
<td class="paramtype">option&#160;</td>
<td class="paramname"><em>flag</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Args &amp;&amp;...&#160;</td>
<td class="paramname"><em>args</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets additional loop options. </p>
<p>You should normally call this before the first call to uv_run() unless mentioned otherwise.<br />
Supported options:</p>
<ul>
<li><code>loop::option::BLOCK_SIGNAL</code>: Block a signal when polling for new events. A second argument is required and it is the signal number.</li>
<li><code>loop::option::IDLE_TIME</code>: Accumulate the amount of idle time the event loop spends in the event provider. This option is necessary to use <code><a class="el" href="classuvw_1_1loop.html#aeae404d30c956b2c5fa15ec3997f47fc" title="Returns the amount of time the event loop has been idle. The call is thread safe.">idle_time()</a></code>.</li>
</ul>
<p>See the official <a href="http://docs.libuv.org/en/v1.x/loop.html#c.uv_loop_configure">documentation</a> for further details.</p>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
<p class="definition">Definition at line <a class="el" href="loop_8h_source.html#l00139">139</a> of file <a class="el" href="loop_8h_source.html">loop.h</a>.</p>
</div>
</div>
<a id="a77a8922defbd7643a4b18550d263a8d6" name="a77a8922defbd7643a4b18550d263a8d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77a8922defbd7643a4b18550d263a8d6">&#9670;&#160;</a></span>create() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static std::shared_ptr&lt; <a class="el" href="classuvw_1_1loop.html">loop</a> &gt; uvw::loop::create </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a new loop instance. </p>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the newly created loop. </dd></dl>
</div>
</div>
<a id="ad4d9897ff0dbc9a534bf38731fa16b46" name="ad4d9897ff0dbc9a534bf38731fa16b46"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad4d9897ff0dbc9a534bf38731fa16b46">&#9670;&#160;</a></span>create() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static std::shared_ptr&lt; <a class="el" href="classuvw_1_1loop.html">loop</a> &gt; uvw::loop::create </td>
<td>(</td>
<td class="paramtype">uv_loop_t *&#160;</td>
<td class="paramname"><em>res</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a new loop instance from an existing resource. </p>
<p>The lifetime of the resource must exceed that of the instance to which it's associated. Management of the memory associated with the resource is in charge of the user.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">res</td><td>A valid pointer to a correctly initialized resource. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the newly created loop. </dd></dl>
</div>
</div>
<a id="a1b1266e74e2a0edf9493394af3847bb3" name="a1b1266e74e2a0edf9493394af3847bb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b1266e74e2a0edf9493394af3847bb3">&#9670;&#160;</a></span>data() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename R = void&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::shared_ptr&lt; R &gt; uvw::loop::data </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets user-defined data. <code>uvw</code> won't use this field in any case. </p>
<dl class="section return"><dt>Returns</dt><dd>User-defined data if any, an invalid pointer otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="loop_8h_source.html#l00375">375</a> of file <a class="el" href="loop_8h_source.html">loop.h</a>.</p>
</div>
</div>
<a id="a7b5f858b0de8daf348f89af2997063c7" name="a7b5f858b0de8daf348f89af2997063c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b5f858b0de8daf348f89af2997063c7">&#9670;&#160;</a></span>data() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void uvw::loop::data </td>
<td>(</td>
<td class="paramtype">std::shared_ptr&lt; void &gt;&#160;</td>
<td class="paramname"><em>ud</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets arbitrary data. <code>uvw</code> won't use this field in any case. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ud</td><td>User-defined arbitrary data. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="addbc84b4d00e0e61cf68bff4b7560b1f" name="addbc84b4d00e0e61cf68bff4b7560b1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#addbc84b4d00e0e61cf68bff4b7560b1f">&#9670;&#160;</a></span>descriptor()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int uvw::loop::descriptor </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get backend file descriptor. </p>
<p>Only kqueue, epoll and event ports are supported.<br />
This can be used in conjunction with <code>run(loop::run_mode::NOWAIT)</code> to poll in one thread and run the event loops callbacks in another.</p>
<dl class="section return"><dt>Returns</dt><dd>The backend file descriptor. </dd></dl>
</div>
</div>
<a id="a2a569b877ff0c1cd3f66e21d5a2ded4c" name="a2a569b877ff0c1cd3f66e21d5a2ded4c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a569b877ff0c1cd3f66e21d5a2ded4c">&#9670;&#160;</a></span>fork()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int uvw::loop::fork </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reinitialize any kernel state necessary in the child process after a fork(2) system call. </p>
<p>Previously started watchers will continue to be started in the child process.</p>
<p>It is necessary to explicitly call this function on every event loop created in the parent process that you plan to continue to use in the child, including the default loop (even if you dont continue to use it in the parent). This function must be called before calling any API function using the loop in the child. Failure to do so will result in undefined behaviour, possibly including duplicate events delivered to both parent and child or aborting the child process.</p>
<p>When possible, it is preferred to create a new loop in the child process instead of reusing a loop created in the parent. New loops created in the child process after the fork should not use this function.</p>
<p>Note that this function is not implemented on Windows.<br />
Note also that this function is experimental in <code>libuv</code>. It may contain bugs, and is subject to change or removal. API and ABI stability is not guaranteed.</p>
<p>See the official <a href="http://docs.libuv.org/en/v1.x/loop.html#c.uv_loop_fork">documentation</a> for further details.</p>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="a6392ce48b55f9b5644eeec2d6ce0e6d4" name="a6392ce48b55f9b5644eeec2d6ce0e6d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6392ce48b55f9b5644eeec2d6ce0e6d4">&#9670;&#160;</a></span>get_default()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static std::shared_ptr&lt; <a class="el" href="classuvw_1_1loop.html">loop</a> &gt; uvw::loop::get_default </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the initialized default loop. </p>
<p>It may return an empty pointer in case of failure.<br />
This function is just a convenient way for having a global loop throughout an application, the default loop is in no way different than the ones initialized with <code><a class="el" href="classuvw_1_1loop.html#a77a8922defbd7643a4b18550d263a8d6" title="Initializes a new loop instance.">create()</a></code>.<br />
As such, the default loop can be closed with <code><a class="el" href="classuvw_1_1loop.html#ac0a8719f173a417a722fe779792a52e6" title="Releases all internal loop resources.">close()</a></code> so the resources associated with it are freed (even if it is not strictly necessary).</p>
<dl class="section return"><dt>Returns</dt><dd>The initialized default loop. </dd></dl>
</div>
</div>
<a id="aeae404d30c956b2c5fa15ec3997f47fc" name="aeae404d30c956b2c5fa15ec3997f47fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeae404d30c956b2c5fa15ec3997f47fc">&#9670;&#160;</a></span>idle_time()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">time uvw::loop::idle_time </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the amount of time the event loop has been idle. The call is thread safe. </p>
<dl class="section return"><dt>Returns</dt><dd>The accumulated time spent idle. </dd></dl>
</div>
</div>
<a id="a22d30bda64387cb70bd348f8e3b2932d" name="a22d30bda64387cb70bd348f8e3b2932d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22d30bda64387cb70bd348f8e3b2932d">&#9670;&#160;</a></span>metrics()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceuvw.html#af9dde6c7d8c096633c47b47962ba91e3">metrics_type</a> uvw::loop::metrics </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Tracks various internal operations of the event loop. </p>
<dl class="section return"><dt>Returns</dt><dd>Event loop metrics. </dd></dl>
</div>
</div>
<a id="ab48abde5d862db1a856900b08ecc02dd" name="ab48abde5d862db1a856900b08ecc02dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab48abde5d862db1a856900b08ecc02dd">&#9670;&#160;</a></span>now()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">time uvw::loop::now </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the current timestamp in milliseconds. </p>
<p>The timestamp is cached at the start of the event loop tick.<br />
The timestamp increases monotonically from some arbitrary point in time.<br />
Dont make assumptions about the starting point, you will only get disappointed.</p>
<dl class="section return"><dt>Returns</dt><dd>The current timestamp in milliseconds (actual type is <code>std::chrono::duration&lt;uint64_t, std::milli&gt;</code>). </dd></dl>
</div>
</div>
<a id="a4e1f127cadc84b1729bc7835b697d3bf" name="a4e1f127cadc84b1729bc7835b697d3bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e1f127cadc84b1729bc7835b697d3bf">&#9670;&#160;</a></span>raw() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const uv_loop_t * uvw::loop::raw </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the underlying raw data structure. </p>
<p>This function should not be used, unless you know exactly what you are doing and what are the risks.<br />
Going raw is dangerous, mainly because the lifetime management of a loop, a handle or a request is in charge to the library itself and users should not work around it.</p>
<dl class="section warning"><dt>Warning</dt><dd>Use this function at your own risk, but do not expect any support in case of bugs.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>The underlying raw data structure. </dd></dl>
</div>
</div>
<a id="a8be924a8e240c444c69fe7c4e754892f" name="a8be924a8e240c444c69fe7c4e754892f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8be924a8e240c444c69fe7c4e754892f">&#9670;&#160;</a></span>raw() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uv_loop_t * uvw::loop::raw </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the underlying raw data structure. </p>
<p>This function should not be used, unless you know exactly what you are doing and what are the risks.<br />
Going raw is dangerous, mainly because the lifetime management of a loop, a handle or a request is in charge to the library itself and users should not work around it.</p>
<dl class="section warning"><dt>Warning</dt><dd>Use this function at your own risk, but do not expect any support in case of bugs.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>The underlying raw data structure. </dd></dl>
</div>
</div>
<a id="a36e1eb17d55ab7b8d089e55823015618" name="a36e1eb17d55ab7b8d089e55823015618"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36e1eb17d55ab7b8d089e55823015618">&#9670;&#160;</a></span>resource()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename R , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::shared_ptr&lt; R &gt; uvw::loop::resource </td>
<td>(</td>
<td class="paramtype">Args &amp;&amp;...&#160;</td>
<td class="paramname"><em>args</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates resources of any type. </p>
<p>This should be used as a default method to create resources.<br />
The arguments are the ones required for the specific resource.</p>
<p>Use it as <code>loop-&gt;resource&lt;<a class="el" href="classuvw_1_1timer__handle.html" title="The timer handle.">uvw::timer_handle</a>&gt;()</code>.</p>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the newly created resource. </dd></dl>
<p class="definition">Definition at line <a class="el" href="loop_8h_source.html#l00154">154</a> of file <a class="el" href="loop_8h_source.html">loop.h</a>.</p>
</div>
</div>
<a id="a199e23bce642f5618e3d0c2b1e8d0cdf" name="a199e23bce642f5618e3d0c2b1e8d0cdf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a199e23bce642f5618e3d0c2b1e8d0cdf">&#9670;&#160;</a></span>run()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int uvw::loop::run </td>
<td>(</td>
<td class="paramtype">run_mode&#160;</td>
<td class="paramname"><em>mode</em> = <code>run_mode::DEFAULT</code></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Runs the event loop. </p>
<p>Available modes are:</p>
<ul>
<li><code>loop::run_mode::DEFAULT</code>: Runs the event loop until there are no more active and referenced handles or requests.</li>
<li><code>loop::run_mode::ONCE</code>: Poll for i/o once. Note that this function blocks if there are no pending callbacks.</li>
<li><code>loop::run_mode::NOWAIT</code>: Poll for i/o once but dont block if there are no pending callbacks.</li>
</ul>
<p>See the official <a href="http://docs.libuv.org/en/v1.x/loop.html#c.uv_run">documentation</a> for further details.</p>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
</div>
</div>
<a id="aaafbdbc9022bf12d4aad3db16dcee442" name="aaafbdbc9022bf12d4aad3db16dcee442"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaafbdbc9022bf12d4aad3db16dcee442">&#9670;&#160;</a></span>stop()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void uvw::loop::stop </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Stops the event loop. </p>
<p>It causes <code><a class="el" href="classuvw_1_1loop.html#a199e23bce642f5618e3d0c2b1e8d0cdf" title="Runs the event loop.">run()</a></code> to end as soon as possible.<br />
This will happen not sooner than the next loop iteration.<br />
If this function was called before blocking for I/O, the loop wont block for I/O on this iteration. </p>
</div>
</div>
<a id="aa358c1daf70696679edd08513e1f3e31" name="aa358c1daf70696679edd08513e1f3e31"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa358c1daf70696679edd08513e1f3e31">&#9670;&#160;</a></span>timeout()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::pair&lt; bool, time &gt; uvw::loop::timeout </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the poll timeout. </p>
<dl class="section return"><dt>Returns</dt><dd>A <code>std::pair</code> composed as it follows:<ul>
<li>A boolean value that is true in case of valid timeout, false otherwise.</li>
<li>Milliseconds (<code>std::chrono::duration&lt;uint64_t, std::milli&gt;</code>). </li>
</ul>
</dd></dl>
</div>
</div>
<a id="aef0dbe4d1e82e43a8df3df1c7386efca" name="aef0dbe4d1e82e43a8df3df1c7386efca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef0dbe4d1e82e43a8df3df1c7386efca">&#9670;&#160;</a></span>uninitialized_resource()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename R , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::shared_ptr&lt; R &gt; uvw::loop::uninitialized_resource </td>
<td>(</td>
<td class="paramtype">Args &amp;&amp;...&#160;</td>
<td class="paramname"><em>args</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates uninitialized resources of any type. </p>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the newly created resource. </dd></dl>
<p class="definition">Definition at line <a class="el" href="loop_8h_source.html#l00165">165</a> of file <a class="el" href="loop_8h_source.html">loop.h</a>.</p>
</div>
</div>
<a id="a762ed24cc491eef2c942505d1885b0aa" name="a762ed24cc491eef2c942505d1885b0aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a762ed24cc491eef2c942505d1885b0aa">&#9670;&#160;</a></span>update()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void uvw::loop::update </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Updates the event loops concept of <em>now</em>. </p>
<p>The current time is cached at the start of the event loop tick in order to reduce the number of time-related system calls.<br />
You wont normally need to call this function unless you have callbacks that block the event loop for longer periods of time, where <em>longer</em> is somewhat subjective but probably on the order of a millisecond or more. </p>
</div>
</div>
<a id="aa46a050e186935c0be4eca7815cd9207" name="aa46a050e186935c0be4eca7815cd9207"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa46a050e186935c0be4eca7815cd9207">&#9670;&#160;</a></span>walk()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Func &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void uvw::loop::walk </td>
<td>(</td>
<td class="paramtype">Func&#160;</td>
<td class="paramname"><em>callback</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Walks the list of handles. </p>
<p>The callback is invoked once for each handle that is still active.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">callback</td><td>A function to invoke once for each active handle. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="loop_8h_source.html#l00280">280</a> of file <a class="el" href="loop_8h_source.html">loop.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/uvw/<a class="el" href="loop_8h_source.html">loop.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,4 +0,0 @@
<map id="uvw::loop" name="uvw::loop">
<area shape="rect" id="node1" title="The loop class." alt="" coords="37,79,112,104"/>
<area shape="rect" id="node2" href="$classuvw_1_1emitter.html" title=" " alt="" coords="5,5,144,31"/>
</map>

View File

@ -1 +0,0 @@
f1dc6e0a16395c07e40008d3cf7d5690

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,4 +0,0 @@
<map id="uvw::loop" name="uvw::loop">
<area shape="rect" id="node1" title="The loop class." alt="" coords="37,79,112,104"/>
<area shape="rect" id="node2" href="$classuvw_1_1emitter.html" title=" " alt="" coords="5,5,144,31"/>
</map>

View File

@ -1 +0,0 @@
f1dc6e0a16395c07e40008d3cf7d5690

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,95 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1mutex.html">mutex</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">uvw::mutex Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classuvw_1_1mutex.html">uvw::mutex</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#ae97ffacc0b381610d8d18a62a957a69c">init</a>()</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_mutex_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1mutex.html#ac6b47d55690dc275cf39d1d839c5b685">lock</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1mutex.html">uvw::mutex</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#ae03b0ebbae151c6157c5ba6a24a39a7b">parent</a>() const noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_mutex_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#a06a6cb7ebde27aa348e340b76e49c6ae">raw</a>() const noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_mutex_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#af4b6f395815f2e99302b5f09be23767c">raw</a>() noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_mutex_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1mutex.html#a90a3c79c32fb93d9ce14f0610659c06f">try_lock</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1mutex.html">uvw::mutex</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1mutex.html#a8750d217fed59b9fa4fb0e6398374746">unlock</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1mutex.html">uvw::mutex</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,179 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: uvw::mutex Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1mutex.html">mutex</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classuvw_1_1mutex-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">uvw::mutex Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>The mutex wrapper.
<a href="classuvw_1_1mutex.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="thread_8h_source.html">thread.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for uvw::mutex:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1mutex__inherit__graph.png" border="0" usemap="#auvw_1_1mutex_inherit__map" alt="Inheritance graph"/></div>
<map name="auvw_1_1mutex_inherit__map" id="auvw_1_1mutex_inherit__map">
<area shape="rect" title="The mutex wrapper." alt="" coords="55,79,141,104"/>
<area shape="rect" href="structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,191,31"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for uvw::mutex:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1mutex__coll__graph.png" border="0" usemap="#auvw_1_1mutex_coll__map" alt="Collaboration graph"/></div>
<map name="auvw_1_1mutex_coll__map" id="auvw_1_1mutex_coll__map">
<area shape="rect" title="The mutex wrapper." alt="" coords="55,79,141,104"/>
<area shape="rect" href="structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,191,31"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ac6b47d55690dc275cf39d1d839c5b685"><td class="memItemLeft" align="right" valign="top"><a id="ac6b47d55690dc275cf39d1d839c5b685" name="ac6b47d55690dc275cf39d1d839c5b685"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>lock</b> () noexcept</td></tr>
<tr class="memdesc:ac6b47d55690dc275cf39d1d839c5b685"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locks the mutex. <br /></td></tr>
<tr class="separator:ac6b47d55690dc275cf39d1d839c5b685"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90a3c79c32fb93d9ce14f0610659c06f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1mutex.html#a90a3c79c32fb93d9ce14f0610659c06f">try_lock</a> () noexcept</td></tr>
<tr class="memdesc:a90a3c79c32fb93d9ce14f0610659c06f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tries to lock the mutex. <br /></td></tr>
<tr class="separator:a90a3c79c32fb93d9ce14f0610659c06f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8750d217fed59b9fa4fb0e6398374746"><td class="memItemLeft" align="right" valign="top"><a id="a8750d217fed59b9fa4fb0e6398374746" name="a8750d217fed59b9fa4fb0e6398374746"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>unlock</b> () noexcept</td></tr>
<tr class="memdesc:a8750d217fed59b9fa4fb0e6398374746"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlocks the mutex. <br /></td></tr>
<tr class="separator:a8750d217fed59b9fa4fb0e6398374746"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_structuvw_1_1uv__type"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_structuvw_1_1uv__type')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_mutex_t &gt;</a></td></tr>
<tr class="memitem:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#ae97ffacc0b381610d8d18a62a957a69c">init</a> ()</td></tr>
<tr class="memdesc:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the handle. <br /></td></tr>
<tr class="separator:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classuvw_1_1loop.html">loop</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#ae03b0ebbae151c6157c5ba6a24a39a7b">parent</a> () const noexcept</td></tr>
<tr class="memdesc:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the loop from which the resource was originated. <br /></td></tr>
<tr class="separator:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">const uv_mutex_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#a06a6cb7ebde27aa348e340b76e49c6ae">raw</a> () const noexcept</td></tr>
<tr class="memdesc:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the underlying raw data structure. <br /></td></tr>
<tr class="separator:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">uv_mutex_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#af4b6f395815f2e99302b5f09be23767c">raw</a> () noexcept</td></tr>
<tr class="memdesc:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the underlying raw data structure. <br /></td></tr>
<tr class="separator:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The mutex wrapper. </p>
<p>To create a <code>mutex</code> through a <code>loop</code>, arguments follow:</p>
<ul>
<li>An option boolean that specifies if the mutex is a recursive one. The default value is false, the mutex isn't recursive. </li>
</ul>
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00183">183</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a90a3c79c32fb93d9ce14f0610659c06f" name="a90a3c79c32fb93d9ce14f0610659c06f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90a3c79c32fb93d9ce14f0610659c06f">&#9670;&#160;</a></span>try_lock()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool uvw::mutex::try_lock </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Tries to lock the mutex. </p>
<dl class="section return"><dt>Returns</dt><dd>True in case of success, false otherwise. </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/uvw/<a class="el" href="thread_8h_source.html">thread.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,4 +0,0 @@
<map id="uvw::mutex" name="uvw::mutex">
<area shape="rect" id="node1" title="The mutex wrapper." alt="" coords="55,79,141,104"/>
<area shape="rect" id="node2" href="$structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,191,31"/>
</map>

View File

@ -1 +0,0 @@
e63765699031c3133640b822cc52c84f

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,4 +0,0 @@
<map id="uvw::mutex" name="uvw::mutex">
<area shape="rect" id="node1" title="The mutex wrapper." alt="" coords="55,79,141,104"/>
<area shape="rect" id="node2" href="$structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,191,31"/>
</map>

View File

@ -1 +0,0 @@
e63765699031c3133640b822cc52c84f

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,93 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1once.html">once</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">uvw::once Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classuvw_1_1once.html">uvw::once</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#ae97ffacc0b381610d8d18a62a957a69c">init</a>()</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_once_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#ae03b0ebbae151c6157c5ba6a24a39a7b">parent</a>() const noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_once_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#a06a6cb7ebde27aa348e340b76e49c6ae">raw</a>() const noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_once_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#af4b6f395815f2e99302b5f09be23767c">raw</a>() noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_once_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1once.html#a595b340d3b28f490d5e5cf8558ff8b09">run</a>(F &amp;&amp;f) noexcept</td><td class="entry"><a class="el" href="classuvw_1_1once.html">uvw::once</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,189 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: uvw::once Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1once.html">once</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classuvw_1_1once-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">uvw::once Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>The once wrapper.
<a href="classuvw_1_1once.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="thread_8h_source.html">thread.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for uvw::once:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1once__inherit__graph.png" border="0" usemap="#auvw_1_1once_inherit__map" alt="Inheritance graph"/></div>
<map name="auvw_1_1once_inherit__map" id="auvw_1_1once_inherit__map">
<area shape="rect" title="The once wrapper." alt="" coords="55,79,133,104"/>
<area shape="rect" href="structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,183,31"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for uvw::once:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1once__coll__graph.png" border="0" usemap="#auvw_1_1once_coll__map" alt="Collaboration graph"/></div>
<map name="auvw_1_1once_coll__map" id="auvw_1_1once_coll__map">
<area shape="rect" title="The once wrapper." alt="" coords="55,79,133,104"/>
<area shape="rect" href="structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,183,31"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a595b340d3b28f490d5e5cf8558ff8b09"><td class="memTemplParams" colspan="2">template&lt;typename F &gt; </td></tr>
<tr class="memitem:a595b340d3b28f490d5e5cf8558ff8b09"><td class="memTemplItemLeft" align="right" valign="top">static void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classuvw_1_1once.html#a595b340d3b28f490d5e5cf8558ff8b09">run</a> (F &amp;&amp;f) noexcept</td></tr>
<tr class="memdesc:a595b340d3b28f490d5e5cf8558ff8b09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs a function once and only once. <br /></td></tr>
<tr class="separator:a595b340d3b28f490d5e5cf8558ff8b09"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_methods_structuvw_1_1uv__type"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_structuvw_1_1uv__type')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_once_t &gt;</a></td></tr>
<tr class="memitem:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#ae97ffacc0b381610d8d18a62a957a69c">init</a> ()</td></tr>
<tr class="memdesc:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the handle. <br /></td></tr>
<tr class="separator:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classuvw_1_1loop.html">loop</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#ae03b0ebbae151c6157c5ba6a24a39a7b">parent</a> () const noexcept</td></tr>
<tr class="memdesc:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the loop from which the resource was originated. <br /></td></tr>
<tr class="separator:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">const uv_once_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#a06a6cb7ebde27aa348e340b76e49c6ae">raw</a> () const noexcept</td></tr>
<tr class="memdesc:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the underlying raw data structure. <br /></td></tr>
<tr class="separator:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">uv_once_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#af4b6f395815f2e99302b5f09be23767c">raw</a> () noexcept</td></tr>
<tr class="memdesc:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the underlying raw data structure. <br /></td></tr>
<tr class="separator:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The once wrapper. </p>
<p>Runs a function once and only once. Concurrent calls to <code>once</code> will block all callers except one (its unspecified which one). </p>
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00151">151</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a595b340d3b28f490d5e5cf8558ff8b09" name="a595b340d3b28f490d5e5cf8558ff8b09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a595b340d3b28f490d5e5cf8558ff8b09">&#9670;&#160;</a></span>run()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename F &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void uvw::once::run </td>
<td>(</td>
<td class="paramtype">F &amp;&amp;&#160;</td>
<td class="paramname"><em>f</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Runs a function once and only once. </p>
<p>The callback must be such that it's convertible to <code>void(*)(void)</code>. Free functions and non-capturing lambdas are both viable solutions.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">F</td><td>Type of the callback. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">f</td><td>A valid callback function. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00167">167</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/uvw/<a class="el" href="thread_8h_source.html">thread.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,4 +0,0 @@
<map id="uvw::once" name="uvw::once">
<area shape="rect" id="node1" title="The once wrapper." alt="" coords="55,79,133,104"/>
<area shape="rect" id="node2" href="$structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,183,31"/>
</map>

View File

@ -1 +0,0 @@
c8e8ff305bedef5ec87c82fc9ce97747

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,4 +0,0 @@
<map id="uvw::once" name="uvw::once">
<area shape="rect" id="node1" title="The once wrapper." alt="" coords="55,79,133,104"/>
<area shape="rect" id="node2" href="$structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,183,31"/>
</map>

View File

@ -1 +0,0 @@
c8e8ff305bedef5ec87c82fc9ce97747

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,98 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1rwlock.html">rwlock</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">uvw::rwlock Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classuvw_1_1rwlock.html">uvw::rwlock</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#ae97ffacc0b381610d8d18a62a957a69c">init</a>()</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_rwlock_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#ae03b0ebbae151c6157c5ba6a24a39a7b">parent</a>() const noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_rwlock_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#a06a6cb7ebde27aa348e340b76e49c6ae">raw</a>() const noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_rwlock_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#af4b6f395815f2e99302b5f09be23767c">raw</a>() noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_rwlock_t &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1rwlock.html#a48a2f73a53caecad83f82544bce5e754">rdlock</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1rwlock.html">uvw::rwlock</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1rwlock.html#ab5fb7747eddb48d8ff88d0ab266d9ef1">rdunlock</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1rwlock.html">uvw::rwlock</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1rwlock.html#a51e06cdde0ef98fcfd43d81db1cadf23">try_rdlock</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1rwlock.html">uvw::rwlock</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1rwlock.html#a6692bdc0b55fe3416364ade16f53eff1">try_wrlock</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1rwlock.html">uvw::rwlock</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1rwlock.html#aacd6baeb68d2178665ce5bf331a4fd0a">wrlock</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1rwlock.html">uvw::rwlock</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1rwlock.html#a24419f230f193655cda30eafaf0f3070">wrunlock</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1rwlock.html">uvw::rwlock</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,214 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: uvw::rwlock Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1rwlock.html">rwlock</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classuvw_1_1rwlock-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">uvw::rwlock Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>The rwlock wrapper.
<a href="classuvw_1_1rwlock.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="thread_8h_source.html">thread.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for uvw::rwlock:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1rwlock__inherit__graph.png" border="0" usemap="#auvw_1_1rwlock_inherit__map" alt="Inheritance graph"/></div>
<map name="auvw_1_1rwlock_inherit__map" id="auvw_1_1rwlock_inherit__map">
<area shape="rect" title="The rwlock wrapper." alt="" coords="55,79,143,104"/>
<area shape="rect" href="structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,192,31"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for uvw::rwlock:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1rwlock__coll__graph.png" border="0" usemap="#auvw_1_1rwlock_coll__map" alt="Collaboration graph"/></div>
<map name="auvw_1_1rwlock_coll__map" id="auvw_1_1rwlock_coll__map">
<area shape="rect" title="The rwlock wrapper." alt="" coords="55,79,143,104"/>
<area shape="rect" href="structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,192,31"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a48a2f73a53caecad83f82544bce5e754"><td class="memItemLeft" align="right" valign="top"><a id="a48a2f73a53caecad83f82544bce5e754" name="a48a2f73a53caecad83f82544bce5e754"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>rdlock</b> () noexcept</td></tr>
<tr class="memdesc:a48a2f73a53caecad83f82544bce5e754"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locks a read-write lock object for reading. <br /></td></tr>
<tr class="separator:a48a2f73a53caecad83f82544bce5e754"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51e06cdde0ef98fcfd43d81db1cadf23"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1rwlock.html#a51e06cdde0ef98fcfd43d81db1cadf23">try_rdlock</a> () noexcept</td></tr>
<tr class="memdesc:a51e06cdde0ef98fcfd43d81db1cadf23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tries to lock a read-write lock object for reading. <br /></td></tr>
<tr class="separator:a51e06cdde0ef98fcfd43d81db1cadf23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5fb7747eddb48d8ff88d0ab266d9ef1"><td class="memItemLeft" align="right" valign="top"><a id="ab5fb7747eddb48d8ff88d0ab266d9ef1" name="ab5fb7747eddb48d8ff88d0ab266d9ef1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>rdunlock</b> () noexcept</td></tr>
<tr class="memdesc:ab5fb7747eddb48d8ff88d0ab266d9ef1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlocks a read-write lock object previously locked for reading. <br /></td></tr>
<tr class="separator:ab5fb7747eddb48d8ff88d0ab266d9ef1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacd6baeb68d2178665ce5bf331a4fd0a"><td class="memItemLeft" align="right" valign="top"><a id="aacd6baeb68d2178665ce5bf331a4fd0a" name="aacd6baeb68d2178665ce5bf331a4fd0a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>wrlock</b> () noexcept</td></tr>
<tr class="memdesc:aacd6baeb68d2178665ce5bf331a4fd0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locks a read-write lock object for writing. <br /></td></tr>
<tr class="separator:aacd6baeb68d2178665ce5bf331a4fd0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6692bdc0b55fe3416364ade16f53eff1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1rwlock.html#a6692bdc0b55fe3416364ade16f53eff1">try_wrlock</a> () noexcept</td></tr>
<tr class="memdesc:a6692bdc0b55fe3416364ade16f53eff1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tries to lock a read-write lock object for writing. <br /></td></tr>
<tr class="separator:a6692bdc0b55fe3416364ade16f53eff1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24419f230f193655cda30eafaf0f3070"><td class="memItemLeft" align="right" valign="top"><a id="a24419f230f193655cda30eafaf0f3070" name="a24419f230f193655cda30eafaf0f3070"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>wrunlock</b> () noexcept</td></tr>
<tr class="memdesc:a24419f230f193655cda30eafaf0f3070"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlocks a read-write lock object previously locked for writing. <br /></td></tr>
<tr class="separator:a24419f230f193655cda30eafaf0f3070"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_structuvw_1_1uv__type"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_structuvw_1_1uv__type')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; uv_rwlock_t &gt;</a></td></tr>
<tr class="memitem:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#ae97ffacc0b381610d8d18a62a957a69c">init</a> ()</td></tr>
<tr class="memdesc:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the handle. <br /></td></tr>
<tr class="separator:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classuvw_1_1loop.html">loop</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#ae03b0ebbae151c6157c5ba6a24a39a7b">parent</a> () const noexcept</td></tr>
<tr class="memdesc:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the loop from which the resource was originated. <br /></td></tr>
<tr class="separator:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">const uv_rwlock_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#a06a6cb7ebde27aa348e340b76e49c6ae">raw</a> () const noexcept</td></tr>
<tr class="memdesc:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the underlying raw data structure. <br /></td></tr>
<tr class="separator:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">uv_rwlock_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#af4b6f395815f2e99302b5f09be23767c">raw</a> () noexcept</td></tr>
<tr class="memdesc:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the underlying raw data structure. <br /></td></tr>
<tr class="separator:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The rwlock wrapper. </p>
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00211">211</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a51e06cdde0ef98fcfd43d81db1cadf23" name="a51e06cdde0ef98fcfd43d81db1cadf23"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51e06cdde0ef98fcfd43d81db1cadf23">&#9670;&#160;</a></span>try_rdlock()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool uvw::rwlock::try_rdlock </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Tries to lock a read-write lock object for reading. </p>
<dl class="section return"><dt>Returns</dt><dd>True in case of success, false otherwise. </dd></dl>
</div>
</div>
<a id="a6692bdc0b55fe3416364ade16f53eff1" name="a6692bdc0b55fe3416364ade16f53eff1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6692bdc0b55fe3416364ade16f53eff1">&#9670;&#160;</a></span>try_wrlock()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool uvw::rwlock::try_wrlock </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Tries to lock a read-write lock object for writing. </p>
<dl class="section return"><dt>Returns</dt><dd>True in case of success, false otherwise. </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/uvw/<a class="el" href="thread_8h_source.html">thread.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,4 +0,0 @@
<map id="uvw::rwlock" name="uvw::rwlock">
<area shape="rect" id="node1" title="The rwlock wrapper." alt="" coords="55,79,143,104"/>
<area shape="rect" id="node2" href="$structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,192,31"/>
</map>

View File

@ -1 +0,0 @@
0ecd85b55fa7fe3016f6183328a99522

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,4 +0,0 @@
<map id="uvw::rwlock" name="uvw::rwlock">
<area shape="rect" id="node1" title="The rwlock wrapper." alt="" coords="55,79,143,104"/>
<area shape="rect" id="node2" href="$structuvw_1_1uv__type.html" title=" " alt="" coords="5,5,192,31"/>
</map>

View File

@ -1 +0,0 @@
0ecd85b55fa7fe3016f6183328a99522

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,100 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1request.html">request</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">uvw::request&lt; T, U, E &gt; Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classuvw_1_1request.html">uvw::request&lt; T, U, E &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1request.html#a797d174e440e302a5727161d76b8618d">cancel</a>()</td><td class="entry"><a class="el" href="classuvw_1_1request.html">uvw::request&lt; T, U, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1resource.html#a7c05e988ebaa14d1dbbc781951dc3a88">data</a>() const</td><td class="entry"><a class="el" href="classuvw_1_1resource.html">uvw::resource&lt; T, U, E... &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1resource.html#a759079eb405e5d2fda795d199d8efa80">data</a>(std::shared_ptr&lt; void &gt; udata)</td><td class="entry"><a class="el" href="classuvw_1_1resource.html">uvw::resource&lt; T, U, E... &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1emitter.html#ac02a29fe156faba7571b50450fc4f780">has</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; T, E... &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#ae97ffacc0b381610d8d18a62a957a69c">init</a>()</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; U &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1emitter.html#ab913fa1c005a33c73b2eb2b0d1051b1f">on</a>(listener_t&lt; U &gt; f)</td><td class="entry"><a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; T, E... &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#ae03b0ebbae151c6157c5ba6a24a39a7b">parent</a>() const noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; U &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#a06a6cb7ebde27aa348e340b76e49c6ae">raw</a>() const noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; U &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structuvw_1_1uv__type.html#af4b6f395815f2e99302b5f09be23767c">raw</a>() noexcept</td><td class="entry"><a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; U &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1emitter.html#accff5c096692f5eebbe941189644e69d">reset</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; T, E... &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classuvw_1_1emitter.html#aa71435e74e775cfa7012fe2e52ca5193">reset</a>() noexcept</td><td class="entry"><a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; T, E... &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classuvw_1_1request.html#a88400234f18c2f0b285695eab8e55d6c">size</a>() const noexcept</td><td class="entry"><a class="el" href="classuvw_1_1request.html">uvw::request&lt; T, U, E &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,240 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: uvw::request&lt; T, U, E &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">uvw<span id="projectnumber">&#160;3.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceuvw.html">uvw</a></li><li class="navelem"><a class="el" href="classuvw_1_1request.html">request</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classuvw_1_1request-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">uvw::request&lt; T, U, E &gt; Class Template Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Request base class.
<a href="classuvw_1_1request.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="request_8hpp_source.html">request.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for uvw::request&lt; T, U, E &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1request__inherit__graph.png" border="0" usemap="#auvw_1_1request_3_01T_00_01U_00_01E_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="auvw_1_1request_3_01T_00_01U_00_01E_01_4_inherit__map" id="auvw_1_1request_3_01T_00_01U_00_01E_01_4_inherit__map">
<area shape="rect" title="Request base class." alt="" coords="75,167,234,192"/>
<area shape="rect" href="classuvw_1_1fs__request.html" title=" " alt="" coords="5,240,144,280"/>
<area shape="rect" href="classuvw_1_1fs__request.html" title=" " alt="" coords="168,240,301,280"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="84,79,225,119"/>
<area shape="rect" href="structuvw_1_1uv__type.html" title="Wrapper class for underlying types." alt="" coords="9,5,137,31"/>
<area shape="rect" href="classuvw_1_1emitter.html" title=" " alt="" coords="162,5,313,31"/>
<area shape="rect" href="classuvw_1_1file__req.html" title="The file request." alt="" coords="29,328,121,353"/>
<area shape="rect" href="classuvw_1_1fs__req.html" title="The fs request." alt="" coords="191,328,278,353"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for uvw::request&lt; T, U, E &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classuvw_1_1request__coll__graph.png" border="0" usemap="#auvw_1_1request_3_01T_00_01U_00_01E_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="auvw_1_1request_3_01T_00_01U_00_01E_01_4_coll__map" id="auvw_1_1request_3_01T_00_01U_00_01E_01_4_coll__map">
<area shape="rect" title="Request base class." alt="" coords="71,167,230,192"/>
<area shape="rect" href="classuvw_1_1resource.html" title=" " alt="" coords="80,79,221,119"/>
<area shape="rect" href="structuvw_1_1uv__type.html" title="Wrapper class for underlying types." alt="" coords="5,5,133,31"/>
<area shape="rect" href="classuvw_1_1emitter.html" title=" " alt="" coords="158,5,309,31"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a797d174e440e302a5727161d76b8618d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1request.html#a797d174e440e302a5727161d76b8618d">cancel</a> ()</td></tr>
<tr class="memdesc:a797d174e440e302a5727161d76b8618d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cancels a pending request. <br /></td></tr>
<tr class="separator:a797d174e440e302a5727161d76b8618d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88400234f18c2f0b285695eab8e55d6c"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1request.html#a88400234f18c2f0b285695eab8e55d6c">size</a> () const noexcept</td></tr>
<tr class="memdesc:a88400234f18c2f0b285695eab8e55d6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the size of the underlying request type. <br /></td></tr>
<tr class="separator:a88400234f18c2f0b285695eab8e55d6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classuvw_1_1resource"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classuvw_1_1resource')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classuvw_1_1resource.html">uvw::resource&lt; T, U, E... &gt;</a></td></tr>
<tr class="memitem:a7c05e988ebaa14d1dbbc781951dc3a88 inherit pub_methods_classuvw_1_1resource"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; R &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1resource.html#a7c05e988ebaa14d1dbbc781951dc3a88">data</a> () const</td></tr>
<tr class="memdesc:a7c05e988ebaa14d1dbbc781951dc3a88 inherit pub_methods_classuvw_1_1resource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets user-defined data. <code>uvw</code> won't use this field in any case. <br /></td></tr>
<tr class="separator:a7c05e988ebaa14d1dbbc781951dc3a88 inherit pub_methods_classuvw_1_1resource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a759079eb405e5d2fda795d199d8efa80 inherit pub_methods_classuvw_1_1resource"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1resource.html#a759079eb405e5d2fda795d199d8efa80">data</a> (std::shared_ptr&lt; void &gt; udata)</td></tr>
<tr class="memdesc:a759079eb405e5d2fda795d199d8efa80 inherit pub_methods_classuvw_1_1resource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets arbitrary data. <code>uvw</code> won't use this field in any case. <br /></td></tr>
<tr class="separator:a759079eb405e5d2fda795d199d8efa80 inherit pub_methods_classuvw_1_1resource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_structuvw_1_1uv__type"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_structuvw_1_1uv__type')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="structuvw_1_1uv__type.html">uvw::uv_type&lt; U &gt;</a></td></tr>
<tr class="memitem:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#ae97ffacc0b381610d8d18a62a957a69c">init</a> ()</td></tr>
<tr class="memdesc:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the handle. <br /></td></tr>
<tr class="separator:ae97ffacc0b381610d8d18a62a957a69c inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classuvw_1_1loop.html">loop</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#ae03b0ebbae151c6157c5ba6a24a39a7b">parent</a> () const noexcept</td></tr>
<tr class="memdesc:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the loop from which the resource was originated. <br /></td></tr>
<tr class="separator:ae03b0ebbae151c6157c5ba6a24a39a7b inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">const U *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#a06a6cb7ebde27aa348e340b76e49c6ae">raw</a> () const noexcept</td></tr>
<tr class="memdesc:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the underlying raw data structure. <br /></td></tr>
<tr class="separator:a06a6cb7ebde27aa348e340b76e49c6ae inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="memItemLeft" align="right" valign="top">U *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structuvw_1_1uv__type.html#af4b6f395815f2e99302b5f09be23767c">raw</a> () noexcept</td></tr>
<tr class="memdesc:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the underlying raw data structure. <br /></td></tr>
<tr class="separator:af4b6f395815f2e99302b5f09be23767c inherit pub_methods_structuvw_1_1uv__type"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classuvw_1_1emitter"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classuvw_1_1emitter')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classuvw_1_1emitter.html">uvw::emitter&lt; T, E... &gt;</a></td></tr>
<tr class="memitem:ab913fa1c005a33c73b2eb2b0d1051b1f inherit pub_methods_classuvw_1_1emitter"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1emitter.html#ab913fa1c005a33c73b2eb2b0d1051b1f">on</a> (listener_t&lt; U &gt; f)</td></tr>
<tr class="memdesc:ab913fa1c005a33c73b2eb2b0d1051b1f inherit pub_methods_classuvw_1_1emitter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a long-lived listener with the event emitter. <br /></td></tr>
<tr class="separator:ab913fa1c005a33c73b2eb2b0d1051b1f inherit pub_methods_classuvw_1_1emitter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accff5c096692f5eebbe941189644e69d inherit pub_methods_classuvw_1_1emitter"><td class="memItemLeft" align="right" valign="top"><a id="accff5c096692f5eebbe941189644e69d" name="accff5c096692f5eebbe941189644e69d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>reset</b> () noexcept</td></tr>
<tr class="memdesc:accff5c096692f5eebbe941189644e69d inherit pub_methods_classuvw_1_1emitter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects the listener for the given event type. <br /></td></tr>
<tr class="separator:accff5c096692f5eebbe941189644e69d inherit pub_methods_classuvw_1_1emitter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa71435e74e775cfa7012fe2e52ca5193 inherit pub_methods_classuvw_1_1emitter"><td class="memItemLeft" align="right" valign="top"><a id="aa71435e74e775cfa7012fe2e52ca5193" name="aa71435e74e775cfa7012fe2e52ca5193"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>reset</b> () noexcept</td></tr>
<tr class="memdesc:aa71435e74e775cfa7012fe2e52ca5193 inherit pub_methods_classuvw_1_1emitter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects all listeners. <br /></td></tr>
<tr class="separator:aa71435e74e775cfa7012fe2e52ca5193 inherit pub_methods_classuvw_1_1emitter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac02a29fe156faba7571b50450fc4f780 inherit pub_methods_classuvw_1_1emitter"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuvw_1_1emitter.html#ac02a29fe156faba7571b50450fc4f780">has</a> () const noexcept</td></tr>
<tr class="memdesc:ac02a29fe156faba7571b50450fc4f780 inherit pub_methods_classuvw_1_1emitter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if there is a listener registered for the specific event. <br /></td></tr>
<tr class="separator:ac02a29fe156faba7571b50450fc4f780 inherit pub_methods_classuvw_1_1emitter"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;typename T, typename U, typename... E&gt;<br />
class uvw::request&lt; T, U, E &gt;</div><p>Request base class. </p>
<p>Base type for all <code>uvw</code> request types. </p>
<p class="definition">Definition at line <a class="el" href="request_8hpp_source.html#l00019">19</a> of file <a class="el" href="request_8hpp_source.html">request.hpp</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a797d174e440e302a5727161d76b8618d" name="a797d174e440e302a5727161d76b8618d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a797d174e440e302a5727161d76b8618d">&#9670;&#160;</a></span>cancel()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename U , typename... E&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="classuvw_1_1request.html">uvw::request</a>&lt; T, U, E &gt;::cancel </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Cancels a pending request. </p>
<p>This method fails if the request is executing or has finished executing.</p>
<p>See the official <a href="http://docs.libuv.org/en/v1.x/request.html#c.uv_cancel">documentation</a> for further details.</p>
<dl class="section return"><dt>Returns</dt><dd>Underlying return value. </dd></dl>
<p class="definition">Definition at line <a class="el" href="request_8hpp_source.html#l00042">42</a> of file <a class="el" href="request_8hpp_source.html">request.hpp</a>.</p>
</div>
</div>
<a id="a88400234f18c2f0b285695eab8e55d6c" name="a88400234f18c2f0b285695eab8e55d6c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88400234f18c2f0b285695eab8e55d6c">&#9670;&#160;</a></span>size()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename U , typename... E&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::size_t <a class="el" href="classuvw_1_1request.html">uvw::request</a>&lt; T, U, E &gt;::size </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the size of the underlying request type. </p>
<dl class="section return"><dt>Returns</dt><dd>The size of the underlying request type. </dd></dl>
<p class="definition">Definition at line <a class="el" href="request_8hpp_source.html#l00050">50</a> of file <a class="el" href="request_8hpp_source.html">request.hpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/uvw/<a class="el" href="request_8hpp_source.html">request.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>

View File

@ -1,6 +0,0 @@
<map id="uvw::request&lt; T, U, E &gt;" name="uvw::request&lt; T, U, E &gt;">
<area shape="rect" id="node1" title="Request base class." alt="" coords="71,167,230,192"/>
<area shape="rect" id="node2" href="$classuvw_1_1resource.html" title=" " alt="" coords="80,79,221,119"/>
<area shape="rect" id="node3" href="$structuvw_1_1uv__type.html" title="Wrapper class for underlying types." alt="" coords="5,5,133,31"/>
<area shape="rect" id="node4" href="$classuvw_1_1emitter.html" title=" " alt="" coords="158,5,309,31"/>
</map>

View File

@ -1 +0,0 @@
9139fab05d97f103c26a02a3c6665edd

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -1,10 +0,0 @@
<map id="uvw::request&lt; T, U, E &gt;" name="uvw::request&lt; T, U, E &gt;">
<area shape="rect" id="node1" title="Request base class." alt="" coords="75,167,234,192"/>
<area shape="rect" id="node5" href="$classuvw_1_1fs__request.html" title=" " alt="" coords="5,240,144,280"/>
<area shape="rect" id="node7" href="$classuvw_1_1fs__request.html" title=" " alt="" coords="168,240,301,280"/>
<area shape="rect" id="node2" href="$classuvw_1_1resource.html" title=" " alt="" coords="84,79,225,119"/>
<area shape="rect" id="node3" href="$structuvw_1_1uv__type.html" title="Wrapper class for underlying types." alt="" coords="9,5,137,31"/>
<area shape="rect" id="node4" href="$classuvw_1_1emitter.html" title=" " alt="" coords="162,5,313,31"/>
<area shape="rect" id="node6" href="$classuvw_1_1file__req.html" title="The file request." alt="" coords="29,328,121,353"/>
<area shape="rect" id="node8" href="$classuvw_1_1fs__req.html" title="The fs request." alt="" coords="191,328,278,353"/>
</map>

View File

@ -1 +0,0 @@
e69a0abbdb0e90ccec99335ebf6f44b4

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

Some files were not shown because too many files have changed in this diff Show More