DelegateThread class
Base classes
- class Thread
Public types
- enum class HeapNullOption { AlwaysUseSpecifiedHeap = 0, UseSpecifiedOrContainHeap = 1, DoNotAppendDisposerIfNoHeapSpecified = 2, UseSpecifiedOrCurrentHeap = 3 }
- enum class NodeClassType { Reflexible = 0, Node = 1, Other = 2 }
- enum class AllocFlg { Name = 1u << 0u, Meta = 1u << 1u }
Public static variables
- static const s32 cDefaultPriority
Public static functions
- static void yield()
- static void sleep(TickSpan howLong)
- static auto getListNodeOffset() -> u32
Constructors, destructors, conversion operators
-
DelegateThread(const SafeString& name,
IDelegate2<Thread*, MessageQueue::
Element>* delegate, Heap* heap, s32 priority, MessageQueue:: BlockType block_type, MessageQueue:: Element quit_msg, s32 stack_size, s32 message_queue_size) - ~DelegateThread() override
Public functions
- void destroy() virtual
-
auto sendMessage(MessageQueue::
Element msg, MessageQueue:: BlockType block_type) -> bool virtual -
auto recvMessage(MessageQueue::
BlockType block_type) -> MessageQueue:: Element virtual - auto getMessageQueue() const -> const MessageQueue& virtual
- auto start() -> bool virtual
- void quit(bool is_jam) virtual
- void waitDone() virtual
- void quitAndDestroySingleThread(bool is_jam) virtual
- void quitAndWaitDoneSingleThread(bool is_jam) virtual
- void setPriority(s32 prio) virtual
- auto getPriority() const -> s32 virtual
-
auto getBlockType() const -> MessageQueue::
BlockType virtual - auto getStackSize() const -> s32 virtual
- auto calcStackUsedSizePeak() const -> s32 virtual
- auto getId() const -> u32
- auto getState() const -> State
- auto isDone() const -> bool
- auto isActive() const -> bool
- auto getAffinity() const -> const CoreIdMask&
- void setAffinity(const CoreIdMask& affinity)
- void checkStackOverFlow(const char* source_file, s32 source_line) const
- void checkStackEndCorruption(const char* source_file, s32 source_line) const
- void checkStackPointerOverFlow(const char* source_file, s32 source_line) const
- void setStackOverflowExceptionEnable(bool)
- auto getThreadListNode() -> ThreadListNode*
- auto isDefaultPriority() const -> bool
- auto getCurrentHeap() const -> Heap*
- auto setCurrentHeap(Heap* heap) -> Heap*
- auto getFindContainHeapCache() -> FindContainHeapCache*
- auto getName() const -> const SafeString&
- void setName(const SafeString& name)
- auto getNodeClassType() const -> NodeClassType virtual
Protected functions
-
void calc_(MessageQueue::
Element msg) override - void run_() virtual
- auto getStackCheckStartAddress_() const -> uintptr_t virtual
- void initStackCheck_()
- void initStackCheckWithCurrentStackPointer_()
- auto getDisposerHeap_() const -> Heap*
Protected variables
-
IDelegate2<Thread*, MessageQueue::
Element>* mDelegate - MessageQueue mMessageQueue
- s32 mStackSize
- ThreadListNode mListNode
- Heap* mCurrentHeap
- FindContainHeapCache mFindContainHeapCache
-
MessageQueue::
BlockType mBlockType -
MessageQueue::
Element mQuitMsg - u32 mId
- State mState
- CoreIdMask mAffinity
- void* mStackTop
- void* mStackTopForCheck
- s32 mPriority
Enum documentation
enum class sead:: DelegateThread:: HeapNullOption
#include <heap/seadDisposer.h>
enum class sead:: DelegateThread:: NodeClassType
#include <hostio/seadHostIOReflexible.h>
| Enumerators | |
|---|---|
| Reflexible | |
| Node | |
| Other |
Other classes. |
enum class sead:: DelegateThread:: AllocFlg
#include <hostio/seadHostIOReflexible.h>
Function documentation
static void sead:: DelegateThread:: yield()
#include <thread/seadThread.h>
static void sead:: DelegateThread:: sleep(TickSpan howLong)
#include <thread/seadThread.h>
static u32 sead:: DelegateThread:: getListNodeOffset()
#include <heap/seadDisposer.h>
void sead:: DelegateThread:: destroy() virtual
#include <thread/seadThread.h>
bool sead:: DelegateThread:: sendMessage(MessageQueue:: Element msg,
MessageQueue:: BlockType block_type) virtual
#include <thread/seadThread.h>
MessageQueue:: Element sead:: DelegateThread:: recvMessage(MessageQueue:: BlockType block_type) virtual
#include <thread/seadThread.h>
const MessageQueue& sead:: DelegateThread:: getMessageQueue() const virtual
#include <thread/seadThread.h>
bool sead:: DelegateThread:: start() virtual
#include <thread/seadThread.h>
void sead:: DelegateThread:: quit(bool is_jam) virtual
#include <thread/seadThread.h>
void sead:: DelegateThread:: waitDone() virtual
#include <thread/seadThread.h>
void sead:: DelegateThread:: quitAndDestroySingleThread(bool is_jam) virtual
#include <thread/seadThread.h>
void sead:: DelegateThread:: quitAndWaitDoneSingleThread(bool is_jam) virtual
#include <thread/seadThread.h>
void sead:: DelegateThread:: setPriority(s32 prio) virtual
#include <thread/seadThread.h>
s32 sead:: DelegateThread:: getPriority() const virtual
#include <thread/seadThread.h>
MessageQueue:: BlockType sead:: DelegateThread:: getBlockType() const virtual
#include <thread/seadThread.h>
s32 sead:: DelegateThread:: getStackSize() const virtual
#include <thread/seadThread.h>
s32 sead:: DelegateThread:: calcStackUsedSizePeak() const virtual
#include <thread/seadThread.h>
u32 sead:: DelegateThread:: getId() const
#include <thread/seadThread.h>
State sead:: DelegateThread:: getState() const
#include <thread/seadThread.h>
bool sead:: DelegateThread:: isDone() const
#include <thread/seadThread.h>
bool sead:: DelegateThread:: isActive() const
#include <thread/seadThread.h>
const CoreIdMask& sead:: DelegateThread:: getAffinity() const
#include <thread/seadThread.h>
void sead:: DelegateThread:: setAffinity(const CoreIdMask& affinity)
#include <thread/seadThread.h>
void sead:: DelegateThread:: checkStackOverFlow(const char* source_file,
s32 source_line) const
#include <thread/seadThread.h>
void sead:: DelegateThread:: checkStackEndCorruption(const char* source_file,
s32 source_line) const
#include <thread/seadThread.h>
void sead:: DelegateThread:: checkStackPointerOverFlow(const char* source_file,
s32 source_line) const
#include <thread/seadThread.h>
void sead:: DelegateThread:: setStackOverflowExceptionEnable(bool)
#include <thread/seadThread.h>
ThreadListNode* sead:: DelegateThread:: getThreadListNode()
#include <thread/seadThread.h>
bool sead:: DelegateThread:: isDefaultPriority() const
#include <thread/seadThread.h>
Heap* sead:: DelegateThread:: getCurrentHeap() const
#include <thread/seadThread.h>
Heap* sead:: DelegateThread:: setCurrentHeap(Heap* heap)
#include <thread/seadThread.h>
FindContainHeapCache* sead:: DelegateThread:: getFindContainHeapCache()
#include <thread/seadThread.h>
const SafeString& sead:: DelegateThread:: getName() const
#include <prim/seadNamable.h>
void sead:: DelegateThread:: setName(const SafeString& name)
#include <prim/seadNamable.h>
NodeClassType sead:: DelegateThread:: getNodeClassType() const virtual
#include <hostio/seadHostIOReflexible.h>
void sead:: DelegateThread:: run_() virtual protected
#include <thread/seadThread.h>
uintptr_t sead:: DelegateThread:: getStackCheckStartAddress_() const virtual protected
#include <thread/seadThread.h>
void sead:: DelegateThread:: initStackCheck_() protected
#include <thread/seadThread.h>
void sead:: DelegateThread:: initStackCheckWithCurrentStackPointer_() protected
#include <thread/seadThread.h>
Heap* sead:: DelegateThread:: getDisposerHeap_() const protected
#include <heap/seadDisposer.h>
Variable documentation
static const s32 sead:: DelegateThread:: cDefaultPriority
#include <thread/seadThread.h>
MessageQueue sead:: DelegateThread:: mMessageQueue protected
#include <thread/seadThread.h>
s32 sead:: DelegateThread:: mStackSize protected
#include <thread/seadThread.h>
ThreadListNode sead:: DelegateThread:: mListNode protected
#include <thread/seadThread.h>
Heap* sead:: DelegateThread:: mCurrentHeap protected
#include <thread/seadThread.h>
FindContainHeapCache sead:: DelegateThread:: mFindContainHeapCache protected
#include <thread/seadThread.h>
MessageQueue:: BlockType sead:: DelegateThread:: mBlockType protected
#include <thread/seadThread.h>
MessageQueue:: Element sead:: DelegateThread:: mQuitMsg protected
#include <thread/seadThread.h>
u32 sead:: DelegateThread:: mId protected
#include <thread/seadThread.h>
State sead:: DelegateThread:: mState protected
#include <thread/seadThread.h>
CoreIdMask sead:: DelegateThread:: mAffinity protected
#include <thread/seadThread.h>
void* sead:: DelegateThread:: mStackTop protected
#include <thread/seadThread.h>
void* sead:: DelegateThread:: mStackTopForCheck protected
#include <thread/seadThread.h>
s32 sead:: DelegateThread:: mPriority protected
#include <thread/seadThread.h>