/* * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "engine_factory.h" #include #include #include #include #include #include CORE_BEGIN_NAMESPACE() using BASE_NS::string_view; using BASE_NS::Uid; // Engine factory IEngine::Ptr CreateEngine(EngineCreateInfo const& createInfo); IEngine::Ptr EngineFactory::Create(const EngineCreateInfo& engineCreateInfo) { return IEngine::Ptr { CreateEngine(engineCreateInfo) }; } Uid EngineFactory::GetClassUid() const { return UID_ENGINE_FACTORY; } string_view EngineFactory::GetClassName() const { return "EngineFactory"; } const IInterface* EngineFactory::GetInterface(const Uid& uid) const { if ((uid == IEngineFactory::UID) || (uid == IInterface::UID)) { return static_cast(this); } if (uid == IClassInfo::UID) { return static_cast(this); } return nullptr; } IInterface* EngineFactory::GetInterface(const Uid& uid) { if ((uid == IEngineFactory::UID) || (uid == IInterface::UID)) { return static_cast(this); } if (uid == IClassInfo::UID) { return static_cast(this); } return nullptr; } void EngineFactory::Ref() {} void EngineFactory::Unref() {} CORE_END_NAMESPACE()