1 /* 2 * Copyright (C) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef CDMA_SMS_SENDER_H 17 #define CDMA_SMS_SENDER_H 18 19 #include <memory> 20 21 #include "sms_sender.h" 22 #include "sms_receive_indexer.h" 23 24 namespace OHOS { 25 namespace Telephony { 26 class CdmaSmsSender : public SmsSender { 27 public: 28 CdmaSmsSender(const std::shared_ptr<AppExecFwk::EventRunner> &runner, int32_t slotId, 29 std::function<void(std::shared_ptr<SmsSendIndexer>)> sendRetryFun); 30 ~CdmaSmsSender() override; 31 void TextBasedSmsDelivery(const std::string &desAddr, const std::string &scAddr, const std::string &text, 32 const sptr<ISendShortMessageCallback> &sendCallback, 33 const sptr<IDeliveryShortMessageCallback> &deliveryCallback) override; 34 void DataBasedSmsDelivery(const std::string &desAddr, const std::string &scAddr, int32_t port, 35 const uint8_t *data, uint32_t dataLen, const sptr<ISendShortMessageCallback> &sendCallback, 36 const sptr<IDeliveryShortMessageCallback> &deliveryCallback) override; 37 void SendSmsToRil(const std::shared_ptr<SmsSendIndexer> &smsIndexer) override; 38 void Init() override; 39 void ReceiveStatusReport(const std::shared_ptr<SmsReceiveIndexer> &smsIndexer); 40 void ResendTextDelivery(const std::shared_ptr<SmsSendIndexer> &smsIndexer) override; 41 void ResendDataDelivery(const std::shared_ptr<SmsSendIndexer> &smsIndexer) override; 42 43 protected: 44 void StatusReportAnalysis(const AppExecFwk::InnerEvent::Pointer &event) override; 45 46 private: 47 static constexpr uint16_t TAPI_NETTEXT_SMDATA_SIZE_MAX = 255; 48 49 void SetConcact(const std::shared_ptr<SmsSendIndexer> &smsIndexer, 50 const std::unique_ptr<SmsTransMsg> &transMsg); 51 uint8_t GetSeqNum(); 52 uint8_t GetSubmitMsgId(); 53 void SetPduSeqInfo(const std::shared_ptr<SmsSendIndexer> &smsIndexer, const std::size_t size, 54 const std::unique_ptr<SmsTransMsg> &transMsg, const std::size_t index, const uint8_t msgRef8bit); 55 56 uint8_t msgSeqNum_; 57 uint8_t msgSubmitId_; 58 }; 59 } // namespace Telephony 60 } // namespace OHOS 61 #endif