Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
uni20::read_mdspan_lease< Mdspan, AccessState > Class Template Reference

Move-only RAII lease exposing one resolved read-only mdspan. More...

#include <access.hpp>

Public Types

using access_state_type = AccessState
 
using mdspan_type = Mdspan
 

Public Member Functions

mdspan_type & mdspan () &
 Return the resolved read-only mdspan.
 
mdspan_type mdspan () &&=delete
 
mdspan_type const & mdspan () const &
 Return the resolved read-only mdspan.
 
read_mdspan_lease & operator= (read_mdspan_lease &&other) noexcept
 
read_mdspan_lease & operator= (read_mdspan_lease const &)=delete
 
 read_mdspan_lease (access_state_type state, mdspan_type mdspan) noexcept
 Construct an active read lease.
 
 read_mdspan_lease (read_mdspan_lease &&other) noexcept
 
 read_mdspan_lease (read_mdspan_lease const &)=delete
 
void release () noexcept
 End the access scope.
 
 ~read_mdspan_lease ()
 

Detailed Description

template<MdspanLike Mdspan, TensorAccessState AccessState>
requires std::is_const_v<typename Mdspan::element_type> && std::is_nothrow_move_constructible_v<Mdspan>
class uni20::read_mdspan_lease< Mdspan, AccessState >

Move-only RAII lease exposing one resolved read-only mdspan.

This lower-level lease intentionally carries no tensor storage policy or backend selector. The access state is stored before the mdspan so the mdspan is destroyed before access ends.

Template Parameters
MdspanRead-only resolved mdspan type.
AccessStateRAII state retaining the acquired data handle.

Member Typedef Documentation

◆ access_state_type

template<MdspanLike Mdspan, TensorAccessState AccessState>
using uni20::read_mdspan_lease< Mdspan, AccessState >::access_state_type = AccessState

◆ mdspan_type

template<MdspanLike Mdspan, TensorAccessState AccessState>
using uni20::read_mdspan_lease< Mdspan, AccessState >::mdspan_type = Mdspan

Constructor & Destructor Documentation

◆ read_mdspan_lease() [1/3]

template<MdspanLike Mdspan, TensorAccessState AccessState>
uni20::read_mdspan_lease< Mdspan, AccessState >::read_mdspan_lease ( access_state_type  state,
mdspan_type  mdspan 
)
inlinenoexcept

Construct an active read lease.

◆ read_mdspan_lease() [2/3]

template<MdspanLike Mdspan, TensorAccessState AccessState>
uni20::read_mdspan_lease< Mdspan, AccessState >::read_mdspan_lease ( read_mdspan_lease< Mdspan, AccessState > const &  )
delete

◆ read_mdspan_lease() [3/3]

template<MdspanLike Mdspan, TensorAccessState AccessState>
uni20::read_mdspan_lease< Mdspan, AccessState >::read_mdspan_lease ( read_mdspan_lease< Mdspan, AccessState > &&  other)
inlinenoexcept

◆ ~read_mdspan_lease()

template<MdspanLike Mdspan, TensorAccessState AccessState>
uni20::read_mdspan_lease< Mdspan, AccessState >::~read_mdspan_lease ( )
inline

Member Function Documentation

◆ mdspan() [1/3]

template<MdspanLike Mdspan, TensorAccessState AccessState>
mdspan_type & uni20::read_mdspan_lease< Mdspan, AccessState >::mdspan ( ) &
inline

Return the resolved read-only mdspan.

◆ mdspan() [2/3]

template<MdspanLike Mdspan, TensorAccessState AccessState>
mdspan_type uni20::read_mdspan_lease< Mdspan, AccessState >::mdspan ( ) &&
delete

◆ mdspan() [3/3]

template<MdspanLike Mdspan, TensorAccessState AccessState>
mdspan_type const & uni20::read_mdspan_lease< Mdspan, AccessState >::mdspan ( ) const &
inline

Return the resolved read-only mdspan.

◆ operator=() [1/2]

template<MdspanLike Mdspan, TensorAccessState AccessState>
read_mdspan_lease & uni20::read_mdspan_lease< Mdspan, AccessState >::operator= ( read_mdspan_lease< Mdspan, AccessState > &&  other)
inlinenoexcept

◆ operator=() [2/2]

template<MdspanLike Mdspan, TensorAccessState AccessState>
read_mdspan_lease & uni20::read_mdspan_lease< Mdspan, AccessState >::operator= ( read_mdspan_lease< Mdspan, AccessState > const &  )
delete

◆ release()

template<MdspanLike Mdspan, TensorAccessState AccessState>
void uni20::read_mdspan_lease< Mdspan, AccessState >::release ( )
inlinenoexcept

End the access scope.

Repeated calls have no effect.


The documentation for this class was generated from the following file: