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:
35#ifdef cafe
36 static_assert(sizeof(CreateSystemTaskArg) == 0x10, "sead::Framework::CreateSystemTaskArg size mismatch");
37#endif // cafe
38
46#ifdef cafe
47 static_assert(sizeof(InitializeArg) == 8, "sead::Framework::InitializeArg size mismatch");
48#endif // cafe
49
57#ifdef cafe
58 static_assert(sizeof(RunArg) == 8, "sead::Framework::RunArg size mismatch");
59#endif // cafe
60
68
69public:
70 Framework();
71 virtual ~Framework();
72
73 virtual void run(sead::Heap* heap, const sead::TaskBase::CreateArg& root_create_arg, const RunArg& run_arg);
75 virtual FrameBuffer* getMethodFrameBuffer(s32 method_type) const = 0;
76 virtual LogicalFrameBuffer* getMethodLogicalFrameBuffer(s32 method_type) const { return getMethodFrameBuffer(method_type); }
77 virtual bool setProcessPriority(ProcessPriority) { return false; }
78 virtual void reserveReset(void* param) { mResetParameter = param; mReserveReset = true; }
79
80protected:
81 virtual void initRun_(Heap*) { }
82 virtual void runImpl_() { }
84 virtual void procReset_();
85
86public:
88 {
89 return mTaskMgr;
90 }
91
96
97protected:
98 typedef DelegateEvent<void*> ResetEvent;
99
106};
107#ifdef cafe
108static_assert(sizeof(Framework) == 0x28, "sead::Framework size mismatch");
109#endif // cafe
110
111} // namespace sead
112
113#endif // SEAD_FRAMEWORK_H_
Definition seadArena.h:9
Definition seadDelegateEventSlot.h:12
Definition seadFrameBuffer.h:90
Definition seadFramework.h:24
virtual void run(sead::Heap *heap, const sead::TaskBase::CreateArg &root_create_arg, const RunArg &run_arg)
Heap * mMethodTreeMgrHeap
Definition seadFramework.h:105
TaskMgr * getTaskMgr()
Definition seadFramework.h:87
virtual MethodTreeMgr * createMethodTreeMgr_(Heap *)=0
virtual void runImpl_()
Definition seadFramework.h:82
virtual void reserveReset(void *param)
Definition seadFramework.h:78
ProcessPriority
Definition seadFramework.h:62
@ cProcessPriority_Idle
Definition seadFramework.h:63
@ cProcessPriority_High
Definition seadFramework.h:65
@ cProcessPriority_Normal
Definition seadFramework.h:64
@ cProcessPriority_RealTime
Definition seadFramework.h:66
Framework()
Definition seadFramework.cpp:14
ResetEvent mResetEvent
Definition seadFramework.h:102
virtual LogicalFrameBuffer * getMethodLogicalFrameBuffer(s32 method_type) const
Definition seadFramework.h:76
virtual FrameBuffer * getMethodFrameBuffer(s32 method_type) const =0
TaskMgr * mTaskMgr
Definition seadFramework.h:103
MethodTreeMgr * getMethodTreeMgr()
Definition seadFramework.h:92
virtual bool setProcessPriority(ProcessPriority)
Definition seadFramework.h:77
virtual void procReset_()
MethodTreeMgr * mMethodTreeMgr
Definition seadFramework.h:104
bool mReserveReset
Definition seadFramework.h:100
virtual ~Framework()
Definition seadFramework.cpp:24
void * mResetParameter
Definition seadFramework.h:101
virtual void createSystemTasks(TaskBase *, const CreateSystemTaskArg &)
virtual void initRun_(Heap *)
Definition seadFramework.h:81
DelegateEvent< void * > ResetEvent
Definition seadFramework.h:98
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.cpp:8
TickSpan infloop_detection_span
Definition seadFramework.h:33
HostIOMgr::Parameter * hostio_parameter
Definition seadFramework.h:32
Definition seadFramework.h:40
Arena * arena
Definition seadFramework.h:44
u32 heap_size
Definition seadFramework.h:43
Definition seadFramework.h:51
s32 prepare_priority
Definition seadFramework.h:55
u32 prepare_stack_size
Definition seadFramework.h:54
Definition seadHostIOMgr.h:12
Definition seadTaskBase.h:53