chromium/components/manta/base_provider.h

// Copyright 2024 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_MANTA_BASE_PROVIDER_H_
#define COMPONENTS_MANTA_BASE_PROVIDER_H_

#include <string>

#include "base/version_info/channel.h"
#include "components/endpoint_fetcher/endpoint_fetcher.h"
#include "components/manta/manta_service_callbacks.h"
#include "components/manta/proto/manta.pb.h"
#include "components/manta/provider_params.h"
#include "components/signin/public/identity_manager/identity_manager.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"

namespace manta {

// Base on `use_prod`, returns either the prod or autopush endpoint.
std::string GetProviderEndpoint(bool use_prod);

// BaseProvider abstracts common attributes and functions, mainly about endpoint
// fetcher and authorization, to avoid duplication in particular providers.
class COMPONENT_EXPORT(MANTA) BaseProvider
    : public signin::IdentityManager::Observer {};

}  // namespace manta

#endif  // COMPONENTS_MANTA_BASE_PROVIDER_H_