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