Index: google_apis/gcm/engine/gcm_store_impl.cc |
diff --git a/google_apis/gcm/engine/gcm_store_impl.cc b/google_apis/gcm/engine/gcm_store_impl.cc |
index 31b258f7a6c149281bbe379ef4e2f49ee82e4cae..91d3e70077bdaf1a68d03f064a65626bd7ffb84e 100644 |
--- a/google_apis/gcm/engine/gcm_store_impl.cc |
+++ b/google_apis/gcm/engine/gcm_store_impl.cc |
@@ -96,6 +96,7 @@ class GCMStoreImpl::Backend |
// Blocking implementations of GCMStoreImpl methods. |
void Load(const LoadCallback& callback); |
+ void Close(); |
void Destroy(const UpdateCallback& callback); |
void SetDeviceCredentials(uint64 device_android_id, |
uint64 device_security_token, |
@@ -213,6 +214,11 @@ void GCMStoreImpl::Backend::Load(const LoadCallback& callback) { |
return; |
} |
+void GCMStoreImpl::Backend::Close() { |
+ DVLOG(1) << "Closing GCM store."; |
+ db_.reset(); |
+} |
+ |
void GCMStoreImpl::Backend::Destroy(const UpdateCallback& callback) { |
DVLOG(1) << "Destroying GCM store."; |
db_.reset(); |
@@ -634,6 +640,12 @@ void GCMStoreImpl::Load(const LoadCallback& callback) { |
callback))); |
} |
+void GCMStoreImpl::Close() { |
+ blocking_task_runner_->PostTask( |
+ FROM_HERE, |
+ base::Bind(&GCMStoreImpl::Backend::Close, backend_)); |
+} |
+ |
void GCMStoreImpl::Destroy(const UpdateCallback& callback) { |
blocking_task_runner_->PostTask( |
FROM_HERE, |