summaryrefslogtreecommitdiff
path: root/src/f_pc/f_pc_stdcreate_req.cpp
blob: 8836016cb5fd48a84916a8c92195bd9b4f05671d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
//
// Generated by dtk
// Translation Unit: f_pc_stdcreate_req.cpp
//

#include "f_pc/f_pc_stdcreate_req.h"
#include "f_pc/f_pc_load.h"
#include "f_pc/f_pc_node.h"
#include "f_pc/f_pc_manager.h"

/* 80040648-8004069C       .text fpcSCtRq_phase_Load__FP29standard_create_request_class */
s32 fpcSCtRq_phase_Load(standard_create_request_class* i_SCtReq) {
    switch (fpcLd_Load(i_SCtReq->mProcName)) {
    case cPhs_INIT_e:
        return cPhs_INIT_e;
    case cPhs_COMPLEATE_e:
        return cPhs_NEXT_e;
    case cPhs_ERROR_e:
    default:
        return cPhs_ERROR_e;
    }
}


/* 8004069C-80040704       .text fpcSCtRq_phase_CreateProcess__FP29standard_create_request_class */
s32 fpcSCtRq_phase_CreateProcess(standard_create_request_class* i_SCtReq) {
    fpcLy_SetCurrentLayer(i_SCtReq->base.mpLayer);
    i_SCtReq->base.mpRes = fpcBs_Create(i_SCtReq->mProcName, i_SCtReq->base.mBsPcId, i_SCtReq->mpUserData);
    if (i_SCtReq->base.mpRes == NULL) {
        fpcLd_Free(i_SCtReq->mProcName);
        return cPhs_ERROR_e;
    } else {
        i_SCtReq->base.mpRes->mpCtRq = (struct create_request*)i_SCtReq;
        return cPhs_NEXT_e;
    }
}

/* 80040704-8004073C       .text fpcSCtRq_phase_SubCreateProcess__FP29standard_create_request_class */
s32 fpcSCtRq_phase_SubCreateProcess(standard_create_request_class* i_SCtReq) {
    fpcLy_SetCurrentLayer(i_SCtReq->base.mpLayer);
    return fpcBs_SubCreate(i_SCtReq->base.mpRes);
}

/* 8004073C-80040794       .text fpcSCtRq_phase_IsComplete__FP29standard_create_request_class */
s32 fpcSCtRq_phase_IsComplete(standard_create_request_class* i_SCtReq) {
    process_node_class* procNode = (process_node_class*)i_SCtReq->base.mpRes;
    if (fpcBs_Is_JustOfType(g_fpcNd_type, procNode->base.mSubType) == 1) {
        if (fpcLy_IsCreatingMesg(&procNode->mLayer) == 1) {
            return cPhs_INIT_e;
        }
    }
    return cPhs_NEXT_e;
}

/* 80040794-800407E4       .text fpcSCtRq_phase_PostMethod__FP29standard_create_request_class */
s32 fpcSCtRq_phase_PostMethod(standard_create_request_class* i_SCtReq) {
    if (i_SCtReq->mpCallBack != NULL && i_SCtReq->mpCallBack(i_SCtReq->base.mpRes, i_SCtReq->mpCallBackUserData) == 0) {
        return cPhs_INIT_e;
    } else {
        return cPhs_NEXT_e;
    }
}

/* 800407E4-800407EC       .text fpcSCtRq_phase_Done__FP29standard_create_request_class */
s32 fpcSCtRq_phase_Done(standard_create_request_class* i_SCtReq) {
    return cPhs_NEXT_e;
}

/* 800407EC-8004085C       .text fpcSCtRq_Handler__FP29standard_create_request_class */
s32 fpcSCtRq_Handler(standard_create_request_class* i_SCtReq) {
    s32 phase_state = cPhs_Do(&i_SCtReq->mPhase, i_SCtReq);

    switch (phase_state) {
    case cPhs_NEXT_e:
        return fpcSCtRq_Handler(i_SCtReq);
    case cPhs_COMPLEATE_e:
        return cPhs_COMPLEATE_e;
    case cPhs_LOADING_e:
    case cPhs_ERROR_e:
    default:
        return phase_state;
    }
}

/* 8004085C-80040864       .text fpcSCtRq_Delete__FP29standard_create_request_class */
s32 fpcSCtRq_Delete(standard_create_request_class* i_SCtReq) {
    return 1;
}

/* 80040864-8004086C       .text fpcSCtRq_Cancel__FP29standard_create_request_class */
s32 fpcSCtRq_Cancel(standard_create_request_class* i_SCtReq) {
    return 1;
}

/* 8004086C-80040900       .text fpcSCtRq_Request__FP11layer_classsPFPvPv_iPvPv */
fpc_ProcID fpcSCtRq_Request(layer_class* i_layer, s16 i_procName, stdCreateFunc i_createFunc, void* param_4, void* param_5) {
    static create_request_method_class submethod = {
        (cPhs__Handler)fpcSCtRq_Handler,
        (process_method_func)fpcSCtRq_Cancel,
        (process_method_func)fpcSCtRq_Delete,
    };

    static cPhs__Handler method[] = {
        (cPhs__Handler)fpcSCtRq_phase_Load,
        (cPhs__Handler)fpcSCtRq_phase_CreateProcess,
        (cPhs__Handler)fpcSCtRq_phase_SubCreateProcess,
        (cPhs__Handler)fpcSCtRq_phase_IsComplete,
        (cPhs__Handler)fpcSCtRq_phase_PostMethod,
        (cPhs__Handler)fpcSCtRq_phase_Done,
        NULL,
    };

    if (i_procName >= 0x7FFF) {
        return fpcM_ERROR_PROCESS_ID_e;
    } else {
        standard_create_request_class* request = (standard_create_request_class*)fpcCtRq_Create(i_layer, sizeof(standard_create_request_class), &submethod);
        if (request == NULL) {
            return fpcM_ERROR_PROCESS_ID_e;
        } else {
            cPhs_Set(&request->mPhase, method);
            request->mProcName = i_procName;
            request->mpCallBack = i_createFunc;
            request->mpCallBackUserData = param_4;
            request->mpUserData = param_5;
            return request->base.mBsPcId;
        }
    }
}