sead
Loading...
Searching...
No Matches
seadFramework.h
Go to the documentation of this file.
1#ifndef SEAD_FRAMEWORK_H_
2#define SEAD_FRAMEWORK_H_
3
4//#include <framework/seadMethodTreeMgr.h>
5#include <framework/seadTaskBase.h>
6//#include <framework/seadTaskMgr.h>
7#include <gfx/seadFrameBuffer.h>
8//#include <heap/seadArena.h>
9//#include <heap/seadHeap.h>
10#include <hostio/seadHostIOMgr.h>
11#include <prim/seadDelegateEventSlot.h>
12#include <prim/seadRuntimeTypeInfo.h>
13#include <time/seadTickSpan.h>
14
15namespace sead {
16
17class Arena;
18
19class Heap;
20class MethodTreeMgr;
21class TaskMgr;
22
24{
26
27public:
38#ifdef cafe
39 static_assert(sizeof(CreateSystemTaskArg) == 0x10, "sead::Framework::CreateSystemTaskArg size mismatch");
40#endif // cafe
41
49#ifdef cafe
50 static_assert(sizeof(InitializeArg) == 8, "sead::Framework::InitializeArg size mismatch");
51#endif // cafe
52
60#ifdef cafe
61 static_assert(sizeof(RunArg) == 8, "sead::Framework::RunArg size mismatch");
62#endif // cafe
63
71
72public:
73 Framework();
74 virtual ~Framework();
75
76 static void initialize(const InitializeArg& arg);
77
78 virtual void run(Heap* heap, const TaskBase::CreateArg& root_create_arg, const RunArg& run_arg);
79 virtual void createSystemTasks(TaskBase* root_task, const CreateSystemTaskArg& arg);
80 virtual FrameBuffer* getMethodFrameBuffer(s32 method_type) const = 0;
81 virtual const LogicalFrameBuffer* getMethodLogicalFrameBuffer(s32 method_type) const { return getMethodFrameBuffer(method_type); }
82 virtual bool setProcessPriority(ProcessPriority) { return false; }
83 virtual void reserveReset(void* param) { mReserveReset = true; mResetParameter = param; }
84
85protected:
86 virtual void initRun_(Heap*) { }
87 virtual void runImpl_() { }
89 virtual void procReset_();
90
91public:
93 {
94 return mTaskMgr;
95 }
96
101
102protected:
103 typedef DelegateEvent<void*> ResetEvent;
104
111};
112#ifdef cafe
113static_assert(sizeof(Framework) == 0x28, "sead::Framework size mismatch");
114#endif // cafe
115
116} // namespace sead
117
118#endif // SEAD_FRAMEWORK_H_
Definition seadArena.h:9
Definition seadDelegateEventSlot.h:12
Definition seadFrameBuffer.h:90
Definition seadFramework.h:24
virtual void createSystemTasks(TaskBase *root_task, const CreateSystemTaskArg &arg)
Definition seadFramework.cpp:92
Heap * mMethodTreeMgrHeap
Definition seadFramework.h:110
TaskMgr * getTaskMgr()
Definition seadFramework.h:92
virtual MethodTreeMgr * createMethodTreeMgr_(Heap *)=0
virtual void runImpl_()
Definition seadFramework.h:87
virtual void reserveReset(void *param)
Definition seadFramework.h:83
ProcessPriority
Definition seadFramework.h:65
@ cProcessPriority_Idle
Definition seadFramework.h:66
@ cProcessPriority_High
Definition seadFramework.h:68
@ cProcessPriority_Normal
Definition seadFramework.h:67
@ cProcessPriority_RealTime
Definition seadFramework.h:69
Framework()
Definition seadFramework.cpp:11
ResetEvent mResetEvent
Definition seadFramework.h:107
virtual FrameBuffer * getMethodFrameBuffer(s32 method_type) const =0
TaskMgr * mTaskMgr
Definition seadFramework.h:108
virtual const LogicalFrameBuffer * getMethodLogicalFrameBuffer(s32 method_type) const
Definition seadFramework.h:81
MethodTreeMgr * getMethodTreeMgr()
Definition seadFramework.h:97
virtual void run(Heap *heap, const TaskBase::CreateArg &root_create_arg, const RunArg &run_arg)
Definition seadFramework.cpp:71
virtual bool setProcessPriority(ProcessPriority)
Definition seadFramework.h:82
MethodTreeMgr * mMethodTreeMgr
Definition seadFramework.h:109
bool mReserveReset
Definition seadFramework.h:105
virtual ~Framework()
Definition seadFramework.cpp:21
static void initialize(const InitializeArg &arg)
Definition seadFramework.cpp:52
void * mResetParameter
Definition seadFramework.h:106
virtual void procReset_()
Definition seadFramework.cpp:96
virtual void initRun_(Heap *)
Definition seadFramework.h:86
DelegateEvent< void * > ResetEvent
Definition seadFramework.h:103
Definition seadHeap.h:23
Definition seadHostIOMgr.h:9
Definition seadFrameBuffer.h:12
Definition seadMethodTreeMgr.h:13
Definition seadTaskBase.h:26
Definition seadTaskMgr.h:19
Definition seadTickSpan.h:12
Definition seadAssert.h:44
#define SEAD_RTTI_BASE(CLASS)
Definition seadRuntimeTypeInfo.h:75
Definition seadFramework.h:29
CreateSystemTaskArg()
Definition seadFramework.h:30
TickSpan infloop_detection_span
Definition seadFramework.h:36
HostIOMgr::Parameter * hostio_parameter
Definition seadFramework.h:35
Definition seadFramework.h:43
Arena * arena
Definition seadFramework.h:47
u32 heap_size
Definition seadFramework.h:46
InitializeArg()
Definition seadFramework.cpp:40
Definition seadFramework.h:54
RunArg()
Definition seadFramework.cpp:46
s32 prepare_priority
Definition seadFramework.h:58
u32 prepare_stack_size
Definition seadFramework.h:57
Definition seadHostIOMgr.h:12
Definition seadTaskBase.h:53