N4626 – Working Draft, C++ Extensions for Networking (2017)

N4626Working Draft, C++ Extensions for Networking, a.k.a. Networking Technical Specification, Networking TS, Jonathan Wakely, 2017-03-17.

Background

  • at cppreference.com
  • Section 4.2 <quote>The design of this specification is based, in part, on the Asio library written by Christopher Kohlhoff.</quote>
  • N4480C++ Extensions for Library Fundamentals, Version 2, 2015-11-25.

Composition

Physical

Everything
#include <experimental/net>

Buys everything.

In Phases && Slices
#include <experimental/netfwd>
#include <experimental/buffer>
#include <experimental/executor>
#include <experimental/internet>
#include <experimental/io_context>
#include <experimental/socket>
#include <experimental/timer>

Incorporates subcomponentry in stages.

Namespaces

std::net
Finally, once standardized, someday; after the year “202a.”
std::experimental::net
(inlined) std::experimental::net::v1
Currently, under draft, during trials, maybe now; prior to the year “202a.”
std::net::ip
a.k.a. std::experimental::net::v1::ip.
The Internet Protocol Subsystem

Components

As elaborated in <net>, a.k.a. <experimental/net>.
Using the "post-standardized" naming conventions:

std::net::associated_allocator
std::net::associated_executor
std::net::async_completion
std::net::async_result
std::net::bad_executor
std::net::basic_datagram_socket
std::net::basic_socket
std::net::basic_socket_acceptor
std::net::basic_socket_iostream
std::net::basic_socket_streambuf
std::net::basic_stream_socket
std::net::basic_waitable_timer
std::net::bind_executor
std::net::buffer_copy
std::net::buffer_size
std::net::const_buffer
std::net::defer
std::net::dispatch
std::net::dynamic_string_buffer
std::net::dynamic_vector_buffer
std::net::execution_context
std::net::execution_context;
std::net::execution_context::service
std::net::executor
std::net::executor_binder
std::net::executor_work_guard
std::net::get_associated_allocator
std::net::get_associated_executor
std::net::high_resolution_timer
std::net::io_context
std::net::io_context::executor_type
std::net::ip::address
std::net::ip::address_v4
std::net::ip::address_v4_iterator
std::net::ip::address_v4_range
std::net::ip::address_v6
std::net::ip::address_v6_iterator
std::net::ip::address_v6_range
std::net::ip::bad_address_cast
std::net::ip::basic_address_iterator
std::net::ip::basic_address_range
std::net::ip::basic_endpoint
std::net::ip::basic_resolver
std::net::ip::basic_resolver_entry
std::net::ip::basic_resolver_results
std::net::ip::network_v4
std::net::ip::network_v6
std::net::ip::resolver_base
std::net::ip::tcp
std::net::ip::udp
std::net::is_executor
std::net::make_work_guard
std::net::mutable_buffer
std::net::packaged_task
std::net::post
std::net::socket_base
std::net::steady_timer
std::net::strand
std::net::system_context
std::net::system_executor
std::net::system_timer
std::net::transfer_all
std::net::transfer_at_least
std::net::transfer_exactly
std::net::use_future_t
std::net::uses_executor
std::net::wait_traits

Referenced

Contents

  • Contents (this list)
  • List of Tables
  1. Scope
  2. Normative references
  3. Terms and definitions
  4. General Principles
    1. Conformance
    2. Acknowledgments
  5. Namespaces and headers
  6. Future plans (Informative)
  7. Feature test macros (Informative)
  8. Method of description (Informative)
    1. Structure of each clause
    2. Other conventions
  9. Error reporting
    1. Synchronous operations
    2. Asynchronous operations
    3. Error conditions
    4. Suppression of signals
  10. Library summary
  11. Convenience header
    • Header <experimental/net> synopsis
  12. Forward declarations
    • Header <experimental/netfwd> synopsis
  13. Asynchronous model
    • Header <experimental/executor> synopsis
    • Requirements
    • Class template async_result
    • Class template async_completion
    • Class template associated_allocator
    • Function get_associated_allocator
    • Class execution_context
    • Class execution_context::service
    • Class template is_executor
    • Executor argument tag
    • uses_executor
    • Class template associated_executor
    • Function get_associated_executor
    • Class template executor_binder
    • Function bind_executor
    • Class template executor_work_guard
    • Function make_work_guard
    • Class system_executor
    • Class system_context
    • Class bad_executor
    • Class executor
    • Function dispatch
    • Function post
    • Function defer
    • Class template strand
    • Class template use_future_t
    • Partial specialization of async_result for packaged_task
  14. I/O services
    • Header <experimental/io_context> synopsis
    • Class io_context
    • Class io_context::executor_type
  15. Timers
    • Header <experimental/timer> synopsis
    • Requirements
    • Class template wait_traits
    • Class template basic_waitable_timer
  16. Buffers
    • Header <experimental/buffer> synopsis
    • Requirements
    • Error codes
    • Class mutable_buffer
    • Class const_buffer
    • Buffer type traits
    • Buffer sequence access
    • Function buffer_size
    • Function buffer_copy
    • Buffer arithmetic
    • Buffer creation functions
    • Class template dynamic_vector_buffer
    • Class template dynamic_string_buffer
    • Dynamic buffer creation functions
  17. Buffer-oriented streams
    • Requirements
    • Class transfer_all
    • Class transfer_at_least
    • Class transfer_exactly
    • Synchronous read operations
    • Asynchronous read operations
    • Synchronous write operations
    • Asynchronous write operations
    • Synchronous delimited read operations
    • Asynchronous delimited read operations
  18. Sockets
    • Header <experimental/socket> synopsis
    • Requirements
    • Error codes
    • Class socket_base
    • Socket options
    • Class template basic_socket
    • Class template basic_datagram_socket
    • Class template basic_stream_socket
    • Class template basic_socket_acceptor
  19. Socket iostreams
    • Class template basic_socket_streambuf
    • Class template basic_socket_iostream
  20. Socket algorithms
    • Synchronous connect operations
    • Asynchronous connect operations
  21. Internet protocol
    • Header <experimental/internet> synopsis
    • Requirements
    • Error codes
    • Class ip::address
    • Class ip::address_v4
    • Class ip::address_v6
    • Class ip::bad_address_cast
    • Hash support
    • Class template ip::basic_address_iterator specializations
    • Class template ip::basic_address_range specializations
    • Class template ip::network_v4
    • Class template ip::network_v6
    • Class template ip::basic_endpoint
    • Class template ip::basic_resolver_entry
    • Class template ip::basic_resolver_results
    • Class ip::resolver_base
    • Class template ip::basic_resolver
    • Host name functions
    • Class ip::tcp
    • Class ip::udp
    • Internet socket options
  • Index
  • Index of library names
  • Index of implementation-defined behavior

Previously filled.

Comments are closed.