• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2023 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 GSM_SMS_TPDU_ENCODE_H
17 #define GSM_SMS_TPDU_ENCODE_H
18 
19 #include "gsm_sms_tpdu_codec.h"
20 
21 namespace OHOS {
22 namespace Telephony {
23 class GsmSmsTpduEncode {
24 public:
25     GsmSmsTpduEncode(std::shared_ptr<GsmUserDataPdu> dataCodec, std::shared_ptr<GsmSmsParamCodec> paramCodec,
26         std::shared_ptr<GsmSmsTpduCodec> tpdu);
27     ~GsmSmsTpduEncode();
28 
29     bool EncodeSubmitPdu(SmsWriteBuffer &buffer, const struct SmsSubmit *pSubmit);
30     void EncodeSubmitTpduType(SmsWriteBuffer &buffer, const struct SmsSubmit &pSubmit);
31     bool EncodeDeliverPdu(SmsWriteBuffer &buffer, const struct SmsDeliver *pDeliver);
32     bool EncodeDeliverReportPdu(SmsWriteBuffer &buffer, const struct SmsDeliverReport *pDeliverRep);
33     bool EncodeStatusReportPdu(SmsWriteBuffer &buffer, const struct SmsStatusReport *pStatusRep);
34 
35 private:
36     bool EncodeSubmitPduPartData(SmsWriteBuffer &buffer, const struct SmsSubmit *pSubmit);
37     void EncodeSubmitTypePartData(SmsWriteBuffer &buffer, const struct SmsSubmit &pSubmit);
38     void EncodeSubmitTypeData(SmsWriteBuffer &buffer, const struct SmsSubmit &pSubmit);
39     bool EncodeDeliverPartData(SmsWriteBuffer &buffer, const struct SmsDeliver *pDeliver);
40     bool EncodeDeliverData(SmsWriteBuffer &buffer, const struct SmsDeliver *pDeliver);
41     bool EncodeDeliverReportPartData(SmsWriteBuffer &buffer, const struct SmsDeliverReport *pDeliverRep);
42     bool EncodeStatusReportPartData(SmsWriteBuffer &buffer, const struct SmsStatusReport *pStatusRep);
43     bool EncodeStatusReportData(SmsWriteBuffer &buffer, const struct SmsStatusReport *pStatusRep, uint8_t length);
44 
45 private:
46     std::shared_ptr<GsmUserDataPdu> uDataCodec_ = nullptr;
47     std::shared_ptr<GsmSmsParamCodec> paramCodec_ = nullptr;
48     std::shared_ptr<GsmSmsTpduCodec> tpdu_ = nullptr;
49 };
50 } // namespace Telephony
51 } // namespace OHOS
52 #endif