#if !defined(_CRT_SECURE_NO_WARNINGS) #define _CRT_SECURE_NO_WARNINGS #endif #include "application_manager.h" #include "core.h" #include #include namespace discord { void ApplicationManager::ValidateOrExit(std::function callback) { static auto wrapper = [](void* callbackData, EDiscordResult result) -> void { std::unique_ptr> cb( reinterpret_cast*>(callbackData)); if (!cb || !(*cb)) { return; } (*cb)(static_cast(result)); }; std::unique_ptr> cb{}; cb.reset(new std::function(std::move(callback))); internal_->validate_or_exit(internal_, cb.release(), wrapper); } void ApplicationManager::GetCurrentLocale(char locale[128]) { if (!locale) { return; } internal_->get_current_locale(internal_, reinterpret_cast(locale)); } void ApplicationManager::GetCurrentBranch(char branch[4096]) { if (!branch) { return; } internal_->get_current_branch(internal_, reinterpret_cast(branch)); } void ApplicationManager::GetOAuth2Token(std::function callback) { static auto wrapper = [](void* callbackData, EDiscordResult result, DiscordOAuth2Token* oauth2Token) -> void { std::unique_ptr> cb( reinterpret_cast*>(callbackData)); if (!cb || !(*cb)) { return; } (*cb)(static_cast(result), *reinterpret_cast(oauth2Token)); }; std::unique_ptr> cb{}; cb.reset(new std::function(std::move(callback))); internal_->get_oauth2_token(internal_, cb.release(), wrapper); } void ApplicationManager::GetTicket(std::function callback) { static auto wrapper = [](void* callbackData, EDiscordResult result, char const* data) -> void { std::unique_ptr> cb( reinterpret_cast*>(callbackData)); if (!cb || !(*cb)) { return; } (*cb)(static_cast(result), static_cast(data)); }; std::unique_ptr> cb{}; cb.reset(new std::function(std::move(callback))); internal_->get_ticket(internal_, cb.release(), wrapper); } } // namespace discord