Files
attachment/attachments/nano_attachment/nano_compression.h
Daniel Eisenberg 599aa34732 sync code
2026-01-06 16:31:33 +02:00

46 lines
1.8 KiB
C
Executable File

#ifndef __NANO_COMPRESSION_H__
#define __NANO_COMPRESSION_H__
#include "nano_attachment_sender_thread.h"
/// @brief Compresses the given HTTP body using the specified compression type in the session data.
///
/// @param attachment Pointer to the NanoAttachment structure.
/// @param bodies Pointer to the NanoHttpBody structure containing the data to be compressed.
/// @param session_data_p Pointer to the HttpSessionData structure containing session-specific data.
///
/// @return Pointer to a new NanoHttpBody structure containing the compressed data,
/// or NULL if compression is not needed or fails.
NanoHttpBody *nano_compress_body(
NanoAttachment *attachment,
NanoHttpBody *bodies,
HttpSessionData *session_data_p
);
/// @brief Decompresses the given HTTP body using the specified compression type in the session data.
///
/// @param attachment Pointer to the NanoAttachment structure.
/// @param bodies Pointer to the NanoHttpBody structure containing the data to be decompressed.
/// @param session_data_p Pointer to the HttpSessionData structure containing session-specific data.
///
/// @return Pointer to a new NanoHttpBody structure containing the decompressed data,
/// or NULL if decompression is not needed or fails.
NanoHttpBody *nano_decompress_body(
NanoAttachment *attachment,
NanoHttpBody *bodies,
HttpSessionData *session_data_p
);
/// @brief Frees the memory allocated for the compressed HTTP body.
///
/// @param attachment Pointer to the NanoAttachment structure.
/// @param bodies Pointer to the NanoHttpBody structure containing the compressed data to be freed.
/// @param session_data_p Pointer to the HttpSessionData structure containing session-specific data.
void nano_free_compressed_body(
NanoAttachment *attachment,
NanoHttpBody *bodies,
HttpSessionData *session_data_p
);
#endif // __NANO_COMPRESSION_H__