### generic::raw_protocol

Encapsulates the flags needed for a generic raw socket.

    class raw_protocol

##### Types

Name | Description
--- | ---
endpoint | The type of an endpoint.
socket | The generic socket type.

##### Member Functions

Name | Description
--- | ---
family | Obtain an identifier for the protocol family.
protocol | Obtain an identifier for the protocol.
raw_protocol [constructor] | Construct a protocol object for a specific address family and protocol. — Construct a generic protocol object from a specific protocol.
type | Obtain an identifier for the type of the protocol.

##### Friends

Name | Description
--- | ---
operator!= | Compare two protocols for inequality.
operator== | Compare two protocols for equality.

The `generic::raw_protocol` class contains flags necessary for raw sockets of any address family and protocol.

##### Examples

Constructing using a native address family and socket protocol:

    raw_protocol p(AF_INET, IPPROTO_ICMP);

Constructing from a specific protocol type:

    raw_protocol p(asio::ip::icmp::v4());

##### Thread Safety

Distinct objects: Safe.

Shared objects: Safe.

##### Requirements

Header: `asio/generic/raw_protocol.hpp`

Convenience header: `asio.hpp`