diff options
| author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2019-10-07 04:52:50 +0200 | 
|---|---|---|
| committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2019-10-07 04:52:50 +0200 | 
| commit | 0aa6201a490bfabc0ae021ceb9f1fb0f46727c5d (patch) | |
| tree | a71d934d8151dd43e7c16555fef17fd749c5da70 /lib/asio/local | |
| parent | 558d74bffd9f069955af52c0b308a1d6169bcff0 (diff) | |
| parent | 0330221d51421caa110b8c5dcb567cc3d0620eb9 (diff) | |
| download | dabmod-0aa6201a490bfabc0ae021ceb9f1fb0f46727c5d.tar.gz dabmod-0aa6201a490bfabc0ae021ceb9f1fb0f46727c5d.tar.bz2 dabmod-0aa6201a490bfabc0ae021ceb9f1fb0f46727c5d.zip | |
Merge lime output into next branch
Diffstat (limited to 'lib/asio/local')
| -rw-r--r-- | lib/asio/local/basic_endpoint.hpp | 239 | ||||
| -rw-r--r-- | lib/asio/local/connect_pair.hpp | 106 | ||||
| -rw-r--r-- | lib/asio/local/datagram_protocol.hpp | 80 | ||||
| -rw-r--r-- | lib/asio/local/detail/endpoint.hpp | 133 | ||||
| -rw-r--r-- | lib/asio/local/detail/impl/endpoint.ipp | 129 | ||||
| -rw-r--r-- | lib/asio/local/stream_protocol.hpp | 90 | 
6 files changed, 0 insertions, 777 deletions
| diff --git a/lib/asio/local/basic_endpoint.hpp b/lib/asio/local/basic_endpoint.hpp deleted file mode 100644 index 94e470a..0000000 --- a/lib/asio/local/basic_endpoint.hpp +++ /dev/null @@ -1,239 +0,0 @@ -// -// local/basic_endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Derived from a public domain implementation written by Daniel Casimiro. -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_LOCAL_BASIC_ENDPOINT_HPP -#define ASIO_LOCAL_BASIC_ENDPOINT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) \ -  || defined(GENERATING_DOCUMENTATION) - -#include "asio/local/detail/endpoint.hpp" - -#if !defined(ASIO_NO_IOSTREAM) -# include <iosfwd> -#endif // !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace local { - -/// Describes an endpoint for a UNIX socket. -/** - * The asio::local::basic_endpoint class template describes an endpoint - * that may be associated with a particular UNIX socket. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * Endpoint. - */ -template <typename Protocol> -class basic_endpoint -{ -public: -  /// The protocol type associated with the endpoint. -  typedef Protocol protocol_type; - -  /// The type of the endpoint structure. This type is dependent on the -  /// underlying implementation of the socket layer. -#if defined(GENERATING_DOCUMENTATION) -  typedef implementation_defined data_type; -#else -  typedef asio::detail::socket_addr_type data_type; -#endif - -  /// Default constructor. -  basic_endpoint() -  { -  } - -  /// Construct an endpoint using the specified path name. -  basic_endpoint(const char* path_name) -    : impl_(path_name) -  { -  } - -  /// Construct an endpoint using the specified path name. -  basic_endpoint(const std::string& path_name) -    : impl_(path_name) -  { -  } - -  /// Copy constructor. -  basic_endpoint(const basic_endpoint& other) -    : impl_(other.impl_) -  { -  } - -#if defined(ASIO_HAS_MOVE) -  /// Move constructor. -  basic_endpoint(basic_endpoint&& other) -    : impl_(other.impl_) -  { -  } -#endif // defined(ASIO_HAS_MOVE) - -  /// Assign from another endpoint. -  basic_endpoint& operator=(const basic_endpoint& other) -  { -    impl_ = other.impl_; -    return *this; -  } - -#if defined(ASIO_HAS_MOVE) -  /// Move-assign from another endpoint. -  basic_endpoint& operator=(basic_endpoint&& other) -  { -    impl_ = other.impl_; -    return *this; -  } -#endif // defined(ASIO_HAS_MOVE) - -  /// The protocol associated with the endpoint. -  protocol_type protocol() const -  { -    return protocol_type(); -  } - -  /// Get the underlying endpoint in the native type. -  data_type* data() -  { -    return impl_.data(); -  } - -  /// Get the underlying endpoint in the native type. -  const data_type* data() const -  { -    return impl_.data(); -  } - -  /// Get the underlying size of the endpoint in the native type. -  std::size_t size() const -  { -    return impl_.size(); -  } - -  /// Set the underlying size of the endpoint in the native type. -  void resize(std::size_t new_size) -  { -    impl_.resize(new_size); -  } - -  /// Get the capacity of the endpoint in the native type. -  std::size_t capacity() const -  { -    return impl_.capacity(); -  } - -  /// Get the path associated with the endpoint. -  std::string path() const -  { -    return impl_.path(); -  } - -  /// Set the path associated with the endpoint. -  void path(const char* p) -  { -    impl_.path(p); -  } - -  /// Set the path associated with the endpoint. -  void path(const std::string& p) -  { -    impl_.path(p); -  } - -  /// Compare two endpoints for equality. -  friend bool operator==(const basic_endpoint<Protocol>& e1, -      const basic_endpoint<Protocol>& e2) -  { -    return e1.impl_ == e2.impl_; -  } - -  /// Compare two endpoints for inequality. -  friend bool operator!=(const basic_endpoint<Protocol>& e1, -      const basic_endpoint<Protocol>& e2) -  { -    return !(e1.impl_ == e2.impl_); -  } - -  /// Compare endpoints for ordering. -  friend bool operator<(const basic_endpoint<Protocol>& e1, -      const basic_endpoint<Protocol>& e2) -  { -    return e1.impl_ < e2.impl_; -  } - -  /// Compare endpoints for ordering. -  friend bool operator>(const basic_endpoint<Protocol>& e1, -      const basic_endpoint<Protocol>& e2) -  { -    return e2.impl_ < e1.impl_; -  } - -  /// Compare endpoints for ordering. -  friend bool operator<=(const basic_endpoint<Protocol>& e1, -      const basic_endpoint<Protocol>& e2) -  { -    return !(e2 < e1); -  } - -  /// Compare endpoints for ordering. -  friend bool operator>=(const basic_endpoint<Protocol>& e1, -      const basic_endpoint<Protocol>& e2) -  { -    return !(e1 < e2); -  } - -private: -  // The underlying UNIX domain endpoint. -  asio::local::detail::endpoint impl_; -}; - -/// Output an endpoint as a string. -/** - * Used to output a human-readable string for a specified endpoint. - * - * @param os The output stream to which the string will be written. - * - * @param endpoint The endpoint to be written. - * - * @return The output stream. - * - * @relates asio::local::basic_endpoint - */ -template <typename Elem, typename Traits, typename Protocol> -std::basic_ostream<Elem, Traits>& operator<<( -    std::basic_ostream<Elem, Traits>& os, -    const basic_endpoint<Protocol>& endpoint) -{ -  os << endpoint.path(); -  return os; -} - -} // namespace local -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) -       //   || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_LOCAL_BASIC_ENDPOINT_HPP diff --git a/lib/asio/local/connect_pair.hpp b/lib/asio/local/connect_pair.hpp deleted file mode 100644 index 2f7c090..0000000 --- a/lib/asio/local/connect_pair.hpp +++ /dev/null @@ -1,106 +0,0 @@ -// -// local/connect_pair.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_LOCAL_CONNECT_PAIR_HPP -#define ASIO_LOCAL_CONNECT_PAIR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) \ -  || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_socket.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/local/basic_endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace local { - -/// Create a pair of connected sockets. -template <typename Protocol ASIO_SVC_TPARAM ASIO_SVC_TPARAM1> -void connect_pair( -    basic_socket<Protocol ASIO_SVC_TARG>& socket1, -    basic_socket<Protocol ASIO_SVC_TARG1>& socket2); - -/// Create a pair of connected sockets. -template <typename Protocol ASIO_SVC_TPARAM ASIO_SVC_TPARAM1> -ASIO_SYNC_OP_VOID connect_pair( -    basic_socket<Protocol ASIO_SVC_TARG>& socket1, -    basic_socket<Protocol ASIO_SVC_TARG1>& socket2, -    asio::error_code& ec); - -template <typename Protocol ASIO_SVC_TPARAM ASIO_SVC_TPARAM1> -inline void connect_pair( -    basic_socket<Protocol ASIO_SVC_TARG>& socket1, -    basic_socket<Protocol ASIO_SVC_TARG1>& socket2) -{ -  asio::error_code ec; -  connect_pair(socket1, socket2, ec); -  asio::detail::throw_error(ec, "connect_pair"); -} - -template <typename Protocol ASIO_SVC_TPARAM ASIO_SVC_TPARAM1> -inline ASIO_SYNC_OP_VOID connect_pair( -    basic_socket<Protocol ASIO_SVC_TARG>& socket1, -    basic_socket<Protocol ASIO_SVC_TARG1>& socket2, -    asio::error_code& ec) -{ -  // Check that this function is only being used with a UNIX domain socket. -  asio::local::basic_endpoint<Protocol>* tmp -    = static_cast<typename Protocol::endpoint*>(0); -  (void)tmp; - -  Protocol protocol; -  asio::detail::socket_type sv[2]; -  if (asio::detail::socket_ops::socketpair(protocol.family(), -        protocol.type(), protocol.protocol(), sv, ec) -      == asio::detail::socket_error_retval) -    ASIO_SYNC_OP_VOID_RETURN(ec); - -  socket1.assign(protocol, sv[0], ec); -  if (ec) -  { -    asio::error_code temp_ec; -    asio::detail::socket_ops::state_type state[2] = { 0, 0 }; -    asio::detail::socket_ops::close(sv[0], state[0], true, temp_ec); -    asio::detail::socket_ops::close(sv[1], state[1], true, temp_ec); -    ASIO_SYNC_OP_VOID_RETURN(ec); -  } - -  socket2.assign(protocol, sv[1], ec); -  if (ec) -  { -    asio::error_code temp_ec; -    socket1.close(temp_ec); -    asio::detail::socket_ops::state_type state = 0; -    asio::detail::socket_ops::close(sv[1], state, true, temp_ec); -    ASIO_SYNC_OP_VOID_RETURN(ec); -  } - -  ASIO_SYNC_OP_VOID_RETURN(ec); -} - -} // namespace local -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) -       //   || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_LOCAL_CONNECT_PAIR_HPP diff --git a/lib/asio/local/datagram_protocol.hpp b/lib/asio/local/datagram_protocol.hpp deleted file mode 100644 index b87df2e..0000000 --- a/lib/asio/local/datagram_protocol.hpp +++ /dev/null @@ -1,80 +0,0 @@ -// -// local/datagram_protocol.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_LOCAL_DATAGRAM_PROTOCOL_HPP -#define ASIO_LOCAL_DATAGRAM_PROTOCOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) \ -  || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_datagram_socket.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/local/basic_endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace local { - -/// Encapsulates the flags needed for datagram-oriented UNIX sockets. -/** - * The asio::local::datagram_protocol class contains flags necessary for - * datagram-oriented UNIX domain sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol. - */ -class datagram_protocol -{ -public: -  /// Obtain an identifier for the type of the protocol. -  int type() const -  { -    return SOCK_DGRAM; -  } - -  /// Obtain an identifier for the protocol. -  int protocol() const -  { -    return 0; -  } - -  /// Obtain an identifier for the protocol family. -  int family() const -  { -    return AF_UNIX; -  } - -  /// The type of a UNIX domain endpoint. -  typedef basic_endpoint<datagram_protocol> endpoint; - -  /// The UNIX domain socket type. -  typedef basic_datagram_socket<datagram_protocol> socket; -}; - -} // namespace local -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) -       //   || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_LOCAL_DATAGRAM_PROTOCOL_HPP diff --git a/lib/asio/local/detail/endpoint.hpp b/lib/asio/local/detail/endpoint.hpp deleted file mode 100644 index 4870f3b..0000000 --- a/lib/asio/local/detail/endpoint.hpp +++ /dev/null @@ -1,133 +0,0 @@ -// -// local/detail/endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Derived from a public domain implementation written by Daniel Casimiro. -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_LOCAL_DETAIL_ENDPOINT_HPP -#define ASIO_LOCAL_DETAIL_ENDPOINT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -#include <cstddef> -#include <string> -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace local { -namespace detail { - -// Helper class for implementing a UNIX domain endpoint. -class endpoint -{ -public: -  // Default constructor. -  ASIO_DECL endpoint(); - -  // Construct an endpoint using the specified path name. -  ASIO_DECL endpoint(const char* path_name); - -  // Construct an endpoint using the specified path name. -  ASIO_DECL endpoint(const std::string& path_name); - -  // Copy constructor. -  endpoint(const endpoint& other) -    : data_(other.data_), -      path_length_(other.path_length_) -  { -  } - -  // Assign from another endpoint. -  endpoint& operator=(const endpoint& other) -  { -    data_ = other.data_; -    path_length_ = other.path_length_; -    return *this; -  } - -  // Get the underlying endpoint in the native type. -  asio::detail::socket_addr_type* data() -  { -    return &data_.base; -  } - -  // Get the underlying endpoint in the native type. -  const asio::detail::socket_addr_type* data() const -  { -    return &data_.base; -  } - -  // Get the underlying size of the endpoint in the native type. -  std::size_t size() const -  { -    return path_length_ -      + offsetof(asio::detail::sockaddr_un_type, sun_path); -  } - -  // Set the underlying size of the endpoint in the native type. -  ASIO_DECL void resize(std::size_t size); - -  // Get the capacity of the endpoint in the native type. -  std::size_t capacity() const -  { -    return sizeof(asio::detail::sockaddr_un_type); -  } - -  // Get the path associated with the endpoint. -  ASIO_DECL std::string path() const; - -  // Set the path associated with the endpoint. -  ASIO_DECL void path(const char* p); - -  // Set the path associated with the endpoint. -  ASIO_DECL void path(const std::string& p); - -  // Compare two endpoints for equality. -  ASIO_DECL friend bool operator==( -      const endpoint& e1, const endpoint& e2); - -  // Compare endpoints for ordering. -  ASIO_DECL friend bool operator<( -      const endpoint& e1, const endpoint& e2); - -private: -  // The underlying UNIX socket address. -  union data_union -  { -    asio::detail::socket_addr_type base; -    asio::detail::sockaddr_un_type local; -  } data_; - -  // The length of the path associated with the endpoint. -  std::size_t path_length_; - -  // Initialise with a specified path. -  ASIO_DECL void init(const char* path, std::size_t path_length); -}; - -} // namespace detail -} // namespace local -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/local/detail/impl/endpoint.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) - -#endif // ASIO_LOCAL_DETAIL_ENDPOINT_HPP diff --git a/lib/asio/local/detail/impl/endpoint.ipp b/lib/asio/local/detail/impl/endpoint.ipp deleted file mode 100644 index d5bbf50..0000000 --- a/lib/asio/local/detail/impl/endpoint.ipp +++ /dev/null @@ -1,129 +0,0 @@ -// -// local/detail/impl/endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Derived from a public domain implementation written by Daniel Casimiro. -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_LOCAL_DETAIL_IMPL_ENDPOINT_IPP -#define ASIO_LOCAL_DETAIL_IMPL_ENDPOINT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -#include <cstring> -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/local/detail/endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace local { -namespace detail { - -endpoint::endpoint() -{ -  init("", 0); -} - -endpoint::endpoint(const char* path_name) -{ -  using namespace std; // For strlen. -  init(path_name, strlen(path_name)); -} - -endpoint::endpoint(const std::string& path_name) -{ -  init(path_name.data(), path_name.length()); -} - -void endpoint::resize(std::size_t new_size) -{ -  if (new_size > sizeof(asio::detail::sockaddr_un_type)) -  { -    asio::error_code ec(asio::error::invalid_argument); -    asio::detail::throw_error(ec); -  } -  else if (new_size == 0) -  { -    path_length_ = 0; -  } -  else -  { -    path_length_ = new_size -      - offsetof(asio::detail::sockaddr_un_type, sun_path); - -    // The path returned by the operating system may be NUL-terminated. -    if (path_length_ > 0 && data_.local.sun_path[path_length_ - 1] == 0) -      --path_length_; -  } -} - -std::string endpoint::path() const -{ -  return std::string(data_.local.sun_path, path_length_); -} - -void endpoint::path(const char* p) -{ -  using namespace std; // For strlen. -  init(p, strlen(p)); -} - -void endpoint::path(const std::string& p) -{ -  init(p.data(), p.length()); -} - -bool operator==(const endpoint& e1, const endpoint& e2) -{ -  return e1.path() == e2.path(); -} - -bool operator<(const endpoint& e1, const endpoint& e2) -{ -  return e1.path() < e2.path(); -} - -void endpoint::init(const char* path_name, std::size_t path_length) -{ -  if (path_length > sizeof(data_.local.sun_path) - 1) -  { -    // The buffer is not large enough to store this address. -    asio::error_code ec(asio::error::name_too_long); -    asio::detail::throw_error(ec); -  } - -  using namespace std; // For memcpy. -  data_.local = asio::detail::sockaddr_un_type(); -  data_.local.sun_family = AF_UNIX; -  if (path_length > 0) -    memcpy(data_.local.sun_path, path_name, path_length); -  path_length_ = path_length; - -  // NUL-terminate normal path names. Names that start with a NUL are in the -  // UNIX domain protocol's "abstract namespace" and are not NUL-terminated. -  if (path_length > 0 && data_.local.sun_path[0] == 0) -    data_.local.sun_path[path_length] = 0; -} - -} // namespace detail -} // namespace local -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) - -#endif // ASIO_LOCAL_DETAIL_IMPL_ENDPOINT_IPP diff --git a/lib/asio/local/stream_protocol.hpp b/lib/asio/local/stream_protocol.hpp deleted file mode 100644 index e2ef5f3..0000000 --- a/lib/asio/local/stream_protocol.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// local/stream_protocol.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef ASIO_LOCAL_STREAM_PROTOCOL_HPP -#define ASIO_LOCAL_STREAM_PROTOCOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) \ -  || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_socket_acceptor.hpp" -#include "asio/basic_socket_iostream.hpp" -#include "asio/basic_stream_socket.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/local/basic_endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace local { - -/// Encapsulates the flags needed for stream-oriented UNIX sockets. -/** - * The asio::local::stream_protocol class contains flags necessary for - * stream-oriented UNIX domain sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol. - */ -class stream_protocol -{ -public: -  /// Obtain an identifier for the type of the protocol. -  int type() const -  { -    return SOCK_STREAM; -  } - -  /// Obtain an identifier for the protocol. -  int protocol() const -  { -    return 0; -  } - -  /// Obtain an identifier for the protocol family. -  int family() const -  { -    return AF_UNIX; -  } - -  /// The type of a UNIX domain endpoint. -  typedef basic_endpoint<stream_protocol> endpoint; - -  /// The UNIX domain socket type. -  typedef basic_stream_socket<stream_protocol> socket; - -  /// The UNIX domain acceptor type. -  typedef basic_socket_acceptor<stream_protocol> acceptor; - -#if !defined(ASIO_NO_IOSTREAM) -  /// The UNIX domain iostream type. -  typedef basic_socket_iostream<stream_protocol> iostream; -#endif // !defined(ASIO_NO_IOSTREAM) -}; - -} // namespace local -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) -       //   || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_LOCAL_STREAM_PROTOCOL_HPP | 
