mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-06 17:27:52 +00:00
6d5547a Set version to 1.0.0-b34 6fab138 Fix and tidy up CMake build scripts: ccefa54 Set version to 1.0.0-b33 32afe41 Set internal state correctly when writing frames: fe3e20b Add write_frames unit test 578dcd0 Add decorator unit test aaa3733 Use fwrite return value in file_body df66165 Require Visual Studio 2015 Update 3 or later b8e5a21 Set version to 1.0.0-b32 ffb1758 Update CMake scripts for finding packages: b893749 Remove http Writer suspend and resume feature (API Change): 27864fb Add io_service completion invariants tests eba05a7 Set version to 1.0.0-b31 484bcef Fix badge markdown in README.md 5663bea Add missing dynabuf_readstream member 0d7a551 Tidy up build settings 0fd4030 Move the handler, don't copy it git-subtree-dir: src/beast git-subtree-split: 6d5547a32c50ec95832c4779311502555ab0ee1f
78 lines
2.3 KiB
C++
78 lines
2.3 KiB
C++
//
|
|
// Copyright (c) 2013-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
|
|
//
|
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
//
|
|
|
|
#ifndef BEAST_STREAM_CONCEPTS_HPP
|
|
#define BEAST_STREAM_CONCEPTS_HPP
|
|
|
|
#include <beast/config.hpp>
|
|
#include <beast/core/detail/stream_concepts.hpp>
|
|
#include <type_traits>
|
|
|
|
namespace beast {
|
|
|
|
/// Determine if `T` has the `get_io_service` member.
|
|
template<class T>
|
|
#if GENERATING_DOCS
|
|
struct has_get_io_service : std::integral_constant<bool, ...>{};
|
|
#else
|
|
using has_get_io_service = typename detail::has_get_io_service<T>::type;
|
|
#endif
|
|
|
|
/// Determine if `T` meets the requirements of @b `AsyncReadStream`.
|
|
template<class T>
|
|
#if GENERATING_DOCS
|
|
struct is_AsyncReadStream : std::integral_constant<bool, ...>{};
|
|
#else
|
|
using is_AsyncReadStream = typename detail::is_AsyncReadStream<T>::type;
|
|
#endif
|
|
|
|
/// Determine if `T` meets the requirements of @b `AsyncWriteStream`.
|
|
template<class T>
|
|
#if GENERATING_DOCS
|
|
struct is_AsyncWriteStream : std::integral_constant<bool, ...>{};
|
|
#else
|
|
using is_AsyncWriteStream = typename detail::is_AsyncWriteStream<T>::type;
|
|
#endif
|
|
|
|
/// Determine if `T` meets the requirements of @b `SyncReadStream`.
|
|
template<class T>
|
|
#if GENERATING_DOCS
|
|
struct is_SyncReadStream : std::integral_constant<bool, ...>{};
|
|
#else
|
|
using is_SyncReadStream = typename detail::is_SyncReadStream<T>::type;
|
|
#endif
|
|
|
|
/// Determine if `T` meets the requirements of @b `SyncWriterStream`.
|
|
template<class T>
|
|
#if GENERATING_DOCS
|
|
struct is_SyncWriteStream : std::integral_constant<bool, ...>{};
|
|
#else
|
|
using is_SyncWriteStream = typename detail::is_SyncWriteStream<T>::type;
|
|
#endif
|
|
|
|
/// Determine if `T` meets the requirements of @b `AsyncStream`.
|
|
template<class T>
|
|
#if GENERATING_DOCS
|
|
struct is_AsyncStream : std::integral_constant<bool, ...>{};
|
|
#else
|
|
using is_AsyncStream = std::integral_constant<bool,
|
|
is_AsyncReadStream<T>::value && is_AsyncWriteStream<T>::value>;
|
|
#endif
|
|
|
|
/// Determine if `T` meets the requirements of @b `SyncStream`.
|
|
template<class T>
|
|
#if GENERATING_DOCS
|
|
struct is_SyncStream : std::integral_constant<bool, ...>{};
|
|
#else
|
|
using is_SyncStream = std::integral_constant<bool,
|
|
is_SyncReadStream<T>::value && is_SyncWriteStream<T>::value>;
|
|
#endif
|
|
|
|
} // beast
|
|
|
|
#endif
|