dpp::discord_client
dpp::websocket_client
discordclient.h
class friend class dpp::cluster dpp::cluster dpp::discord_client::cluster dpp::cluster

Needed to allow cluster::set_presence to use the ETF functions.

class friend class dpp::events::guild_create dpp::events::guild_create dpp::discord_client::guild_create dpp::events::guild_create

Needed so that guild_create can request member chunks if you have the correct intents.

class friend class dpp::events::voice_state_update dpp::events::voice_state_update dpp::discord_client::voice_state_update dpp::events::voice_state_update

Needed so that voice_state_update can call dpp::discord_client::disconnect_voice_internal.

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.

std::string std::string dpp::discord_client::last_ping_message last_ping_message dpp::discord_client::last_ping_message

Stores the most recent ping message on this shard, which we check for to monitor latency.

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.

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.

bool bool dpp::discord_client::compressed compressed dpp::discord_client::compressed

If true, stream compression is enabled.

time_t time_t dpp::discord_client::connect_time connect_time dpp::discord_client::connect_time

Last connect time of cluster.

std::string std::string dpp::discord_client::decompressed decompressed dpp::discord_client::decompressed

Decompressed string.

std::unique_ptr< etf_parser > std::unique_ptr<etf_parser> dpp::discord_client::etf etf dpp::discord_client::etf

ETF parser for when in ws_etf mode.

std::deque< std::string > std::deque<std::string> dpp::discord_client::message_queue message_queue dpp::discord_client::message_queue

Queue of outbound messages.

double double dpp::discord_client::ping_start ping_start dpp::discord_client::ping_start

Time last ping sent to websocket, in fractional seconds.

std::shared_mutex std::shared_mutex dpp::discord_client::queue_mutex queue_mutex dpp::discord_client::queue_mutex

Mutex for message queue.

std::unique_ptr< zlibcontext > std::unique_ptr<zlibcontext> dpp::discord_client::zlib zlib dpp::discord_client::zlib {}

This object contains the various zlib structs which are not usable by the user of the library directly. They are wrapped within this opaque object so that this header file does not bring in a dependency on zlib.h.

std::mutex std::mutex dpp::discord_client::zlib_mutex zlib_mutex dpp::discord_client::zlib_mutex

Mutex for zlib pointer.

std::unordered_map< snowflake, std::shared_ptr< voiceconn > > std::unordered_map<snowflake, std::shared_ptr<voiceconn> > dpp::discord_client::connecting_voice_channels connecting_voice_channels dpp::discord_client::connecting_voice_channels

List of voice channels we are connecting to keyed by guild id.

class dpp::cluster * class dpp::cluster* dpp::discord_client::creator creator dpp::discord_client::creator

Owning cluster.

uint32_t uint32_t dpp::discord_client::heartbeat_interval heartbeat_interval dpp::discord_client::heartbeat_interval

Heartbeat interval for sending heartbeat keepalive.

value in milliseconds

uint32_t uint32_t dpp::discord_client::intents intents dpp::discord_client::intents

Privileged gateway intents.

dpp::intents

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

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

time_t time_t dpp::discord_client::last_heartbeat last_heartbeat dpp::discord_client::last_heartbeat

Last heartbeat.

time_t time_t dpp::discord_client::last_heartbeat_ack last_heartbeat_ack dpp::discord_client::last_heartbeat_ack

Last heartbeat ACK (opcode 11).

uint64_t uint64_t dpp::discord_client::last_seq last_seq dpp::discord_client::last_seq

Last sequence number received, for resumes and pings.

uint32_t uint32_t dpp::discord_client::max_shards max_shards dpp::discord_client::max_shards

Total number of shards.

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.

websocket_protocol_t websocket_protocol_t dpp::discord_client::protocol protocol dpp::discord_client::protocol

Current websocket protocol, currently either ETF or JSON.

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.

bool bool dpp::discord_client::ready ready dpp::discord_client::ready

True if READY or RESUMED has been received.

uint32_t uint32_t dpp::discord_client::reconnects reconnects dpp::discord_client::reconnects

Reconnection count.

std::string std::string dpp::discord_client::resume_gateway_url resume_gateway_url dpp::discord_client::resume_gateway_url

The gateway address we reconnect to when we resume a session.

uint32_t uint32_t dpp::discord_client::resumes resumes dpp::discord_client::resumes

Resume count.

std::string std::string dpp::discord_client::sessionid sessionid dpp::discord_client::sessionid

Discord session id.

uint32_t uint32_t dpp::discord_client::shard_id shard_id dpp::discord_client::shard_id

Shard ID of this client.

std::string std::string dpp::discord_client::token token dpp::discord_client::token

Discord bot token.

