# OnnxRuntime: Ort::detail::ConstValueImpl< T > Struct Template Reference

Loading...
Searching...
No Matches
Ort::detail::ConstValueImpl< T > Struct Template Reference

`#include <onnxruntime_cxx_api.h>`

Inheritance diagram for Ort::detail::ConstValueImpl< T >:

## Public Types

using | B = Base< T >
Public Types inherited from Ort::detail::Base< T >
using | contained_type = T

## Public Member Functions

template<typename R >
void | GetOpaqueData (const char *domain, const char *type_name, R &) const
| Obtains a pointer to a user defined data for experimental purposes.
bool | IsTensor () const
| Returns true if Value is a tensor, false for other types like map/sequence/etc.
bool | HasValue () const
size_t | GetCount () const
| < Return true if OrtValue contains data and returns false if the OrtValue is a None
Value | GetValue (int index, OrtAllocator *allocator) const
size_t | GetStringTensorDataLength () const
| This API returns a full length of string data contained within either a tensor or a sparse Tensor. For sparse tensor it returns a full length of stored non-empty strings (values). The API is useful for allocating necessary memory and calling GetStringTensorContent().
void | GetStringTensorContent (void *buffer, size_t buffer_length, size_t *offsets, size_t offsets_count) const
| The API copies all of the UTF-8 encoded string data contained within a tensor or a sparse tensor into a supplied buffer. Use GetStringTensorDataLength() to find out the length of the buffer to allocate. The user must also allocate offsets buffer with the number of entries equal to that of the contained strings.
template<typename R >
const R * | GetTensorData () const
| Returns a const typed pointer to the tensor contained data. No type checking is performed, the caller must ensure the type matches the tensor type.
const void * | GetTensorRawData () const
| Returns a non-typed pointer to a tensor contained data.
TypeInfo | GetTypeInfo () const
| The API returns type information for data contained in a tensor. For sparse tensors it returns type information for contained non-zero values. It returns dense shape for sparse tensors.
TensorTypeAndShapeInfo | GetTensorTypeAndShapeInfo () const
| The API returns type information for data contained in a tensor. For sparse tensors it returns type information for contained non-zero values. It returns dense shape for sparse tensors.
ConstMemoryInfo | GetTensorMemoryInfo () const
| This API returns information about the memory allocation used to hold data.
void | GetStringTensorElement (size_t buffer_length, size_t element_index, void *buffer) const
| The API copies UTF-8 encoded bytes for the requested string element contained within a tensor or a sparse tensor into a provided buffer. Use GetStringTensorElementLength() to obtain the length of the buffer to allocate.
size_t | GetStringTensorElementLength (size_t element_index) const
| The API returns a byte length of UTF-8 encoded string element contained in either a tensor or a spare tensor values.
OrtSparseFormat | GetSparseFormat () const
| The API returns the sparse data format this OrtValue holds in a sparse tensor. If the sparse tensor was not fully constructed, i.e. Use*() or Fill*() API were not used the value returned is ORT_SPARSE_UNDEFINED.
TensorTypeAndShapeInfo | GetSparseTensorValuesTypeAndShapeInfo () const
| The API returns type and shape information for stored non-zero values of the sparse tensor. Use GetSparseTensorValues() to obtain values buffer pointer.
TensorTypeAndShapeInfo | GetSparseTensorIndicesTypeShapeInfo (OrtSparseIndicesFormat format) const
| The API returns type and shape information for the specified indices. Each supported indices have their own enum values even if a give format has more than one kind of indices. Use GetSparseTensorIndicesData() to obtain pointer to indices buffer.
template<typename R >
const R * | GetSparseTensorIndicesData (OrtSparseIndicesFormat indices_format, size_t &num_indices) const
| The API retrieves a pointer to the internal indices buffer. The API merely performs a convenience data type casting on the return type pointer. Make sure you are requesting the right type, use GetSparseTensorIndicesTypeShapeInfo();.
bool | IsSparseTensor () const
| Returns true if the OrtValue contains a sparse tensor.
template<typename R >
const R * | GetSparseTensorValues () const
| The API returns a pointer to an internal buffer of the sparse tensor containing non-zero values. The API merely does casting. Make sure you are requesting the right data type by calling GetSparseTensorValuesTypeAndShapeInfo() first.
Public Member Functions inherited from Ort::detail::Base< T >
constexpr | Base ()=default
constexpr | Base (contained_type *p) noexcept
| ~Base ()
| Base (const Base &)=delete
Base & | operator= (const Base &)=delete
| Base (Base &&v) noexcept
Base & | operator= (Base &&v) noexcept
constexpr | operator contained_type * () const noexcept
contained_type * | release ()
| Relinquishes ownership of the contained C object pointer The underlying object is not destroyed.

