ResultValueTask

ResultValueTask class

Represents a hybrid task-like type that can wrap either a direct result value or a ResultTask.

template<typename T>class ResultValueTask : public System::IEquatable<ResultValueTask<T>>,
                                            public System::Details::BoxableObjectBase

Template parameters

ParameterDescription
TThe type of the result produced by the task.

Methods

MethodDescription
RTaskPtr<T> AsTask() constConverts this ResultValueTask to a shared pointer to ResultTask.
Runtime::CompilerServices::ConfiguredResultValueTaskAwaitable<T> ConfigureAwait(bool) constConfigures an awaiter for this task.
bool Equals(ResultValueTask) overrideDetermines whether this instance equals another ResultValueTask instance.
bool Equals(System::SharedPtr<System::Object>) overrideDetermines whether this instance equals another object.
virtual bool Equals(T)Determines if the the current and specified objects are equal.
virtual bool Equals(ptr)Compares objects using C# Object.Equals semantics.
static std::enable_if<IsSmartPtr<T1>::value&&IsSmartPtr<T2>::value, bool>::type Equals(T1 const&, T2 const&)Compares reference type objects in C# style.
static bool Equals(float const&, float const&)Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN.
static bool Equals(double const&, double const&)Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN.
virtual bool FastCast(const Details::FastRttiBase&, void **) constFor internal purposes only.
bool get_IsCanceled() constGets a value indicating whether the task completed due to being canceled.
bool get_IsCompleted() constGets a value indicating whether the task has completed.
bool get_IsCompletedSuccessfully() constGets a value indicating whether the task completed successfully.
bool get_IsFaulted() constGets a value indicating whether the task completed due to an unhandled exception.
T get_Result() constGets the result of the completed task.
Runtime::CompilerServices::ResultValueTaskAwaiter<T> GetAwaiter() constGets an awaiter for this task to support await expressions.
Detail::SmartPtrCounter * GetCounter()Gets reference counter data structure associated with the object.
virtual int32_t GetHashCode() constAnalog of C# Object.GetHashCode() method. Enables hashing of custom objects.
virtual const TypeInfo& GetType() constGets actual type of object. Analog of C# System.Object.GetType() call.
virtual bool Is(const TypeInfo&) constCheck if object represents an instance of type described by targetType. Analog of C# ‘is’ operator.
void Lock()Implements C# lock() statement locking. Call directly or use LockContext sentry object.
virtual ptr MemberwiseClone() constAnalog of C# Object.MemberwiseClone() method. Enables cloning custom types.
Object()Creates object. Initializes all internal data structures.
Object(Object const&)Copy constructor. Doesn’t copy anything, really, just initializes new object and enables copy constructing subclasses.
bool operator!=(const ResultValueTask&) constInequality operator for ResultValueTask.
Object& operator=(Object const&)Assignment operator. Doesn’t copy anything, really, just initializes new object and enables copy constructing subclasses.
bool operator==(const ResultValueTask&) constEquality operator for ResultValueTask.
static bool ReferenceEquals(ptr const&, ptr const&)Compares objects by reference.
static std::enable_if<!IsSmartPtr<T>::value, bool>::type ReferenceEquals(T const&, T const&)Compares objects by reference.
static std::enable_if<!IsSmartPtr<T>::value, bool>::type ReferenceEquals(T const&, std::nullptr_t)Reference-compares value type object with nullptr.
bool ReferenceEquals(String const&, std::nullptr_t)Specialization of Object::ReferenceEquals for case of string and nullptr.
bool ReferenceEquals(String const&, String const&)Specialization of Object::ReferenceEquals for case of strings.
int RemovedSharedRefs(int)Decreases shared reference count by specified value.
ResultValueTask()Constructs an empty, uninitialized ResultValueTask.
ResultValueTask(const T&)Constructs a completed ResultValueTask with the specified result.
ResultValueTask(const RTaskPtr<T>&)Constructs a ResultValueTask from a shared pointer to a ResultTask.
virtual void SetTemplateWeakPtr(uint32_t)Set n’th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode.
int SharedCount() constGets current value of shared reference counter.
Object * SharedRefAdded()Increments shared reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
int SharedRefRemovedSafe()Decrements and returns shared reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
virtual String ToString() constAnalog of C# Object.ToString() method. Enables converting custom objects to string.
static const TypeInfo& Type()Implements C# typeof(System.Object) construct.
void Unlock()Implements C# lock() statement unlocking. Call directly or use LockContext sentry object.
Detail::SmartPtrCounter * WeakRefAdded()Increments weak reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
void WeakRefRemoved()Decrements weak reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
virtual ~Object()Destroys object. Frees all internal data structures.

Remarks

ResultValueTask combines the benefits of ValueTask (reduced allocations for synchronous results) with the ability to wrap existing ResultTask objects. It provides awaitable interface and various task status inspection methods.

See Also