theConfig 10.0
Loading...
Searching...
No Matches
LcCall_rb.c File Reference

tag: nhi1-release-250425 More...

#include "LibLcConfig_private_rb.h"
#include "misc_check_rb.h"
+ Include dependency graph for LcCall_rb.c:

Go to the source code of this file.

Macros

#define META_FILE_NAME   "LcCall_rb.c"
 

Functions

static VALUE rblcconfig_sRescue (MK_RT mkrt, LC_CFG const cfg, VALUE(*proc)(ANYARGS), VALUE data)
 
static VALUE rblcconfig_sCallMethod (VALUE array)
 
enum MkErrorE rblcconfig_ConfigIncludeCall (LcConfigIncludeCallF_ARGS)
 
void rblcconfig_ConfigIncludeFree (LcConfigIncludeFreeF_ARGS)
 
enum MkErrorE rblcconfig_SettingDeleteCall (LcSettingDeleteCallF_ARGS)
 
void rblcconfig_SettingDeleteFree (LcSettingDeleteFreeF_ARGS)
 

Detailed Description

tag: nhi1-release-250425

Definition in file LcCall_rb.c.

Macro Definition Documentation

◆ META_FILE_NAME

#define META_FILE_NAME   "LcCall_rb.c"

Definition at line 11 of file LcCall_rb.c.

Function Documentation

◆ rblcconfig_ConfigIncludeCall()

enum MkErrorE rblcconfig_ConfigIncludeCall ( LcConfigIncludeCallF_ARGS )

Definition at line 55 of file LcCall_rb.c.

56{
58
59 struct MkCallS *call = cfg->fConfigIncludeData;
60 int argNum = 3;
61
62 // 1. check environment
63 if (OT_LNG_NULL_IS(call->procCallback)) return MK_OK;
64
65//printLngObj(call->procCallback)
66
67MkDbgDeepX_3(cfg, "AAA", "cmd=%s", VAL2STRN(rb_inspect(call->procCallback)));
68
69 // 2. if not already done initialize
70 if (call->procCall == NULL) {
71 switch (call->procType) {
72 case MkCallS_own_method: {
73 if (call->procArity != argNum) goto methode_arg_error;
74 call->procCall = NS(sCallMethod);
75 }
76 break;
77 default:
78 MkErrorSetV_3M(cfg, "WrongInitError", "found invalid procType for callback '%s'", VAL2STRN(call->procCallback));
79 goto error;
80 break;
81 }
82 }
83
84 VALUE ary = rb_ary_resize(call->procArgs,4);
85 rb_ary_store(ary,0,call->procCallback);
86 rb_ary_store(ary,1,STRN2VAL(incDir));
87 rb_ary_store(ary,2,STRN2VAL(path));
88 rb_ary_store(ary,3,OT_TMP_BFL_OBJ(ret_inout));
89 NS(sRescue)(MK_RT_CALL cfg,call->procCall,ary);
90
91 MkErrorCheck_0E();
92
93MkDbgDeepX_3(mqctx, "BBB", "cmd=%s", VAL2STRN(rb_inspect(call->procCallback)));
94 return MkErrorGetCode_0E();
95
96methode_arg_error:
97 MkErrorSetV_3M(cfg, "WrongNumberOfArgError", "for callback '%s' exactly '%d' argument is required, but '%d' was received",
98 VAL2STRN(call->procCallback), argNum, call->procArity);
99 goto error;
100
101error:
102MkDbgDeepX_3(cfg, "EEE", "cmd=%s", VAL2STRN(rb_inspect(call->procCallback)));
103//printSTACK_1(mqctx)
104 return MkErrorStack_0E();
105}
#define NS(n)
#define OT_LNG_NULL_IS(obj)
#define VAL2STRN(val)
#define OT_TMP_BFL_OBJ(val)
#define STRN2VAL(nat)
#define LcConfigIncludeCallF_CHECK
#define MkErrorGetCode_0E()
#define MkErrorStack_0E()
#define MkErrorSetV_3M(err, callfunc, printfmt,...)
MK_OK
#define MkDbgDeepX_3(m, ident, fmt,...)
#define MK_RT_CALL
VALUE procCallback
VALUE procArgs
MK_I32 procArity
enum MkCallS::@0 procType
rbmkkernel_procCallF procCall

