#include "errorClass.h"

//--------------------------------------------------------
//----------            errorClass            ------------
//--------------------------------------------------------
// -------------------------------------------------------

// -------------------------------------------------------
//! \brief  エラーしたときに呼ばれる.
//! \param  なし.
//! \return なし.
errorClass::errorClass()
{
	__CONSTRUCTOR

	err_func = "unknown";
	err_msg  = "error";
}

// -------------------------------------------------------
//! \brief  エラーのステータスを受け取ってクラス変数に格納.
//! \param  function エラーの発生場所(関数名).
//! \return なし.
errorClass::errorClass(const std::string &function)
{
	__CONSTRUCTOR

	err_func = function;
	err_msg  = "error";
}

// -------------------------------------------------------
//! \brief  エラーのステータスを受け取ってクラス変数に格納.
//! \param  a_msg    例外を投げるときのメッセージ.
//! \param  function エラーの発生場所(関数名).
//! \return なし.
errorClass::errorClass(const std::string &a_msg, const std::string &function)
{
	__CONSTRUCTOR

	err_func = function;
	err_msg  = a_msg;
}

// -------------------------------------------------------
//! \brief  特に何もしない.
//! \param  なし.
//! \return なし.
errorClass::~errorClass()
{
	__DESTRUCTOR
}

// -------------------------------------------------------
//! \brief  エラーメッセージをstring型で返す.
//! \param  なし.
//! \return const string 型のエラーメッセージ.
const std::string errorClass::msg() const
{
	return err_msg;
}

// -------------------------------------------------------
//! \brief  エラーメッセージをchar型で返す.
//! \param  なし.
//! \return const char pointer 型のエラーメッセージ.
const char*	errorClass::msgC() const
{
	return err_msg.c_str();
}

// -------------------------------------------------------
//! \brief  エラーが起きた関数名をstring型で返す.
//! \param  なし.
//! \return const string 型のエラーメッセージ.
const std::string errorClass::errFunc() const
{
	return err_func;
}

// -------------------------------------------------------
//! \brief  エラーが起きた関数名をchar型で返す.
//! \param  なし.
//! \return const char pointer 型のエラーメッセージ.
const char*	errorClass::errFuncC() const
{
	return err_func.c_str();
}

// -------------------------------------------------------
//! \brief  エラーを出力する.
//! \param  なし.
//! \return なし.
void errorClass::showErrMsg() const
{
	std::cerr << std::endl;
	std::cerr << "ErrorFunction  : " << err_func   << std::endl;
	std::cerr << "ErrorMessage   : " << err_msg    << std::endl;
	std::cerr << std::endl;
}