std::shared_mutex std::shared_mutex dpp::discord_client::voice_mutex voice_mutex dpp::discord_client::voice_mutex

Mutex for voice connections map.

double double dpp::discord_client::websocket_ping websocket_ping dpp::discord_client::websocket_ping

Websocket latency in fractional seconds.

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

Connect to websocket server.

void void dpp::discord_client::disconnect_voice_internal (snowflake guild_id, bool send_json=true) disconnect_voice_internal dpp::discord_client::disconnect_voice_internal snowflake guild_id bool send_json true

Disconnect from the connected voice channel on a guild.

guild_id

The guild who's voice channel you wish to disconnect from

send_json

True if we should send a json message confirming we are leaving the VC Should be set to false if we already receive this message in an event.

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
void void dpp::discord_client::start_connecting () start_connecting dpp::discord_client::start_connecting

Start connecting the websocket.

Called from the constructor, or during reconnection

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

void void dpp::discord_client::cleanup () cleanup dpp::discord_client::cleanup

Clean up resources.

std::string std::string dpp::discord_client::jsonobj_to_string (const nlohmann::json &json) jsonobj_to_string dpp::discord_client::jsonobj_to_string const nlohmann::json & json

Convert a JSON object to string. In JSON protocol mode, call json.dump(), and in ETF mode, call etf::build().

json

nlohmann::json object to convert

std::string string output in the correct format

void void dpp::discord_client::set_resume_hostname () set_resume_hostname dpp::discord_client::set_resume_hostname

Update the websocket hostname with the resume url from the last READY event.

dpp::discord_client::discord_client
(discord_client &old, uint64_t sequence, const std::string &session_id)
discord_client
dpp::discord_client::discord_client
discord_client & old
uint64_t sequence
const std::string & session_id

Construct a discord_client object from another discord_client object Used when resuming, the url to connect to will be taken from the resume url of the other object, along with the seq number.

old

Previous connection to resume from

sequence

Sequence number of previous session

session_id

Session ID of previous session

dpp::discord_client::discord_client
(dpp::cluster *_cluster, uint32_t _shard_id, uint32_t _max_shards, const std::string &_token, uint32_t intents=0, bool compressed=true, websocket_protocol_t ws_protocol=ws_json)
discord_client
dpp::discord_client::discord_client
dpp::cluster * _cluster
uint32_t _shard_id
uint32_t _max_shards
const std::string & _token
uint32_t intents 0
bool compressed true
websocket_protocol_t ws_protocol ws_json

Construct a new discord_client object.

_cluster

The owning cluster for this shard

_shard_id

The ID of the shard to start

_max_shards

The total number of shards across all clusters

_token

The bot token to use for identifying to the websocket

intents

Privileged intents to use, a bitmask of values from dpp::intents

compressed

True if the received data will be gzip compressed

ws_protocol

Websocket protocol to use for the connection, JSON or ETF

std::bad_alloc

Passed up to the caller if any internal objects fail to allocate, after cleanup has completed

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

Destroy the discord client object.

discord_client & discord_client & dpp::discord_client::clear_queue () clear_queue dpp::discord_client::clear_queue

Clear the outbound message queue.

reference to self

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

discord_client & discord_client & dpp::discord_client::connect_voice (snowflake guild_id, snowflake channel_id, bool self_mute=false, bool self_deaf=false, bool enable_dave=true) connect_voice dpp::discord_client::connect_voice snowflake guild_id snowflake channel_id bool self_mute false bool self_deaf false bool enable_dave true

Connect to a voice channel.

guild_id

Guild where the voice channel is

channel_id

Channel ID of the voice channel

self_mute

True if the bot should mute itself

self_deaf

True if the bot should deafen itself

enable_dave

True to enable DAVE E2EE

reference to self

This is NOT a synchronous blocking call! The bot isn't instantly ready to send or listen for audio, as we have to wait for the connection to the voice server to be established! e.g. wait for dpp::cluster::on_voice_ready event, and then send the audio within that event.

discord_client & discord_client & dpp::discord_client::disconnect_voice (snowflake guild_id) disconnect_voice dpp::discord_client::disconnect_voice snowflake guild_id

Disconnect from the connected voice channel on a guild.

guild_id

The guild who's voice channel you wish to disconnect from

reference to self

This is NOT a synchronous blocking call! The bot isn't instantly disconnected.

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::discord_client::error (uint32_t errorcode) override error dpp::discord_client::error error uint32_t errorcode

Handle a websocket error.

errorcode

The error returned from the websocket

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

uint64_t uint64_t dpp::discord_client::get_channel_count () get_channel_count dpp::discord_client::get_channel_count

Get the Channel Count for this shard.

