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