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

Function gen_function

src/gpre/obj_cxx.cpp:2326–2432  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2324//
2325
2326static void gen_function( const act* function, int column)
2327{
2328 const ref* reference;
2329
2330 const act* action = (const act*) function->act_object;
2331
2332 if (action->act_type != ACT_any)
2333 {
2334 CPR_error("can't generate function");
2335 return;
2336 }
2337
2338 const gpre_req* request = action->act_request;
2339
2340 fprintf(gpreGlob.out_file, "static %s_r (Firebird::IRequest* request, Firebird::ITransaction* transaction ", request->req_handle);
2341
2342 TEXT s[MAX_REF_SIZE];
2343 gpre_port* port = request->req_vport;
2344 if (port)
2345 for (reference = port->por_references; reference; reference = reference->ref_next)
2346 {
2347 fprintf(gpreGlob.out_file, ", %s", gen_name(s, reference->ref_source, true));
2348 }
2349
2350 fprintf(gpreGlob.out_file,
2351 ")\n");
2352
2353 if (port)
2354 for (reference = port->por_references; reference; reference = reference->ref_next)
2355 {
2356 const TEXT* dtype;
2357 gpre_fld* field = reference->ref_field;
2358 switch (field->fld_dtype)
2359 {
2360 case dtype_short:
2361 dtype = "short";
2362 break;
2363
2364 case dtype_long:
2365 dtype = DCL_LONG;
2366 break;
2367
2368 case dtype_cstring:
2369 case dtype_text:
2370 dtype = "char*";
2371 break;
2372
2373 case dtype_quad:
2374 dtype = DCL_QUAD;
2375 break;
2376
2377 // Begin date/time/timestamp
2378 case dtype_sql_date:
2379 dtype = "ISC_DATE";
2380 break;
2381
2382 case dtype_sql_time:
2383 dtype = "ISC_TIME";

Callers 1

OBJ_CXX_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