Unity Scopes API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
OnlineAccountClient.h
1 /*
2  * Copyright (C) 2014 Canonical Ltd
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License version 3 as
6  * published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU Lesser General Public License for more details.
12  *
13  * You should have received a copy of the GNU Lesser General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  * Authored by: Marcus Tomlinson <marcus.tomlinson@canonical.com>
17  */
18 
19 #ifndef UNITY_SCOPES_ONLINEACCOUNTCLIENT_H
20 #define UNITY_SCOPES_ONLINEACCOUNTCLIENT_H
21 
22 #include <unity/scopes/CannedQuery.h>
23 #include <unity/scopes/PreviewWidget.h>
24 #include <unity/scopes/Result.h>
25 #include <unity/util/NonCopyable.h>
26 
27 #include <memory>
28 
29 namespace unity
30 {
31 
32 namespace scopes
33 {
34 
35 namespace internal
36 {
37 class OnlineAccountClientImpl;
38 }
39 
47 {
48 public:
50  NONCOPYABLE(OnlineAccountClient);
52 
57  {
58  uint account_id;
61  std::string client_id;
62  std::string client_secret;
63  std::string access_token;
64  std::string token_secret;
65  std::string error;
66  };
67 
76  {
80  };
82 
91  OnlineAccountClient(std::string const& service_name,
92  std::string const& service_type,
93  std::string const& provider_name,
94  MainLoopSelect main_loop_select = RunInExternalMainLoop);
95 
99 
104  typedef std::function<void(ServiceStatus const&)> ServiceUpdateCallback;
105 
110  void set_service_update_callback(ServiceUpdateCallback callback);
111 
119 
125  std::vector<ServiceStatus> get_service_statuses();
126 
131  {
137  };
138 
146  void register_account_login_item(Result& result,
147  CannedQuery const& query,
148  PostLoginAction login_passed_action,
149  PostLoginAction login_failed_action);
150 
158  PostLoginAction login_passed_action,
159  PostLoginAction login_failed_action);
160 
161 private:
162  std::unique_ptr<internal::OnlineAccountClientImpl> p;
163 };
164 
165 } // namespace scopes
166 
167 } // namespace unity
168 
169 #endif
A simple interface for integrating online accounts access and monitoring into scopes.
Definition: OnlineAccountClient.h:46
Simply return to the scope with no further action.
Definition: OnlineAccountClient.h:133
std::string client_secret
"ClientSecret" / "ConsumerSecret" OAuth (1 / 2) parameter.
Definition: OnlineAccountClient.h:62
std::string access_token
"AccessToken" OAuth parameter.
Definition: OnlineAccountClient.h:63
uint account_id
A unique ID of the online account parenting this service.
Definition: OnlineAccountClient.h:58
void set_service_update_callback(ServiceUpdateCallback callback)
Set the callback function to be invoked when a service status changes.
Definition: OnlineAccountClient.cpp:40
std::string error
Error message (empty if no error occurred).
Definition: OnlineAccountClient.h:65
The attributes of a result returned by a Scope.
Definition: Result.h:51
OnlineAccountClient(std::string const &service_name, std::string const &service_type, std::string const &provider_name, MainLoopSelect main_loop_select=RunInExternalMainLoop)
Create OnlineAccountClient for the specified account service.
Definition: OnlineAccountClient.cpp:28
PostLoginAction
Indicates what action to take when the login process completes.
Definition: OnlineAccountClient.h:130
std::string token_secret
"TokenSecret" OAuth parameter.
Definition: OnlineAccountClient.h:64
Top-level namespace for all things Unity-related.
Definition: Version.h:50
Definition: ActionMetadata.h:32
MainLoopSelect
Indicates whether an external main loop already exists, or one should be created internally.
Definition: OnlineAccountClient.h:75
Parameters of a search query.
Definition: CannedQuery.h:46
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.
Definition: OnlineAccountClient.cpp:55
bool service_enabled
True if this service is enabled.
Definition: OnlineAccountClient.h:59
A widget for a preview.
Definition: PreviewWidget.h:48
std::function< void(ServiceStatus const &)> ServiceUpdateCallback
Function signature for the service update callback.
Definition: OnlineAccountClient.h:104
Invalidate the scope results.
Definition: OnlineAccountClient.h:134
An action unknown to the run-time was used.
Definition: OnlineAccountClient.h:132
Continue with regular result / widget activation.
Definition: OnlineAccountClient.h:135
bool service_authenticated
True if this service is authenticated.
Definition: OnlineAccountClient.h:60
void refresh_service_statuses()
Refresh all service statuses.
Definition: OnlineAccountClient.cpp:45
A container for details about a service's status and authorization parameters.
Definition: OnlineAccountClient.h:56
Dummy end marker.
Definition: OnlineAccountClient.h:136
std::string client_id
"ConsumerKey" / "ClientId" OAuth (1 / 2) parameter.
Definition: OnlineAccountClient.h:61
std::vector< ServiceStatus > get_service_statuses()
Get statuses for all services matching the name, type and provider specified on construction.
Definition: OnlineAccountClient.cpp:50