chromium/components/sync/engine/sync_manager_impl.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_SYNC_MANAGER_IMPL_H_
#define COMPONENTS_SYNC_ENGINE_SYNC_MANAGER_IMPL_H_

#include <stdint.h>

#include <map>
#include <memory>
#include <string>
#include <vector>

#include "base/functional/callback_forward.h"
#include "base/gtest_prod_util.h"
#include "base/memory/raw_ptr.h"
#include "base/observer_list.h"
#include "base/sequence_checker.h"
#include "components/sync/base/time.h"
#include "components/sync/engine/debug_info_event_listener.h"
#include "components/sync/engine/events/protocol_event_buffer.h"
#include "components/sync/engine/net/server_connection_manager.h"
#include "components/sync/engine/nudge_handler.h"
#include "components/sync/engine/sync_engine_event_listener.h"
#include "components/sync/engine/sync_manager.h"
#include "components/sync/engine/sync_status_tracker.h"
#include "services/network/public/cpp/network_connection_tracker.h"

namespace syncer {

class Cryptographer;
class DataTypeRegistry;
class SyncCycleContext;

// Lives on the sync sequence.
class SyncManagerImpl
    : public SyncManager,
      public network::NetworkConnectionTracker::NetworkConnectionObserver,
      public SyncEngineEventListener,
      public ServerConnectionEventListener,
      public SyncEncryptionHandler::Observer,
      public NudgeHandler {};

}  // namespace syncer

#endif  // COMPONENTS_SYNC_ENGINE_SYNC_MANAGER_IMPL_H_