| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "sync/notifier/sync_notifier_registrar.h" | 5 #include "sync/notifier/sync_notifier_registrar.h" |
| 6 | 6 |
| 7 #include <cstddef> | 7 #include <cstddef> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 DCHECK(thread_checker_.CalledOnValidThread()); | 67 DCHECK(thread_checker_.CalledOnValidThread()); |
| 68 ObjectIdSet registered_ids; | 68 ObjectIdSet registered_ids; |
| 69 for (IdHandlerMap::const_iterator it = id_to_handler_map_.begin(); | 69 for (IdHandlerMap::const_iterator it = id_to_handler_map_.begin(); |
| 70 it != id_to_handler_map_.end(); ++it) { | 70 it != id_to_handler_map_.end(); ++it) { |
| 71 registered_ids.insert(it->first); | 71 registered_ids.insert(it->first); |
| 72 } | 72 } |
| 73 return registered_ids; | 73 return registered_ids; |
| 74 } | 74 } |
| 75 | 75 |
| 76 void SyncNotifierRegistrar::DispatchInvalidationsToHandlers( | 76 void SyncNotifierRegistrar::DispatchInvalidationsToHandlers( |
| 77 const ObjectIdPayloadMap& id_payloads, | 77 const ObjectIdStateMap& id_state_map, |
| 78 IncomingNotificationSource source) { | 78 IncomingNotificationSource source) { |
| 79 DCHECK(thread_checker_.CalledOnValidThread()); | 79 DCHECK(thread_checker_.CalledOnValidThread()); |
| 80 // If we have no handlers, there's nothing to do. | 80 // If we have no handlers, there's nothing to do. |
| 81 if (!handlers_.might_have_observers()) { | 81 if (!handlers_.might_have_observers()) { |
| 82 return; | 82 return; |
| 83 } | 83 } |
| 84 | 84 |
| 85 typedef std::map<SyncNotifierObserver*, ObjectIdPayloadMap> DispatchMap; | 85 typedef std::map<SyncNotifierObserver*, ObjectIdStateMap> DispatchMap; |
| 86 DispatchMap dispatch_map; | 86 DispatchMap dispatch_map; |
| 87 for (ObjectIdPayloadMap::const_iterator it = id_payloads.begin(); | 87 for (ObjectIdStateMap::const_iterator it = id_state_map.begin(); |
| 88 it != id_payloads.end(); ++it) { | 88 it != id_state_map.end(); ++it) { |
| 89 SyncNotifierObserver* const handler = ObjectIdToHandler(it->first); | 89 SyncNotifierObserver* const handler = ObjectIdToHandler(it->first); |
| 90 // Filter out invalidations for IDs with no handler. | 90 // Filter out invalidations for IDs with no handler. |
| 91 if (handler) | 91 if (handler) |
| 92 dispatch_map[handler].insert(*it); | 92 dispatch_map[handler].insert(*it); |
| 93 } | 93 } |
| 94 | 94 |
| 95 // Emit invalidations only for handlers in |handlers_|. | 95 // Emit invalidations only for handlers in |handlers_|. |
| 96 ObserverListBase<SyncNotifierObserver>::Iterator it(handlers_); | 96 ObserverListBase<SyncNotifierObserver>::Iterator it(handlers_); |
| 97 SyncNotifierObserver* handler = NULL; | 97 SyncNotifierObserver* handler = NULL; |
| 98 while ((handler = it.GetNext()) != NULL) { | 98 while ((handler = it.GetNext()) != NULL) { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 120 } | 120 } |
| 121 | 121 |
| 122 SyncNotifierObserver* SyncNotifierRegistrar::ObjectIdToHandler( | 122 SyncNotifierObserver* SyncNotifierRegistrar::ObjectIdToHandler( |
| 123 const invalidation::ObjectId& id) { | 123 const invalidation::ObjectId& id) { |
| 124 DCHECK(thread_checker_.CalledOnValidThread()); | 124 DCHECK(thread_checker_.CalledOnValidThread()); |
| 125 IdHandlerMap::const_iterator it = id_to_handler_map_.find(id); | 125 IdHandlerMap::const_iterator it = id_to_handler_map_.find(id); |
| 126 return (it == id_to_handler_map_.end()) ? NULL : it->second; | 126 return (it == id_to_handler_map_.end()) ? NULL : it->second; |
| 127 } | 127 } |
| 128 | 128 |
| 129 } // namespace syncer | 129 } // namespace syncer |
| OLD | NEW |