Files
MultiPar/source/par2j/repair.h
2023-03-12 11:02:25 +09:00

72 lines
2.2 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#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