#include "components/segmentation_platform/internal/execution/processing/feature_list_query_processor.h"
#include "base/functional/bind.h"
#include "base/location.h"
#include "base/memory/weak_ptr.h"
#include "components/segmentation_platform/internal/database/storage_service.h"
#include "components/segmentation_platform/internal/database/ukm_types.h"
#include "components/segmentation_platform/internal/execution/processing/custom_input_processor.h"
#include "components/segmentation_platform/internal/execution/processing/feature_processor_state.h"
#include "components/segmentation_platform/internal/execution/processing/query_processor.h"
#include "components/segmentation_platform/internal/execution/processing/sql_feature_processor.h"
#include "components/segmentation_platform/internal/execution/processing/uma_feature_processor.h"
#include "components/segmentation_platform/internal/metadata/metadata_utils.h"
#include "components/segmentation_platform/internal/stats.h"
#include "components/segmentation_platform/internal/ukm_data_manager.h"
#include "components/segmentation_platform/public/input_delegate.h"
#include "components/segmentation_platform/public/proto/model_metadata.pb.h"
namespace segmentation_platform::processing {
Data::Data(proto::InputFeature input) { … }
Data::Data(proto::TrainingOutput output)
: … { … }
Data::Data(Data&& other)
: … { … }
Data::~Data() = default;
bool Data::IsInput() const { … }
FeatureListQueryProcessor::FeatureListQueryProcessor(
StorageService* storage_service,
std::unique_ptr<InputDelegateHolder> input_delegate_holder,
std::unique_ptr<FeatureAggregator> feature_aggregator)
: … { … }
FeatureListQueryProcessor::~FeatureListQueryProcessor() = default;
void FeatureListQueryProcessor::ProcessFeatureList(
const proto::SegmentationModelMetadata& model_metadata,
scoped_refptr<InputContext> input_context,
SegmentId segment_id,
base::Time prediction_time,
base::Time observation_time,
ProcessOption process_option,
FeatureProcessorCallback callback) { … }
void FeatureListQueryProcessor::CreateProcessors(
FeatureProcessorState& feature_processor_state,
std::map<Data::DataType,
base::flat_map<QueryProcessor::FeatureIndex, Data>>&&
data_to_process) { … }
void FeatureListQueryProcessor::Process(
FeatureProcessorState& feature_processor_state) { … }
void FeatureListQueryProcessor::OnFeatureBatchProcessed(
std::unique_ptr<QueryProcessor> feature_processor,
bool is_input,
base::WeakPtr<FeatureProcessorState> feature_processor_state,
QueryProcessor::IndexedTensors result) { … }
std::unique_ptr<UmaFeatureProcessor>
FeatureListQueryProcessor::GetUmaFeatureProcessor(
UkmDataManager* ukm_data_manager,
base::flat_map<FeatureIndex, Data>&& uma_features,
FeatureProcessorState& feature_processor_state,
bool is_output) { … }
void FeatureListQueryProcessor::FinishProcessingAndCleanup(
FeatureProcessorState& feature_processor_state) { … }
}