← All compilation units

Flyology.Buffers.Drivers

Description

Internal ownership-transfer support for completion-driven providers. @exclude

Address

function Address (Item : Detached_Buffer) return System.Address

Return the first address of provider-owned storage.

Parameters
Item

Provider-owned storage

Return value

Stable first byte address @exclude

Capacity

function Capacity (Item : Detached_Buffer) return Positive

Return provider-owned storage capacity.

Parameters
Item

Provider-owned storage

Return value

Pool block capacity @exclude

Channel_Metadata

function Channel_Metadata (Item : Detached_Buffer) return Interfaces.Unsigned_64

Return channel-local metadata retained with provider-owned storage.

Parameters
Item

Provider-owned storage to inspect

Return value

Opaque channel metadata @exclude

Detached_Buffer

type Detached_Buffer is limited new Ada.Finalization.Limited_Controlled with private;

@exclude

Has_Buffer

function Has_Buffer (Item : Detached_Buffer) return Boolean

Report whether provider storage owns a pool token.

Parameters
Item

Provider-owned storage

Return value

True when Item owns a token @exclude

Length

function Length (Item : Detached_Buffer) return Natural

Return provider-owned readable length.

Parameters
Item

Provider-owned storage

Return value

Current readable byte length @exclude

Move

procedure Move (Source : in out Detached_Buffer; Target : in out Detached_Buffer)

Move provider-owned storage without exposing its raw token.

Parameters
Source

Provider-owned source, vacant after the move

Target

Vacant provider-owned destination @exclude

Move_From

procedure Move_From (Item : in out Unique_Buffer; Target : in out Detached_Buffer)

Move an acquired public handle into internal provider storage.

Parameters
Item

Acquired source handle, vacant after the move

Target

Vacant provider-owned destination @exclude

Move_To

procedure Move_To (Source : in out Detached_Buffer; Item : in out Unique_Buffer)

Restore provider-owned storage to its original public handle.

Parameters
Source

Provider-owned source, vacant after the move

Item

Vacant destination from the same pool @exclude

Release

procedure Release (Item : in out Detached_Buffer)

Release provider-owned storage to its pool.

Parameters
Item

Provider-owned storage to release @exclude

Same_Pool

function Same_Pool (Source : Detached_Buffer; Target : Unique_Buffer) return Boolean

Report whether provider storage and a public handle share a pool.

Parameters
Source

Provider-owned storage

Target

Public handle to compare

Return value

True when Source owns a token from Target's pool @exclude

Set_Channel_Metadata

procedure Set_Channel_Metadata (Item : in out Detached_Buffer; Value : Interfaces.Unsigned_64)

Set channel-local metadata retained with provider-owned storage.

Parameters
Item

Provider-owned storage to update

Value

Opaque channel metadata @exclude

Set_Length

procedure Set_Length (Item : in out Detached_Buffer; Length : Natural)

Set provider-owned readable length.

Parameters
Item

Provider-owned storage

Length

New readable byte length @exclude