dpp::websocket_client
dpp::ssl_connection
dpp::discord_client
dpp::discord_voice_client
wsclient.h
ws_opcode ws_opcode dpp::websocket_client::data_opcode data_opcode dpp::websocket_client::data_opcode

Data opcode, represents the type of frames we send.

std::map< std::string, std::string > std::map<std::string, std::string> dpp::websocket_client::http_headers http_headers dpp::websocket_client::http_headers

HTTP headers received on connecting/upgrading.

std::string std::string dpp::websocket_client::key key dpp::websocket_client::key

Connection key used in the HTTP headers.

std::string std::string dpp::websocket_client::path path dpp::websocket_client::path

Path part of URL for websocket.

ws_state ws_state dpp::websocket_client::state state dpp::websocket_client::state

Current websocket state.

std::string std::string dpp::ssl_connection::buffer buffer dpp::ssl_connection::buffer

Input buffer received from socket.

uint64_t uint64_t dpp::ssl_connection::bytes_in bytes_in dpp::ssl_connection::bytes_in

Bytes in.

uint64_t uint64_t dpp::ssl_connection::bytes_out bytes_out dpp::ssl_connection::bytes_out

Bytes out.

std::string std::string dpp::ssl_connection::cipher cipher dpp::ssl_connection::cipher

SSL cipher in use.

uint8_t uint8_t dpp::ssl_connection::connect_retries connect_retries dpp::ssl_connection::connect_retries {0}

How many times we retried connect().

bool bool dpp::ssl_connection::connected connected dpp::ssl_connection::connected {false}

True if connection is completed.

std::string std::string dpp::ssl_connection::hostname hostname dpp::ssl_connection::hostname

Hostname connected to.

time_t time_t dpp::ssl_connection::last_tick last_tick dpp::ssl_connection::last_tick

For timers.

std::string std::string dpp::ssl_connection::obuffer obuffer dpp::ssl_connection::obuffer

Output buffer for sending to socket.

bool bool dpp::ssl_connection::plaintext plaintext dpp::ssl_connection::plaintext

True for a plain text connection.

std::string std::string dpp::ssl_connection::port port dpp::ssl_connection::port

Port connected to.

bool bool dpp::ssl_connection::raw_trace raw_trace dpp::ssl_connection::raw_trace {false}

Set this to true to log all IO to debug for this connection. This is an internal developer facility. Do not enable it unless you need to, as it will be very noisy.

dpp::socket dpp::socket dpp::ssl_connection::sfd sfd dpp::ssl_connection::sfd

Raw file descriptor of connection.

openssl_connection * openssl_connection* dpp::ssl_connection::ssl ssl dpp::ssl_connection::ssl

Openssl opaque contexts.

std::mutex std::mutex dpp::ssl_connection::ssl_close_mutex ssl_close_mutex dpp::ssl_connection::ssl_close_mutex

Protects openssl opaque contexts when closing.

There's data races when reconnecting severed connection. This makes sure we don't double free our contexts.

time_t time_t dpp::ssl_connection::start start dpp::ssl_connection::start

Start time of connection.

bool bool dpp::ssl_connection::tcp_connect_done tcp_connect_done dpp::ssl_connection::tcp_connect_done {false}

True if tcp connect() succeeded.

bool bool dpp::websocket_client::timed_out timed_out dpp::websocket_client::timed_out

If true the connection timed out while waiting, when waiting for SSL negotiation, TCP connect(), or HTTP.

time_t time_t dpp::websocket_client::timeout timeout dpp::websocket_client::timeout

Time at which the connection should be abandoned, if we are still connecting or negotiating with a HTTP server.

timer timer dpp::ssl_connection::timer_handle timer_handle dpp::ssl_connection::timer_handle

Timer handle for one second timer.

uint64_t uint64_t dpp::ssl_connection::unique_id unique_id dpp::ssl_connection::unique_id

Unique ID of socket used as a nonce You can use this to identify requests vs reply if you want. D++ itself only sets this, and does not use it in any logic. It starts at 1 and increments for each request made.

