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

Move-only RAII lease exposing one resolved writable 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 writable mdspan.
 
mdspan_type mdspan () &&=delete
 
mdspan_type const & mdspan () const &
 Return the resolved writable mdspan without changing lease ownership.
 
write_mdspan_lease & operator= (write_mdspan_lease &&other) noexcept
 
write_mdspan_lease & operator= (write_mdspan_lease const &)=delete
 
void release () noexcept
 End the access scope.
 
 write_mdspan_lease (access_state_type state, mdspan_type mdspan) noexcept
 Construct an active write lease.
 
 write_mdspan_lease (write_mdspan_lease &&other) noexcept
 
 write_mdspan_lease (write_mdspan_lease const &)=delete
 
 ~write_mdspan_lease ()
 

Detailed Description

template<MutableMdspanLike Mdspan, TensorAccessState AccessState>
requires std::is_nothrow_move_constructible_v<Mdspan>
class uni20::write_mdspan_lease< Mdspan, AccessState >

Move-only RAII lease exposing one resolved writable 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
MdspanWritable resolved mdspan type.
AccessStateRAII state retaining the acquired data handle.

Member Typedef Documentation

◆ access_state_type

template<MutableMdspanLike Mdspan, TensorAccessState AccessState>
using uni20::write_mdspan_lease< Mdspan, AccessState >::access_state_type = AccessState

◆ mdspan_type

template<MutableMdspanLike Mdspan, TensorAccessState AccessState>
using uni20::write_mdspan_lease< Mdspan, AccessState >::mdspan_type = Mdspan

Constructor & Destructor Documentation

◆ write_mdspan_lease() [1/3]

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

Construct an active write lease.

◆ write_mdspan_lease() [2/3]

template<MutableMdspanLike Mdspan, TensorAccessState AccessState>
uni20::write_mdspan_lease< Mdspan, AccessState >::write_mdspan_lease ( write_mdspan_lease< Mdspan, AccessState > const &  )
delete

◆ write_mdspan_lease() [3/3]

template<MutableMdspanLike Mdspan, TensorAccessState AccessState>
uni20::write_mdspan_lease< Mdspan, AccessState >::write_mdspan_lease ( write_mdspan_lease< Mdspan, AccessState > &&  other)
inlinenoexcept

◆ ~write_mdspan_lease()

template<MutableMdspanLike Mdspan, TensorAccessState AccessState>
uni20::write_mdspan_lease< Mdspan, AccessState >::~write_mdspan_lease ( )
inline

Member Function Documentation

◆ mdspan() [1/3]

template<MutableMdspanLike Mdspan, TensorAccessState AccessState>
mdspan_type & uni20::write_mdspan_lease< Mdspan, AccessState >::mdspan ( ) &
inline

Return the resolved writable mdspan.

◆ mdspan() [2/3]

template<MutableMdspanLike Mdspan, TensorAccessState AccessState>
mdspan_type uni20::write_mdspan_lease< Mdspan, AccessState >::mdspan ( ) &&
delete

◆ mdspan() [3/3]

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

Return the resolved writable mdspan without changing lease ownership.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ release()

template<MutableMdspanLike Mdspan, TensorAccessState AccessState>
void uni20::write_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: