X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fftacmp%2Ftranslate_fta.cc;h=57847953621f8944628d9994d974f7672641585d;hb=refs%2Fchanges%2F56%2F4756%2F1;hp=97aa38aa85c98b9ff22a00ed67951c016761ec11;hpb=f1754ecea2eab7bd0a302042ac82eb11667b166c;p=com%2Fgs-lite.git diff --git a/src/ftacmp/translate_fta.cc b/src/ftacmp/translate_fta.cc index 97aa38a..5784795 100644 --- a/src/ftacmp/translate_fta.cc +++ b/src/ftacmp/translate_fta.cc @@ -134,6 +134,60 @@ void generate_makefile(vector &input_file_names, int nfiles, // Dump schema summary void dump_summary(stream_query *str){ + for(int q=0;qquery_plan.size();++q){ + qp_node *qp = str->query_plan[q]; + if(qp==NULL) + continue; // there can be blanks + + fprintf(schema_summary_output,"-----\n"); + fprintf(schema_summary_output,"%s\n",qp->node_name.c_str()); + + table_def *sch = qp->get_fields(); + + vector flds = sch->get_fields(); + int f; + for(f=0;f0) fprintf(schema_summary_output,"|"); + fprintf(schema_summary_output,"%s",flds[f]->get_name().c_str()); + } + fprintf(schema_summary_output,"\n"); + for(f=0;f0) fprintf(schema_summary_output,"|"); + fprintf(schema_summary_output,"%s",flds[f]->get_type().c_str()); + } + fprintf(schema_summary_output,"\n"); + + map defines = qp->get_definitions(); + string comment = ""; + if(defines.count("comment")>0){ + comment = defines["comment"]; + } + fprintf(schema_summary_output,"%s\n",comment.c_str()); + + vector input_tables = qp->get_input_tbls(); + for(int t=0; t0) fprintf(schema_summary_output,"|"); + string machine = input_tables[t]->get_machine(); + string iface = input_tables[t]->get_interface(); + string schema = input_tables[t]->get_schema_name(); + if(machine!=""){ + fprintf(schema_summary_output,"%s.",machine.c_str()); + } + if(iface!=""){ + fprintf(schema_summary_output,"%s.",iface.c_str()); + }else{ + if(machine!="") fprintf(schema_summary_output,"."); + } + fprintf(schema_summary_output,"%s",schema.c_str()); + } + + fprintf(schema_summary_output,"\n"); + } + + + +/* + fprintf(schema_summary_output,"-----\n"); fprintf(schema_summary_output,"%s\n",str->query_name.c_str()); table_def *sch = str->get_output_tabledef(); @@ -150,6 +204,32 @@ void dump_summary(stream_query *str){ fprintf(schema_summary_output,"%s",flds[f]->get_type().c_str()); } fprintf(schema_summary_output,"\n"); + + string comment = ""; + if(str->defines.count("comment")>0){ + comment = str->defines["comment"]; + } + fprintf(schema_summary_output,"%s\n",comment.c_str()); + + vector input_tables = str->get_input_tables(); + for(int t=0; t0) fprintf(schema_summary_output,"|"); + string machine = input_tables[t]->get_machine(); + string iface = input_tables[t]->get_interface(); + string schema = input_tables[t]->get_schema_name(); + if(machine!=""){ + fprintf(schema_summary_output,"%s.",machine.c_str()); + } + if(iface!=""){ + fprintf(schema_summary_output,"%s.",iface.c_str()); + }else{ + if(machine!="") fprintf(schema_summary_output,"."); + } + fprintf(schema_summary_output,"%s",schema.c_str()); + } + fprintf(schema_summary_output,"\n"); +*/ + } // Globals @@ -169,6 +249,7 @@ int main(int argc, char **argv){ vector registration_query_names; // for lfta.c registration map > mach_query_names; // list queries of machine vector snap_lengths; // for lfta.c registration + vector snap_position; // for lfta.c registration vector interface_names; // for lfta.c registration vector machine_names; // machine of interface vector lfta_reuse_options; // for lfta.c registration @@ -397,24 +478,26 @@ int main(int argc, char **argv){ while(fgets(tmpstr,TMPSTRLEN,osp_in)){ o_lineno++; int nflds = split_string(tmpstr,',',flds,MAXFLDS); - if(nflds == 7){ + if(tmpstr[0]!='\n' && tmpstr[0]!='\r' && tmpstr[0]!='\0' && tmpstr[0]!='#'){ + if(nflds == 7){ // make operator type lowercase - char *tmpc; - for(tmpc=flds[1];*tmpc!='\0';++tmpc) - *tmpc = tolower(*tmpc); - - ospec_str *tmp_ospec = new ospec_str(); - tmp_ospec->query = flds[0]; - tmp_ospec->operator_type = flds[1]; - tmp_ospec->operator_param = flds[2]; - tmp_ospec->output_directory = flds[3]; - tmp_ospec->bucketwidth = atoi(flds[4]); - tmp_ospec->partitioning_flds = flds[5]; - tmp_ospec->n_partitions = atoi(flds[6]); - qname_to_ospec.insert(pair(tmp_ospec->query,output_specs.size())); - output_specs.push_back(tmp_ospec); - }else{ - fprintf(stderr,"Warning, line %d corrupted in output_spec.cfg, has %d fields.\n",o_lineno,nflds); + char *tmpc; + for(tmpc=flds[1];*tmpc!='\0';++tmpc) + *tmpc = tolower(*tmpc); + + ospec_str *tmp_ospec = new ospec_str(); + tmp_ospec->query = flds[0]; + tmp_ospec->operator_type = flds[1]; + tmp_ospec->operator_param = flds[2]; + tmp_ospec->output_directory = flds[3]; + tmp_ospec->bucketwidth = atoi(flds[4]); + tmp_ospec->partitioning_flds = flds[5]; + tmp_ospec->n_partitions = atoi(flds[6]); + qname_to_ospec.insert(pair(tmp_ospec->query,output_specs.size())); + output_specs.push_back(tmp_ospec); + }else{ + fprintf(stderr,"Warning, line %d corrupted in output_spec.cfg, has %d fields.\n",o_lineno,nflds); + } } } fclose(osp_in); @@ -1231,8 +1314,8 @@ fprintf(stderr,"Parsing file %s\n",qpathname.c_str()); map hfta_name_map; // vector< vector > process_sets; // vector< set > stream_node_sets; - reverse(process_order.begin(), process_order.end()); // get listing in reverse order. - // i.e. process leaves 1st. + reverse(process_order.begin(), process_order.end()); // get listing in reverse . + // order: process leaves 1st. for(i=0;iis_externally_visible == true){ //printf("Visible.\n"); @@ -1353,6 +1436,7 @@ fprintf(stderr,"Parsing file %s\n",qpathname.c_str()); } if(dangling_ospecs!=""){ fprintf(stderr,"WARNING, the following entries in output_spec.cfg don't have a matching query: %s\n",dangling_ospecs.c_str()); + exit(1); } string dangling_par = ""; @@ -2092,7 +2176,11 @@ for(q=0;qquery_plan[0], Schema, split_queries[l]->get_gid(), Ext_fcns, lfta_schema_embed, ifaces_db,nicprop); */ - snap_lengths.push_back(compute_snap_len(split_queries[l]->query_plan[0], Schema)); + snap_lengths.push_back(compute_snap_len(split_queries[l]->query_plan[0], Schema, "snap")); + snap_position.push_back(compute_snap_len(split_queries[l]->query_plan[0], Schema, "index")); + +// STOPPED HERE need to figure out how to generate the code that Vlad needs +// from snap_postion // TODO NOTE : I'd like it to be the case that registration_query_names // are the queries to be registered for subsciption. @@ -2151,13 +2239,13 @@ else{ } */ -/* -// output schema summary - if(output_schema_summary){ - dump_summary(split_queries[0]); - } -*/ } +// output schema summary + if(output_schema_summary){ + for(int o=0;o >::iterator ssqi; for(ssqi=lfta_mach_lists.begin(); ssqi!=lfta_mach_lists.end(); ++ssqi){ @@ -2653,10 +2743,13 @@ for(ssi_el=extra_external_libs.begin();ssi_el!=extra_external_libs.end();++ssi_e lfta_prefilter_val[lmach] += "#define PREFILTER_DEFINED 1;\n\n"; #endif map > lfta_sigs; // used again later + map lfta_snap_pos; // optimize csv parsing + // compute now, use in get_iface_properties for(auto mvsi=lfta_iface_lists.begin(); mvsi!=lfta_iface_lists.end(); ++mvsi){ string liface = (*mvsi).first; vector empty_list; lfta_sigs[liface] = empty_list; + lfta_snap_pos[liface] = -1; vector lfta_cols; vector lfta_snap_length; @@ -2670,7 +2763,10 @@ for(ssi_el=extra_external_libs.begin();ssi_el!=extra_external_libs.end();++ssi_e } lfta_sigs[liface].push_back(mask); lfta_cols.push_back(lfta_iface_lists[liface][li]->query_plan[0]->get_colrefs(true,Schema)); - lfta_snap_length.push_back(compute_snap_len(lfta_iface_lists[liface][li]->query_plan[0], Schema)); + lfta_snap_length.push_back(compute_snap_len(lfta_iface_lists[liface][li]->query_plan[0], Schema, "snap")); + int this_snap_pos = compute_snap_len(lfta_iface_lists[liface][li]->query_plan[0], Schema, "index"); + if(this_snap_pos > lfta_snap_pos[liface]) + lfta_snap_pos[liface] = this_snap_pos; } //for(li=0;li &input_file_names, int nfiles, bool use_proto = false; bool use_bsa = false; bool use_kafka = false; + bool use_ssl = false; int erri; string err_str; for(ssi=ifaces.begin();ssi!=ifaces.end();++ssi){ @@ -3114,6 +3213,17 @@ void generate_makefile(vector &input_file_names, int nfiles, #endif } } + ift = ifdb->get_iface_vals(ifmachines[ifnm],ifnm, "ENCRYPTED", erri, err_str); + for(int ift_i=0;ift_i &input_file_names, int nfiles, if(use_pads) fprintf(outfl,"-lgscppads -lpads "); fprintf(outfl, -"-lgscprts -lgscphost -lm -lgscpaux -lgscplftaaux -lclearinghouse -lresolv -lpthread -lgscpinterface -lz"); +"-lgscprts -lgscphost -lm -lgscpaux -lgscplftaaux -lclearinghouse -lresolv -lpthread -lgscpinterface -lz -lrt"); if(use_pads) fprintf(outfl, " -lpz -lz -lbz "); if(libz_exists && libast_exists) @@ -3150,6 +3260,9 @@ void generate_makefile(vector &input_file_names, int nfiles, #endif #ifdef KAFKA_ENABLED fprintf(outfl, " -lrdkafka "); +#endif +#ifdef SSL_ENABLED + fprintf(outfl, " -lssl -lcrypto "); #endif fprintf(outfl," -lgscpaux"); #ifdef GCOV