BZ#:3174 Platform library to provide the encoding/decoding algorithms for the Redfish packets. The supported 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" Signed-off-by: Abner Chang <abner.chang@hpe.com> Cc: Nickle Wang <nickle.wang@hpe.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Nickle Wang <nickle.wang@hpe.com>
		
			
				
	
	
		
			79 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			3.2 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
 |