OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef COMPONENTS_GCM_DRIVER_GCM_CLIENT_H_ | 5 #ifndef COMPONENTS_GCM_DRIVER_GCM_CLIENT_H_ |
6 #define COMPONENTS_GCM_DRIVER_GCM_CLIENT_H_ | 6 #define COMPONENTS_GCM_DRIVER_GCM_CLIENT_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
11 | 11 |
12 #include "base/basictypes.h" | 12 #include "base/basictypes.h" |
| 13 #include "base/memory/linked_ptr.h" |
13 #include "base/memory/scoped_ptr.h" | 14 #include "base/memory/scoped_ptr.h" |
14 #include "components/gcm_driver/gcm_activity.h" | 15 #include "components/gcm_driver/gcm_activity.h" |
| 16 #include "components/gcm_driver/registration_info.h" |
15 | 17 |
16 template <class T> class scoped_refptr; | 18 template <class T> class scoped_refptr; |
17 | 19 |
18 class GURL; | 20 class GURL; |
19 | 21 |
20 namespace base { | 22 namespace base { |
21 class FilePath; | 23 class FilePath; |
22 class SequencedTaskRunner; | 24 class SequencedTaskRunner; |
23 class Timer; | 25 class Timer; |
24 } | 26 } |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 std::string account_id; | 158 std::string account_id; |
157 std::string email; | 159 std::string email; |
158 std::string access_token; | 160 std::string access_token; |
159 }; | 161 }; |
160 | 162 |
161 // A delegate interface that allows the GCMClient instance to interact with | 163 // A delegate interface that allows the GCMClient instance to interact with |
162 // its caller, i.e. notifying asynchronous event. | 164 // its caller, i.e. notifying asynchronous event. |
163 class Delegate { | 165 class Delegate { |
164 public: | 166 public: |
165 // Called when the registration completed successfully or an error occurs. | 167 // Called when the registration completed successfully or an error occurs. |
166 // |app_id|: application ID. | 168 // |registration_info|: the specific information required for the |
| 169 // registration. |
167 // |registration_id|: non-empty if the registration completed successfully. | 170 // |registration_id|: non-empty if the registration completed successfully. |
168 // |result|: the type of the error if an error occured, success otherwise. | 171 // |result|: the type of the error if an error occured, success otherwise. |
169 virtual void OnRegisterFinished(const std::string& app_id, | 172 virtual void OnRegisterFinished( |
170 const std::string& registration_id, | 173 const linked_ptr<RegistrationInfo>& registration_info, |
171 Result result) = 0; | 174 const std::string& registration_id, |
| 175 Result result) = 0; |
172 | 176 |
173 // Called when the unregistration completed. | 177 // Called when the unregistration completed. |
174 // |app_id|: application ID. | 178 // |registration_info|: the specific information required for the |
| 179 // registration. |
175 // |result|: result of the unregistration. | 180 // |result|: result of the unregistration. |
176 virtual void OnUnregisterFinished(const std::string& app_id, | 181 virtual void OnUnregisterFinished( |
177 GCMClient::Result result) = 0; | 182 const linked_ptr<RegistrationInfo>& registration_info, |
| 183 GCMClient::Result result) = 0; |
178 | 184 |
179 // Called when the message is scheduled to send successfully or an error | 185 // Called when the message is scheduled to send successfully or an error |
180 // occurs. | 186 // occurs. |
181 // |app_id|: application ID. | 187 // |app_id|: application ID. |
182 // |message_id|: ID of the message being sent. | 188 // |message_id|: ID of the message being sent. |
183 // |result|: the type of the error if an error occured, success otherwise. | 189 // |result|: the type of the error if an error occured, success otherwise. |
184 virtual void OnSendFinished(const std::string& app_id, | 190 virtual void OnSendFinished(const std::string& app_id, |
185 const std::string& message_id, | 191 const std::string& message_id, |
186 Result result) = 0; | 192 Result result) = 0; |
187 | 193 |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 | 257 |
252 // This will initiate the GCM connection only if |start_mode| means to start | 258 // This will initiate the GCM connection only if |start_mode| means to start |
253 // the GCM immediately or the GCM registration records are found in the store. | 259 // the GCM immediately or the GCM registration records are found in the store. |
254 // Note that it is OK to call Start multiple times and the implementation | 260 // Note that it is OK to call Start multiple times and the implementation |
255 // should handle it gracefully. | 261 // should handle it gracefully. |
256 virtual void Start(StartMode start_mode) = 0; | 262 virtual void Start(StartMode start_mode) = 0; |
257 | 263 |
258 // Stops using the GCM service. This will not erase the persisted data. | 264 // Stops using the GCM service. This will not erase the persisted data. |
259 virtual void Stop() = 0; | 265 virtual void Stop() = 0; |
260 | 266 |
261 // Registers the application for GCM. Delegate::OnRegisterFinished will be | 267 // Registers with the server to access the provided service. |
262 // called asynchronously upon completion. | 268 // Delegate::OnRegisterFinished will be called asynchronously upon completion. |
263 // |app_id|: application ID. | 269 // |registration_info|: the specific information required for the |
264 // |sender_ids|: list of IDs of the servers that are allowed to send the | 270 // registration. For GCM, it will contain app id and |
265 // messages to the application. These IDs are assigned by the | 271 // sender IDs. For InstanceID, it will contain app_id, |
266 // Google API Console. | 272 // authorized entity and scope. |
267 virtual void Register(const std::string& app_id, | 273 virtual void Register( |
268 const std::vector<std::string>& sender_ids) = 0; | 274 const linked_ptr<RegistrationInfo>& registration_info) = 0; |
269 | 275 |
270 // Unregisters the application from GCM when it is uninstalled. | 276 // Unregisters from the server to stop accessing the provided service. |
271 // Delegate::OnUnregisterFinished will be called asynchronously upon | 277 // Delegate::OnUnregisterFinished will be called asynchronously upon |
272 // completion. | 278 // completion. |
273 // |app_id|: application ID. | 279 // |registration_info|: the specific information required for the |
274 virtual void Unregister(const std::string& app_id) = 0; | 280 // registration. For GCM, it will contain app id (sender |
| 281 // IDs can be ingored). For InstanceID, it will contain |
| 282 // app id, authorized entity and scope. |
| 283 virtual void Unregister( |
| 284 const linked_ptr<RegistrationInfo>& registration_info) = 0; |
275 | 285 |
276 // Sends a message to a given receiver. Delegate::OnSendFinished will be | 286 // Sends a message to a given receiver. Delegate::OnSendFinished will be |
277 // called asynchronously upon completion. | 287 // called asynchronously upon completion. |
278 // |app_id|: application ID. | 288 // |app_id|: application ID. |
279 // |receiver_id|: registration ID of the receiver party. | 289 // |receiver_id|: registration ID of the receiver party. |
280 // |message|: message to be sent. | 290 // |message|: message to be sent. |
281 virtual void Send(const std::string& app_id, | 291 virtual void Send(const std::string& app_id, |
282 const std::string& receiver_id, | 292 const std::string& receiver_id, |
283 const OutgoingMessage& message) = 0; | 293 const OutgoingMessage& message) = 0; |
284 | 294 |
(...skipping 20 matching lines...) Expand all Loading... |
305 virtual void RemoveAccountMapping(const std::string& account_id) = 0; | 315 virtual void RemoveAccountMapping(const std::string& account_id) = 0; |
306 | 316 |
307 // Sets last token fetch time in persistent store. | 317 // Sets last token fetch time in persistent store. |
308 virtual void SetLastTokenFetchTime(const base::Time& time) = 0; | 318 virtual void SetLastTokenFetchTime(const base::Time& time) = 0; |
309 | 319 |
310 // Updates the timer used by the HeartbeatManager for sending heartbeats. | 320 // Updates the timer used by the HeartbeatManager for sending heartbeats. |
311 virtual void UpdateHeartbeatTimer(scoped_ptr<base::Timer> timer) = 0; | 321 virtual void UpdateHeartbeatTimer(scoped_ptr<base::Timer> timer) = 0; |
312 | 322 |
313 // Adds the Instance ID data for a specific app to the persistent store. | 323 // Adds the Instance ID data for a specific app to the persistent store. |
314 virtual void AddInstanceIDData(const std::string& app_id, | 324 virtual void AddInstanceIDData(const std::string& app_id, |
315 const std::string& instance_id_data) = 0; | 325 const std::string& instance_id, |
| 326 const std::string& extra_data) = 0; |
316 | 327 |
317 // Removes the Instance ID data for a specific app from the persistent store. | 328 // Removes the Instance ID data for a specific app from the persistent store. |
318 virtual void RemoveInstanceIDData(const std::string& app_id) = 0; | 329 virtual void RemoveInstanceIDData(const std::string& app_id) = 0; |
319 | 330 |
320 // Retrieves the Instance ID data for a specific app from the persistent | 331 // Retrieves the Instance ID data for a specific app from the persistent |
321 // store. | 332 // store. |
322 virtual std::string GetInstanceIDData(const std::string& app_id) = 0; | 333 virtual void GetInstanceIDData(const std::string& app_id, |
| 334 std::string* instance_id, |
| 335 std::string* extra_data) = 0; |
323 | 336 |
324 // Gets and sets custom heartbeat interval for the MCS connection. | 337 // Gets and sets custom heartbeat interval for the MCS connection. |
325 // |scope| is used to identify the component that requests a custom interval | 338 // |scope| is used to identify the component that requests a custom interval |
326 // to be set, and allows that component to later revoke the setting. It should | 339 // to be set, and allows that component to later revoke the setting. It should |
327 // be unique. | 340 // be unique. |
328 virtual void AddHeartbeatInterval(const std::string& scope, | 341 virtual void AddHeartbeatInterval(const std::string& scope, |
329 int interval_ms) = 0; | 342 int interval_ms) = 0; |
330 virtual void RemoveHeartbeatInterval(const std::string& scope) = 0; | 343 virtual void RemoveHeartbeatInterval(const std::string& scope) = 0; |
331 }; | 344 }; |
332 | 345 |
333 } // namespace gcm | 346 } // namespace gcm |
334 | 347 |
335 #endif // COMPONENTS_GCM_DRIVER_GCM_CLIENT_H_ | 348 #endif // COMPONENTS_GCM_DRIVER_GCM_CLIENT_H_ |
OLD | NEW |