size_t size_t dpp::websocket_client::fill_header (unsigned char *outbuf, size_t sendlength, ws_opcode opcode) fill_header dpp::websocket_client::fill_header unsigned char * outbuf size_t sendlength ws_opcode opcode

Fill a header for outbound messages.

outbuf

The raw frame to fill

sendlength

The size of the data to encapsulate

opcode

the ws_opcode to send in the header

size of filled header

void void dpp::websocket_client::handle_ping (const std::string &payload) handle_ping dpp::websocket_client::handle_ping const std::string & payload

Handle ping requests.

payload

The ping payload, to be returned as-is for a pong

bool bool dpp::websocket_client::parseheader (std::string &buffer) parseheader dpp::websocket_client::parseheader std::string & buffer

Parse headers for a websocket frame from the buffer.

buffer

The buffer to operate on. Will modify the string removing completed items from the head of the queue

true if a complete header has been received

void virtual void dpp::websocket_client::connect () override connect dpp::websocket_client::connect connect

Connect to websocket server.

void void dpp::ssl_connection::do_raw_trace (const std::string &message) const do_raw_trace dpp::ssl_connection::do_raw_trace const std::string & message

If raw_trace is set to true, log a debug message for this connection.

message

debug message

ws_state ws_state dpp::websocket_client::get_state () const get_state dpp::websocket_client::get_state

Get websocket state.

websocket state

void virtual void dpp::ssl_connection::on_buffer_drained () on_buffer_drained dpp::ssl_connection::on_buffer_drained on_buffer_drained
int int dpp::ssl_connection::start_connecting (dpp::socket sockfd, const struct sockaddr *addr, socklen_t addrlen) start_connecting dpp::ssl_connection::start_connecting dpp::socket sockfd const struct sockaddr * addr socklen_t addrlen

Start connecting to a TCP socket. This simply calls connect() and checks for error return, as the timeout is now handled in the main IO events for the ssl_connection class.

sockfd

socket descriptor

addr

address to connect to

addrlen

address length

timeout_ms

timeout in milliseconds

int -1 on error, 0 on success just like POSIX connect()

dpp::connection_exception

on failure

dpp::websocket_client::websocket_client
(cluster *creator, const std::string &hostname, const std::string &port="443", const std::string &urlpath="", ws_opcode opcode=OP_BINARY)
websocket_client
dpp::websocket_client::websocket_client
cluster * creator
const std::string & hostname
const std::string & port "443"
const std::string & urlpath ""
ws_opcode opcode OP_BINARY

Connect to a specific websocket server.

creator

Creating cluster

hostname

Hostname to connect to

port

Port to connect to

urlpath

The URL path components of the HTTP request to send

opcode

The encoding type to use, either OP_BINARY or OP_TEXT

This just indicates the default for frames sent. Certain sockets, such as voice websockets, may send a combination of OP_TEXT and OP_BINARY frames, whereas shard websockets will only ever send OP_BINARY for ETF and OP_TEXT for JSON.

virtual dpp::websocket_client::~websocket_client
()=default
~websocket_client
dpp::websocket_client::~websocket_client

Destroy the websocket client object.

void virtual void dpp::websocket_client::close () override close dpp::websocket_client::close close

Close websocket.

void void dpp::ssl_connection::complete_handshake (const struct socket_events *ev) complete_handshake dpp::ssl_connection::complete_handshake const struct socket_events * ev

Called while SSL handshake is in progress. If the handshake completes, the state of the socket is progressed to an established state.

ev

Socket events for the socket

void void dpp::ssl_connection::enable_raw_tracing () enable_raw_tracing dpp::ssl_connection::enable_raw_tracing

For low-level debugging, calling this function will enable low level I/O logging for this connection to the logger. This can be very loud, and output a lot of data, so only enable it selectively where you need it.

Generally, you won't need this, it is a library development utility.

void virtual void dpp::websocket_client::error (uint32_t errorcode) error dpp::websocket_client::error error error uint32_t errorcode