## Additional Inherited Members

Protected Attributes inherited from Ort::detail::Base< T >
contained_type * | p_ {}

## Member Typedef Documentation

## B

template<typename T >

using Ort::detail::ConstValueImpl< T >::B = Base<T>

## Member Function Documentation

## GetCount()

template<typename T >

size_t Ort::detail::ConstValueImpl< T >::GetCount | ( |  | ) | const

< Return true if OrtValue contains data and returns false if the OrtValue is a None

## GetOpaqueData()

template<typename T >
template<typename R >

void Ort::detail::ConstValueImpl< T >::GetOpaqueData | ( | const char * | domain,
|  | const char * | type_name,
|  | R & |
| ) |  | const

Obtains a pointer to a user defined data for experimental purposes.

Wraps OrtApi::GetOpaqueValue

## GetSparseFormat()

template<typename T >

OrtSparseFormat Ort::detail::ConstValueImpl< T >::GetSparseFormat | ( |  | ) | const

The API returns the sparse data format this OrtValue holds in a sparse tensor. If the sparse tensor was not fully constructed, i.e. Use*() or Fill*() API were not used the value returned is ORT_SPARSE_UNDEFINED.

Returns
  Format enum

## GetSparseTensorIndicesData()

template<typename T >
template<typename R >

const R * Ort::detail::ConstValueImpl< T >::GetSparseTensorIndicesData | ( | OrtSparseIndicesFormat | indices_format,
|  | size_t & | num_indices
| ) |  | const

The API retrieves a pointer to the internal indices buffer. The API merely performs a convenience data type casting on the return type pointer. Make sure you are requesting the right type, use GetSparseTensorIndicesTypeShapeInfo();.

Template Parameters

  T | type to cast to

Parameters

  indices_format | requested indices kind
  num_indices | number of indices entries

Returns
  Pinter to the internal sparse tensor buffer containing indices. Do not free this pointer.

## GetSparseTensorIndicesTypeShapeInfo()

template<typename T >

TensorTypeAndShapeInfo Ort::detail::ConstValueImpl< T >::GetSparseTensorIndicesTypeShapeInfo | ( | OrtSparseIndicesFormat | format | ) | const

The API returns type and shape information for the specified indices. Each supported indices have their own enum values even if a give format has more than one kind of indices. Use GetSparseTensorIndicesData() to obtain pointer to indices buffer.

Parameters

  format | enum requested

Returns
  type and shape information

## GetSparseTensorValues()

template<typename T >
template<typename R >

const R * Ort::detail::ConstValueImpl< T >::GetSparseTensorValues | ( |  | ) | const

The API returns a pointer to an internal buffer of the sparse tensor containing non-zero values. The API merely does casting. Make sure you are requesting the right data type by calling GetSparseTensorValuesTypeAndShapeInfo() first.

Template Parameters

  T | numeric data types only. Use GetStringTensor*() to retrieve strings.

Returns
  a pointer to the internal values buffer. Do not free this pointer.

## GetSparseTensorValuesTypeAndShapeInfo()

template<typename T >

TensorTypeAndShapeInfo Ort::detail::ConstValueImpl< T >::GetSparseTensorValuesTypeAndShapeInfo | ( |  | ) | const

The API returns type and shape information for stored non-zero values of the sparse tensor. Use GetSparseTensorValues() to obtain values buffer pointer.

Returns
  TensorTypeAndShapeInfo values information

## GetStringTensorContent()

template<typename T >

void Ort::detail::ConstValueImpl< T >::GetStringTensorContent | ( | void * | buffer,
|  | size_t | buffer_length,
|  | size_t * | offsets,
|  | size_t | offsets_count
| ) |  | const

