Class DataSourceSlice
- Namespace
- AsmResolver.IO
- Assembly
- AsmResolver.dll
Represents a data source that only exposes a part (slice) of another data source.
public class DataSourceSlice : ISpanDataSource, IDataSource
- Inheritance
-
DataSourceSlice
- Implements
- Inherited Members
- Extension Methods
Constructors
DataSourceSlice(IDataSource, ulong, ulong)
Creates a new data source slice.
public DataSourceSlice(IDataSource source, ulong start, ulong length)
Parameters
source
IDataSourceThe original data source to slice.
start
ulongThe starting address.
length
ulongThe number of bytes.
Exceptions
- ArgumentOutOfRangeException
Occurs when
start
and/orlength
result in addresses that are invalid in the original data source.
Properties
BaseAddress
Gets the first byte address of the data source that is accessible.
public ulong BaseAddress { get; }
Property Value
this[ulong]
Reads a single byte at the provided address.
public byte this[ulong address] { get; }
Parameters
address
ulongThe address to read from.
Property Value
Length
Gets the number of bytes accessible in the data source.
public ulong Length { get; }
Property Value
Methods
IsValidAddress(ulong)
Determines whether the provided address is a valid address in the data source.
public bool IsValidAddress(ulong address)
Parameters
address
ulongThe address to verify.
Returns
- bool
true
if the address is valid,false
otherwise.
ReadBytes(ulong, byte[], int, int)
Reads a block of data from the data source.
public int ReadBytes(ulong address, byte[] buffer, int index, int count)
Parameters
address
ulongThe starting address to read from.
buffer
byte[]The buffer that receives the read bytes.
index
intThe index into the buffer to start writing at.
count
intThe number of bytes to read.
Returns
- int
The number of bytes that were read.
ReadBytes(ulong, Span<byte>)
Reads a block of data from the data source.
public int ReadBytes(ulong address, Span<byte> buffer)
Parameters
address
ulongThe starting address to read from.
buffer
Span<byte>The buffer that receives the read bytes.
Returns
- int
The number of bytes that were read.