Called upon error frame.

errorcode

The error code from the websocket server

uint64_t uint64_t dpp::ssl_connection::get_bytes_in () get_bytes_in dpp::ssl_connection::get_bytes_in

Get total bytes received.

uint64_t bytes received

uint64_t uint64_t dpp::ssl_connection::get_bytes_out () get_bytes_out dpp::ssl_connection::get_bytes_out

Get total bytes sent.

uint64_t bytes sent

std::string std::string dpp::ssl_connection::get_cipher () get_cipher dpp::ssl_connection::get_cipher

Get SSL cipher name.

std::string ssl cipher name

uint64_t uint64_t dpp::ssl_connection::get_unique_id () const get_unique_id dpp::ssl_connection::get_unique_id

Every request made has a unique ID. This increments for every request, starting at 1. You can use this for statistics, or to associate requests and replies in external event loops.

Unique ID

bool virtual bool dpp::websocket_client::handle_buffer (std::string &buffer) override handle_buffer dpp::websocket_client::handle_buffer handle_buffer std::string & buffer

Processes incoming frames from the SSL socket input buffer.

buffer

The buffer contents. Can modify this value removing the head elements when processed.

bool virtual bool dpp::websocket_client::handle_frame (const std::string &buffer, ws_opcode opcode) handle_frame dpp::websocket_client::handle_frame handle_frame handle_frame const std::string & buffer ws_opcode opcode

Receives raw frame content only without headers.

buffer

The buffer contents

opcode

Frame type, e.g. OP_TEXT, OP_BINARY

True if the frame was successfully handled. False if no valid frame is in the buffer.

void virtual void dpp::ssl_connection::log (dpp::loglevel severity, const std::string &msg) const log dpp::ssl_connection::log log log dpp::loglevel severity const std::string & msg

Log a message.

severity

severity of log message

msg

Log message to send

void virtual void dpp::websocket_client::on_disconnect () on_disconnect dpp::websocket_client::on_disconnect on_disconnect on_disconnect

Called on HTTP socket closure.

void void dpp::ssl_connection::on_error (dpp::socket fd, const struct dpp::socket_events &, int error_code) on_error dpp::ssl_connection::on_error dpp::socket fd const struct dpp::socket_events & int error_code

Called when there is an error on the TCP socket.

fd

File descriptor

error_code

Error code

void void dpp::ssl_connection::on_read (dpp::socket fd, const struct dpp::socket_events &ev) on_read dpp::ssl_connection::on_read dpp::socket fd const struct dpp::socket_events & ev

Called when the TCP socket has data to read.

fd

File descriptor

ev

Socket events

void void dpp::ssl_connection::on_write (dpp::socket fd, const struct dpp::socket_events &e) on_write dpp::ssl_connection::on_write dpp::socket fd const struct dpp::socket_events & e

Called when the TCP socket can be written to without blocking.

fd

File descriptor

e

Socket events

void virtual void dpp::websocket_client::one_second_timer () override one_second_timer dpp::websocket_client::one_second_timer one_second_timer one_second_timer one_second_timer

Fires every second from the underlying socket I/O loop, used for sending websocket pings.

void void dpp::ssl_connection::read_loop () read_loop dpp::ssl_connection::read_loop

Set up non blocking I/O and configure on_read, on_write and on_error.

std::exception

Any std::exception (or derivative) thrown from read_loop() indicates setup failed

void void dpp::websocket_client::send_close_packet () send_close_packet dpp::websocket_client::send_close_packet

Send OP_CLOSE error code 1000 to the other side of the connection. This indicates graceful close.

This informs Discord to invalidate the session, you cannot resume if you send this

void void dpp::ssl_connection::socket_write (const std::string_view data) socket_write dpp::ssl_connection::socket_write const std::string_view data

Write to the output buffer.

data

Data to be written to the buffer.

The data may not be written immediately and may be written at a later time to the socket.

