Table of Contents

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 IDataSource

The original data source to slice.

start ulong

The starting address.

length ulong

The number of bytes.

Exceptions

ArgumentOutOfRangeException

Occurs when start and/or length 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

ulong

this[ulong]

Reads a single byte at the provided address.

public byte this[ulong address] { get; }

Parameters

address ulong

The address to read from.

Property Value

byte

Length

Gets the number of bytes accessible in the data source.

public ulong Length { get; }

Property Value

ulong

Methods

IsValidAddress(ulong)

Determines whether the provided address is a valid address in the data source.

public bool IsValidAddress(ulong address)

Parameters

address ulong

The 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 ulong

The starting address to read from.

buffer byte[]

The buffer that receives the read bytes.

index int

The index into the buffer to start writing at.

count int

The 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 ulong

The starting address to read from.

buffer Span<byte>

The buffer that receives the read bytes.

Returns

int

The number of bytes that were read.