119e95205Sopenharmony_ci/*
219e95205Sopenharmony_ci * Copyright (C) 2021 Huawei Device Co., Ltd.
319e95205Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
419e95205Sopenharmony_ci * you may not use this file except in compliance with the License.
519e95205Sopenharmony_ci * You may obtain a copy of the License at
619e95205Sopenharmony_ci *
719e95205Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
819e95205Sopenharmony_ci *
919e95205Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1019e95205Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1119e95205Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1219e95205Sopenharmony_ci * See the License for the specific language governing permissions and
1319e95205Sopenharmony_ci * limitations under the License.
1419e95205Sopenharmony_ci */
1519e95205Sopenharmony_ci
1619e95205Sopenharmony_ci#include "stub.h"
1719e95205Sopenharmony_ci
1819e95205Sopenharmony_ci#include <cstddef>
1919e95205Sopenharmony_ci#include <cstdint>
2019e95205Sopenharmony_ci#include "iosfwd"
2119e95205Sopenharmony_ci#include "string"
2219e95205Sopenharmony_ci#include "stub/a2dp_data_service.h"
2319e95205Sopenharmony_ci#include "stub/map_service.h"
2419e95205Sopenharmony_ci#include "stub/media_service.h"
2519e95205Sopenharmony_ci#include "stub/message_digest.h"
2619e95205Sopenharmony_ci#include "stub/telephone_client_service.h"
2719e95205Sopenharmony_ci#include "stub/telephone_service.h"
2819e95205Sopenharmony_ci#include "vector"
2919e95205Sopenharmony_ci
3019e95205Sopenharmony_cinamespace stub {
3119e95205Sopenharmony_ciclass MD5 : public MessageDigest {
3219e95205Sopenharmony_cipublic:
3319e95205Sopenharmony_ci    static constexpr size_t MD5_LENGTH = 16;
3419e95205Sopenharmony_ci
3519e95205Sopenharmony_ci    static MD5 &GetInstance();
3619e95205Sopenharmony_ci    virtual std::vector<uint8_t> Digest(const uint8_t *input, const size_t length) override;
3719e95205Sopenharmony_ci
3819e95205Sopenharmony_ciprivate:
3919e95205Sopenharmony_ci    MD5() = default;
4019e95205Sopenharmony_ci    ~MD5() = default;
4119e95205Sopenharmony_ci};
4219e95205Sopenharmony_ci
4319e95205Sopenharmony_ciMD5 &MD5::GetInstance()
4419e95205Sopenharmony_ci{
4519e95205Sopenharmony_ci    static MD5 instance;
4619e95205Sopenharmony_ci    return instance;
4719e95205Sopenharmony_ci}
4819e95205Sopenharmony_ci
4919e95205Sopenharmony_cistd::vector<uint8_t> MD5::Digest(const uint8_t *input, const size_t length)
5019e95205Sopenharmony_ci{
5119e95205Sopenharmony_ci    std::vector<uint8_t> digest(MD5_LENGTH, 0);
5219e95205Sopenharmony_ci    return digest;
5319e95205Sopenharmony_ci}
5419e95205Sopenharmony_ci
5519e95205Sopenharmony_ciMessageDigest *MessageDigestFactory::GetInstance(const std::string &type)
5619e95205Sopenharmony_ci{
5719e95205Sopenharmony_ci    if (type.compare(DIGEST_TYPE_MD5) == 0) {
5819e95205Sopenharmony_ci        return &MD5::GetInstance();
5919e95205Sopenharmony_ci    } else {
6019e95205Sopenharmony_ci        return nullptr;
6119e95205Sopenharmony_ci    }
6219e95205Sopenharmony_ci}
6319e95205Sopenharmony_ci
6419e95205Sopenharmony_ciMapService *MapService::GetInstance()
6519e95205Sopenharmony_ci{
6619e95205Sopenharmony_ci    static MapService instance;
6719e95205Sopenharmony_ci    return &instance;
6819e95205Sopenharmony_ci}
6919e95205Sopenharmony_ci
7019e95205Sopenharmony_ciMediaService *MediaService::GetInstance()
7119e95205Sopenharmony_ci{
7219e95205Sopenharmony_ci    static MediaService instance;
7319e95205Sopenharmony_ci    return &instance;
7419e95205Sopenharmony_ci}
7519e95205Sopenharmony_ci
7619e95205Sopenharmony_ciTelePhoneClientService &TelePhoneClientService::GetInstance()
7719e95205Sopenharmony_ci{
7819e95205Sopenharmony_ci    static TelePhoneClientService instance;
7919e95205Sopenharmony_ci    return instance;
8019e95205Sopenharmony_ci}
8119e95205Sopenharmony_ci
8219e95205Sopenharmony_ciTelephoneService *TelephoneService::GetInstance()
8319e95205Sopenharmony_ci{
8419e95205Sopenharmony_ci    static TelephoneService instance;
8519e95205Sopenharmony_ci    return &instance;
8619e95205Sopenharmony_ci}
8719e95205Sopenharmony_ci
8819e95205Sopenharmony_ciA2dpService *A2dpService::GetInstance()
8919e95205Sopenharmony_ci{
9019e95205Sopenharmony_ci    static A2dpService instance;
9119e95205Sopenharmony_ci    return &instance;
9219e95205Sopenharmony_ci}
9319e95205Sopenharmony_ci} // namespace stub