188edb362Sopenharmony_ci/*
288edb362Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
388edb362Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
488edb362Sopenharmony_ci * you may not use this file except in compliance with the License.
588edb362Sopenharmony_ci * You may obtain a copy of the License at
688edb362Sopenharmony_ci *
788edb362Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
888edb362Sopenharmony_ci *
988edb362Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1088edb362Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1188edb362Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1288edb362Sopenharmony_ci * See the License for the specific language governing permissions and
1388edb362Sopenharmony_ci * limitations under the License.
1488edb362Sopenharmony_ci */
1588edb362Sopenharmony_ci
1688edb362Sopenharmony_ci#include <unistd.h>
1788edb362Sopenharmony_ci
1888edb362Sopenharmony_ci#include "if_system_ability_manager.h"
1988edb362Sopenharmony_ci#include "iservice_registry.h"
2088edb362Sopenharmony_ci#include "log/log.h"
2188edb362Sopenharmony_ci#include "module_update_kits.h"
2288edb362Sopenharmony_ci#include "module_update_kits_impl.h"
2388edb362Sopenharmony_ci
2488edb362Sopenharmony_ciusing namespace OHOS;
2588edb362Sopenharmony_ciusing namespace Updater;
2688edb362Sopenharmony_ci
2788edb362Sopenharmony_ciint main()
2888edb362Sopenharmony_ci{
2988edb362Sopenharmony_ci    InitUpdaterLogger("ModuleUpdaterClient", "", "", "");
3088edb362Sopenharmony_ci    sptr<ISystemAbilityManager> samgr = nullptr;
3188edb362Sopenharmony_ci    int32_t times = 30;
3288edb362Sopenharmony_ci    const int32_t wiat_time_ms = 100 * 1000;
3388edb362Sopenharmony_ci    int32_t duration = std::chrono::microseconds(wiat_time_ms).count();
3488edb362Sopenharmony_ci    LOG(INFO) << "waiting for samgr...";
3588edb362Sopenharmony_ci    while (times > 0) {
3688edb362Sopenharmony_ci        times--;
3788edb362Sopenharmony_ci        samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
3888edb362Sopenharmony_ci        if (samgr == nullptr) {
3988edb362Sopenharmony_ci            usleep(duration);
4088edb362Sopenharmony_ci        } else {
4188edb362Sopenharmony_ci            break;
4288edb362Sopenharmony_ci        }
4388edb362Sopenharmony_ci    }
4488edb362Sopenharmony_ci
4588edb362Sopenharmony_ci    if (samgr == nullptr) {
4688edb362Sopenharmony_ci        LOG(ERROR) <<"ModuleUpdateInit wait samgr fail";
4788edb362Sopenharmony_ci        return -1;
4888edb362Sopenharmony_ci    }
4988edb362Sopenharmony_ci
5088edb362Sopenharmony_ci    int32_t ret = OHOS::SysInstaller::ModuleUpdateKits::GetInstance().InitModuleUpdate();
5188edb362Sopenharmony_ci    LOG(INFO) << "ModuleUpdateInit ret: " << ret;
5288edb362Sopenharmony_ci    return ret;
5388edb362Sopenharmony_ci}