#ifndef __CL_DEVICE_CLASS_H__
#define __CL_DEVICE_CLASS_H__

#ifdef __APPLE__
#include <OpenCL/opencl.h>
#else
#include <CL/cl.h>
#endif //__APPLE__

#include <string>
#include <sstream>
#include "clErrorClass.h"


//! デバイス用のクラス.
/*! デバイスの各情報を保持する. */
class clDeviceClass
{
//変数とか
private:
            cl_device_id    device_id;                      //!< デバイスのID
	        size_t          num_info;
	const   cl_device_info	*deviceinfo;					//!< デバイスの情報
	        __int8			**any;
protected:
public:
//関数
private:
protected:
public:
	clDeviceClass(cl_device_id device_id);
    ~clDeviceClass();

			void            setDeviceInfo();
            void            showDeviceInfo          (const cl_device_info device_info) const throw(clErrorClass);
            void            showDeviceInfoAll       () const;
    const   __int8*         getDeviceInfo           (const cl_device_info device_info) const;
};
#endif
