using BizHawk.Emulation.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BizHawk.Emulation.Cores.Waterbox
{
	internal class CustomSaverammer : ISaveRam
	{
		private readonly ICustomSaveram _s;
		private readonly int _size;


		public CustomSaverammer(ICustomSaveram s)
		{
			_s = s;
			_size = s.GetSaveramSize();
		}

		public bool SaveRamModified => _size > 0;

		public byte[] CloneSaveRam()
		{
			var ret = new byte[_size];
			_s.GetSaveram(ret, ret.Length);
			return ret;
		}

		public void StoreSaveRam(byte[] data)
		{
			if (data.Length != _size)
				throw new InvalidOperationException("Wrong size saveram");
			_s.PutSaveram(data, data.Length);
		}
	}
}
