| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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_INSTANCE_ID_INSTANCE_ID_DRIVER_H_ | 5 #ifndef COMPONENTS_GCM_DRIVER_INSTANCE_ID_INSTANCE_ID_DRIVER_H_ |
| 6 #define COMPONENTS_GCM_DRIVER_INSTANCE_ID_INSTANCE_ID_DRIVER_H_ | 6 #define COMPONENTS_GCM_DRIVER_INSTANCE_ID_INSTANCE_ID_DRIVER_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <string> | 10 #include <string> |
| 11 | 11 |
| 12 #include "base/macros.h" | 12 #include "base/macros.h" |
| 13 | 13 |
| 14 namespace gcm { | 14 namespace gcm { |
| 15 class GCMDriver; | 15 class GCMDriver; |
| 16 } // namespace gcm | 16 } // namespace gcm |
| 17 | 17 |
| 18 namespace instance_id { | 18 namespace instance_id { |
| 19 | 19 |
| 20 class InstanceID; | 20 class InstanceID; |
| 21 class InstanceIDFactory; |
| 21 | 22 |
| 22 // Bridge between Instance ID users in Chrome and the platform-specific | 23 // Bridge between Instance ID users in Chrome and the platform-specific |
| 23 // implementation. | 24 // implementation. |
| 24 class InstanceIDDriver { | 25 class InstanceIDDriver { |
| 25 public: | 26 public: |
| 26 // Returns whether InstanceID is enabled. | 27 // Returns whether InstanceID is enabled. |
| 27 static bool IsInstanceIDEnabled(); | 28 static bool IsInstanceIDEnabled(); |
| 28 | 29 |
| 29 explicit InstanceIDDriver(gcm::GCMDriver* gcm_driver); | 30 InstanceIDDriver(gcm::GCMDriver* gcm_driver, InstanceIDFactory* factory); |
| 30 virtual ~InstanceIDDriver(); | 31 virtual ~InstanceIDDriver(); |
| 31 | 32 |
| 32 // Returns the InstanceID that provides the Instance ID service for the given | 33 // Returns the InstanceID that provides the Instance ID service for the given |
| 33 // application. The lifetime of the InstanceID will be managed by this class. | 34 // application. The lifetime of the InstanceID will be managed by this class. |
| 34 InstanceID* GetInstanceID(const std::string& app_id); | 35 InstanceID* GetInstanceID(const std::string& app_id); |
| 35 | 36 |
| 36 // Removes the InstanceID when it is not longer needed, i.e. the app is being | 37 // Removes the InstanceID when it is not longer needed, i.e. the app is being |
| 37 // uninstalled. | 38 // uninstalled. |
| 38 void RemoveInstanceID(const std::string& app_id); | 39 void RemoveInstanceID(const std::string& app_id); |
| 39 | 40 |
| 40 // Returns true if the InstanceID for the given application has been created. | 41 // Returns true if the InstanceID for the given application has been created. |
| 41 // This is currently only used for testing purpose. | 42 // This is currently only used for testing purpose. |
| 42 bool ExistsInstanceID(const std::string& app_id) const; | 43 bool ExistsInstanceID(const std::string& app_id) const; |
| 43 | 44 |
| 44 private: | 45 private: |
| 45 // Owned by GCMProfileServiceFactory, which is a dependency of | 46 // Owned by GCMProfileServiceFactory, which is a dependency of |
| 46 // InstanceIDProfileServiceFactory, which owns this. | 47 // InstanceIDProfileServiceFactory, which owns this. |
| 47 gcm::GCMDriver* gcm_driver_; | 48 gcm::GCMDriver* gcm_driver_; |
| 49 InstanceIDFactory* const factory_; |
| 48 | 50 |
| 49 std::map<std::string, std::unique_ptr<InstanceID>> instance_id_map_; | 51 std::map<std::string, std::unique_ptr<InstanceID>> instance_id_map_; |
| 50 | 52 |
| 51 DISALLOW_COPY_AND_ASSIGN(InstanceIDDriver); | 53 DISALLOW_COPY_AND_ASSIGN(InstanceIDDriver); |
| 52 }; | 54 }; |
| 53 | 55 |
| 54 } // namespace instance_id | 56 } // namespace instance_id |
| 55 | 57 |
| 56 #endif // COMPONENTS_GCM_DRIVER_INSTANCE_ID_INSTANCE_ID_DRIVER_H_ | 58 #endif // COMPONENTS_GCM_DRIVER_INSTANCE_ID_INSTANCE_ID_DRIVER_H_ |
| OLD | NEW |