diff options
author | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-11 17:27:46 +0000 |
---|---|---|
committer | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-11 17:27:46 +0000 |
commit | 618a4ac762817cdd51bf0d30b36cfeffd41b0507 (patch) | |
tree | 676279d48256acd515e9f5deba0d9ae6479cf9da /chrome/browser/sync/notifier/chrome_invalidation_client.cc | |
parent | a446a53c3d50b49e23bcd93814de95b2ed981aa9 (diff) | |
download | chromium_src-618a4ac762817cdd51bf0d30b36cfeffd41b0507.zip chromium_src-618a4ac762817cdd51bf0d30b36cfeffd41b0507.tar.gz chromium_src-618a4ac762817cdd51bf0d30b36cfeffd41b0507.tar.bz2 |
[Sync] Added some plumbing needed for notifications persistence support
BUG=58556
TEST=ChromeSystemResources unit tests
Review URL: http://codereview.chromium.org/3610015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62155 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync/notifier/chrome_invalidation_client.cc')
-rw-r--r-- | chrome/browser/sync/notifier/chrome_invalidation_client.cc | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/chrome/browser/sync/notifier/chrome_invalidation_client.cc b/chrome/browser/sync/notifier/chrome_invalidation_client.cc index c2505c2..606eb4f 100644 --- a/chrome/browser/sync/notifier/chrome_invalidation_client.cc +++ b/chrome/browser/sync/notifier/chrome_invalidation_client.cc @@ -7,6 +7,7 @@ #include <string> #include <vector> +#include "base/compiler_specific.h" #include "base/logging.h" #include "chrome/browser/sync/notifier/cache_invalidation_packet_handler.h" #include "chrome/browser/sync/notifier/invalidation_util.h" @@ -19,7 +20,9 @@ namespace sync_notifier { ChromeInvalidationClient::Listener::~Listener() {} ChromeInvalidationClient::ChromeInvalidationClient() - : listener_(NULL) { + : chrome_system_resources_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), + listener_(NULL), + state_writer_(NULL) { DCHECK(non_thread_safe_.CalledOnValidThread()); } @@ -27,10 +30,12 @@ ChromeInvalidationClient::~ChromeInvalidationClient() { DCHECK(non_thread_safe_.CalledOnValidThread()); Stop(); DCHECK(!listener_); + DCHECK(!state_writer_); } void ChromeInvalidationClient::Start( - const std::string& client_id, Listener* listener, + const std::string& client_id, const std::string& state, + Listener* listener, StateWriter* state_writer, base::WeakPtr<talk_base::Task> base_task) { DCHECK(non_thread_safe_.CalledOnValidThread()); DCHECK(base_task.get()); @@ -39,7 +44,11 @@ void ChromeInvalidationClient::Start( chrome_system_resources_.StartScheduler(); DCHECK(!listener_); + DCHECK(listener); listener_ = listener; + DCHECK(!state_writer_); + DCHECK(state_writer); + state_writer_ = state_writer; invalidation::ClientType client_type; client_type.set_type(invalidation::ClientType::CHROME_SYNC); @@ -50,12 +59,10 @@ void ChromeInvalidationClient::Start( // replies we get. client_config.max_registrations_per_message = 20; client_config.max_ops_per_message = 40; - // TODO(akalin): Grab |persisted_state| from persistent storage. - std::string persisted_state; invalidation_client_.reset( new invalidation::InvalidationClientImpl( &chrome_system_resources_, client_type, client_id, - persisted_state, client_config, this)); + state, client_config, this)); cache_invalidation_packet_handler_.reset( new CacheInvalidationPacketHandler(base_task, invalidation_client_.get())); @@ -76,6 +83,7 @@ void ChromeInvalidationClient::Stop() { registration_manager_.reset(); cache_invalidation_packet_handler_.reset(); invalidation_client_.reset(); + state_writer_ = NULL; listener_ = NULL; } @@ -144,4 +152,8 @@ void ChromeInvalidationClient::RegistrationLost( RunAndDeleteClosure(callback); } +void ChromeInvalidationClient::WriteState(const std::string& state) { + state_writer_->WriteState(state); +} + } // namespace sync_notifier |