chromium/components/history_clusters/core/history_clusters_service_task_get_most_recent_clusters_for_ui.h

// Copyright 2022 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_HISTORY_CLUSTERS_CORE_HISTORY_CLUSTERS_SERVICE_TASK_GET_MOST_RECENT_CLUSTERS_FOR_UI_H_
#define COMPONENTS_HISTORY_CLUSTERS_CORE_HISTORY_CLUSTERS_SERVICE_TASK_GET_MOST_RECENT_CLUSTERS_FOR_UI_H_

#include <vector>

#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/task/cancelable_task_tracker.h"
#include "base/time/time.h"
#include "components/history/core/browser/history_types.h"
#include "components/history_clusters/core/clustering_backend.h"
#include "components/history_clusters/core/history_clusters_service_task.h"
#include "components/history_clusters/core/history_clusters_types.h"

namespace history {
class HistoryService;
}

namespace history_clusters {

class HistoryClustersService;

// `HistoryClustersServiceTaskGetMostRecentClustersForUI` gets persisted "basic"
// clusters, asks the backend to create UI-ready clusters for them, and invokes
// `callback`. It is an extension of `HistoryClustersService`; rather than
// pollute the latter's namespace with a bunch of callbacks, this class groups
// those callbacks.
class HistoryClustersServiceTaskGetMostRecentClustersForUI
    : public HistoryClustersServiceTask {};

}  // namespace history_clusters

#endif  // COMPONENTS_HISTORY_CLUSTERS_CORE_HISTORY_CLUSTERS_SERVICE_TASK_GET_MOST_RECENT_CLUSTERS_FOR_UI_H_