chromium/chrome/browser/ash/lobster/lobster_client_impl.cc

// 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.

#include "chrome/browser/ash/lobster/lobster_client_impl.h"

#include <string>

#include "ash/public/cpp/lobster/lobster_enums.h"
#include "ash/public/cpp/lobster/lobster_system_state.h"
#include "chrome/browser/ash/lobster/lobster_service.h"
#include "chrome/browser/ash/lobster/lobster_system_state_provider.h"

LobsterClientImpl::LobsterClientImpl(LobsterService* service)
    : service_(service) {}

LobsterClientImpl::~LobsterClientImpl() = default;

void LobsterClientImpl::SetActiveSession(ash::LobsterSession* session) {
  service_->SetActiveSession(session);
}

ash::LobsterSystemState LobsterClientImpl::GetSystemState() {
  return service_->system_state_provider()->GetSystemState();
}

void LobsterClientImpl::RequestCandidates(
    const std::string& query,
    int num_candidates,
    ash::RequestCandidatesCallback callback) {
  service_->RequestCandidates(query, num_candidates, std::move(callback));
}

void LobsterClientImpl::InflateCandidate(
    uint32_t seed,
    const std::string& query,
    ash::InflateCandidateCallback callback) {
  service_->InflateCandidate(seed, query, std::move(callback));
}

bool LobsterClientImpl::SubmitFeedback(const std::string& query,
                                       const std::string& model_version,
                                       const std::string& description,
                                       const std::string& image_bytes) {
  return service_->SubmitFeedback(query, model_version, description,
                                  image_bytes);
}