1/*
2 * Copyright (C) 2021-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 SMS_CB_DATA_H
17#define SMS_CB_DATA_H
18
19#include <string>
20
21#include "cdma_sms_common.h"
22#include "gsm_cb_codec.h"
23
24namespace OHOS {
25namespace Telephony {
26class SmsCbData {
27public:
28    struct CbData {
29        int32_t slotId = -1;
30        std::string msgBody = "";
31        uint16_t serial = 0;
32        int64_t recvTime = 0;
33        uint16_t msgId = 0;
34        int8_t format = 0;
35        uint16_t category = static_cast<uint16_t>(SmsCmaeCategory::RESERVED);
36        bool isEtws = false;
37        bool isCmas = false;
38        uint8_t cmasClass = static_cast<uint8_t>(SmsCmaeAlertHandle::RESERVED);
39        uint8_t cmasCate = static_cast<uint8_t>(SmsCmaeCategory::RESERVED);
40        uint8_t severity = static_cast<uint8_t>(SmsCmaeSeverity::RESERVED);
41        uint8_t urgency = static_cast<uint8_t>(SmsCmaeUrgency::IMMEDIATE);
42        uint8_t certainty = static_cast<uint8_t>(SmsCmaeCertainty::RESERVED);
43        uint16_t warnType = 0;
44        uint8_t msgType = GsmCbCodec::GSM_UNKNOWN;
45        uint8_t langType = GsmCbCodec::CB_LANG_DUMMY;
46        uint8_t dcs = 0;
47        int8_t priority = static_cast<int8_t>(SmsPriorityIndicator::NORMAL);
48        bool isPrimary = false;
49        uint8_t cmasRes = static_cast<uint8_t>(SmsCmaeResponseType::RESERVED);
50        uint8_t geoScope = 0;
51    };
52    inline static const std::string SLOT_ID = "slotId";
53    inline static const std::string CB_MSG_TYPE = "cbMsgType";
54    inline static const std::string LANG_TYPE = "langType";
55    inline static const std::string DCS = "dcs";
56    inline static const std::string PRIORITY = "priority";
57    inline static const std::string CMAS_CLASS = "cmasClass";
58    inline static const std::string CMAS_CATEGORY = "cmasCategory";
59    inline static const std::string CMAS_RESPONSE = "cmasResponseType";
60    inline static const std::string SEVERITY = "severity";
61    inline static const std::string URGENCY = "urgency";
62    inline static const std::string CERTAINTY = "certainty";
63    inline static const std::string MSG_BODY = "msgBody";
64    inline static const std::string FORMAT = "format";
65    inline static const std::string SERIAL_NUM = "serialNum";
66    inline static const std::string RECV_TIME = "recvTime";
67    inline static const std::string MSG_ID = "msgId";
68    inline static const std::string SERVICE_CATEGORY = "serviceCategory";
69    inline static const std::string IS_ETWS_PRIMARY = "isEtwsPrimary";
70    inline static const std::string IS_CMAS_MESSAGE = "isCmasMessage";
71    inline static const std::string IS_ETWS_MESSAGE = "isEtwsMessage";
72    inline static const std::string PLMN = "plmn";
73    inline static const std::string LAC = "lac";
74    inline static const std::string CID = "cid";
75    inline static const std::string WARNING_TYPE = "warningType";
76    inline static const std::string GEO_SCOPE = "geoScope";
77};
78} // namespace Telephony
79} // namespace OHOS
80#endif // SMS_CB_DATA_H
81
82