#include "components/segmentation_platform/internal/execution/optimization_guide/optimization_guide_segmentation_model_provider.h"
#include <memory>
#include <vector>
#include "base/task/sequenced_task_runner.h"
#include "components/optimization_guide/core/model_executor.h"
#include "components/optimization_guide/proto/common_types.pb.h"
#include "components/segmentation_platform/internal/execution/optimization_guide/optimization_guide_segmentation_model_handler.h"
#include "components/segmentation_platform/internal/execution/optimization_guide/segmentation_model_executor.h"
#include "components/segmentation_platform/internal/segment_id_convertor.h"
#include "components/segmentation_platform/internal/stats.h"
#include "components/segmentation_platform/public/proto/model_metadata.pb.h"
#include "components/segmentation_platform/public/proto/segmentation_platform.pb.h"
namespace segmentation_platform {
namespace {
const char kSegmentationModelMetadataTypeUrl[] = …;
std::optional<optimization_guide::proto::Any> GetModelFetchConfig() { … }
}
OptimizationGuideSegmentationModelProvider::
OptimizationGuideSegmentationModelProvider(
optimization_guide::OptimizationGuideModelProvider* model_provider,
scoped_refptr<base::SequencedTaskRunner> background_task_runner,
proto::SegmentId segment_id)
: … { … }
OptimizationGuideSegmentationModelProvider::
~OptimizationGuideSegmentationModelProvider() = default;
void OptimizationGuideSegmentationModelProvider::InitAndFetchModel(
const ModelUpdatedCallback& model_updated_callback) { … }
void OptimizationGuideSegmentationModelProvider::ExecuteModelWithInput(
const ModelProvider::Request& inputs,
ExecutionCallback callback) { … }
bool OptimizationGuideSegmentationModelProvider::ModelAvailable() { … }
}