+
+
+
+
+
+
-
-
542 m_thread = rhs.m_thread;
-
543 BaseType::Assign(rhs);
+
+
+
-
-
-
-
-
-
559 BaseType::operator=(rhs);
-
-
-
-
-
+
+
+
+
552 BaseType(rhs), m_thread(rhs.m_thread) {
+
+
+
+
+
+
+
559 BaseType(rhs), m_thread(rhs.m_thread) {
+
+
+
+
+
-
-
-
-
570 BaseType::operator=(std::move(rhs));
-
571 m_thread = rhs.m_thread;
-
-
+
+
+
+
573 BaseType::Bind(func);
-
-
-
580 auto derivedRhs =
dynamic_cast<const ClassType*
>(&rhs);
-
-
582 &m_thread == &derivedRhs->m_thread &&
-
583 BaseType::operator==(rhs);
-
-
-
-
-
-
-
602 if (this->GetSync()) {
-
-
604 return BaseType::operator()(std::forward<Args>(args)...);
-
-
-
607 auto delegate = std::shared_ptr<ClassType>(Clone());
-
-
-
610 auto msg = std::make_shared<
DelegateAsyncMsg<Args...>>(delegate, std::forward<Args>(args)...);
-
-
-
-
614 GetThread().DispatchDelegate(msg);
-
-
-
-
-
-
-
-
-
-
624 static_assert(!(std::disjunction_v<is_shared_ptr<Args>...> &&
-
625 (std::disjunction_v<std::is_lvalue_reference<Args>, std::is_pointer<Args>> || ...)),
-
626 "std::shared_ptr reference argument not allowed");
-
-
-
-
-
-
-
634 operator()(std::forward<Args>(args)...);
-
-
-
-
-
-
-
646 auto delegateMsg = std::dynamic_pointer_cast<
DelegateAsyncMsg<Args...>>(msg);
-
647 if (delegateMsg ==
nullptr)
-
648 throw std::invalid_argument(
"Invalid DelegateAsyncMsg cast");
+
+
+
+
+
583 m_thread = rhs.m_thread;
+
584 BaseType::Assign(rhs);
+
+
+
+
+
+
+
+
600 BaseType::operator=(rhs);
+
+
+
+
+
+
+
+
+
+
611 BaseType::operator=(std::move(rhs));
+
612 m_thread = rhs.m_thread;
+
+
+
+
+
+
+
+
621 auto derivedRhs =
dynamic_cast<const ClassType*
>(&rhs);
+
+
623 &m_thread == &derivedRhs->m_thread &&
+
624 BaseType::operator==(rhs);
+
+
+
+
+
+
+
643 if (this->GetSync()) {
+
+
645 return BaseType::operator()(std::forward<Args>(args)...);
+
+
+
648 auto delegate = std::shared_ptr<ClassType>(Clone());
-
-
+
+
651 auto msg = std::make_shared<
DelegateAsyncMsg<Args...>>(delegate, std::forward<Args>(args)...);
-
-
654 std::apply(&BaseType::operator(),
-
655 std::tuple_cat(std::make_tuple(
this), delegateMsg->GetArgs()));
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
694template <
class RetType,
class... Args>
-
-
-
-
-
-
-
-
+
+
+
655 GetThread().DispatchDelegate(msg);
+
+
+
+
+
+
+
+
+
+
665 static_assert(!(std::disjunction_v<is_shared_ptr<Args>...> &&
+
666 (std::disjunction_v<std::is_lvalue_reference<Args>, std::is_pointer<Args>> || ...)),
+
667 "std::shared_ptr reference argument not allowed");
+
+
+
+
+
+
+
675 operator()(std::forward<Args>(args)...);
+
+
+
+
+
+
+
687 auto delegateMsg = std::dynamic_pointer_cast<
DelegateAsyncMsg<Args...>>(msg);
+
688 if (delegateMsg ==
nullptr)
+
689 throw std::invalid_argument(
"Invalid DelegateAsyncMsg cast");
+
+
+
+
+
+
695 std::apply(&BaseType::operator(),
+
696 std::tuple_cat(std::make_tuple(
this), delegateMsg->GetArgs()));
+
+
+
+
+
+
+
+
-
-
-
715 BaseType(rhs), m_thread(rhs.m_thread) {
-
-
-
-
-
-
-
-
-
-
729 BaseType::Bind(func);
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
729template <
class RetType,
class... Args>
+
-
-
-
739 m_thread = rhs.m_thread;
-
740 BaseType::Assign(rhs);
-
-
-
-
-
-
-
-
756 BaseType::operator=(rhs);
-
-
-
-
-
-
-
-
-
-
767 BaseType::operator=(std::move(rhs));
-
768 m_thread = rhs.m_thread;
-
-
-
+
742template <
class TClass,
class RetType,
class... Args>
+
+
+
755template <
class TClass,
class RetType,
class... Args>
+
756DelegateMemberAsync<TClass, RetType(Args...)>
MakeDelegate(TClass*
object, RetType(TClass::* func)(Args... args)
const, DelegateThread& thread) {
+
757 return DelegateMemberAsync<TClass, RetType(Args...)>(object, func, thread);
+
+
+
768template <
class TClass,
class RetVal,
class... Args>
+
-
-
-
777 auto derivedRhs =
dynamic_cast<const ClassType*
>(&rhs);
-
-
779 &m_thread == &derivedRhs->m_thread &&
-
780 BaseType::operator==(rhs);
-
-
-
-
-
-
-
799 if (this->GetSync()) {
-
-
801 return BaseType::operator()(std::forward<Args>(args)...);
-
-
-
804 auto delegate = std::shared_ptr<ClassType>(Clone());
-
-
-
807 auto msg = std::make_shared<
DelegateAsyncMsg<Args...>>(delegate, std::forward<Args>(args)...);
-
-
-
-
811 GetThread().DispatchDelegate(msg);
-
-
-
-
-
-
-
-
-
-
821 static_assert(!(std::disjunction_v<is_shared_ptr<Args>...> &&
-
822 (std::disjunction_v<std::is_lvalue_reference<Args>, std::is_pointer<Args>> || ...)),
-
823 "std::shared_ptr reference argument not allowed");
-
-
-
-
-
-
-
831 operator()(std::forward<Args>(args)...);
-
-
-
-
-
-
-
843 auto delegateMsg = std::dynamic_pointer_cast<
DelegateAsyncMsg<Args...>>(msg);
-
844 if (delegateMsg ==
nullptr)
-
845 throw std::invalid_argument(
"Invalid DelegateAsyncMsg cast");
-
-
-
-
-
-
851 std::apply(&BaseType::operator(),
-
852 std::tuple_cat(std::make_tuple(
this), delegateMsg->GetArgs()));
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
885template <
class RetType,
class... Args>
-
-
-
898template <
class TClass,
class RetType,
class... Args>
-
-
-
911template <
class TClass,
class RetType,
class... Args>
-
912DelegateMemberAsync<TClass, RetType(Args...)>
MakeDelegate(TClass*
object, RetType(TClass::* func)(Args... args)
const, DelegateThread& thread) {
-
913 return DelegateMemberAsync<TClass, RetType(Args...)>(object, func, thread);
-
-
-
924template <
class TClass,
class RetVal,
class... Args>
-
-
-
-
938template <
class TClass,
class RetVal,
class... Args>
-
939DelegateMemberSpAsync<TClass, RetVal(Args...)>
MakeDelegate(std::shared_ptr<TClass>
object, RetVal(TClass::* func)(Args... args)
const, DelegateThread& thread) {
-
940 return DelegateMemberSpAsync<TClass, RetVal(Args...)>(object, func, thread);
-
-
-
949template <
class RetType,
class... Args>
-
-
-
-
-
+
+
782template <
class TClass,
class RetVal,
class... Args>
+
783DelegateMemberAsync<TClass, RetVal(Args...)>
MakeDelegate(std::shared_ptr<TClass>
object, RetVal(TClass::* func)(Args... args)
const, DelegateThread& thread) {
+
784 return DelegateMemberAsync<TClass, RetVal(Args...)>(object, func, thread);
+
+
+
793template <
class RetType,
class... Args>
+
+
+
+
+
Delegate series of classes are used to invoke a function synchronously.
Delegate inter-thread invoker base class.
std::list< T, Alloc > xlist
Definition DelegateOpt.h:19
@@ -813,95 +695,83 @@
virtual ~DelegateAsyncMsg()=default
Non-template base class for all delegates.
Definition Delegate.h:21
DelegateFree<> class synchronously invokes a free target function.
Definition Delegate.h:78
+
void Clear() noexcept
Clear the target function.
Definition Delegate.h:168
DelegateFreeAsync<> class asynchronously invokes a free target function.
Definition DelegateAsync.h:65
-
virtual void DelegateInvoke(std::shared_ptr< DelegateMsg > msg)
Invoke the delegate function on the destination thread. Called by the destintation thread.
Definition DelegateAsync.h:217
-
void AsyncInvoke(Args... args)
Invoke delegate function asynchronously. Do not wait for return value. Called by the source thread.
Definition DelegateAsync.h:206
-
ClassType & operator=(const ClassType &rhs)
Assignment operator that assigns the state of one object to another.
Definition DelegateAsync.h:130
-
bool GetSync()
Get the synchronous target invoke flag.
Definition DelegateAsync.h:239
+
virtual void DelegateInvoke(std::shared_ptr< DelegateMsg > msg) override
Invoke the delegate function on the destination thread. Called by the destintation thread.
Definition DelegateAsync.h:218
+
void AsyncInvoke(Args... args)
Invoke delegate function asynchronously. Do not wait for return value. Called by the source thread.
Definition DelegateAsync.h:207
+
ClassType & operator=(const ClassType &rhs)
Assignment operator that assigns the state of one object to another.
Definition DelegateAsync.h:131
+
bool GetSync()
Get the synchronous target invoke flag.
Definition DelegateAsync.h:240
DelegateFreeAsync()=delete
DelegateFreeAsync(ClassType &&rhs) noexcept
Move constructor that transfers ownership of resources.
Definition DelegateAsync.h:91
-
virtual RetType operator()(Args... args) override
Invoke the bound delegate function asynchronously. Called by the source thread.
Definition DelegateAsync.h:173
-
void Assign(const ClassType &rhs)
Assigns the state of one object to another.
Definition DelegateAsync.h:114
-
virtual bool operator==(const DelegateBase &rhs) const override
Compares two delegate objects for equality.
Definition DelegateAsync.h:152
+
virtual RetType operator()(Args... args) override
Invoke the bound delegate function asynchronously. Called by the source thread.
Definition DelegateAsync.h:174
+
void Assign(const ClassType &rhs)
Assigns the state of one object to another.
Definition DelegateAsync.h:115
+
virtual bool operator==(const DelegateBase &rhs) const override
Compares two delegate objects for equality.
Definition DelegateAsync.h:153
DelegateFreeAsync(FreeFunc func, DelegateThread &thread)
Constructor to create a class instance.
Definition DelegateAsync.h:74
-
void Bind(FreeFunc func, DelegateThread &thread)
Bind a free function to the delegate.
Definition DelegateAsync.h:103
-
DelegateThread & GetThread() noexcept
Get the destination thread that the target function is invoked on.
Definition DelegateAsync.h:233
-
void SetSync(bool sync)
Set the synchronous target invoke flag.
Definition DelegateAsync.h:243
-
ClassType & operator=(ClassType &&rhs) noexcept
Move assignment operator that transfers ownership of resources.
Definition DelegateAsync.h:141
+
void Bind(FreeFunc func, DelegateThread &thread)
Bind a free function to the delegate.
Definition DelegateAsync.h:104
+
DelegateThread & GetThread() noexcept
Get the destination thread that the target function is invoked on.
Definition DelegateAsync.h:234
+
void SetSync(bool sync)
Set the synchronous target invoke flag.
Definition DelegateAsync.h:244
+
ClassType & operator=(ClassType &&rhs) noexcept
Move assignment operator that transfers ownership of resources.
Definition DelegateAsync.h:142
DelegateFreeAsync(const ClassType &rhs)
Copy constructor that creates a copy of the given instance.
Definition DelegateAsync.h:84
-
virtual ClassType * Clone() const override
Creates a copy of the current object.
Definition DelegateAsync.h:123
-
DelegateFunction<> class synchronously invokes a std::function target function.
Definition Delegate.h:479
-
DelegateFunctionAsync<> class asynchronously invokes a std::function target function.
Definition DelegateAsync.h:695
-
virtual ClassType * Clone() const override
Creates a copy of the current object.
Definition DelegateAsync.h:747
-
virtual RetType operator()(Args... args) override
Invoke the bound delegate function asynchronously. Called by the source thread.
Definition DelegateAsync.h:797
-
ClassType & operator=(const ClassType &rhs)
Assignment operator that assigns the state of one object to another.
Definition DelegateAsync.h:754
-
bool GetSync()
Get the synchronous target invoke flag.
Definition DelegateAsync.h:863
-
DelegateFunctionAsync(const ClassType &rhs)
Copy constructor that creates a copy of the given instance.
Definition DelegateAsync.h:714
-
std::function< RetType(Args...)> FunctionType
Definition DelegateAsync.h:697
-
DelegateFunctionAsync(FunctionType func, DelegateThread &thread)
Constructor to create a class instance.
Definition DelegateAsync.h:704
-
void Bind(FunctionType func, DelegateThread &thread)
Bind a std::function to the delegate.
Definition DelegateAsync.h:727
-
virtual void DelegateInvoke(std::shared_ptr< DelegateMsg > msg)
Invoke the delegate function on the destination thread. Called by the destintation thread.
Definition DelegateAsync.h:841
-
void AsyncInvoke(Args... args)
Invoke delegate function asynchronously. Do not wait for return value. Called by the source thread.
Definition DelegateAsync.h:830
-
virtual bool operator==(const DelegateBase &rhs) const override
Compares two delegate objects for equality.
Definition DelegateAsync.h:776
-
ClassType & operator=(ClassType &&rhs) noexcept
Move assignment operator that transfers ownership of resources.
Definition DelegateAsync.h:765
-
void SetSync(bool sync)
Set the synchronous target invoke flag.
Definition DelegateAsync.h:867
+
virtual ClassType * Clone() const override
Creates a copy of the current object.
Definition DelegateAsync.h:124
+
DelegateFunction<> class synchronously invokes a std::function target function.
Definition Delegate.h:378
+
void Clear() noexcept
Clear the target function.
Definition Delegate.h:480
+
DelegateFunctionAsync<> class asynchronously invokes a std::function target function.
Definition DelegateAsync.h:532
+
virtual ClassType * Clone() const override
Creates a copy of the current object.
Definition DelegateAsync.h:591
+
virtual RetType operator()(Args... args) override
Invoke the bound delegate function asynchronously. Called by the source thread.
Definition DelegateAsync.h:641
+
ClassType & operator=(const ClassType &rhs)
Assignment operator that assigns the state of one object to another.
Definition DelegateAsync.h:598
+
virtual void DelegateInvoke(std::shared_ptr< DelegateMsg > msg) override
Invoke the delegate function on the destination thread. Called by the destintation thread.
Definition DelegateAsync.h:685
+
bool GetSync()
Get the synchronous target invoke flag.
Definition DelegateAsync.h:707
+
DelegateFunctionAsync(const ClassType &rhs)
Copy constructor that creates a copy of the given instance.
Definition DelegateAsync.h:551
+
std::function< RetType(Args...)> FunctionType
Definition DelegateAsync.h:534
+
DelegateFunctionAsync(FunctionType func, DelegateThread &thread)
Constructor to create a class instance.
Definition DelegateAsync.h:541
+
void Bind(FunctionType func, DelegateThread &thread)
Bind a std::function to the delegate.
Definition DelegateAsync.h:571
+
void AsyncInvoke(Args... args)
Invoke delegate function asynchronously. Do not wait for return value. Called by the source thread.
Definition DelegateAsync.h:674
+
virtual bool operator==(const DelegateBase &rhs) const override
Compares two delegate objects for equality.
Definition DelegateAsync.h:620
+
ClassType & operator=(ClassType &&rhs) noexcept
Move assignment operator that transfers ownership of resources.
Definition DelegateAsync.h:609
+
void SetSync(bool sync)
Set the synchronous target invoke flag.
Definition DelegateAsync.h:711
+
DelegateFunctionAsync(ClassType &&rhs) noexcept
Move constructor that transfers ownership of resources.
Definition DelegateAsync.h:558
DelegateFunctionAsync()=delete
-
void Assign(const ClassType &rhs)
Assigns the state of one object to another.
Definition DelegateAsync.h:738
-
DelegateThread & GetThread() noexcept
Get the destination thread that the target function is invoked on.
Definition DelegateAsync.h:857
-
Definition Delegate.h:455
-
DelegateMember<> class synchronously invokes a class member target function using a class object poin...
Definition Delegate.h:187
-
DelegateMemberAsync<> class asynchronously invokes a class member target function.
Definition DelegateAsync.h:263
-
void Bind(ObjectPtr object, ConstMemberFunc func, DelegateThread &thread)
Bind a member function to the delegate.
Definition DelegateAsync.h:316
-
DelegateMemberAsync(const ClassType &rhs)
Copy constructor that creates a copy of the given instance.
Definition DelegateAsync.h:290
-
virtual bool operator==(const DelegateBase &rhs) const override
Compares two delegate objects for equality.
Definition DelegateAsync.h:365
-
ClassType & operator=(const ClassType &rhs)
Assignment operator that assigns the state of one object to another.
Definition DelegateAsync.h:343
+
void Assign(const ClassType &rhs)
Assigns the state of one object to another.
Definition DelegateAsync.h:582
+
DelegateThread & GetThread() noexcept
Get the destination thread that the target function is invoked on.
Definition DelegateAsync.h:701
+
Definition Delegate.h:354
+
DelegateMember<> class synchronously invokes a class member target function using a class object poin...
Definition Delegate.h:188
+
void Clear() noexcept
Clear the target function.
Definition Delegate.h:339
+
DelegateMemberAsync<> class asynchronously invokes a class member target function.
Definition DelegateAsync.h:264
+
void Bind(ObjectPtr object, ConstMemberFunc func, DelegateThread &thread)
Bind a member function to the delegate.
Definition DelegateAsync.h:367
+
DelegateMemberAsync(const ClassType &rhs)
Copy constructor that creates a copy of the given instance.
Definition DelegateAsync.h:310
+
virtual bool operator==(const DelegateBase &rhs) const override
Compares two delegate objects for equality.
Definition DelegateAsync.h:416
+
ClassType & operator=(const ClassType &rhs)
Assignment operator that assigns the state of one object to another.
Definition DelegateAsync.h:394
+
virtual void DelegateInvoke(std::shared_ptr< DelegateMsg > msg) override
Invoke the delegate function on the destination thread. Called by the destintation thread.
Definition DelegateAsync.h:481
DelegateMemberAsync()=delete
-
void AsyncInvoke(Args... args)
Invoke delegate function asynchronously. Do not wait for return value. Called by the source thread.
Definition DelegateAsync.h:419
-
DelegateMemberAsync(ObjectPtr object, ConstMemberFunc func, DelegateThread &thread)
Constructor to create a class instance.
Definition DelegateAsync.h:282
-
DelegateMemberAsync(ObjectPtr object, MemberFunc func, DelegateThread &thread)
Constructor to create a class instance.
Definition DelegateAsync.h:275
-
void SetSync(bool sync)
Set the synchronous target invoke flag.
Definition DelegateAsync.h:456
-
virtual void DelegateInvoke(std::shared_ptr< DelegateMsg > msg)
Invoke the delegate function on the destination thread. Called by the destintation thread.
Definition DelegateAsync.h:430
-
ClassType & operator=(ClassType &&rhs) noexcept
Move assignment operator that transfers ownership of resources.
Definition DelegateAsync.h:354
-
virtual RetType operator()(Args... args) override
Invoke the bound delegate function asynchronously. Called by the source thread.
Definition DelegateAsync.h:386
-
void Bind(ObjectPtr object, MemberFunc func, DelegateThread &thread)
Bind a const member function to the delegate.
Definition DelegateAsync.h:304
-
void Assign(const ClassType &rhs)
Assigns the state of one object to another.
Definition DelegateAsync.h:327
-
DelegateThread & GetThread() noexcept
Get the destination thread that the target function is invoked on.
Definition DelegateAsync.h:446
-
virtual ClassType * Clone() const override
Creates a copy of the current object.
Definition DelegateAsync.h:336
-
TClass * ObjectPtr
Definition DelegateAsync.h:265
-
bool GetSync()
Get the synchronous target invoke flag.
Definition DelegateAsync.h:452
-
DelegateMemberSp<> class synchronously invokes a class member target function using a std::shared_ptr...
Definition Delegate.h:325
-
DelegateMemberSpAsync<> class asynchronously invokes a std::shared_ptr target function.
Definition DelegateAsync.h:476
-
DelegateMemberSpAsync(ObjectPtr object, ConstMemberFunc func, DelegateThread &thread)
Constructor to create a class instance.
Definition DelegateAsync.h:496
-
std::shared_ptr< TClass > ObjectPtr
Definition DelegateAsync.h:478
-
void SetSync(bool sync)
Set the synchronous target invoke flag.
Definition DelegateAsync.h:670
-
virtual void DelegateInvoke(std::shared_ptr< DelegateMsg > msg)
Invoke the delegate function on the destination thread. Called by the destintation thread.
Definition DelegateAsync.h:644
-
virtual RetType operator()(Args... args) override
Invoke the bound delegate function asynchronously. Called by the source thread.
Definition DelegateAsync.h:600
-
void Assign(const ClassType &rhs)
Assigns the state of one object to another.
Definition DelegateAsync.h:541
-
bool GetSync()
Get the synchronous target invoke flag.
Definition DelegateAsync.h:666
-
void Bind(ObjectPtr object, MemberFunc func, DelegateThread &thread)
Bind a const member function to the delegate.
Definition DelegateAsync.h:518
-
DelegateMemberSpAsync(const ClassType &rhs)
Copy constructor that creates a copy of the given instance.
Definition DelegateAsync.h:505
-
ClassType & operator=(ClassType &&rhs) noexcept
Move assignment operator that transfers ownership of resources.
Definition DelegateAsync.h:568
-
virtual bool operator==(const DelegateBase &rhs) const override
Compares two delegate objects for equality.
Definition DelegateAsync.h:579
-
void Bind(ObjectPtr object, ConstMemberFunc func, DelegateThread &thread)
Bind a const member function to the delegate.
Definition DelegateAsync.h:530
-
DelegateMemberSpAsync()=delete
-
void AsyncInvoke(Args... args)
Invoke delegate function asynchronously. Do not wait for return value. Called by the source thread.
Definition DelegateAsync.h:633
-
DelegateMemberSpAsync(ObjectPtr object, MemberFunc func, DelegateThread &thread)
Constructor to create a class instance.
Definition DelegateAsync.h:488
-
ClassType & operator=(const ClassType &rhs)
Assignment operator that assigns the state of one object to another.
Definition DelegateAsync.h:557
-
DelegateThread & GetThread() noexcept
Get the destination thread that the target function is invoked on.
Definition DelegateAsync.h:660
-
virtual ClassType * Clone() const override
Creates a copy of the current object.
Definition DelegateAsync.h:550
+
DelegateMemberAsync(SharedPtr object, ConstMemberFunc func, DelegateThread &thread)
Constructor to create a class instance.
Definition DelegateAsync.h:285
+
void AsyncInvoke(Args... args)
Invoke delegate function asynchronously. Do not wait for return value. Called by the source thread.
Definition DelegateAsync.h:470
+
DelegateMemberAsync(ObjectPtr object, ConstMemberFunc func, DelegateThread &thread)
Constructor to create a class instance.
Definition DelegateAsync.h:301
+
DelegateMemberAsync(ObjectPtr object, MemberFunc func, DelegateThread &thread)
Constructor to create a class instance.
Definition DelegateAsync.h:293
+
void SetSync(bool sync)
Set the synchronous target invoke flag.
Definition DelegateAsync.h:507
+
ClassType & operator=(ClassType &&rhs) noexcept
Move assignment operator that transfers ownership of resources.
Definition DelegateAsync.h:405
+
virtual RetType operator()(Args... args) override
Invoke the bound delegate function asynchronously. Called by the source thread.
Definition DelegateAsync.h:437
+
void Bind(ObjectPtr object, MemberFunc func, DelegateThread &thread)
Bind a const member function to the delegate.
Definition DelegateAsync.h:355
+
std::shared_ptr< TClass > SharedPtr
Definition DelegateAsync.h:267
+
void Assign(const ClassType &rhs)
Assigns the state of one object to another.
Definition DelegateAsync.h:378
+
DelegateThread & GetThread() noexcept
Get the destination thread that the target function is invoked on.
Definition DelegateAsync.h:497
+
virtual ClassType * Clone() const override
Creates a copy of the current object.
Definition DelegateAsync.h:387
+
void Bind(SharedPtr object, ConstMemberFunc func, DelegateThread &thread)
Bind a member function to the delegate.
Definition DelegateAsync.h:343
+
TClass * ObjectPtr
Definition DelegateAsync.h:266
+
DelegateMemberAsync(ClassType &&rhs) noexcept
Move constructor that transfers ownership of resources.
Definition DelegateAsync.h:317
+
bool GetSync()
Get the synchronous target invoke flag.
Definition DelegateAsync.h:503
+
void Bind(SharedPtr object, MemberFunc func, DelegateThread &thread)
Bind a const member function to the delegate.
Definition DelegateAsync.h:331
+
DelegateMemberAsync(SharedPtr object, MemberFunc func, DelegateThread &thread)
Constructor to create a class instance.
Definition DelegateAsync.h:277
Base class for all delegate inter-thread messages.
Definition DelegateMsg.h:22
Definition DelegateThread.h:16
Abstract base class to support asynchronous delegate function invoke on destination thread of control...
Definition DelegateInvoker.h:27
-
DelegateFree< RetType(Args...)> MakeDelegate(RetType(*func)(Args... args))
Creates a delegate that binds to a free function.
Definition Delegate.h:597
+
DelegateFree< RetType(Args...)> MakeDelegate(RetType(*func)(Args... args))
Creates a delegate that binds to a free function.
Definition Delegate.h:497
auto make_tuple_heap(xlist< std::shared_ptr< heap_arg_deleter_base > > &heapArgs, std::tuple< Ts... > tup)
Terminate the template metaprogramming argument loop. This function is called when there are no more ...
Definition make_tuple_heap.h:178
Definition DelegateAsync.h:59
-
Definition DelegateAsync.h:683
-
Definition DelegateAsync.h:256
-
Definition Delegate.h:179
-
Definition DelegateAsync.h:469
-
Definition Delegate.h:317
+
Definition DelegateAsync.h:520
+
Definition DelegateAsync.h:257
+
Definition Delegate.h:180