CloverBootloader/RedfishPkg/Include/Library/RedfishContentCodingLib.h

81 lines
3.3 KiB
C

/** @file
Definitinos of RedfishContentCodingLib.
(C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef REDFISH_CONTENT_CODING_LIB_H_
#define REDFISH_CONTENT_CODING_LIB_H_
/**
This is the function to encode the content use the
algorithm indicated in ContentEncodedValue. The naming of
ContentEncodedValue is follow HTTP spec or could be a
platform-specific value.
@param[in] ContentEncodedValue HTTP conent encoded value.
The value could be one of below
or any which is platform-specific.
- HTTP_CONTENT_ENCODING_IDENTITY "identity"
- HTTP_CONTENT_ENCODING_GZIP "gzip"
- HTTP_CONTENT_ENCODING_COMPRESS "compress"
- HTTP_CONTENT_ENCODING_DEFLATE "deflate"
- HTTP_CONTENT_ENCODING_BROTLI "br"
@param[in] OriginalContent Original content.
@param[in] OriginalContentLength The length of original content.
@param[out] EncodedContentPointer Pointer to receive the encoded content pointer.
@param[out] EncodedContentLength Length of encoded content.
@retval EFI_SUCCESS Content is encoded successfully.
@retval EFI_UNSUPPORTED No supported encoding funciton,
@retval EFI_INVALID_PARAMETER One of the given parameter is invalid.
**/
EFI_STATUS
RedfishContentEncode (
IN CHAR8 *ContentEncodedValue,
IN CHAR8 *OriginalContent,
IN UINTN OriginalContentLength,
OUT VOID **EncodedContentPointer,
OUT UINTN *EncodedLength
);
/**
This is the function to decode the content use the
algorithm indicated in ContentEncodedValue. The naming of
ContentEncodedValue is follow HTTP spec or could be a
platform-specific value.
@param[in] ContentDecodedValue HTTP conent decoded value.
The value could be one of below
or any which is platform-specific.
- HTTP_CONTENT_ENCODING_IDENTITY "identity"
- HTTP_CONTENT_ENCODING_GZIP "gzip"
- HTTP_CONTENT_ENCODING_COMPRESS "compress"
- HTTP_CONTENT_ENCODING_DEFLATE "deflate"
- HTTP_CONTENT_ENCODING_BROTLI "br"
@param[in] ContentPointer Original content.
@param[in] ContentLength The length of original content.
@param[out] DecodedContentPointer Pointer to receive decoded content pointer.
@param[out] DecodedContentLength Length of decoded content.
@retval EFI_SUCCESS Content is decoded successfully.
@retval EFI_UNSUPPORTED No supported decoding funciton,
@retval EFI_INVALID_PARAMETER One of the given parameter is invalid.
**/
EFI_STATUS
RedfishContentDecode (
IN CHAR8 *ContentEncodedValue,
IN VOID *ContentPointer,
IN UINTN ContentLength,
OUT VOID **DecodedContentPointer,
OUT UINTN *DecodedLength
);
#endif