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 HISYSEVENT_INTERFACES_NATIVE_INNERKITS_EASY_ENCODER_H 17 #define HISYSEVENT_INTERFACES_NATIVE_INNERKITS_EASY_ENCODER_H 18 19 #include <stddef.h> 20 #include <stdint.h> 21 22 #ifdef __cplusplus 23 extern "C" { 24 #endif 25 26 #pragma pack(1) 27 struct HiSysEventEasyParamValueType { 28 uint8_t isArray : 1; 29 uint8_t valueType : 4; 30 uint8_t valueByteCnt : 3; 31 }; 32 #pragma pack() 33 34 /** 35 * @brief Encode a value type into raw data then append to it to event 36 * 37 * @param data encoded raw data of event 38 * @param dataLen total length of the data to append value type 39 * @param offset position to append value type 40 * @param valueType value type 41 * @return 0 means success, others means failure 42 */ 43 int EncodeValueType(uint8_t* data, const size_t dataLen, size_t* offset, 44 const struct HiSysEventEasyParamValueType* valueType); 45 46 47 /** 48 * @brief Encode a string into raw data then append to it to event 49 * 50 * @param data encoded raw data of event 51 * @param dataLen total length of the data to append string value 52 * @param offset position to append string 53 * @param content string content 54 * @return 0 means success, others means failure 55 */ 56 int EncodeStringValue(uint8_t* data, const size_t dataLen, size_t* offset, const char* content); 57 58 #ifdef __cplusplus 59 } 60 #endif 61 #endif // HISYSEVENT_INTERFACES_NATIVE_INNERKITS_EASY_ENCODER_H