Add files via upload

This commit is contained in:
Yutaka Sawada
2023-03-12 11:02:25 +09:00
committed by GitHub
parent dcd8047d73
commit dd85bf7e4f
23 changed files with 15389 additions and 0 deletions

71
source/par2j/repair.h Normal file
View File

@@ -0,0 +1,71 @@
#ifndef _REPAIR_H_
#define _REPAIR_H_
#ifdef __cplusplus
extern "C" {
#endif
// ソース・ファイル情報を確認して集計する
int set_file_data(
char *ascii_buf, // 作業用
file_ctx_r *files);
// ソース・ファイルの検査結果を集計して、修復方法を判定する
int result_file_state(
char *ascii_buf,
int *result,
int parity_now,
int recovery_lost,
file_ctx_r *files, // 各ソース・ファイルの情報
source_ctx_r *s_blk); // 各ソース・ブロックの情報
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
// 簡単な修復を行う
int simple_repair(
char *ascii_buf,
int need_repair,
file_ctx_r *files); // 各ソース・ファイルの情報
// 4バイトのソース・ブロックを逆算してソース・ファイルに書き込む
int restore_block4(
wchar_t *file_path,
file_ctx_r *files, // 各ソース・ファイルの情報
source_ctx_r *s_blk); // 各ソース・ブロックの情報
// ソース・ブロックを流用または逆算してソース・ファイルに書き込む
int restore_block(
wchar_t *file_path,
int reuse_num, // 流用可能なソース・ブロックの数
file_ctx_r *files, // 各ソース・ファイルの情報
source_ctx_r *s_blk); // 各ソース・ブロックの情報
// 正しく修復できたか調べて結果表示する
int verify_repair(
wchar_t *file_path,
char *ascii_buf,
file_ctx_r *files, // 各ソース・ファイルの情報
source_ctx_r *s_blk); // 各ソース・ブロックの情報
// 作業用のソース・ファイルを削除する
void delete_work_file(
wchar_t *file_path,
file_ctx_r *files); // 各ソース・ファイルの情報
// ブロック単位の復元ができなくても、再構築したファイルで置き換える
void replace_incomplete(
wchar_t *file_path,
char *ascii_buf,
file_ctx_r *files, // 各ソース・ファイルの情報
source_ctx_r *s_blk); // 各ソース・ブロックの情報
// リカバリ・ファイルを削除するUseless状態だったのは無視する
int purge_recovery_file(void);
#ifdef __cplusplus
}
#endif
#endif