#ifndef __CL_PLATFORM_CLASS_H__
#define __CL_PLATFORM_CLASS_H__

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

#include "clErrorClass.h"


#ifndef _WIN32 
#ifndef __int8
#define __int8 char
#endif
#endif

//! プラットフォーム用のクラス.
/*! プラットフォームの各情報を保持する. */
class clPlatformClass
{
private:
    //! プラットフォームの詳細情報を格納する構造体.
    cl_platform_info    *platform_info;     //!< プラットフォームの情報を取得するときのパラメータを格納.
    __int8              **any;			    //!< 取得した情報を格納する配列.
    size_t              num_info;           //!< パラーメータの数.
protected:
public:

// 関数
private:
protected:
public:
    clPlatformClass(cl_platform_id platform_id);
    ~clPlatformClass();

	        void        setPlatform(const cl_platform_id platform_id);
			void		showPlatformInfo(const cl_platform_info platform_info) const;
			void		showPlatformInfoAll() const;
    const   __int8      *getPlatformInfo(cl_platform_info platform_info) const;

};
#endif
