Files
TencentOS-tiny/components/ota/common/diff/wstream.h
2020-07-17 18:44:51 +08:00

59 lines
2.0 KiB
C

/*----------------------------------------------------------------------------
* Tencent is pleased to support the open source community by making TencentOS
* available.
*
* Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.
* If you have downloaded a copy of the TencentOS binary from Tencent, please
* note that the TencentOS binary is licensed under the BSD 3-Clause License.
*
* If you have downloaded a copy of the TencentOS source code from Tencent,
* please note that TencentOS source code is licensed under the BSD 3-Clause
* License, except for the third-party components listed below which are
* subject to different license terms. Your integration of TencentOS into your
* own projects may require compliance with the BSD 3-Clause License, as well
* as the other licenses applicable to the third-party components included
* within TencentOS.
*---------------------------------------------------------------------------*/
#ifndef _WSTREAM_H_
#define _WSTREAM_H_
#include "stdint.h"
typedef struct write_stream_st {
int buf_size;
uint8_t *buf;
int cursor;
} wstream_t;
#define WSTREAM_SANITY_CHECK(wstream) \
if (!wstream || !wstream->buf) { \
return -1; \
}
#define WSTREAM_SANITY_CHECK_RC(wstream, rc) \
if (!wstream || !wstream->buf) { \
return rc; \
}
int wstream_create(wstream_t *wstream, uint8_t *buf, int buf_size);
int wstream_destroy(wstream_t *wstream);
int wstream_reset(wstream_t *wstream);
int wstream_write_byte(wstream_t *wstream, uint8_t byte);
int wstream_write_byte_at(wstream_t *wstream, int offset, uint8_t byte);
int wstream_write_stream(wstream_t *wstream, uint8_t *stream, int stream_size);
int wstream_write_stream_at(wstream_t *wstream, int offset, uint8_t *stream, int stream_size);
int wstream_length_get(wstream_t *wstream);
uint8_t *wstream_buf_get(wstream_t *wstream);
#endif /*_WSTREAM_H_ */