D++ (DPP)
C++ Discord API Bot Library
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 1234]
 Cdpp::active_thread_infoA thread alongside the bot's optional thread_member object tied to it
 Cdpp::activityAn activity is a representation of what a user is doing. It might be a game, or a website, or a movie. Whatever
 Cdpp::activity_assetsAn activity asset are the images and the hover text displayed in the rich presence
 Cdpp::activity_buttonAn activity button is a custom button shown in the rich presence. Can be to join a game or whatever
 Cdpp::activity_partyInformation for the current party of the player
 Cdpp::activity_secretsSecrets for Rich Presence joining and spectating
 Cdpp::message::allowed_refAllowed mentions details
 Cdpp::app_teamRepresents a team of users who maintain a bot/application
 Cdpp::application_install_paramsRepresents the settings for the bot/application's in-app authorization link
 Cdpp::detail::when_any::arg_helper_s< T >Type trait helper to obtain the actual type that will be used by a when_any when a type is passed as a parameter. May specialize for certain types for specific behavior, e.g. for an event_router, store the awaitable directly
 Cdpp::detail::when_any::arg_helper_s< dpp::event_router_t< T > >
 Cdpp::detail::async::async_base< R >Base class of dpp::async
 Cdpp::detail::async::async_callback_data< R >State of the async and its callback
 Cdpp::attachmentRepresents an attachment in a dpp::message
 Cdpp::audio_mixerA class for audio mixing operations using AVX instructions
 Cdpp::audit_changeDefines audit log changes
 Cdpp::audit_extraExtra information for an audit log entry
 Cdpp::detail::event_router::awaitable< T >Awaitable object representing an event. A user can co_await on this object to resume the next time the event is fired, optionally with a condition
 Cdpp::when_any< Args >::awaiterObject returned by operator co_await(). Meant to be used by the standard library, not by a user
 Cdpp::bucket_tA rate limit bucket. The library builds one of these for each endpoint
 Cdpp::cache< T >A cache object maintains a cache of dpp::managed objects
 Cdpp::cache_policy_tRepresents the caching policy of the cluster
 Cdpp::clusterThe cluster class represents a group of shards and a command queue for sending and receiving commands from discord via HTTP. You should usually instantiate a cluster object at the very least to make use of the library
 Cdpp::collector< T, C >Collects objects from events during a specified time period
 Cdpp::command_data_optionValues in the command interaction. These are the values specified by the user when actually issuing the command on a channel or in DM
 Cdpp::command_info_tRepresents the details of a command added to the command handler class
 Cdpp::command_interactionDetails of a command within an interaction. This subobject represents the application command associated with the interaction
 Cdpp::command_resolvedResolved snowflake ids to users, guild members, roles and channels. You can use the interaction::get_resolved_* methods to easily get a resolved set
 Cdpp::command_sourceRepresents the sending source of a command. This is passed to any command handler and should be passed back to commandhandler::reply(), allowing the reply method to route any replies back to the origin, which may be a slash command or a message. Both require different response facilities but we want this to be transparent if you use the command handler class
 Cdpp::commandhandlerThe commandhandler class represents a group of commands, prefixed or slash commands with handling functions
 Cdpp::component_interactionA button click for a button component
 Cdpp::confirmationConfirmation object represents any true or false simple REST request
 Cdpp::confirmation_callback_tThe results of a REST call wrapped in a convenient struct
 Cdpp::connectionThe connection object that the user has attached
 Cdpp::detail::coroutine::coroutine_base< R >Base class of dpp::coroutine<R>
 Cdpp::detail::std_coroutine::coroutine_traits< dpp::coroutine< R >, Args... >Specialization of std::coroutine_traits, helps the standard library figure out a promise type from a coroutine function
 Cdpp::detail::std_coroutine::coroutine_traits< dpp::job, Args... >Specialization of std::coroutine_traits, helps the standard library figure out a promise type from a coroutine function
 Cdpp::detail::std_coroutine::coroutine_traits< dpp::task< T >, Args... >Specialization of std::coroutine_traits, helps the standard library figure out a promise_t type from a coroutine function
 Cdpp::dns_cache_entryRepresents a cached DNS result. Used by the ssl_client class to store cached copies of dns lookups
 Cdpp::utility::dummy< T >Utility struct that has the same size and alignment as another but does nothing. Useful for ABI compatibility
 Cdpp::embedA rich embed for display within a dpp::message
 Cdpp::embed_authorAuthor within a dpp::embed object
 Cdpp::embed_fieldA dpp::embed may contain zero or more fields
 Cdpp::embed_footerA footer in a dpp::embed
 Cdpp::embed_imageAn video, image or thumbnail in a dpp::embed
 Cdpp::embed_providerEmbed provider in a dpp::embed. Received from discord but cannot be sent
 Cdpp::detail::when_any::emptyEmpty result from void-returning awaitable
 Cdpp::detail::empty_tag_tEmpty struct used for overload resolution
 Cdpp::error_detailThe details of a field in an error response
 Cdpp::error_infoThe full details of an error from a REST response
 Cdpp::etf_bufferRepresents a buffer of bytes being encoded into ETF
 Cdpp::etf_parserThe etf_parser class can serialise and deserialise ETF (Erlang Term Format) into and out of an nlohmann::json object, so that layers above the websocket don't have to be any different for handling ETF
 Cdpp::events::eventAn event object represents an event handled internally, passed from the websocket e.g. MESSAGE_CREATE
 Cdpp::event_dispatch_tBase event parameter struct. Each event you receive from the library will have its parameter derived from this class. The class contains the raw event data, and a pointer to the current shard's dpp::discord_client object. You can also use this object to cancel the current event, meaning that any listeners after yours do not get notified of the current event if you call it
 Cdpp::event_entitiesEntities for the event
 Cdpp::event_memberRepresents a guild member/user who has registered interest in an event
 Cdpp::event_router_t< T >Handles routing of an event to multiple listeners. Multiple listeners may attach to the event_router_t by means of operator(). Passing a lambda into operator() attaches to the event
 Cstd::exceptionSTL class
 Cdpp::detail::coroutine::final_awaiter< R >Struct returned by a coroutine's final_suspend, resumes the continuation
 Cdpp::detail::task::final_awaiter< R >The object automatically co_await-ed at the end of a task. Ensures nested coroutine chains are resolved, and the promise_t cleans up if it needs to
 Cdpp::gatewayRepresents the various information from the 'get gateway bot' api call
 Cdpp::guild_memberRepresents dpp::user membership upon a dpp::guild. This contains the user's nickname, guild roles, and any other guild-specific flags
 Cdpp::guild_widgetRepresents a guild widget, simple web widget of member list
 Cstd::hash< dpp::snowflake >
 Cdpp::http_connect_infoRepresents a HTTP scheme, hostname and port split into parts for easy use in https_client
 Cdpp::http_requestA HTTP request
 Cdpp::http_request_completion_tThe result of any HTTP request. Contains the headers, vital rate limit figures, and returned request body
 Cdpp::utility::iconhashStore a 128 bit icon hash (profile picture, server icon etc) as a 128 bit binary value made of two uint64_t. Has a constructor to build one from a string, and a method to fetch the value back in string form
 Cdpp::in_threadRepresents a thread in the thread pool handling requests to HTTP(S) servers. There are several of these, the total defined by a constant in queues.cpp, and each one will always receive requests for the same rate limit bucket based on its endpoint portion of the url. This makes rate limit handling reliable and easy to manage. Each of these also has its own mutex, so that requests are less likely to block while waiting for internal containers to be usable
 Cdpp::component::inner_emoji
 Cdpp::select_option::inner_select_emojiEmoji definition. To set an emoji on your button you must set one of either the name or id fields. The easiest way is to use the component::set_emoji method
 Cdpp::integration_appAn application that has been integrated
 Cdpp::jobExtremely light coroutine object designed to send off a coroutine to execute on its own. Can be used in conjunction with coroutine events via event routers, or on its own
 Cdpp::json_interface< T >Represents an interface for an object that can optionally implement functions for converting to and from nlohmann::json. In the event either parse_from_json() or build_json() are not implemented and are called, they will throw at runtime
 Cdpp::json_interface< application >
 Cdpp::json_interface< application_role_connection >
 Cdpp::json_interface< application_role_connection_metadata >
 Cdpp::json_interface< audit_entry >
 Cdpp::json_interface< auditlog >
 Cdpp::json_interface< automod_action >
 Cdpp::json_interface< automod_metadata >
 Cdpp::json_interface< automod_rule >
 Cdpp::json_interface< ban >
 Cdpp::json_interface< channel >
 Cdpp::json_interface< command_option >
 Cdpp::json_interface< command_option_choice >
 Cdpp::json_interface< command_permission >
 Cdpp::json_interface< component >
 Cdpp::json_interface< dtemplate >
 Cdpp::json_interface< emoji >
 Cdpp::json_interface< forum_tag >
 Cdpp::json_interface< guild >
 Cdpp::json_interface< guild_command_permissions >
 Cdpp::json_interface< integration >
 Cdpp::json_interface< interaction >
 Cdpp::json_interface< interaction_modal_response >
 Cdpp::json_interface< interaction_response >
 Cdpp::json_interface< invite >
 Cdpp::json_interface< onboarding >
 Cdpp::json_interface< onboarding_prompt >
 Cdpp::json_interface< onboarding_prompt_option >
 Cdpp::json_interface< presence >
 Cdpp::json_interface< prune >
 Cdpp::json_interface< role >
 Cdpp::json_interface< scheduled_event >
 Cdpp::json_interface< select_option >
 Cdpp::json_interface< slashcommand >
 Cdpp::json_interface< stage_instance >
 Cdpp::json_interface< sticker >
 Cdpp::json_interface< sticker_pack >
 Cdpp::json_interface< user >
 Cdpp::json_interface< user_identified >
 Cdpp::json_interface< voiceregion >
 Cdpp::json_interface< voicestate >
 Cdpp::json_interface< webhook >
 Cdpp::json_interface< welcome_channel >
 Cdpp::json_interface< welcome_screen >
 Cdpp::managedThe managed class is the base class for various types that can be stored in a cache that are identified by a dpp::snowflake id
 Cdpp::message::message_interaction_structReference to an interaction
 Cdpp::message::message_refReference to another message, e.g. a reply
 Cdpp::moving_averager
 Cdpp::multipart_contentRepresents a multipart mime body and the correct top-level mime type If a non-multipart request is passed in, this is represented as a plain body and the application/json mime type
 Cdpp::oneshot_timerTrigger a timed event once. The provided callback is called only once
 Cdpp::param_infoDetails of a command parameter used in registration. Note that for non-slash commands optional parameters can only be at the end of the list of parameters
 Cdpp::permissionRepresents a permission bitmask (refer to enum dpp::permissions) which are held in an uint64_t
 Cdpp::permission_overwriteChannel permission overwrites
 Cdpp::detail::job::promise< Args >Coroutine promise type for a job
 Cdpp::detail::task::promise_baseBase implementation of task::promise_t, without the logic that would depend on the return type. Meant to be inherited from
 Cdpp::detail::coroutine::promise_t< R >Promise type for coroutine
 Cdpp::detail::coroutine::promise_t< void >Struct returned by a coroutine's final_suspend, resumes the continuation
 Cdpp::detail::task::promise_base::proxy_awaiter< A >Proxy awaitable that wraps any co_await inside the task and checks for cancellation on resumption
 Cdpp::reactionRepresents a reaction to a dpp::message
 Cdpp::request_queueThe request_queue class manages rate limits and marshalls HTTP requests that have been built as http_request objects
 Cdpp::resolved_userDpp::resolved_user contains both a dpp::guild_member and a dpp::user. The user can be used to obtain in-depth user details such as if they are nitro, and the guild member information to check their roles on a guild etc. The Discord API provides both if a parameter is a user ping, so we offer both in a combined structure
 Cdpp::when_any< Args >::resultObject returned by operator co_await() on resumption. Can be moved but not copied
 Cdpp::discord_voice_client::voice_payload_parking_lot::seq_range_tThe range of RTP packet sequence number and timestamp in the lot
 Cdpp::snowflakeA container for a 64 bit unsigned value representing many things on discord. This value is known in distributed computing as a snowflake value
 Cdpp::ssl_clientImplements a simple non-blocking SSL stream client
 Cdpp::detail::task::task_base< R >Base class of dpp::task
 Cdpp::team_memberRepresents a team member on a team who maintain a bot/application
 Cdpp::thread_memberRepresents membership of a user with a thread
 Cdpp::thread_metadataMetadata for threads
 Cdpp::timed_listener< attached_event, listening_function >A timed_listener is a way to temporarily attach to an event for a specific timeframe, then detach when complete. A lambda may also be optionally called when the timeout is reached. Destructing the timed_listener detaches any attached event listeners, and cancels any created timers, but does not call any timeout lambda
 Cdpp::timer_tUsed internally to store state of active timers
 Cdpp::type_punnerA horrible structure used within the ETF parser to convert uint64_t to double and back. This is horrible, but it is the official way erlang term format does this, so we can't really mess with it much
 Cdpp::utility::uptimeA class used to represent an uptime in hours, minutes, seconds and days, with helper functions to convert from time_t and display as a string
 Cdpp::version_checker
 Cdpp::voice_out_packetAn opus-encoded RTP packet to be sent out to a voice channel
 Cdpp::voiceconnRepresents a connection to a voice channel. A client can only connect to one voice channel per guild at a time, so these are stored in a map in the dpp::discord_client keyed by guild_id
 Cdpp::when_any< Args >Experimental class to co_await on a bunch of awaitable objects, resuming when the first one completes. On completion, returns a result object that contains the index of the awaitable that finished first. A user can call result::index() and result::get<N>() on the result object to get the result, similar to std::variant
