const_string#
Fully qualified name: omni::graph::core::ogn::const_string
-
class const_string : public omni::graph::core::ogn::base_string<const char, ConstAttributeDataHandle>#
std::string_view-like wrapper class for constant string attribute data in the Ogn Database.
It operates by using the Fabric interface to interact with string data it has stored. This const version of the string wrapper should be used for input attributes, whose data cannot be changed.
Public Types
-
using ConstBaseDataType = const typename std::remove_const<BaseDataType>::type#
const version of the BaseDataType
-
using this_t = base_array<BaseDataType, HandleType>#
Type definition of this class.
-
using iterator = typename gsl::span<BaseDataType>::iterator#
Iterator over the array contents.
-
using reverse_iterator = typename gsl::span<BaseDataType>::reverse_iterator#
Reverse iterator over the array contents.
Public Functions
-
const_string() = default#
Default constructor to start pointing to nothing.
-
inline size_t length() const#
- Returns:
The number of elements in the currently managed array
-
inline operator std::string() const#
Cast the string data to a std::string.
After you do this the string data is now a copy of the original so you can manipulate it without affecting the original, however it means you must reassign it back to a writable ogn::string if you do want to change the string.
- Returns:
String containing a copy of the internal raw string data
-
inline bool operator==(const IterableStringType &rhs) const#
See if two strings are equal.
These simple comparison operators avoid extra conversions to std::string, to help minimize allocations
- Template Parameters:
IterableStringType – String variant that supports iteration for comparison
- Parameters:
rhs – [in] String to compare against - just requires iterability
- Returns:
True if the strings have the same contents
-
inline bool operator!=(const IterableStringType &rhs) const#
See if two strings are not equal.
These simple comparison operators avoid extra conversions to std::string, to help minimize allocations
- Template Parameters:
IterableStringType – String variant that supports iteration for comparison
- Parameters:
rhs – [in] String to compare against - just requires iterability
- Returns:
True if the strings do not have the same contents
-
inline bool operator<(const IterableStringType &rhs) const#
See if this string is lexicographically less than the provided one.
These simple comparison operators avoid extra conversions to std::string, to help minimize allocations
- Template Parameters:
IterableStringType – String variant that supports iteration for comparison
- Parameters:
rhs – [in] String to compare against - just requires iterability
- Returns:
True if this string is lexicographically less than the provided one
-
inline bool operator>(const IterableStringType &rhs) const#
See if this string is lexicographically greater than the provided one.
These simple comparison operators avoid extra conversions to std::string, to help minimize allocations
- Template Parameters:
IterableStringType – String variant that supports iteration for comparison
- Parameters:
rhs – [in] String to compare against - just requires iterability
- Returns:
True if this string is lexicographically greater than the provided one
-
inline bool operator<=(const IterableStringType &rhs) const#
See if this string is lexicographically less than or equal to the provided one.
These simple comparison operators avoid extra conversions to std::string, to help minimize allocations
- Template Parameters:
IterableStringType – String variant that supports iteration for comparison
- Parameters:
rhs – [in] String to compare against - just requires iterability
- Returns:
True if this string is lexicographically less than or equal to the provided one
-
inline bool operator>=(const IterableStringType &rhs) const#
See if this string is lexicographically greater than or equal to the provided one.
These simple comparison operators avoid extra conversions to std::string, to help minimize allocations
- Template Parameters:
IterableStringType – String variant that supports iteration for comparison
- Parameters:
rhs – [in] String to compare against - just requires iterability
- Returns:
True if this string is lexicographically greater than or equal to the provided one
-
inline bool isValid() const#
Confirm that the data values are safe for accessing.
- Returns:
true if the context and attribute handle values are both valid
-
inline size_t size() const#
- Returns:
The number of elements in the currently managed array
-
inline bool empty() const#
- Returns:
Is the currently managed array empty?
-
inline ConstBaseDataType *data() const#
- Returns:
Pointer to the raw data in the array (first element)
-
inline const reverse_iterator rbegin() const#
- Returns:
Iterator pointing to the end of the array
-
inline const reverse_iterator rend() const#
- Returns:
Iterator pointing before the beginning of the array
-
inline ConstBaseDataType &operator[](size_t index) const#
Access a specific element of the array.
No bounds checking is performed.
- Parameters:
index – [in] Element index into the array
- Returns:
Reference to the index’th element of the array
-
inline ConstBaseDataType &at(size_t index) const#
Access a specific element of the array with bounds checking.
- Parameters:
index – [in] Element index into the array
- Throws:
std::out_of_range – if there is no data for the given index
- Returns:
Reference to the index’th element of the array
-
inline gsl::span<BaseDataType> const &span() const#
Access the underlying span that allows to access the array data.
- Returns:
A reference to the underlying span
-
inline GraphContextObj const *context() const#
Access the context to which this array belongs.
- Returns:
Pointer to the context to which this array belongs
-
inline HandleType const &handle() const#
Access the attribute handle used to access the array data in Fabric.
- Returns:
Pointer to the attribute handle used to access the array data in Fabric
-
inline void setDirty() const#
Flag the span data as not being up2Date.
-
inline void adjustHandle(size_t idx)#
In a vectorized context, move forward the current handle.
- Parameters:
idx – [in] The amount of instance(s) to offset the current handle
Protected Functions
-
inline void reset()#
Reset the internal span to point to new data.
- inline BaseDataType **getData(
- const IAttributeData &iData,
- ConstAttributeDataHandle const &hdl,
Get a pointer to the array data from a specific const data handle.
- Parameters:
iData – Interface class containing the accessor functions
hdl – Handle to the attribute data whose value is being retrieved
- Returns:
BaseDataType** Pointer to the array of retrieved data
- inline BaseDataType **getData(
- const IAttributeData &iData,
- AttributeDataHandle const &hdl,
Get a pointer to the array data from a specific mutable data handle.
- Parameters:
iData – Interface class containing the accessor functions
hdl – Handle to the attribute data whose value is being retrieved
- Returns:
BaseDataType** Pointer to the array of retrieved data
-
inline void setContext(const GraphContextObj &context)#
Set the context.
This is done to allow the same wrapper class to be used for multiple evaluations in different contexts.
- Parameters:
context – [in] The graph context to which the array belongs
-
inline void setHandle(HandleType handle)#
Set the attribute handle.
This is done to allow the same wrapper class to be used for multiple evaluations in different contexts.
- Parameters:
handle – [in] Handle to the attribute to which the array belongs
-
using ConstBaseDataType = const typename std::remove_const<BaseDataType>::type#