void virtual void dpp::websocket_client::write (const std::string_view data, ws_opcode _opcode=OP_AUTO) write dpp::websocket_client::write const std::string_view data ws_opcode _opcode OP_AUTO

Write to websocket. Encapsulates data in frames if the status is CONNECTED.

data

The data to send.

_opcode

The opcode of the data to send, either binary or text. The default is to use the socket's opcode as set in the constructor.

bool bool dpp::ssl_connection::keepalive keepalive dpp::ssl_connection::keepalive

True if we are keeping the connection alive after it has finished.

class cluster * class cluster* dpp::ssl_connection::owner owner dpp::ssl_connection::owner

Owning cluster.

std::string std::string dpp::ssl_connection::private_key_file private_key_file dpp::ssl_connection::private_key_file

Private key PEM file path for inbound SSL connections.

std::string std::string dpp::ssl_connection::public_key_file public_key_file dpp::ssl_connection::public_key_file

Public key PEM file path for inbound SSL connections.

Implements a websocket client based on the SSL client.

dpp::discord_client
dpp::discord_voice_client
dpp::ssl_connection
dpp::websocket_client
K
T
bool
cache_policy_setting_t
double
dpp::cache_policy_t
channel_policy
emoji_policy
guild_policy
role_policy
user_policy
dpp::cluster
token
last_identify
cluster_id
intents
maxclusters
numshards
rest_ping
me
cache_policy
ws_mode
terminating
request_timeout
socketengine
on_voice_channel_effect_send
on_voice_state_update
on_voice_client_platform
on_voice_client_disconnect
on_voice_client_speaking
on_log
on_socket_close
on_guild_join_request_delete
on_interaction_create
on_slashcommand
on_button_click
on_autocomplete
on_select_click
on_message_context_menu
on_user_context_menu
on_form_submit
on_guild_delete
on_channel_delete
on_channel_update
on_ready
on_message_delete
on_guild_member_remove
on_resumed
on_guild_role_create
on_typing_start
on_message_reaction_add
on_guild_members_chunk
on_message_reaction_remove
on_guild_create
on_channel_create
on_message_reaction_remove_emoji
on_message_delete_bulk
on_guild_role_update
on_guild_role_delete
on_channel_pins_update
on_message_reaction_remove_all
on_voice_server_update
on_guild_emojis_update
on_guild_stickers_update
on_presence_update
on_webhooks_update
on_automod_rule_create
on_automod_rule_update
on_automod_rule_delete
on_automod_rule_execute
on_guild_member_add
on_invite_delete
on_guild_update
on_guild_integrations_update
on_guild_member_update
on_invite_create
on_message_update
on_user_update
on_message_create
on_message_poll_vote_add
on_message_poll_vote_remove
on_guild_audit_log_entry_create
on_guild_ban_add
on_guild_ban_remove
on_integration_create
on_integration_update
on_integration_delete
on_thread_create
on_thread_update
on_thread_delete
on_thread_list_sync
on_thread_member_update
on_thread_members_update
on_guild_scheduled_event_create
on_guild_scheduled_event_update
on_guild_scheduled_event_delete
on_guild_scheduled_event_user_add
on_guild_scheduled_event_user_remove
on_voice_buffer_send
on_voice_ready
on_voice_receive
on_voice_receive_combined
on_voice_track_marker
on_stage_instance_create
on_stage_instance_update
on_stage_instance_delete
on_entitlement_create
on_entitlement_update
on_entitlement_delete
dpp::event_router_t< T >
dpp::event_router_t< dpp::autocomplete_t >
< dpp::autocomplete_t >
dpp::event_router_t< dpp::automod_rule_create_t >
< dpp::automod_rule_create_t >
dpp::event_router_t< dpp::automod_rule_delete_t >
< dpp::automod_rule_delete_t >
dpp::event_router_t< dpp::automod_rule_execute_t >
< dpp::automod_rule_execute_t >
dpp::event_router_t< dpp::automod_rule_update_t >
< dpp::automod_rule_update_t >
dpp::event_router_t< dpp::button_click_t >
< dpp::button_click_t >
dpp::event_router_t< dpp::channel_create_t >
< dpp::channel_create_t >
dpp::event_router_t< dpp::channel_delete_t >
< dpp::channel_delete_t >
dpp::event_router_t< dpp::channel_pins_update_t >
< dpp::channel_pins_update_t >
dpp::event_router_t< dpp::channel_update_t >
< dpp::channel_update_t >
dpp::event_router_t< dpp::entitlement_create_t >
< dpp::entitlement_create_t >
dpp::event_router_t< dpp::entitlement_delete_t >
< dpp::entitlement_delete_t >
dpp::event_router_t< dpp::entitlement_update_t >
< dpp::entitlement_update_t >
dpp::event_router_t< dpp::form_submit_t >
< dpp::form_submit_t >
dpp::event_router_t< dpp::guild_audit_log_entry_create_t >
< dpp::guild_audit_log_entry_create_t >
dpp::event_router_t< dpp::guild_ban_add_t >
< dpp::guild_ban_add_t >
dpp::event_router_t< dpp::guild_ban_remove_t >
< dpp::guild_ban_remove_t >
dpp::event_router_t< dpp::guild_create_t >
< dpp::guild_create_t >
dpp::event_router_t< dpp::guild_delete_t >
< dpp::guild_delete_t >
dpp::event_router_t< dpp::guild_emojis_update_t >
< dpp::guild_emojis_update_t >
dpp::event_router_t< dpp::guild_integrations_update_t >
< dpp::guild_integrations_update_t >
dpp::event_router_t< dpp::guild_join_request_delete_t >
< dpp::guild_join_request_delete_t >
dpp::event_router_t< dpp::guild_member_add_t >
< dpp::guild_member_add_t >
dpp::event_router_t< dpp::guild_member_remove_t >
< dpp::guild_member_remove_t >
dpp::event_router_t< dpp::guild_member_update_t >
< dpp::guild_member_update_t >
dpp::event_router_t< dpp::guild_members_chunk_t >
< dpp::guild_members_chunk_t >
dpp::event_router_t< dpp::guild_role_create_t >
< dpp::guild_role_create_t >
dpp::event_router_t< dpp::guild_role_delete_t >
< dpp::guild_role_delete_t >
dpp::event_router_t< dpp::guild_role_update_t >
< dpp::guild_role_update_t >
dpp::event_router_t< dpp::guild_scheduled_event_create_t >
< dpp::guild_scheduled_event_create_t >
dpp::event_router_t< dpp::guild_scheduled_event_delete_t >
< dpp::guild_scheduled_event_delete_t >
dpp::event_router_t< dpp::guild_scheduled_event_update_t >
< dpp::guild_scheduled_event_update_t >
dpp::event_router_t< dpp::guild_scheduled_event_user_add_t >
< dpp::guild_scheduled_event_user_add_t >
dpp::event_router_t< dpp::guild_scheduled_event_user_remove_t >
< dpp::guild_scheduled_event_user_remove_t >
dpp::event_router_t< dpp::guild_stickers_update_t >
< dpp::guild_stickers_update_t >
dpp::event_router_t< dpp::guild_update_t >
< dpp::guild_update_t >
dpp::event_router_t< dpp::integration_create_t >
< dpp::integration_create_t >
dpp::event_router_t< dpp::integration_delete_t >
< dpp::integration_delete_t >
dpp::event_router_t< dpp::integration_update_t >
< dpp::integration_update_t >
dpp::event_router_t< dpp::interaction_create_t >
< dpp::interaction_create_t >
dpp::event_router_t< dpp::invite_create_t >
< dpp::invite_create_t >
dpp::event_router_t< dpp::invite_delete_t >
< dpp::invite_delete_t >
dpp::event_router_t< dpp::log_t >
< dpp::log_t >
dpp::event_router_t< dpp::message_context_menu_t >
< dpp::message_context_menu_t >
dpp::event_router_t< dpp::message_create_t >
< dpp::message_create_t >
dpp::event_router_t< dpp::message_delete_bulk_t >
< dpp::message_delete_bulk_t >
dpp::event_router_t< dpp::message_delete_t >
< dpp::message_delete_t >
dpp::event_router_t< dpp::message_poll_vote_add_t >
< dpp::message_poll_vote_add_t >
dpp::event_router_t< dpp::message_poll_vote_remove_t >
< dpp::message_poll_vote_remove_t >
dpp::event_router_t< dpp::message_reaction_add_t >
< dpp::message_reaction_add_t >
dpp::event_router_t< dpp::message_reaction_remove_all_t >
< dpp::message_reaction_remove_all_t >
dpp::event_router_t< dpp::message_reaction_remove_emoji_t >
< dpp::message_reaction_remove_emoji_t >
dpp::event_router_t< dpp::message_reaction_remove_t >
< dpp::message_reaction_remove_t >
dpp::event_router_t< dpp::message_update_t >
< dpp::message_update_t >
dpp::event_router_t< dpp::presence_update_t >
< dpp::presence_update_t >
dpp::event_router_t< dpp::ready_t >
< dpp::ready_t >
dpp::event_router_t< dpp::resumed_t >
< dpp::resumed_t >
dpp::event_router_t< dpp::select_click_t >
< dpp::select_click_t >
dpp::event_router_t< dpp::slashcommand_t >
< dpp::slashcommand_t >
dpp::event_router_t< dpp::socket_close_t >
< dpp::socket_close_t >
dpp::event_router_t< dpp::stage_instance_create_t >
< dpp::stage_instance_create_t >
dpp::event_router_t< dpp::stage_instance_delete_t >
< dpp::stage_instance_delete_t >
dpp::event_router_t< dpp::stage_instance_update_t >
< dpp::stage_instance_update_t >
dpp::event_router_t< dpp::thread_create_t >
< dpp::thread_create_t >
dpp::event_router_t< dpp::thread_delete_t >
< dpp::thread_delete_t >
dpp::event_router_t< dpp::thread_list_sync_t >
< dpp::thread_list_sync_t >
dpp::event_router_t< dpp::thread_member_update_t >
< dpp::thread_member_update_t >
dpp::event_router_t< dpp::thread_members_update_t >
< dpp::thread_members_update_t >
dpp::event_router_t< dpp::thread_update_t >
< dpp::thread_update_t >
dpp::event_router_t< dpp::typing_start_t >
< dpp::typing_start_t >
dpp::event_router_t< dpp::user_context_menu_t >
< dpp::user_context_menu_t >
dpp::event_router_t< dpp::user_update_t >
< dpp::user_update_t >
dpp::event_router_t< dpp::voice_buffer_send_t >
< dpp::voice_buffer_send_t >
dpp::event_router_t< dpp::voice_channel_effect_send_t >
< dpp::voice_channel_effect_send_t >
dpp::event_router_t< dpp::voice_client_disconnect_t >
< dpp::voice_client_disconnect_t >
dpp::event_router_t< dpp::voice_client_platform_t >
< dpp::voice_client_platform_t >
dpp::event_router_t< dpp::voice_client_speaking_t >
< dpp::voice_client_speaking_t >
dpp::event_router_t< dpp::voice_ready_t >
< dpp::voice_ready_t >
dpp::event_router_t< dpp::voice_receive_t >
< dpp::voice_receive_t >
dpp::event_router_t< dpp::voice_server_update_t >
< dpp::voice_server_update_t >
dpp::event_router_t< dpp::voice_state_update_t >
< dpp::voice_state_update_t >
dpp::event_router_t< dpp::voice_track_marker_t >
< dpp::voice_track_marker_t >
dpp::event_router_t< dpp::webhooks_update_t >
< dpp::webhooks_update_t >
dpp::json_interface< T >
dpp::json_interface< user >
< user >
dpp::managed
id
dpp::snowflake
value
dpp::socket_engine_base
owner
fds_mutex
fds
stats
dpp::socket_stats
active_fds
deletions
errors
iterations
reads
updates
writes
engine_type
dpp::ssl_connection
buffer
cipher
hostname
obuffer
port
private_key_file
public_key_file
sfd
ssl
ssl_close_mutex
last_tick
start
connect_retries
bytes_in
bytes_out
unique_id
connected
keepalive
plaintext
raw_trace
tcp_connect_done
timer_handle
owner
dpp::user
global_name
username
avatar
avatar_decoration
primary_guild
flags
discriminator
refcount
dpp::utility::iconhash
first
second
dpp::utility::primaryguild
id
enabled
tag
badge
dpp::websocket_client
timed_out
timeout
int
openssl_connection *
size_t
atomic_bool
std::basic_string< Char >
std::basic_string_view< Char >
std::mutex
std::shared_mutex
std::string
std::string_view
std::unique_ptr< T >
ptr
std::unique_ptr< dpp::socket_engine_base >
ptr
< dpp::socket_engine_base >
std::unordered_map< K, T >
keys
elements
std::unordered_map< dpp::socket, std::unique_ptr< socket_events > >
< dpp::socket, std::unique_ptr< socket_events > >
time_t
uint16_t
uint32_t
uint64_t
uint8_t
websocket_protocol_t
- dpp::websocket_client
  buffer
