* Copyright (c) 2021-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 "app_loader.h"
#include "hilog_tag_wrapper.h"
namespace OHOS {
namespace AppExecFwk {
* @description: Gets the ApplicationLoader object to application register
* @param None
* @return ApplicationLoader
*/
ApplicationLoader &ApplicationLoader::GetInstance()
{
static ApplicationLoader applicationLoader;
return applicationLoader;
}
* @description: Gets the ApplicationLoader object to register application
* @param bundleName the bundle name of the application.
* @param createFunc constructor function of application class.
* @return None
*/
void ApplicationLoader::RegisterApplication(const std::string &bundleName, const CreateApplication &createFunc)
{
applications_.emplace(bundleName, createFunc);
TAG_LOGD(AAFwkTag::APPKIT, "ApplicationLoader::RegisterApplication:%{public}s", bundleName.c_str());
}
* @description: Gets the {@link OHOSApplication} object
* @return Return {@link OHOSApplication} object which is registered by developer.
*/
OHOSApplication *ApplicationLoader::GetApplicationByName()
{
auto it = applications_.find("OHOSApplication");
if (it == applications_.end()) {
TAG_LOGE(AAFwkTag::APPKIT, "ApplicationLoader::GetApplicationByName failed:OHOSApplication");
} else {
return it->second();
}
return nullptr;
}
}
}