#include <delegate.h>
Delegate base class which can be used for DataType.
|
| | DelegateBase () |
| |
| | ~DelegateBase () |
| |
| template<typename STUBPTR > |
| | DelegateBase (void *objectPtr, STUBPTR stubPtr, Callback callback) |
| |
| template<typename FN , typename STUBPTR > |
| | DelegateBase (FN &&fn, STUBPTR stub, Callback callback) |
| |
| | DelegateBase (const DelegateBase &)=delete |
| |
| | DelegateBase (DelegateBase &&src) |
| |
| | MAXON_OPERATOR_MOVE_ASSIGNMENT (DelegateBase) |
| |
| void | Reset () |
| |
| ResultMem | CopyFrom (const DelegateBase &src) |
| |
| template<typename FN , typename STUBPTR > |
| ResultMem | CopyFrom (FN &&f, STUBPTR stub, Callback callback) |
| |
| template<typename OBJ , typename STUBPTR > |
| ResultMem | CopyFrom (OBJ &&object, STUBPTR stub) |
| |
| Bool | IsEmpty () const |
| |
| Bool | IsPopulated () const |
| |
| Bool | IsStaticFunctionPointer () const |
| |
| template<typename FUNCTIONPTR > |
| FUNCTIONPTR | GetStaticFunctionPointer () const |
| |
| template<typename STUBPTR > |
| STUBPTR | GetStubPointer () const |
| |
◆ Callback
◆ CALLBACKMODE
| Enumerator |
|---|
| ALLOC | Allocates memory for an object.
|
| DESTRUCT_AND_RELEASE | Destructs the object to which dst points and releases the memory.
|
| COPY | Copies the object from src to dst and returns the size on success (0 on failure).
|
| MOVE_AND_DESTRUCT | Moves the object from src to dst and returns the size (only used for internal storage, cannot fail).
|
◆ DelegateBase() [1/5]
◆ ~DelegateBase()
◆ DelegateBase() [2/5]
Constructs a delegate using object, stub and utility callback pointer.
- Template Parameters
-
| STUBPTR | The stub pointer type. |
- Parameters
-
| [in] | objectPtr | Self pointer of the object. Might be nullptr if the method has been inlined into the stub. |
| [in] | stubPtr | Stub method pointer (which forward the call to the callable). |
| [in] | callback | Utility callback which handles copy, move and destruction of the object. Nullptr for a static function. |
◆ DelegateBase() [3/5]
Assign when T is not a Delegate, but a function pointer, ptmf or a PTMFWrapper<OBJECT*, RESULT (OBJECT::*)(ARGS...)>.
◆ DelegateBase() [4/5]
◆ DelegateBase() [5/5]
◆ MAXON_ENUM_ORDERED_LIST_CLASS()
◆ MAXON_OPERATOR_MOVE_ASSIGNMENT()
◆ Reset()
◆ CopyFrom() [1/3]
- Parameters
-
- Returns
- OK on success.
◆ CopyFrom() [2/3]
Assign when T is not a Delegate, but a function pointer, ptmf or a PTMFWrapper<OBJECT*, RESULT (OBJECT::*)(ARGS...)>.
◆ CopyFrom() [3/3]
| ResultMem CopyFrom |
( |
OBJ && |
object, |
|
|
STUBPTR |
stub |
|
) |
| |
Copies or moves #object into the Delegate and sets #stub as the handler for delegate calls. #stub will receive a pointer to the object held by the Delegate in its first parameter.
- Parameters
-
| [in] | object | The object to move or copy. |
| [in] | stub | The call handler. |
- Returns
- OK on success.
◆ IsEmpty()
◆ IsPopulated()
| Bool IsPopulated |
( |
| ) |
const |
◆ IsStaticFunctionPointer()
| Bool IsStaticFunctionPointer |
( |
| ) |
const |
◆ GetStaticFunctionPointer()
| FUNCTIONPTR GetStaticFunctionPointer |
( |
| ) |
const |
◆ GetStubPointer()
| STUBPTR GetStubPointer |
( |
| ) |
const |
◆ GetReferenceUtilityStub() [1/2]
| static Callback GetReferenceUtilityStub |
( |
void * |
| ) |
|
|
staticprotected |
◆ GetReferenceUtilityStub() [2/2]
◆ PTMFUtilityStub()
A dummy stub for inlined PTMF which does nothing.
◆ UtilityStub()
Destructs, copies or moves an object with operator ()().
◆ ReferenceUtilityStub()
Destructs, copies or moves a reference with operator ()(). This treats _storage[0] as if it was not just a pointer, but a REFERENCE.
◆ _storage
◆ _objectPtr
◆ _stubPtr
◆ _callback