/* -------------------------------------------------------------------
 *
 *	File: AdacException.h
 *
 *	Date: 99/05/28
 *
 *	Author: Jürgen Schober, Point Design Software
 *
 *	Description: Class definition for Exception handling
 *			for msql++ and ADAC (Amiga Data Access Class,
 *			based on msql)
 *
 * ------------------------------------------------------------------- */

#ifndef ADAC_EXCEPTION_H
#define ADAC_EXCEPTION_H

#include <exec/types.h>

#define ADACE_UNKNOWN_ERROR 0
#define ADACE_FUNCTION_NOT_IMPLEMENTED 1
#define ADACE_SQLERROR 2
#define ADACE_NO_ERROR 3
#define ADACE_FAILED_ON_INIT 4
#define ADACE_INTERNAL_FAILURE 5

extern char* AdacExceptionArray[];

class AdacException
{
protected:
	int exc_Code;
	char *exc_Text;
	char *exc_Hint;
	long reserved;

public:
	AdacException(int code = 0);
	AdacException(int code,char *text, char *hint = NULL)
	{
		exc_Hint = hint;
		exc_Code = code;
		exc_Text = text;
	}
	virtual void Print(char *title = NULL);
	virtual int Warn(char *title, char* Buttons);
	virtual int Warn(char* Buttons = NULL);
};

#endif // ADAC_EXCEPTION_H
