64 lines
1.9 KiB
C++
64 lines
1.9 KiB
C++
#ifndef _RAR_ERRHANDLER_
|
|
#define _RAR_ERRHANDLER_
|
|
|
|
#if (defined(GUI) || !defined(_WIN_32)) && !defined(SFX_MODULE) && !defined(_WIN_CE) || defined(RARDLL)
|
|
#define ALLOW_EXCEPTIONS
|
|
#endif
|
|
|
|
|
|
|
|
#define rarmalloc malloc
|
|
#define rarcalloc calloc
|
|
#define rarrealloc realloc
|
|
#define rarfree free
|
|
#define rarstrdup strdup
|
|
#define rarstrdupw strdupw
|
|
|
|
|
|
|
|
enum { SUCCESS,WARNING,FATAL_ERROR,CRC_ERROR,LOCK_ERROR,WRITE_ERROR,
|
|
OPEN_ERROR,USER_ERROR,MEMORY_ERROR,CREATE_ERROR,USER_BREAK=255};
|
|
|
|
class ErrorHandler
|
|
{
|
|
private:
|
|
void ErrMsg(const char *ArcName,const char *fmt,...);
|
|
|
|
int ExitCode;
|
|
int ErrCount;
|
|
bool EnableBreak;
|
|
bool Silent;
|
|
bool DoShutdown;
|
|
public:
|
|
ErrorHandler();
|
|
void Clean();
|
|
void MemoryError();
|
|
void OpenError(const char *FileName);
|
|
void CloseError(const char *FileName);
|
|
void ReadError(const char *FileName);
|
|
bool AskRepeatRead(const char *FileName);
|
|
void WriteError(const char *ArcName,const char *FileName);
|
|
void WriteErrorFAT(const char *FileName);
|
|
bool AskRepeatWrite(const char *FileName,bool DiskFull);
|
|
void SeekError(const char *FileName);
|
|
void GeneralErrMsg(const char *Msg);
|
|
void MemoryErrorMsg();
|
|
void OpenErrorMsg(const char *FileName);
|
|
void OpenErrorMsg(const char *ArcName,const char *FileName);
|
|
void CreateErrorMsg(const char *FileName);
|
|
void CreateErrorMsg(const char *ArcName,const char *FileName);
|
|
void ReadErrorMsg(const char *ArcName,const char *FileName);
|
|
void WriteErrorMsg(const char *ArcName,const char *FileName);
|
|
void Exit(int ExitCode);
|
|
void SetErrorCode(int Code);
|
|
int GetErrorCode() {return(ExitCode);}
|
|
int GetErrorCount() {return(ErrCount);}
|
|
void SetSignalHandlers(bool Enable);
|
|
void Throw(int Code);
|
|
void SetSilent(bool Mode) {Silent=Mode;};
|
|
void SetShutdown(bool Mode) {DoShutdown=Mode;};
|
|
void SysErrMsg();
|
|
};
|
|
|
|
#endif
|