/** @file
  NULL instace of RedfishContentCodingLib

  (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>

  SPDX-License-Identifier: BSD-2-Clause-Patent

**/
#include <Uefi.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  *EncodedContentLength
  )
{
  return EFI_UNSUPPORTED;
}

/**
  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   *ContentDecodedValue,
  IN VOID    *ContentPointer,
  IN UINTN   ContentLength,
  OUT VOID   **DecodedContentPointer,
  OUT UINTN  *DecodedContentLength
  )
{
  return EFI_UNSUPPORTED;
}
