#include "components/segmentation_platform/internal/segmentation_platform_service_impl.h"
#include <memory>
#include <string>
#include "base/command_line.h"
#include "base/files/file_path.h"
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/scoped_refptr.h"
#include "base/metrics/histogram_functions.h"
#include "base/system/sys_info.h"
#include "base/task/single_thread_task_runner.h"
#include "base/time/clock.h"
#include "components/prefs/pref_registry_simple.h"
#include "components/segmentation_platform/internal/config_parser.h"
#include "components/segmentation_platform/internal/constants.h"
#include "components/segmentation_platform/internal/database/storage_service.h"
#include "components/segmentation_platform/internal/database_client_impl.h"
#include "components/segmentation_platform/internal/execution/processing/sync_device_info_observer.h"
#include "components/segmentation_platform/internal/platform_options.h"
#include "components/segmentation_platform/internal/proto/model_prediction.pb.h"
#include "components/segmentation_platform/internal/scheduler/model_execution_scheduler_impl.h"
#include "components/segmentation_platform/internal/selection/request_dispatcher.h"
#include "components/segmentation_platform/internal/selection/segment_score_provider.h"
#include "components/segmentation_platform/internal/selection/segment_selector_impl.h"
#include "components/segmentation_platform/internal/selection/segmentation_result_prefs.h"
#include "components/segmentation_platform/internal/stats.h"
#include "components/segmentation_platform/public/config.h"
#include "components/segmentation_platform/public/features.h"
#include "components/segmentation_platform/public/field_trial_register.h"
#include "components/segmentation_platform/public/input_context.h"
#include "components/segmentation_platform/public/input_delegate.h"
#include "services/metrics/public/cpp/ukm_source_id.h"
namespace segmentation_platform {
namespace {
SegmentId;
}
SegmentationPlatformServiceImpl::InitParams::InitParams() = default;
SegmentationPlatformServiceImpl::InitParams::~InitParams() = default;
SegmentationPlatformServiceImpl::SegmentationPlatformServiceImpl(
std::unique_ptr<InitParams> init_params)
: … { … }
SegmentationPlatformServiceImpl::~SegmentationPlatformServiceImpl() { … }
void SegmentationPlatformServiceImpl::GetSelectedSegment(
const std::string& segmentation_key,
SegmentSelectionCallback callback) { … }
void SegmentationPlatformServiceImpl::GetClassificationResult(
const std::string& segmentation_key,
const PredictionOptions& prediction_options,
scoped_refptr<InputContext> input_context,
ClassificationResultCallback callback) { … }
void SegmentationPlatformServiceImpl::GetAnnotatedNumericResult(
const std::string& segmentation_key,
const PredictionOptions& prediction_options,
scoped_refptr<InputContext> input_context,
AnnotatedNumericResultCallback callback) { … }
SegmentSelectionResult SegmentationPlatformServiceImpl::GetCachedSegmentResult(
const std::string& segmentation_key) { … }
void SegmentationPlatformServiceImpl::CollectTrainingData(
SegmentId segment_id,
TrainingRequestId request_id,
const TrainingLabels& param,
SuccessCallback callback) { … }
void SegmentationPlatformServiceImpl::CollectTrainingData(
SegmentId segment_id,
TrainingRequestId request_id,
ukm::SourceId ukm_source_id,
const TrainingLabels& param,
SuccessCallback callback) { … }
void SegmentationPlatformServiceImpl::EnableMetrics(
bool signal_collection_allowed) { … }
ServiceProxy* SegmentationPlatformServiceImpl::GetServiceProxy() { … }
DatabaseClient* SegmentationPlatformServiceImpl::GetDatabaseClient() { … }
bool SegmentationPlatformServiceImpl::IsPlatformInitialized() { … }
void SegmentationPlatformServiceImpl::OnDatabaseInitialized(bool success) { … }
void SegmentationPlatformServiceImpl::OnSegmentationModelUpdated(
proto::SegmentInfo segment_info,
std::optional<int64_t> old_model_version) { … }
void SegmentationPlatformServiceImpl::OnModelRefreshNeeded() { … }
void SegmentationPlatformServiceImpl::OnServiceStatusChanged() { … }
void SegmentationPlatformServiceImpl::RunDailyTasks(bool is_startup) { … }
std::map<std::string, std::unique_ptr<SegmentResultProvider>>
SegmentationPlatformServiceImpl::CreateSegmentResultProviders() { … }
std::unique_ptr<SegmentResultProvider>
SegmentationPlatformServiceImpl::CreateSegmentResultProvider() { … }
void SegmentationPlatformService::RegisterProfilePrefs(
PrefRegistrySimple* registry) { … }
void SegmentationPlatformService::RegisterLocalStatePrefs(
PrefRegistrySimple* registry) { … }
}