1e5d0e473Sopenharmony_ci/*
2e5d0e473Sopenharmony_ci * Copyright (C) 2021 Huawei Device Co., Ltd.
3e5d0e473Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4e5d0e473Sopenharmony_ci * you may not use this file except in compliance with the License.
5e5d0e473Sopenharmony_ci * You may obtain a copy of the License at
6e5d0e473Sopenharmony_ci *
7e5d0e473Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8e5d0e473Sopenharmony_ci *
9e5d0e473Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10e5d0e473Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11e5d0e473Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12e5d0e473Sopenharmony_ci * See the License for the specific language governing permissions and
13e5d0e473Sopenharmony_ci * limitations under the License.
14e5d0e473Sopenharmony_ci */
15e5d0e473Sopenharmony_ci
16e5d0e473Sopenharmony_ci#ifndef SMS_RECEIVE_MANAGER_H
17e5d0e473Sopenharmony_ci#define SMS_RECEIVE_MANAGER_H
18e5d0e473Sopenharmony_ci
19e5d0e473Sopenharmony_ci#include <memory>
20e5d0e473Sopenharmony_ci
21e5d0e473Sopenharmony_ci#include "cdma_sms_receive_handler.h"
22e5d0e473Sopenharmony_ci#include "gsm_sms_receive_handler.h"
23e5d0e473Sopenharmony_ci#include "sms_receive_handler.h"
24e5d0e473Sopenharmony_ci#include "sms_sender.h"
25e5d0e473Sopenharmony_ci
26e5d0e473Sopenharmony_cinamespace OHOS {
27e5d0e473Sopenharmony_cinamespace Telephony {
28e5d0e473Sopenharmony_ciclass SmsReceiveManager : public std::enable_shared_from_this<SmsReceiveManager> {
29e5d0e473Sopenharmony_cipublic:
30e5d0e473Sopenharmony_ci    explicit SmsReceiveManager(int32_t slotId);
31e5d0e473Sopenharmony_ci    ~SmsReceiveManager();
32e5d0e473Sopenharmony_ci    void Init();
33e5d0e473Sopenharmony_ci    void SetCdmaSender(const std::weak_ptr<SmsSender> &smsSender);
34e5d0e473Sopenharmony_ci
35e5d0e473Sopenharmony_ciprivate:
36e5d0e473Sopenharmony_ci    std::shared_ptr<GsmSmsReceiveHandler> gsmSmsReceiveHandler_;
37e5d0e473Sopenharmony_ci    std::shared_ptr<CdmaSmsReceiveHandler> cdmaSmsReceiveHandler_;
38e5d0e473Sopenharmony_ci    int32_t slotId_;
39e5d0e473Sopenharmony_ci};
40e5d0e473Sopenharmony_ci} // namespace Telephony
41e5d0e473Sopenharmony_ci} // namespace OHOS
42e5d0e473Sopenharmony_ci#endif