Changeset 3542


Ignore:
Timestamp:
Oct 29, 2013, 4:36:06 PM (5 years ago)
Author:
shiyangy
Message:

template changed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • proto/xmlschema/validation_template_onevec_shiporder.cpp

    r3540 r3542  
    2222#define VECTOR_TYPE (char)
    2323
    24 //#define DEBUG 1
    25 
    26 #define DATATYPE 1
    27 
    28 #define CONTENT_MODEL 1
     24#define DEBUG 1
     25
     26//#define DATATYPE 1
     27
     28//#define CONTENT_MODEL 1
     29
     30//#define SYMBOL_TABLE 1
     31
     32int Datatype = 0;
     33int Content_model = 0;
     34int Symbol = 0;
     35int Data_gather = 0;
     36int Content_gather = 0;
     37
     38int total_element = 0;
     39int validated_element = 0;
    2940
    3041
     
    125136
    126137#define CONTENT_INDEX 13
     138static inline int cfzl(long x) { if (x == 0) return sizeof(long)*8; else return __builtin_ctzl(x);}
     139/*
    127140static inline int cfzl(long x) { if (x == 0) return sizeof(long)*8; else return __builtin_ctzl(x);}
    128141/*
     
    149162}
    150163*/
    151 
    152164static inline void print_gid_vec();
    153165/*
     
    494506}
    495507
     508
    496509//template <int L>
    497510static inline int StreamScanLengthGrouping(char *source,int block_base,ScanBlock * stream, ScanBlock * stream2, int blk_count,ScanBlock * stream3,ScanBlock * stream4) {
     
    515528               
    516529//              cout << "block_pos " << block_pos <<endl;
    517 #ifdef DATATYPE         
     530//#ifdef DATATYPE
     531if(Symbol && Datatype)  {
    518532                if (content_start_carry == 1 && gid == CONTENT_INDEX){
    519533//                      cout << "****" << endl;
     
    583597        //                                  content_buffer[CONTENT_BUFFER_SIZE-1] = '\0';
    584598        //                              cout << content_buffer << endl << endl;
     599if(!Data_gather)
    585600                                                validate_data_type(CONTENT_BUFFER_SIZE,5);
    586601                                                memmove(&content_buffer[0],&content_lookahead_buffer[0],content_buffer_pos);
     
    626641                                        content_buffer_pos++;
    627642                                        if(content_buffer_pos == CONTENT_BUFFER_SIZE){
     643if(!Data_gather)
    628644                                                validate_data_type(CONTENT_BUFFER_SIZE,5);
    629645                                                content_buffer_pos = 0;
     
    639655        //                              content_buffer[CONTENT_BUFFER_SIZE-1] = '\0';
    640656        //                              cout << content_buffer << endl << endl;
     657if(!Data_gather)
    641658                                        validate_data_type(CONTENT_BUFFER_SIZE,5);
    642659                                        memmove(&content_buffer[0],&content_lookahead_buffer[0],content_buffer_pos);
     
    662679//                                      printf("%.*s\n",content_aval,&content_buffer[content_buffer_pos]);
    663680                                        content_buffer_pos = content_lgth-content_aval;
     681if(!Data_gather)
    664682                                        validate_data_type(CONTENT_BUFFER_SIZE,5);
    665683                                        memmove(&content_buffer[0],&content_lookahead_buffer[0],content_buffer_pos);
     
    667685                }
    668686            }
    669 #endif
     687}
     688//#endif
    670689//              print_source(&source[block_base],sizeof(ScanBlock)*8,2);
    671690//              print_register("start_content:",((BitBlock*)stream3)[0]);
     
    689708//                      cout << "2" << endl;
    690709//                      cout << elem_vec_stack.top()<<endl;
     710if(Content_gather && Content_model){
    691711                                if(!(gid_vec[current_depth].empty())){
    692712//                                      if(gid_vec.back() != 0){
     
    702722//                                      }
    703723                                }
     724}
    704725//                              cout << "before" << s2 << endl;
    705726                                s2 = s2 & (s2 - 1);
     
    710731//                      cout << " end_tag_pos == " << end_tag << endl;
    711732                        gid = ElemEnd_grouping(source,block_base,end_pos);
    712 #ifdef DATATYPE
     733//#ifdef DATATYPE
     734if(Symbol && Datatype){
    713735//                      printf("%d\n",int(gid));
    714736                        if (gid == CONTENT_INDEX){
     
    807829                                        }
    808830                        }
    809 #endif                 
     831}
     832//#endif                       
    810833//                      content_buffer[content_buffer_pos] = '\0';
    811834//                      cout << content_buffer << endl;
     
    816839                        //      s2 = s2 & (s2 - 1);
    817840                        //}
     841if(Content_gather && Content_model){
    818842                                if (gid != 0){
    819843                                        gid_vec[current_depth].push_back(gid);
     
    828852#endif
    829853                                }
     854}
    830855                }       
    831856                }
     
    11191144        }
    11201145#endif
    1121         for(j=0;j<MAX_COUNT;j++){
    1122                 cout << gid_vec[j].size() << endl;
    1123         }
    11241146        int lgth;
    11251147        for(j=0;j<MAX_COUNT;j++){
     
    17271749                TagMatcher<SEGMENT_SIZE,LOOKAHEAD_SIZE> matcher;
    17281750        #endif
     1751//#ifdef SYMBOL_TABLE
     1752        if(Symbol){
    17291753        ///////////////////////////////////////////////////
    17301754        //preload element_IDs into symbol table from schema
     
    18021826        }       
    18031827        fclose(element_ID_in);
     1828        }
     1829//#endif
    18041830//      return;
    18051831
     
    19011927//              postprocess_do_block(lex, ctCDPI_Callouts, ref_Callouts, check_streams, tag_Callouts, hash_data, chars_avail);
    19021928                postprocess_do_block(lex, ctCDPI_Callouts, ref_Callouts, check_streams, (char *)&src_buffer[0], buffer_base, block_base, chars_avail, tracker);
     1929//#ifdef SYMBOL_TABLE
     1930                if(Symbol)
    19031931                vectoring(tag_Callouts,hash_data,(char *)&src_buffer[0],block_base);
     1932//#endif
    19041933//              cout << "post done" << endl;
    19051934                #ifndef STL_ALIGNED_VECTOR
     
    19551984//        postprocess_do_block(lex, ctCDPI_Callouts, ref_Callouts, check_streams, tag_Callouts, hash_data, chars_avail);
    19561985          postprocess_do_block(lex, ctCDPI_Callouts, ref_Callouts, check_streams, (char *)&src_buffer[0], buffer_base, block_base, chars_avail, tracker);
     1986//#ifdef SYMBOL_TABLE
     1987        if(Symbol)
    19571988          vectoring(tag_Callouts,hash_data,(char *)&src_buffer[0],block_base);
     1989//#endif
    19581990//        cout << "post end2" << endl;
    19591991          #ifndef STL_ALIGNED_VECTOR
     
    19742006//        postprocess_do_block(lex, ctCDPI_Callouts, ref_Callouts, check_streams, tag_Callouts, hash_data, chars_avail);
    19752007          postprocess_do_block(lex, ctCDPI_Callouts, ref_Callouts, check_streams, (char *)&src_buffer[0], buffer_base, block_base, chars_avail, tracker);
     2008//#ifdef SYMBOL_TABLE
     2009        if(Symbol)
    19762010          vectoring(tag_Callouts,hash_data,(char *)&src_buffer[0],block_base);
     2011//#endif
    19772012//        cout << "post end3" << endl;
    19782013          #ifndef STL_ALIGNED_VECTOR
     
    20342069        }
    20352070
     2071        if (argc == 4){
     2072                if(strcmp(argv[3],"-s")==0){
     2073                        Symbol = 1;
     2074                        Content_model = 0;
     2075                        Datatype = 0;
     2076                        //Debug = 0;
     2077                }else if(strcmp(argv[3],"-c")==0){
     2078                        Symbol = 1;
     2079                        Content_model = 1;
     2080                        Datatype = 0;
     2081                        Content_gather = 1;
     2082                }else if(strcmp(argv[3],"-d")==0){
     2083                        Symbol = 1;
     2084                        Content_model = 0;
     2085                        Datatype = 1;
     2086                }else if(strcmp(argv[3],"-a")==0){
     2087                        Symbol = 1;
     2088                        Content_model = 1;
     2089                        Datatype = 1;
     2090                }else if(strcmp(argv[3],"-g")==0){
     2091                        Symbol = 1;
     2092                        Datatype = 1;
     2093                        Data_gather = 1;
     2094                        Content_model = 0;
     2095                }else if(strcmp(argv[3],"-v")==0){
     2096                        Symbol = 1;
     2097                        Content_model = 1;
     2098                        Datatype = 0;
     2099                        Content_gather = 1;
     2100                }
     2101        }
     2102
    20362103//      PERF_SEC_BIND(1);
    20372104
     
    20452112        //cout << "validate start" << endl;
    20462113        //validate();
    2047 #ifdef CONTENT_MODEL
    2048         validate_mul_block();
    2049 #endif
     2114//#ifdef CONTENT_MODEL
     2115        if(Symbol && Content_model && !Content_gather)
     2116                validate_mul_block();
     2117//#endif
    20502118        PERF_SEC_DUMP(parser_timer);
    20512119
Note: See TracChangeset for help on using the changeset viewer.