uint64_t channel count

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::discord_client::get_decompressed_bytes_in () get_decompressed_bytes_in dpp::discord_client::get_decompressed_bytes_in

Get decompressed total bytes received.

This will always return 0 if the connection is not compressed

uint64_t compressed bytes received

uint64_t uint64_t dpp::discord_client::get_guild_count () get_guild_count dpp::discord_client::get_guild_count

Get the Guild Count for this shard.

uint64_t guild count

uint64_t uint64_t dpp::discord_client::get_member_count () get_member_count dpp::discord_client::get_member_count

Get the Member Count for this shard.

uint64_t member count

size_t size_t dpp::discord_client::get_queue_size () get_queue_size dpp::discord_client::get_queue_size

Get the size of the outbound message queue.

The size of the queue

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

dpp::utility::uptime dpp::utility::uptime dpp::discord_client::get_uptime () get_uptime dpp::discord_client::get_uptime

Returns the connection time of the shard.

dpp::utility::uptime Detail of how long the shard has been connected for

voiceconn * voiceconn * dpp::discord_client::get_voice (snowflake guild_id) get_voice dpp::discord_client::get_voice snowflake guild_id

Get the dpp::voiceconn object for a specific guild on this shard.

guild_id

The guild ID to retrieve the voice connection for

voiceconn* The voice connection for the guild, or nullptr if there is no voice connection to this guild.

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.

void virtual void dpp::discord_client::handle_event (const std::string &event, json &j, const std::string &raw) handle_event dpp::discord_client::handle_event const std::string & event json & j const std::string & raw

Handle an event (opcode 0).

event

Event name, e.g. MESSAGE_CREATE

j

JSON object for the event content

raw

Raw JSON event string

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

Handle JSON from the websocket.

buffer

The entire buffer content from the websocket client

opcode

The type of frame, e.g. text or binary

True if a frame has been handled

bool bool dpp::discord_client::is_connected () is_connected dpp::discord_client::is_connected

Returns true if the shard is connected.

True if connected

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

Log a message to whatever log the user is using. The logged message is passed up the chain to the on_log event in user code which can then do whatever it wants to do with it.

severity

The log level from dpp::loglevel

msg

The log message to output

void virtual void dpp::discord_client::on_disconnect () override on_disconnect dpp::discord_client::on_disconnect on_disconnect

Called when the HTTP socket is closed.

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::discord_client::one_second_timer () override one_second_timer dpp::discord_client::one_second_timer one_second_timer

Fires every second from the underlying socket I/O loop, used for sending heartbeats and any queued outbound websocket frames.

void void dpp::discord_client::queue_message (const std::string &j, bool to_front=false) queue_message dpp::discord_client::queue_message const std::string & j bool to_front false

Queue a message to be sent via the websocket.

j

The JSON data of the message to be sent

to_front

If set to true, will place the message at the front of the queue not the back (this is for urgent messages such as heartbeat, presence, so they can take precedence over chunk requests etc)

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::discord_client::run () run dpp::discord_client::run

Start and monitor I/O loop.

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.

Implements a discord client. Each discord_client connects to one shard and derives from a websocket client.

dpp::discord_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::discord_client
last_ping_message
resume_gateway_url
sessionid
token
creator
heartbeat_interval
intents
max_shards
reconnects
resumes
shard_id
last_heartbeat
last_heartbeat_ack
last_seq
voice_mutex
websocket_ping
ready
protocol
connecting_voice_channels
dpp::discord_voice_client
creator
reconnection_callback
terminating
current_gain
end_gain
increment
heartbeat_interval
last_heartbeat
sessionid
token
channel_id
server_id
moving_average
send_audio_type
iteration_interval
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::moving_averager
values
collectionCount
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
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::voiceconn
channel_id
guild_id
session_id
token
websocket_hostname
voiceclient
dave
dpp::websocket_client
timed_out
timeout
send_audio_type_t
float
int
int64_t
openssl_connection *
size_t
atomic_bool
std::basic_string< Char >
std::basic_string_view< Char >
std::deque< T >
elements
std::deque< int64_t >
elements
< int64_t >
std::enable_shared_from_this< voiceconn >
function< void()>
std::shared_mutex
std::shared_ptr< T >
ptr
std::shared_ptr< dpp::voiceconn >
ptr
< dpp::voiceconn >
std::string
std::string_view
std::unique_ptr< T >
ptr
std::unique_ptr< class dpp::discord_voice_client >
ptr
< class dpp::discord_voice_client >
std::unique_ptr< dpp::socket_engine_base >
ptr
< dpp::socket_engine_base >
std::unordered_map< K, T >
keys
elements
std::unordered_map< dpp::snowflake, std::shared_ptr< dpp::voiceconn > >
keys
elements
< dpp::snowflake, std::shared_ptr< dpp::voiceconn > >
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::discord_client
  buffer
- dpp::discord_client
  bytes_in
- dpp::discord_client
  bytes_out
- dpp::discord_client
  cipher
- dpp::discord_client
  cleanup
- dpp::discord_client
  clear_queue
- dpp::discord_client
  close
- dpp::discord_client
  complete_handshake
- dpp::discord_client
  compressed
- dpp::discord_client
  connect
- dpp::discord_client
  connect_retries
- dpp::discord_client
  connect_time
- dpp::discord_client
  connect_voice
- dpp::discord_client
  connected
- dpp::discord_client
  connecting_voice_channels
- dpp::discord_client
  creator
- dpp::discord_client
  decompressed
- dpp::discord_client
  disconnect_voice
- dpp::discord_client
  disconnect_voice_internal
- dpp::discord_client
  discord_client
- dpp::discord_client
  discord_client
- dpp::discord_client
  do_raw_trace
- dpp::discord_client
  dpp::cluster
- dpp::discord_client
  dpp::events::guild_create
- dpp::discord_client
  dpp::events::voice_state_update
- dpp::discord_client
  enable_raw_tracing
- dpp::discord_client
  error
- dpp::discord_client
  etf
- dpp::discord_client
  get_bytes_in
- dpp::discord_client
  get_bytes_out
- dpp::discord_client
  get_channel_count
- dpp::discord_client
  get_cipher
- dpp::discord_client
  get_decompressed_bytes_in
- dpp::discord_client
  get_guild_count
- dpp::discord_client
  get_member_count
- dpp::discord_client
  get_queue_size
- dpp::discord_client
  get_state
- dpp::discord_client
  get_unique_id
- dpp::discord_client
  get_uptime
- dpp::discord_client
  get_voice
- dpp::discord_client
  handle_buffer
- dpp::discord_client
  handle_event
- dpp::discord_client
  handle_frame
- dpp::discord_client
  heartbeat_interval
- dpp::discord_client
  hostname
- dpp::discord_client
  intents
- dpp::discord_client
  is_connected
- dpp::discord_client
  jsonobj_to_string
- dpp::discord_client
  keepalive
- dpp::discord_client
  last_heartbeat
- dpp::discord_client
  last_heartbeat_ack
- dpp::discord_client
  last_ping_message
- dpp::discord_client
  last_seq
- dpp::discord_client
  last_tick
- dpp::discord_client
  log
- dpp::discord_client
  max_shards
- dpp::discord_client
  message_queue
- dpp::discord_client
  obuffer
- dpp::discord_client
  on_buffer_drained
- dpp::discord_client
  on_disconnect
- dpp::discord_client
  on_error
- dpp::discord_client
  on_read
- dpp::discord_client
  on_write
- dpp::discord_client
  one_second_timer
- dpp::discord_client
  owner
- dpp::discord_client
  ping_start
- dpp::discord_client
  plaintext
- dpp::discord_client
  port
- dpp::discord_client
  private_key_file
- dpp::discord_client
  protocol
- dpp::discord_client
  public_key_file
- dpp::discord_client
  queue_message
- dpp::discord_client
  queue_mutex
- dpp::discord_client
  raw_trace
- dpp::discord_client
  read_loop
- dpp::discord_client
  ready
- dpp::discord_client
  reconnects
- dpp::discord_client
  resume_gateway_url
- dpp::discord_client
  resumes
- dpp::discord_client
  run
- dpp::discord_client
  send_close_packet
- dpp::discord_client
  sessionid
- dpp::discord_client
  set_resume_hostname
- dpp::discord_client
  sfd
- dpp::discord_client
  shard_id
- dpp::discord_client
  socket_write
- dpp::discord_client
  ssl
- dpp::discord_client
  ssl_connection
- dpp::discord_client
  ssl_connection
- dpp::discord_client
  start
- dpp::discord_client
  start_connecting
- dpp::discord_client
  start_connecting
- dpp::discord_client
  tcp_connect_done
- dpp::discord_client
  timed_out
- dpp::discord_client
  timeout
- dpp::discord_client
  timer_handle
- dpp::discord_client
  token
- dpp::discord_client
  unique_id
- dpp::discord_client
  voice_mutex
- dpp::discord_client
  websocket_client
- dpp::discord_client
  websocket_ping
- dpp::discord_client
  write
- dpp::discord_client
  zlib
- dpp::discord_client
  zlib_mutex
- dpp::discord_client
  ~discord_client
- dpp::discord_client
  ~ssl_connection
- dpp::discord_client
  ~websocket_client