- dpp::websocket_client
  bytes_in
- dpp::websocket_client
  bytes_out
- dpp::websocket_client
  cipher
- dpp::websocket_client
  close
- dpp::websocket_client
  complete_handshake
- dpp::websocket_client
  connect
- dpp::websocket_client
  connect_retries
- dpp::websocket_client
  connected
- dpp::websocket_client
  data_opcode
- dpp::websocket_client
  do_raw_trace
- dpp::websocket_client
  enable_raw_tracing
- dpp::websocket_client
  error
- dpp::websocket_client
  fill_header
- dpp::websocket_client
  get_bytes_in
- dpp::websocket_client
  get_bytes_out
- dpp::websocket_client
  get_cipher
- dpp::websocket_client
  get_state
- dpp::websocket_client
  get_unique_id
- dpp::websocket_client
  handle_buffer
- dpp::websocket_client
  handle_frame
- dpp::websocket_client
  handle_ping
- dpp::websocket_client
  hostname
- dpp::websocket_client
  http_headers
- dpp::websocket_client
  keepalive
- dpp::websocket_client
  key
- dpp::websocket_client
  last_tick
- dpp::websocket_client
  log
- dpp::websocket_client
  obuffer
- dpp::websocket_client
  on_buffer_drained
- dpp::websocket_client
  on_disconnect
