MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / gen_function

Function gen_function

src/gpre/languages/ftn.cpp:4164–4257  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4162//
4163
4164static void gen_function(const act* function)
4165{
4166 const act* action = (const act*) function->act_object;
4167
4168 if (action->act_type != ACT_any)
4169 {
4170 CPR_error("can't generate function");
4171 return;
4172 }
4173
4174 const gpre_req* request = action->act_request;
4175
4176 fprintf(gpreGlob.out_file, "static %s_r (request, transaction", request->req_handle);
4177
4178 TEXT s[MAX_REF_SIZE];
4179 const gpre_port* port = request->req_vport;
4180 if (port)
4181 {
4182 for (const ref* reference = port->por_references; reference; reference = reference->ref_next)
4183 {
4184 fprintf(gpreGlob.out_file, ", %s", gen_name(s, reference->ref_source, true));
4185 }
4186 }
4187
4188 fprintf(gpreGlob.out_file, ")\n isc_req_handle\trequest;\n isc_tr_handle\ttransaction;\n");
4189
4190 if (port)
4191 {
4192 for (const ref* reference = port->por_references; reference; reference = reference->ref_next)
4193 {
4194 const gpre_fld* field = reference->ref_field;
4195 const TEXT* dtype = NULL;
4196
4197 switch (field->fld_dtype)
4198 {
4199 case dtype_short:
4200 dtype = "short";
4201 break;
4202
4203 case dtype_long:
4204 // RRK_?: dtype = DCL_LONG;
4205 break;
4206
4207 case dtype_cstring:
4208 case dtype_text:
4209 dtype = "char*";
4210 break;
4211
4212 case dtype_quad:
4213 //dtype = DCL_QUAD;
4214 break;
4215
4216 case dtype_date:
4217 case dtype_blob:
4218 dtype = "ISC_QUAD";
4219 break;
4220
4221 case dtype_real:

Callers 1

FTN_actionFunction · 0.70

Calls 6

CPR_errorFunction · 0.85
gen_nameFunction · 0.70
make_portFunction · 0.70
gen_s_startFunction · 0.70
gen_receiveFunction · 0.70
gen_get_or_put_sliceFunction · 0.70

Tested by

no test coverage detected