porter/libsrc/porter/infra/compress/compress.h

1 ファイル

1.1 porter/libsrc/porter/infra/compress/compress.h

データ圧縮・解凍モジュールの内部ヘッダー。

プラットフォームごとに異なる圧縮 API を共通インターフェースで抽象化します。

OS 使用ライブラリ フォーマット
Linux zlib (deflate/inflate, windowBits = -15) raw DEFLATE
Windows Compression API (MSZIP COMPRESS_RAW)

両 OS とも raw DEFLATE (RFC 1951) を出力するため、クロスプラットフォーム互換 通信が可能です。

圧縮ペイロードのフォーマット:

[元サイズ: uint32_t (ネットワークバイトオーダー)] [raw DEFLATE データ]

1.1.1 作者

c-modernization-kit sample team

1.1.2 バージョン

1.0.0

1.1.3 日付

2026/03/05

1.1.4 著作権

Copyright (C) CompanyName, Ltd. 2026. All rights reserved.

2 関数

2.1 potr_compress

int potr_compress ( uint8_t *dst, size_t *dst_len, const uint8_t *src, size_t src_len )

データを圧縮します。

2.1.1 引数

  • dst [out] 圧縮後データを格納するバッファ。 先頭 4 バイトに元サイズ (NBO) が書き込まれます。
  • dst_len [in,out] 入力: dst のバッファサイズ。 出力: 書き込んだバイト数。
  • src [in] 圧縮前データへのポインタ。
  • src_len [in] 圧縮前データのバイト数。

2.1.2 戻り値

成功時は 0、失敗時は -1 を返します。

2.2 potr_decompress

int potr_decompress ( uint8_t *dst, size_t *dst_len, const uint8_t *src, size_t src_len )

圧縮データを解凍します。

2.2.1 引数

  • dst [out] 解凍後データを格納するバッファ。
  • dst_len [in,out] 入力: dst のバッファサイズ。 出力: 書き込んだバイト数。
  • src [in] 圧縮後データへのポインタ (先頭 4 バイトは元サイズ)。
  • src_len [in] 圧縮後データのバイト数 (ヘッダーを含む)。

2.2.2 戻り値

成功時は 0、失敗時は -1 を返します。

3 定数、マクロ

3.1 POTR_COMPRESS_HEADER_SIZE

#define POTR_COMPRESS_HEADER_SIZE 4U

圧縮ペイロード先頭に付加する元サイズフィールドのバイト数。

3.2 POTR_COMPRESS_BUF_SIZE

#define POTR_COMPRESS_BUF_SIZE (POTR_COMPRESS_HEADER_SIZE + POTR_MAX_MESSAGE_SIZE + 64U)

圧縮後の最大バッファサイズ (元データ + ヘッダー + DEFLATE オーバーヘッド)。