/** @file Definitinos of RedfishContentCodingLib. (C) Copyright 2021 Hewlett Packard Enterprise Development LP
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