- dpp::websocket_client
  on_error
- dpp::websocket_client
  on_read
- dpp::websocket_client
  on_write
- dpp::websocket_client
  one_second_timer
- dpp::websocket_client
  owner
- dpp::websocket_client
  parseheader
- dpp::websocket_client
  path
- dpp::websocket_client
  plaintext
- dpp::websocket_client
  port
- dpp::websocket_client
  private_key_file
- dpp::websocket_client
  public_key_file
- dpp::websocket_client
  raw_trace
- dpp::websocket_client
  read_loop
- dpp::websocket_client
  send_close_packet
- dpp::websocket_client
  sfd
- dpp::websocket_client
  socket_write
- dpp::websocket_client
  ssl
- dpp::websocket_client
  ssl_close_mutex
- dpp::websocket_client
  ssl_connection
- dpp::websocket_client
  ssl_connection
- dpp::websocket_client
  start
- dpp::websocket_client
  start_connecting
- dpp::websocket_client
  state
- dpp::websocket_client
  tcp_connect_done
- dpp::websocket_client
  timed_out
- dpp::websocket_client
  timeout
- dpp::websocket_client
  timer_handle
- dpp::websocket_client
  unique_id
- dpp::websocket_client
  websocket_client
- dpp::websocket_client
  write
- dpp::websocket_client
  ~ssl_connection
- dpp::websocket_client
  ~websocket_client