#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