Unity Scopes API
|
A simple interface for integrating online accounts access and monitoring into scopes. More...
#include <unity/scopes/OnlineAccountClient.h>
Classes | |
struct | ServiceStatus |
A container for details about a service's status and authorization parameters. More... | |
Public Types | |
enum | MainLoopSelect { RunInExternalMainLoop, CreateInternalMainLoop } |
Indicates whether an external main loop already exists, or one should be created internally. More... | |
enum | PostLoginAction { Unknown, DoNothing, InvalidateResults, ContinueActivation, LastActionCode_ = ContinueActivation } |
Indicates what action to take when the login process completes. More... | |
typedef std::function< void(ServiceStatus const &)> | ServiceUpdateCallback |
Function signature for the service update callback. More... | |
Public Member Functions | |
OnlineAccountClient (std::string const &service_name, std::string const &service_type, std::string const &provider_name, MainLoopSelect main_loop_select=CreateInternalMainLoop) | |
Create OnlineAccountClient for the specified account service. More... | |
void | set_service_update_callback (ServiceUpdateCallback callback) |
Set the callback function to be invoked when a service status changes. More... | |
void | refresh_service_statuses () |
Refresh all service statuses. More... | |
std::vector< ServiceStatus > | get_service_statuses () |
Get statuses for all services matching the name, type and provider specified on construction. More... | |
void | register_account_login_item (Result &result, CannedQuery const &query, PostLoginAction login_passed_action, PostLoginAction login_failed_action) |
Register a result item that requires the user to be logged in. More... | |
void | register_account_login_item (PreviewWidget &widget, PostLoginAction login_passed_action, PostLoginAction login_failed_action) |
Register a widget item that requires the user to be logged in. More... | |
A simple interface for integrating online accounts access and monitoring into scopes.
Each instantiation of this class targets a particular account service as specified on construction.
typedef std::function<void(ServiceStatus const&)> unity::scopes::OnlineAccountClient::ServiceUpdateCallback |
Function signature for the service update callback.
Indicates whether an external main loop already exists, or one should be created internally.
A running main loop is essential in order to receive service updates from the online accounts backend. When in doubt, set to CreateInternalMainLoop.
Enumerator | |
---|---|
RunInExternalMainLoop |
An external main loop already exists and is running. |
CreateInternalMainLoop |
An external main loop does not exist. |
Indicates what action to take when the login process completes.
unity::scopes::OnlineAccountClient::OnlineAccountClient | ( | std::string const & | service_name, |
std::string const & | service_type, | ||
std::string const & | provider_name, | ||
MainLoopSelect | main_loop_select = CreateInternalMainLoop |
||
) |
Create OnlineAccountClient for the specified account service.
service_name | The name of the service (E.g. "com.ubuntu.scopes.youtube_youtube"). |
service_type | The type of service (E.g. "sharing"). |
provider_name | The name of the service provider (E.g. "google"). |
main_loop_select | Indicates whether or not an external main loop exists (see OnlineAccountClient::MainLoopSelect). |
std::vector< OnlineAccountClient::ServiceStatus > unity::scopes::OnlineAccountClient::get_service_statuses | ( | ) |
Get statuses for all services matching the name, type and provider specified on construction.
void unity::scopes::OnlineAccountClient::refresh_service_statuses | ( | ) |
Refresh all service statuses.
WARNING: If a service update callback is set, this method will invoke that callback for each service monitored. Therefore, DO NOT call this method from within your callback function!
void unity::scopes::OnlineAccountClient::register_account_login_item | ( | Result & | result, |
CannedQuery const & | query, | ||
PostLoginAction | login_passed_action, | ||
PostLoginAction | login_failed_action | ||
) |
Register a result item that requires the user to be logged in.
result | The result item that needs account access. |
query | The scope's current query. |
login_passed_action | The action to take upon successful login. |
login_failed_action | The action to take upon unsuccessful login. |
void unity::scopes::OnlineAccountClient::register_account_login_item | ( | PreviewWidget & | widget, |
PostLoginAction | login_passed_action, | ||
PostLoginAction | login_failed_action | ||
) |
Register a widget item that requires the user to be logged in.
widget | The widget item that needs account access. |
login_passed_action | The action to take upon successful login. |
login_failed_action | The action to take upon unsuccessful login. |
void unity::scopes::OnlineAccountClient::set_service_update_callback | ( | ServiceUpdateCallback | callback | ) |
Set the callback function to be invoked when a service status changes.
callback | The external callback function. |