compress: compressor: merge compress and decompress functions into a single step function
This commit is contained in:
@@ -57,7 +57,7 @@ enum b_status b_compressor_destroy(struct b_compressor *compressor)
|
||||
return B_SUCCESS;
|
||||
}
|
||||
|
||||
enum b_status b_compressor_compress(struct b_compressor *compressor)
|
||||
static enum b_status compress(struct b_compressor *compressor)
|
||||
{
|
||||
if (compressor->c_mode != B_COMPRESSION_MODE_COMPRESS) {
|
||||
return B_ERR_BAD_STATE;
|
||||
@@ -70,12 +70,37 @@ enum b_status b_compressor_compress(struct b_compressor *compressor)
|
||||
return compressor->c_func->f_compress(compressor);
|
||||
}
|
||||
|
||||
enum b_status b_compressor_compress_end(struct b_compressor *compressor)
|
||||
static enum b_status decompress(struct b_compressor *compressor)
|
||||
{
|
||||
if (compressor->c_mode != B_COMPRESSOR_MODE_COMPRESS) {
|
||||
if (compressor->c_mode != B_COMPRESSION_MODE_DECOMPRESS) {
|
||||
return B_ERR_BAD_STATE;
|
||||
}
|
||||
|
||||
if (!compressor->c_func->f_decompress) {
|
||||
return B_ERR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
return compressor->c_func->f_decompress(compressor);
|
||||
}
|
||||
|
||||
enum b_status b_compressor_step(struct b_compressor *compressor)
|
||||
{
|
||||
switch (compressor->c_mode) {
|
||||
case B_COMPRESSION_MODE_COMPRESS:
|
||||
return compress(compressor);
|
||||
case B_COMPRESSION_MODE_DECOMPRESS:
|
||||
return decompress(compressor);
|
||||
default:
|
||||
return B_ERR_BAD_STATE;
|
||||
}
|
||||
}
|
||||
|
||||
enum b_status b_compressor_end(struct b_compressor *compressor)
|
||||
{
|
||||
if (compressor->c_mode != B_COMPRESSION_MODE_COMPRESS) {
|
||||
return B_SUCCESS;
|
||||
}
|
||||
|
||||
if (!compressor->c_func->f_compress_end) {
|
||||
return B_ERR_NOT_SUPPORTED;
|
||||
}
|
||||
@@ -85,7 +110,7 @@ enum b_status b_compressor_compress_end(struct b_compressor *compressor)
|
||||
return B_ERR_NO_SPACE;
|
||||
}
|
||||
|
||||
enum b_status status = b_compressor_compress(compressor);
|
||||
enum b_status status = b_compressor_step(compressor);
|
||||
if (!B_OK(status)) {
|
||||
return status;
|
||||
}
|
||||
@@ -94,19 +119,6 @@ enum b_status b_compressor_compress_end(struct b_compressor *compressor)
|
||||
return compressor->c_func->f_compress_end(compressor);
|
||||
}
|
||||
|
||||
enum b_status b_compressor_decompress(struct b_compressor *compressor)
|
||||
{
|
||||
if (compressor->c_mode != B_COMPRESSION_MODE_DECOMPRESS) {
|
||||
return B_ERR_BAD_STATE;
|
||||
}
|
||||
|
||||
if (!compressor->c_func->f_decompress) {
|
||||
return B_ERR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
return compressor->c_func->f_decompress(compressor);
|
||||
}
|
||||
|
||||
enum b_status b_compressor_reset(struct b_compressor *compressor)
|
||||
{
|
||||
compressor->c_flags &= ~COMPRESSOR_EOF;
|
||||
|
||||
@@ -21,9 +21,8 @@ BLUE_API b_status b_compressor_destroy(b_compressor *compressor);
|
||||
BLUE_API b_status b_compressor_get_buffer_size(
|
||||
const b_compressor *compressor, size_t *inbuf_size, size_t *outbuf_size);
|
||||
|
||||
BLUE_API b_status b_compressor_compress(b_compressor *compressor);
|
||||
BLUE_API b_status b_compressor_compress_end(b_compressor *compressor);
|
||||
BLUE_API b_status b_compressor_decompress(b_compressor *compressor);
|
||||
BLUE_API b_status b_compressor_step(b_compressor *compressor);
|
||||
BLUE_API b_status b_compressor_end(b_compressor *compressor);
|
||||
BLUE_API b_status b_compressor_reset(b_compressor *compressor);
|
||||
BLUE_API bool b_compressor_eof(const b_compressor *compressor);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user