1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/invalidation/invalidation_logger.h"
7 #include "base/memory/scoped_ptr.h"
8 #include "base/values.h"
9 #include "chrome/browser/invalidation/invalidation_logger_observer.h"
12 class ObjectIdInvalidationMap;
15 namespace invalidation {
16 class InvalidationLoggerObserver;
18 InvalidationLogger::InvalidationLogger()
19 : last_invalidator_state_(syncer::TRANSIENT_INVALIDATION_ERROR) {}
21 InvalidationLogger::~InvalidationLogger() {}
23 void InvalidationLogger::OnRegistration(const base::DictionaryValue& details) {
25 InvalidationLoggerObserver, observer_list_, OnRegistration(details));
28 void InvalidationLogger::OnUnregistration(
29 const base::DictionaryValue& details) {
31 InvalidationLoggerObserver, observer_list_, OnUnregistration(details));
34 void InvalidationLogger::OnStateChange(
35 const syncer::InvalidatorState& newState) {
36 last_invalidator_state_ = newState;
40 void InvalidationLogger::EmitState() {
41 FOR_EACH_OBSERVER(InvalidationLoggerObserver,
43 OnStateChange(last_invalidator_state_));
46 void InvalidationLogger::OnUpdateIds(const base::DictionaryValue& details) {
48 InvalidationLoggerObserver, observer_list_, OnUpdateIds(details));
51 void InvalidationLogger::OnDebugMessage(const base::DictionaryValue& details) {
53 InvalidationLoggerObserver, observer_list_, OnDebugMessage(details));
56 void InvalidationLogger::OnInvalidation(
57 const syncer::ObjectIdInvalidationMap& details) {
59 InvalidationLoggerObserver, observer_list_, OnInvalidation(details));
62 void InvalidationLogger::EmitContent() {
63 // Here we add content to send to the observers not via real time push
64 // but on explicit request.
68 // Obtain a target object to call whenever we have
69 // debug messages to display
70 void InvalidationLogger::RegisterForDebug(
71 InvalidationLoggerObserver* debug_observer) {
72 observer_list_.AddObserver(debug_observer);
75 // Removes the target object to call whenever we have
76 // debug messages to display
77 void InvalidationLogger::UnregisterForDebug(
78 InvalidationLoggerObserver* debug_observer) {
79 observer_list_.RemoveObserver(debug_observer);
81 } // namespace invalidation