#pragma once

//! @file Mix/Memory/IBuffer.h
//! @brief バッファインターフェースインクルードファイル

#include "Mix/Reference.h"

namespace Mix{ namespace Memory{

	//! @class IBuffer
	//! @brief バッファインターフェース
	class IBuffer : public Mix::Reference
	{
	protected:
		//! @brief デストラクタ
		virtual ~IBuffer( void ){}

	public:
		//! @brief メモリのポインタを取得( const )
		//! @return メモリのポインタを返します
		virtual const void* GetConstPointer( void ) const = 0;
		//! @brief メモリのポインタを取得
		//! @return メモリのポインタを返します
		virtual void* GetPointer( void ) const = 0;
		//! @brief メモリのサイズを取得
		//! @return メモリのサイズを返します
		virtual UIntT GetSize( void ) const = 0;
	};

}}
