chromium/chrome/browser/ash/app_list/search/arc/recommend_apps_fetcher_delegate.h

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

#ifndef CHROME_BROWSER_ASH_APP_LIST_SEARCH_ARC_RECOMMEND_APPS_FETCHER_DELEGATE_H_
#define CHROME_BROWSER_ASH_APP_LIST_SEARCH_ARC_RECOMMEND_APPS_FETCHER_DELEGATE_H_

namespace base {
class Value;
}  // namespace base

namespace app_list {

// Delegate interface used by RecommendAppsFetcher to report its results.
class RecommendAppsFetcherDelegate {
 public:
  virtual ~RecommendAppsFetcherDelegate() = default;

  // Called when the download of the recommend app list is successful.
  virtual void OnLoadSuccess(const base::Value& app_list) = 0;

  // Called when the download of the recommend app list fails.
  virtual void OnLoadError() = 0;

  // Called when parsing the recommend app list response fails.
  virtual void OnParseResponseError() = 0;
};

}  // namespace app_list

#endif  // CHROME_BROWSER_ASH_APP_LIST_SEARCH_ARC_RECOMMEND_APPS_FETCHER_DELEGATE_H_