Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2750)

Unified Diff: chrome/browser/invalidation/invalidation_logger.cc

Issue 159773006: [invalidations] Added table with registered objectsIds (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@about_invalidations_clean
Patch Set: Change constness of iterators for android clang Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/invalidation/invalidation_logger.cc
diff --git a/chrome/browser/invalidation/invalidation_logger.cc b/chrome/browser/invalidation/invalidation_logger.cc
index 19bdf9d2464409600d139744fe6d3b5bc7336797..6910810b13c313af0e0643cbb5d45b45c35ea649 100644
--- a/chrome/browser/invalidation/invalidation_logger.cc
+++ b/chrome/browser/invalidation/invalidation_logger.cc
@@ -7,10 +7,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/values.h"
#include "chrome/browser/invalidation/invalidation_logger_observer.h"
-
-namespace syncer {
-class ObjectIdInvalidationMap;
-}
+#include "sync/notifier/invalidation_handler.h"
namespace invalidation {
class InvalidationLoggerObserver;
@@ -43,9 +40,22 @@ void InvalidationLogger::EmitState() {
OnStateChange(last_invalidator_state_));
}
-void InvalidationLogger::OnUpdateIds(const base::DictionaryValue& details) {
- FOR_EACH_OBSERVER(
- InvalidationLoggerObserver, observer_list_, OnUpdateIds(details));
+void InvalidationLogger::OnUpdateIds(
+ std::map<std::string, syncer::ObjectIdSet> updated_ids) {
+ for (std::map<std::string, syncer::ObjectIdSet>::const_iterator it =
+ updated_ids.begin(); it != updated_ids.end(); ++it) {
+ latest_ids_[it->first] = syncer::ObjectIdSet(it->second);
+ }
+ EmitUpdatedIds();
+}
+
+void InvalidationLogger::EmitUpdatedIds() {
+ for (std::map<std::string, syncer::ObjectIdSet>::const_iterator it =
+ latest_ids_.begin(); it != latest_ids_.end(); ++it) {
+ FOR_EACH_OBSERVER(InvalidationLoggerObserver,
+ observer_list_,
+ OnUpdateIds(it->first, it->second));
+ }
}
void InvalidationLogger::OnDebugMessage(const base::DictionaryValue& details) {
@@ -60,22 +70,23 @@ void InvalidationLogger::OnInvalidation(
}
void InvalidationLogger::EmitContent() {
- // Here we add content to send to the observers not via real time push
- // but on explicit request.
EmitState();
+ EmitUpdatedIds();
}
-// Obtain a target object to call whenever we have
-// debug messages to display
-void InvalidationLogger::RegisterForDebug(
+void InvalidationLogger::RegisterObserver(
InvalidationLoggerObserver* debug_observer) {
observer_list_.AddObserver(debug_observer);
}
-// Removes the target object to call whenever we have
-// debug messages to display
-void InvalidationLogger::UnregisterForDebug(
+void InvalidationLogger::UnregisterObserver(
InvalidationLoggerObserver* debug_observer) {
observer_list_.RemoveObserver(debug_observer);
}
+
+bool InvalidationLogger::IsObserverRegistered(
+ InvalidationLoggerObserver* debug_observer) {
+ return observer_list_.HasObserver(debug_observer);
+}
+
} // namespace invalidation
« no previous file with comments | « chrome/browser/invalidation/invalidation_logger.h ('k') | chrome/browser/invalidation/invalidation_logger_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698