// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_INVALIDATION_INVALIDATION_LOGGER_OBSERVER_H_ #define COMPONENTS_INVALIDATION_INVALIDATION_LOGGER_OBSERVER_H_ #include "base/memory/scoped_ptr.h" #include "sync/internal_api/public/base/invalidator_state.h" #include "sync/notifier/invalidation_util.h" #include "sync/notifier/object_id_invalidation_map.h" namespace base { class DictionaryValue; } // namespace base namespace syncer { class InvalidationHandler; class ObjectIdInvalidationMap; } // namespace syncer namespace invalidation { // This class provides the possibilty to register as an observer for the // InvalidationLogger notifications whenever an InvalidatorService changes // its internal state. // (i.e. A new registration, a new invalidation, a TICL/GCM state change) class InvalidationLoggerObserver { public: virtual void OnRegistrationChange( const std::multiset<std::string>& registered_handlers) = 0; virtual void OnStateChange(const syncer::InvalidatorState& new_state, const base::Time& last_change_timestamp) = 0; virtual void OnUpdateIds(const std::string& handler_name, const syncer::ObjectIdCountMap& details) = 0; virtual void OnDebugMessage(const base::DictionaryValue& details) = 0; virtual void OnInvalidation( const syncer::ObjectIdInvalidationMap& details) = 0; virtual void OnDetailedStatus(const base::DictionaryValue& details) = 0; protected: virtual ~InvalidationLoggerObserver() {} }; } // namespace invalidation #endif // COMPONENTS_INVALIDATION_INVALIDATION_LOGGER_OBSERVER_H_