#include "clCommandQueueClass.h"

//--------------------------------------------------------
//----------       clCommandQueueClass        ------------
//--------------------------------------------------------
// -------------------------------------------------------

// -------------------------------------------------------
//! \brief  コンストラクタ. コマンドキューを作成する関数を呼び出す.
//! \param  context   コンテキスト.
//! \param  device_id デバイスのID.
//! \return なし.
clCommandQueueClass::clCommandQueueClass(cl_context context, cl_device_id device_id)
{try{
	__CONSTRUCTOR;

	cl_int status;
	clcommandqueue = clCreateCommandQueue(context,
										  device_id,
										  NULL,
										  &status);

	if(status != CL_SUCCESS){
		throw clErrorClass("failed to create command queue.", __FUNCTION__);
	}

}catch(clErrorClass &err){err.showErrMsg();}catch(...){std::cerr << "unknown error." << std::endl;}}


// -------------------------------------------------------
//! \brief  コマンドキューを破棄.
//! \param  なし.
//! \return なし.
clCommandQueueClass::~clCommandQueueClass()
{
	__DESTRUCTOR;
	clReleaseCommandQueue(clcommandqueue);
}

// -------------------------------------------------------
//! \brief  コマンドキューを返す関数.
//! \param  なし.
//! \return コマンドキューを返却.
const cl_command_queue clCommandQueueClass::getCommandQueue() const
{
	return clcommandqueue;
}
