chromium/components/sync/engine/debug_info_event_listener.h

// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_SYNC_ENGINE_DEBUG_INFO_EVENT_LISTENER_H_
#define COMPONENTS_SYNC_ENGINE_DEBUG_INFO_EVENT_LISTENER_H_

#include "base/containers/circular_deque.h"
#include "base/gtest_prod_util.h"
#include "base/sequence_checker.h"
#include "components/sync/base/data_type.h"
#include "components/sync/engine/cycle/debug_info_getter.h"
#include "components/sync/engine/cycle/sync_cycle_snapshot.h"
#include "components/sync/engine/sync_encryption_handler.h"
#include "components/sync/engine/sync_manager.h"

namespace sync_pb {
class DebugEventInfo;
class DebugInfo;
class EncryptedData;
enum SyncEnums_SingletonDebugEventType : int;
}  // namespace sync_pb

namespace syncer {

// Listens to events and records them in a queue. And passes the events to
// syncer when requested.
// This class is not thread safe and should only be accessed on the sync thread.
class DebugInfoEventListener : public SyncManager::Observer,
                               public SyncEncryptionHandler::Observer,
                               public DebugInfoGetter {};

}  // namespace syncer

#endif  // COMPONENTS_SYNC_ENGINE_DEBUG_INFO_EVENT_LISTENER_H_