blob: e7fac770f47fd2673fdfc93c1c484ab848745037 [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ash/ime/ime_engine_factory_registry.h"
#include <utility>
namespace ash {
ImeEngineFactoryRegistry::ImeEngineFactoryRegistry() = default;
ImeEngineFactoryRegistry::~ImeEngineFactoryRegistry() = default;
void ImeEngineFactoryRegistry::BindRequest(
ime::mojom::ImeEngineFactoryRegistryRequest request) {
registry_bindings_.AddBinding(this, std::move(request));
}
void ImeEngineFactoryRegistry::ConnectToImeEngine(
ime::mojom::ImeEngineRequest engine_request,
ime::mojom::ImeEngineClientPtr client) {
if (engine_factory_) {
engine_factory_->CreateEngine(std::move(engine_request), std::move(client));
} else {
pending_engine_request_ = std::move(engine_request);
pending_engine_client_ = std::move(client);
}
}
void ImeEngineFactoryRegistry::ActivateFactory(
ime::mojom::ImeEngineFactoryPtr ief) {
engine_factory_ = std::move(ief);
if (pending_engine_request_) {
engine_factory_->CreateEngine(std::move(pending_engine_request_),
std::move(pending_engine_client_));
}
}
} // namespace ash