◆ rblcconfig_ConfigIncludeFree()

void rblcconfig_ConfigIncludeFree ( LcConfigIncludeFreeF_ARGS )

Definition at line 107 of file LcCall_rb.c.

108{
109 MK(CallFree)(&cfg->fConfigIncludeData);
110}
#define MK(n)

◆ rblcconfig_sCallMethod()

static VALUE rblcconfig_sCallMethod ( VALUE array)
static

Definition at line 37 of file LcCall_rb.c.

37 {
38 const VALUE *valP = rb_array_const_ptr(array);
39 return rb_method_call((int)RARRAY_LEN(array)-1, &valP[1], valP[0]);
40}

◆ rblcconfig_SettingDeleteCall()

enum MkErrorE rblcconfig_SettingDeleteCall ( LcSettingDeleteCallF_ARGS )

Definition at line 125 of file LcCall_rb.c.

126{
128
129 struct MkCallS *call = cfg->fSettingDeleteData;
130 int argNum = 1;
131
132 // 1. check environment
133 if (OT_LNG_NULL_IS(call->procCallback)) return MK_OK;
134
135//printLngObj(call->procCallback)
136
137MkDbgDeepX_3(cfg, "AAA", "cmd=%s", VAL2STRN(rb_inspect(call->procCallback)));
138
139 // 2. if not already done initialize
140 if (call->procCall == NULL) {
141 switch (call->procType) {
142 case MkCallS_own_method: {
143 if (call->procArity != argNum) goto methode_arg_error;
144 call->procCall = NS(sCallMethod);
145 }
146 break;
147 default:
148 MkErrorSetV_3M(cfg, "WrongInitError", "found invalid procType for callback '%s'", VAL2STRN(call->procCallback));
149 goto error;
150 break;
151 }
152 }
153
154 VALUE ary = rb_ary_resize(call->procArgs,2);
155 rb_ary_store(ary,0,call->procCallback);
156 rb_ary_store(ary,1,LONG2VAL(MkObjectHandleGet_1X(cfs)));
157 NS(sRescue)(MK_RT_CALL cfg,call->procCall,ary);
158
159 MkErrorCheck_0E();
160
161MkDbgDeepX_3(mqctx, "BBB", "cmd=%s", VAL2STRN(rb_inspect(call->procCallback)));
162 return MkErrorGetCode_0E();
163
164methode_arg_error:
165 MkErrorSetV_3M(cfg, "WrongNumberOfArgError", "for callback '%s' exactly '%d' argument is required, but '%d' was received",
166 VAL2STRN(call->procCallback), argNum, call->procArity);
167 goto error;
168
169error:
170MkDbgDeepX_3(cfg, "EEE", "cmd=%s", VAL2STRN(rb_inspect(call->procCallback)));
171//printSTACK_1(mqctx)
172 return MkErrorStack_0E();
173}
#define LONG2VAL(nat)
#define LcSettingDeleteCallF_CHECK
#define MkObjectHandleGet_1X(x)

◆ rblcconfig_SettingDeleteFree()

void rblcconfig_SettingDeleteFree ( LcSettingDeleteFreeF_ARGS )

Definition at line 175 of file LcCall_rb.c.

176{
177 MK(CallFree)(&cfg->fSettingDeleteData);
178}

◆ rblcconfig_sRescue()

static VALUE rblcconfig_sRescue ( MK_RT mkrt,
LC_CFG const cfg,
VALUE(* proc )(ANYARGS),
VALUE data )
inlinestatic

Definition at line 19 of file LcCall_rb.c.

24 {
25 VALUE ret;
26 int state;
27 ret = rb_protect(proc, data, &state);
28 if (state) {
30 }
31 return ret;
32}
#define OT_ERROR_LNG_2_META(m)