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

Function gen_function

src/gpre/languages/cob.cpp:2509–2597  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2507//
2508
2509static void gen_function( const act* function)
2510{
2511 const ref* reference;
2512
2513 const act* action = (const act*) function->act_object;
2514
2515 if (action->act_type != ACT_any)
2516 {
2517 CPR_error("can't generate function");
2518 return;
2519 }
2520
2521 const gpre_req* request = action->act_request;
2522
2523 fprintf(gpreGlob.out_file, "static %s_r (request, transaction", request->req_handle);
2524
2525 TEXT s[MAX_REF_SIZE];
2526 const gpre_port* port = request->req_vport;
2527 if (port)
2528 for (reference = port->por_references; reference; reference = reference->ref_next)
2529 {
2530 fprintf(gpreGlob.out_file, ", %s", gen_name(s, reference->ref_source, true));
2531 }
2532
2533 fprintf(gpreGlob.out_file,
2534 ")\n isc_req_handle\trequest;\n isc_tr_handle\ttransaction;\n");
2535
2536 if (port)
2537 for (reference = port->por_references; reference; reference = reference->ref_next)
2538 {
2539 const char* dtype;
2540 const gpre_fld* field = reference->ref_field;
2541 switch (field->fld_dtype)
2542 {
2543 case dtype_short:
2544 dtype = "short";
2545 break;
2546
2547 case dtype_long:
2548 dtype = "long";
2549 break;
2550
2551 case dtype_cstring:
2552 case dtype_text:
2553 dtype = "char*";
2554 break;
2555
2556 case dtype_quad:
2557 dtype = "ISC_QUAD";
2558 break;
2559
2560 case dtype_date:
2561 case dtype_blob:
2562 dtype = "ISC_QUAD";
2563 break;
2564
2565 case dtype_real:
2566 dtype = "float";

Callers 1

COB_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