Emul8.Peripherals.Memory.MappedMemory.ReadBytes C# (CSharp) 메소드

ReadBytes() 공개 메소드

public ReadBytes ( long offset, int count ) : byte[]
offset long
count int
리턴 byte[]
        public byte[] ReadBytes(long offset, int count)
        {
            var result = new byte[count];
            ReadBytes(offset, count, result, 0);
            return result;
        }

Same methods

MappedMemory::ReadBytes ( long offset, int count, byte destination, int startIndex ) : void

Usage Example

예제 #1
0
		public void ShouldSerializeMemory()
		{
			// preparing some random data
			const int size = 128 * 1024 * 1024;
			const int bufCount = 30;
			const int bufSize = 100 * 1024;
			var random = new Random();
			var buffers = new List<Tuple<int, byte[]>>(bufCount);
			for(var i = 0; i < bufCount; i++)
			{
				var buffer = new byte[bufSize];
				random.NextBytes(buffer);								
				int address;
				do 
				{					
					address = random.Next(size - bufSize);					
				}
				while (buffers.Any(x => address >= (x.Item1 - bufSize) && address <= (x.Item1 + bufSize)));
				buffers.Add(new Tuple<int, byte[]>(address, buffer));
			}
			
			using(var memory = new MappedMemory(size))
			{
				foreach(var buf in buffers)
				{
					memory.WriteBytes(buf.Item1, buf.Item2);					
				}				
				serializer.Serialize(memory, stream);
			}
			
			RewindStream();
			using(var memory = serializer.Deserialize<MappedMemory>(stream))
			{
				foreach(var buf in buffers)
				{					
					var bufCopy = memory.ReadBytes(buf.Item1, bufSize);
					CollectionAssert.AreEqual(bufCopy, buf.Item2);
				}
			}
		}