1 /*
2  * Copyright (c) 2024 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 UPDATE_SERVICE_TASK_BODY_MEMBER_MASK_H
17 #define UPDATE_SERVICE_TASK_BODY_MEMBER_MASK_H
18 
19 #include <map>
20 
21 #include "event_id.h"
22 
23 namespace OHOS::UpdateEngine {
24 enum TaskBodyMemberMask {
25     VERSION_DIGEST_INFO = 0x00000001,
26     UPGRADE_STATUS      = 0x00000010,
27     SUB_STATUS          = 0x00000100,
28     PROGRESS            = 0x00001000,
29     INSTALL_MODE        = 0x00010000,
30     ERROR_MESSAGE       = 0x00100000,
31     VERSION_COMPONENT   = 0x01000000
32 };
33 
34 const std::map<EventId, uint32_t> g_taskBodyTemplateMap = {
35     { EventId::EVENT_TASK_RECEIVE,     VERSION_DIGEST_INFO },
36     { EventId::EVENT_TASK_CHANGE,      VERSION_DIGEST_INFO | UPGRADE_STATUS | PROGRESS },
37     { EventId::EVENT_TASK_CANCEL,      VERSION_DIGEST_INFO },
38     { EventId::EVENT_VERSION_INFO_CHANGE,  VERSION_DIGEST_INFO | UPGRADE_STATUS },
39     { EventId::EVENT_DOWNLOAD_WAIT,    VERSION_DIGEST_INFO | UPGRADE_STATUS | INSTALL_MODE },
40     { EventId::EVENT_DOWNLOAD_START,   VERSION_DIGEST_INFO | INSTALL_MODE },
41     { EventId::EVENT_DOWNLOAD_UPDATE,  VERSION_DIGEST_INFO | UPGRADE_STATUS | PROGRESS | INSTALL_MODE | SUB_STATUS },
42     { EventId::EVENT_DOWNLOAD_PAUSE,   VERSION_DIGEST_INFO | UPGRADE_STATUS | PROGRESS | INSTALL_MODE | ERROR_MESSAGE },
43     { EventId::EVENT_DOWNLOAD_RESUME,  VERSION_DIGEST_INFO | UPGRADE_STATUS | PROGRESS | INSTALL_MODE },
44     { EventId::EVENT_DOWNLOAD_SUCCESS, VERSION_DIGEST_INFO | INSTALL_MODE | SUB_STATUS },
45     { EventId::EVENT_DOWNLOAD_CANCEL,  VERSION_DIGEST_INFO | UPGRADE_STATUS },
46     { EventId::EVENT_DOWNLOAD_FAIL,    VERSION_DIGEST_INFO | INSTALL_MODE | ERROR_MESSAGE },
47     { EventId::EVENT_TRANSFER_WAIT,    VERSION_DIGEST_INFO | UPGRADE_STATUS | INSTALL_MODE | SUB_STATUS },
48     { EventId::EVENT_TRANSFER_START,   VERSION_DIGEST_INFO | INSTALL_MODE },
49     { EventId::EVENT_TRANSFERING,      VERSION_DIGEST_INFO | UPGRADE_STATUS | PROGRESS | INSTALL_MODE | SUB_STATUS },
50     { EventId::EVENT_TRANSFER_SUCCESS, VERSION_DIGEST_INFO | INSTALL_MODE },
51     { EventId::EVENT_TRANSFER_FAIL,    VERSION_DIGEST_INFO | ERROR_MESSAGE | INSTALL_MODE },
52     { EventId::EVENT_UPGRADE_WAIT,     VERSION_DIGEST_INFO | UPGRADE_STATUS | INSTALL_MODE | ERROR_MESSAGE },
53     { EventId::EVENT_UPGRADE_START,    VERSION_DIGEST_INFO | UPGRADE_STATUS | INSTALL_MODE },
54     { EventId::EVENT_UPGRADE_UPDATE,   VERSION_DIGEST_INFO | UPGRADE_STATUS | PROGRESS | INSTALL_MODE },
55     { EventId::EVENT_APPLY_WAIT,       VERSION_DIGEST_INFO | UPGRADE_STATUS | ERROR_MESSAGE },
56     { EventId::EVENT_APPLY_START,      VERSION_DIGEST_INFO },
57     { EventId::EVENT_UPGRADE_SUCCESS,  VERSION_DIGEST_INFO | VERSION_COMPONENT | SUB_STATUS },
58     { EventId::EVENT_UPGRADE_FAIL,     VERSION_DIGEST_INFO | VERSION_COMPONENT | ERROR_MESSAGE },
59     { EventId::EVENT_AUTH_START,       VERSION_DIGEST_INFO | VERSION_COMPONENT | UPGRADE_STATUS },
60     { EventId::EVENT_AUTH_SUCCESS,     VERSION_DIGEST_INFO | VERSION_COMPONENT | UPGRADE_STATUS },
61     { EventId::EVENT_INITIALIZE,       UPGRADE_STATUS },
62 };
63 } // namespace OHOS::UpdateEngine
64 #endif // UPDATE_SERVICE_TASK_BODY_MEMBER_MASK_H
65