D++ Library version 10.0.35D++ Library version 10.0.34D++ Library version 10.0.33D++ Library version 10.0.32D++ Library version 10.0.31D++ Library version 10.0.30D++ Library version 10.0.29D++ Library version 10.0.28D++ Library version 10.0.27D++ Library version 10.0.26D++ Library version 10.0.25D++ Library version 10.0.24D++ Library version 10.0.23D++ Library version 10.0.22D++ Library version 10.0.21D++ Library version 10.0.20D++ Library version 10.0.19D++ Library version 10.0.18D++ Library version 10.0.17D++ Library version 10.0.16D++ Library version 10.0.15D++ Library version 10.0.14D++ Library version 10.0.13D++ Library version 10.0.12D++ Library version 10.0.11D++ Library version 10.0.10D++ Library version 10.0.9D++ Library version 10.0.8D++ Library version 10.0.7D++ Library version 10.0.6D++ Library version 10.0.5D++ Library version 10.0.4D++ Library version 10.0.3D++ Library version 10.0.2D++ Library version 10.0.1D++ Library version 10.0.0D++ Library version 9.0.19D++ Library version 9.0.18D++ Library version 9.0.17D++ Library version 9.0.16D++ Library version 9.0.15D++ Library version 9.0.14D++ Library version 9.0.13D++ Library version 9.0.12D++ Library version 9.0.11D++ Library version 9.0.10D++ Library version 9.0.9D++ Library version 9.0.8D++ Library version 9.0.7D++ Library version 9.0.6D++ Library version 9.0.5D++ Library version 9.0.4D++ Library version 9.0.3D++ Library version 9.0.2D++ Library version 9.0.1D++ Library version 9.0.0D++ Library version 1.0.2D++ Library version 1.0.1D++ Library version 1.0.0