Files
winnieHu 9677f07524 adapt for deviceauth dir change
Signed-off-by: winnieHu <huyu35@huawei.com>
2021-12-03 15:32:31 +08:00

97 lines
4.1 KiB
C

/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef HC_PARCEL_H
#define HC_PARCEL_H
#include <stdint.h>
#include "clib_types.h"
#ifdef __cplusplus
extern "C" {
#endif
#define PARCEL_DEFAULT_LENGTH 0
#define PARCEL_DEFAULT_ALLOC_UNIT 0
typedef struct {
char *data;
unsigned int beginPos;
unsigned int endPos;
unsigned int length;
unsigned int allocUnit;
} HcParcel;
HcParcel CreateParcel(uint32_t size, uint32_t allocUnit);
void DeleteParcel(HcParcel *parcel);
void ClearParcel(HcParcel *parcel);
void ResetParcel(HcParcel *parcel, uint32_t size, uint32_t allocUnit);
HcBool ParcelReadWithoutPopData(HcParcel *parcel, void *dst, uint32_t dataSize);
HcBool ParcelRead(HcParcel *parcel, void *dst, uint32_t dataSize);
HcBool ParcelWrite(HcParcel *parcel, const void *src, uint32_t dataSize);
HcBool ParcelReadRevert(HcParcel *parcel, void *dst, uint32_t dataSize);
HcBool ParcelWriteRevert(HcParcel *parcel, const void *src, uint32_t dataSize);
uint32_t GetParcelDataSize(const HcParcel *parcel);
const char *GetParcelData(const HcParcel *parcel);
const char* GetParcelLastChar(const HcParcel *parcel);
HcBool ParcelReadInt32(HcParcel *parcel, int *dst);
HcBool ParcelReadUint32(HcParcel *parcel, uint32_t *dst);
HcBool ParcelReadInt16(HcParcel *parcel, short *dst);
HcBool ParcelReadUint16(HcParcel *parcel, uint16_t *dst);
HcBool ParcelReadInt8(HcParcel *parcel, char *dst);
HcBool ParcelReadUint8(HcParcel *parcel, uint8_t *dst);
HcBool ParcelReadUint64(HcParcel *parcel, uint64_t *dst);
HcBool ParcelReadInt64(HcParcel *parcel, int64_t *dst);
HcBool ParcelWriteInt32(HcParcel *parcel, int src);
HcBool ParcelWriteUint32(HcParcel *parcel, uint32_t src);
HcBool ParcelWriteInt16(HcParcel *parcel, short src);
HcBool ParcelWriteUint16(HcParcel *parcel, uint16_t src);
HcBool ParcelWriteInt8(HcParcel *parcel, char src);
HcBool ParcelWriteUint8(HcParcel *parcel, uint8_t src);
HcBool ParcelWriteUint64(HcParcel *parcel, uint64_t src);
HcBool ParcelWriteInt64(HcParcel *parcel, int64_t src);
HcBool ParcelWriteString(HcParcel *parcel, const char *str);
HcBool ParcelReadString(HcParcel *parcel, char **str);
HcBool ParcelReadParcel(HcParcel *src, HcParcel *dst, uint32_t size, HcBool copy);
HcBool ParcelCopy(HcParcel *src, HcParcel *dst);
HcBool ParcelReadInt32Revert(HcParcel *parcel, int32_t *dst);
HcBool ParcelReadUint32Revert(HcParcel *parcel, uint32_t *dst);
HcBool ParcelReadInt16Revert(HcParcel *parcel, short *dst);
HcBool ParcelReadUint16Revert(HcParcel *parcel, uint16_t *dst);
HcBool ParcelReadInt8Revert(HcParcel *parcel, char *dst);
HcBool ParcelReadUint8Revert(HcParcel *parcel, uint8_t *dst);
HcBool ParcelReadUint64Revert(HcParcel *parcel, uint64_t *dst);
HcBool ParcelReadInt64Revert(HcParcel *parcel, int64_t *dst);
HcBool ParcelWriteInt32Revert(HcParcel *parcel, int src);
HcBool ParcelWriteUint32Revert(HcParcel *parcel, uint32_t src);
HcBool ParcelWriteInt16Revert(HcParcel *parcel, short src);
HcBool ParcelWriteUint16Revert(HcParcel *parcel, uint16_t src);
HcBool ParcelWriteInt8Revert(HcParcel *parcel, char src);
HcBool ParcelWriteUint8Revert(HcParcel *parcel, uint8_t src);
HcBool ParcelWriteUint64Revert(HcParcel *parcel, uint64_t src);
HcBool ParcelWriteInt64Revert(HcParcel *parcel, int64_t src);
void DataRevert(void *data, uint32_t length);
HcBool ParcelPopBack(HcParcel *parcel, uint32_t size);
HcBool ParcelPopFront(HcParcel *parcel, uint32_t size);
HcBool ParcelEraseBlock(HcParcel *parcel, uint32_t start, uint32_t data_size, void *dst);
#ifdef __cplusplus
}
#endif
#endif