153c3577eSopenharmony_ci/*
253c3577eSopenharmony_ci* Copyright (c) 2022 Huawei Device Co., Ltd.
353c3577eSopenharmony_ci* Licensed under the Apache License, Version 2.0 (the "License");
453c3577eSopenharmony_ci* you may not use this file except in compliance with the License.
553c3577eSopenharmony_ci* You may obtain a copy of the License at
653c3577eSopenharmony_ci*
753c3577eSopenharmony_ci*     http://www.apache.org/licenses/LICENSE-2.0
853c3577eSopenharmony_ci*
953c3577eSopenharmony_ci* Unless required by applicable law or agreed to in writing, software
1053c3577eSopenharmony_ci* distributed under the License is distributed on an "AS IS" BASIS,
1153c3577eSopenharmony_ci* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1253c3577eSopenharmony_ci* See the License for the specific language governing permissions and
1353c3577eSopenharmony_ci* limitations under the License.
1453c3577eSopenharmony_ci*/
1553c3577eSopenharmony_ci
1653c3577eSopenharmony_ci#ifndef OHOS_DISTRIBUTED_DATA_SERVICES_BOOTSTRAP_BOOTSTRAP_H
1753c3577eSopenharmony_ci#define OHOS_DISTRIBUTED_DATA_SERVICES_BOOTSTRAP_BOOTSTRAP_H
1853c3577eSopenharmony_ci#include <string>
1953c3577eSopenharmony_ci#include "executor_pool.h"
2053c3577eSopenharmony_ci#include "visibility.h"
2153c3577eSopenharmony_cinamespace OHOS {
2253c3577eSopenharmony_cinamespace DistributedData {
2353c3577eSopenharmony_ciclass Bootstrap {
2453c3577eSopenharmony_cipublic:
2553c3577eSopenharmony_ci    API_EXPORT static Bootstrap &GetInstance();
2653c3577eSopenharmony_ci    API_EXPORT std::string GetProcessLabel();
2753c3577eSopenharmony_ci    API_EXPORT std::string GetMetaDBName();
2853c3577eSopenharmony_ci    API_EXPORT void LoadComponents();
2953c3577eSopenharmony_ci    API_EXPORT void LoadCheckers();
3053c3577eSopenharmony_ci    API_EXPORT void LoadNetworks();
3153c3577eSopenharmony_ci    API_EXPORT void LoadDirectory();
3253c3577eSopenharmony_ci    API_EXPORT void LoadCloud();
3353c3577eSopenharmony_ci    API_EXPORT void LoadBackup(std::shared_ptr<ExecutorPool> executors);
3453c3577eSopenharmony_ci    API_EXPORT void LoadAppIdMappings();
3553c3577eSopenharmony_ciprivate:
3653c3577eSopenharmony_ci    static constexpr const char *DEFAULT_LABEL = "distributeddata";
3753c3577eSopenharmony_ci    static constexpr const char *DEFAULT_META = "service_meta";
3853c3577eSopenharmony_ci    using Constructor = void(*)(const char *);
3953c3577eSopenharmony_ci};
4053c3577eSopenharmony_ci} // namespace DistributedData
4153c3577eSopenharmony_ci} // namespace OHOS
4253c3577eSopenharmony_ci#endif // OHOS_DISTRIBUTED_DATA_SERVICES_BOOTSTRAP_BOOTSTRAP_H
43