The API copies all of the UTF-8 encoded string data contained within a tensor or a sparse tensor into a supplied buffer. Use GetStringTensorDataLength() to find out the length of the buffer to allocate. The user must also allocate offsets buffer with the number of entries equal to that of the contained strings.

Strings are always assumed to be on CPU, no X-device copy.

Parameters

  buffer | user allocated buffer
  buffer_length | length in bytes of the allocated buffer
  offsets | a pointer to the offsets user allocated buffer
  offsets_count | count of offsets, must be equal to the number of strings contained. that can be obtained from the shape of the tensor or from GetSparseTensorValuesTypeAndShapeInfo() for sparse tensors

## GetStringTensorDataLength()

template<typename T >

size_t Ort::detail::ConstValueImpl< T >::GetStringTensorDataLength | ( |  | ) | const

This API returns a full length of string data contained within either a tensor or a sparse Tensor. For sparse tensor it returns a full length of stored non-empty strings (values). The API is useful for allocating necessary memory and calling GetStringTensorContent().

Returns
  total length of UTF-8 encoded bytes contained. No zero terminators counted.

## GetStringTensorElement()

template<typename T >

void Ort::detail::ConstValueImpl< T >::GetStringTensorElement | ( | size_t | buffer_length,
|  | size_t | element_index,
|  | void * | buffer
| ) |  | const

The API copies UTF-8 encoded bytes for the requested string element contained within a tensor or a sparse tensor into a provided buffer. Use GetStringTensorElementLength() to obtain the length of the buffer to allocate.

Parameters

  buffer_length |
  element_index |
  buffer |

## GetStringTensorElementLength()

template<typename T >

size_t Ort::detail::ConstValueImpl< T >::GetStringTensorElementLength | ( | size_t | element_index | ) | const

The API returns a byte length of UTF-8 encoded string element contained in either a tensor or a spare tensor values.

Parameters

  element_index |

Returns
  byte length for the specified string element

## GetTensorData()

template<typename T >
template<typename R >

const R * Ort::detail::ConstValueImpl< T >::GetTensorData | ( |  | ) | const

Returns a const typed pointer to the tensor contained data. No type checking is performed, the caller must ensure the type matches the tensor type.

Template Parameters

  T |

Returns
  const pointer to data, no copies made

Wraps OrtApi::GetTensorMutableData ///

## GetTensorMemoryInfo()

template<typename T >

ConstMemoryInfo Ort::detail::ConstValueImpl< T >::GetTensorMemoryInfo | ( |  | ) | const

This API returns information about the memory allocation used to hold data.

Returns
  Non owning instance of MemoryInfo

## GetTensorRawData()

template<typename T >

const void * Ort::detail::ConstValueImpl< T >::GetTensorRawData | ( |  | ) | const

Returns a non-typed pointer to a tensor contained data.

Returns
  const pointer to data, no copies made

## GetTensorTypeAndShapeInfo()

template<typename T >

TensorTypeAndShapeInfo Ort::detail::ConstValueImpl< T >::GetTensorTypeAndShapeInfo | ( |  | ) | const

The API returns type information for data contained in a tensor. For sparse tensors it returns type information for contained non-zero values. It returns dense shape for sparse tensors.

Returns
  TensorTypeAndShapeInfo

## GetTypeInfo()

template<typename T >

TypeInfo Ort::detail::ConstValueImpl< T >::GetTypeInfo | ( |  | ) | const

The API returns type information for data contained in a tensor. For sparse tensors it returns type information for contained non-zero values. It returns dense shape for sparse tensors.

Returns
  TypeInfo

## GetValue()

template<typename T >

Value Ort::detail::ConstValueImpl< T >::GetValue | ( | int | index,
|  | OrtAllocator * | allocator
| ) |  | const

## HasValue()

template<typename T >

bool Ort::detail::ConstValueImpl< T >::HasValue | ( |  | ) | const

## IsSparseTensor()

template<typename T >

bool Ort::detail::ConstValueImpl< T >::IsSparseTensor | ( |  | ) | const

Returns true if the OrtValue contains a sparse tensor.

Returns

## IsTensor()

template<typename T >

bool Ort::detail::ConstValueImpl< T >::IsTensor | ( |  | ) | const

Returns true if Value is a tensor, false for other types like map/sequence/etc.