A extent object suitable for sharing address ranges between trusted and untrusted code.
More...
#include <asylo/platform/primitives/extent.h>
|
| constexpr | Extent () |
| | Initializes an empty extent. More...
|
| |
| constexpr | Extent (void *data, size_t size) |
| | Initializes an extent with a void pointer. More...
|
| |
| template<typename T > |
| constexpr | Extent (T *data) |
| | Initializes an extent with a pointer to a value. More...
|
| |
| template<typename T > |
| constexpr | Extent (T *data, size_t count) |
| | Initializes an extent with a pointer to an array of count objects of type T. More...
|
| |
| size_t | size () const |
| |
| void * | data () |
| |
| const void * | data () const |
| |
| bool | empty () const |
| | A predicate for whether the extent is empty. More...
|
| |
| void | CopyTo (char *out) const |
| | Copies the contents of the extent to out. More...
|
| |
| template<typename T > |
| T * | As () |
| | A size-aware reinterpret_cast for a mutable pointer. More...
|
| |
| template<typename T > |
| const T * | As () const |
| | A size-aware reinterpret_cast for a constant pointer. More...
|
| |
A extent object suitable for sharing address ranges between trusted and untrusted code.
◆ Extent() [1/4]
| constexpr asylo::primitives::Extent::Extent |
( |
| ) |
|
|
inline |
Initializes an empty extent.
◆ Extent() [2/4]
| constexpr asylo::primitives::Extent::Extent |
( |
void * |
data, |
|
|
size_t |
size |
|
) |
| |
|
inline |
Initializes an extent with a void pointer.
- Parameters
-
| data | A pointer to the start of the extent of memory. |
| size | The number of bytes in the extent. |
◆ Extent() [3/4]
template<typename T >
| constexpr asylo::primitives::Extent::Extent |
( |
T * |
data | ) |
|
|
inlineexplicit |
Initializes an extent with a pointer to a value.
The number of bytes stored for the extent is sizeof(T).
- Parameters
-
| data | A pointer to an object of type T |
◆ Extent() [4/4]
template<typename T >
| constexpr asylo::primitives::Extent::Extent |
( |
T * |
data, |
|
|
size_t |
count |
|
) |
| |
|
inline |
Initializes an extent with a pointer to an array of count objects of type T.
The size of the extent is count * sizeof(T).
- Parameters
-
| data | A pointer to the start of the array slice. |
| count | The number of elements included in the extent. |
◆ As() [1/2]
template<typename T >
| T* asylo::primitives::Extent::As |
( |
| ) |
|
|
inline |
A size-aware reinterpret_cast for a mutable pointer.
- Returns
- The extent data as a pointer to an object of type T, or nullptr if the extent is smaller than sizeof(T).
◆ As() [2/2]
template<typename T >
| const T* asylo::primitives::Extent::As |
( |
| ) |
const |
|
inline |
A size-aware reinterpret_cast for a constant pointer.
- Returns
- The extent data as a constant pointer to an object of type T, or nullptr if the extent is smaller than sizeof(T).
◆ CopyTo()
| void asylo::primitives::Extent::CopyTo |
( |
char * |
out | ) |
const |
|
inline |
Copies the contents of the extent to out.
The caller is responsible for allocating and freeing out correctly.
- Parameters
-
| out | A pointer to a mutable array of bytes. |
◆ data() [1/2]
| void* asylo::primitives::Extent::data |
( |
| ) |
|
|
inline |
- Returns
- The extent data as a pointer to an array of bytes.
◆ data() [2/2]
| const void* asylo::primitives::Extent::data |
( |
| ) |
const |
|
inline |
- Returns
- The extent data as a constant pointer to an array of bytes.
◆ empty()
| bool asylo::primitives::Extent::empty |
( |
| ) |
const |
|
inline |
A predicate for whether the extent is empty.
- Returns
- True if and only if either the extent data is null or the size is 0.
◆ size()
| size_t asylo::primitives::Extent::size |
( |
| ) |
const |
|
inline |
- Returns
- The size of the extent in bytes.
The documentation for this class was generated from the following file: