📄 mal_scenario.c
字号:
#line 353 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx" #line 330 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx"if( scen->optimizer && strcmp(scen->optimizer,nme) == 0){ Client c1; scen->optimizerCmd = fcn; for(c1 = mal_clients; c1 < mal_clients+MAL_MAXCLIENTS; c1++) if( OPTIMIZE && c1->scenario && strcmp(c1->scenario,scen->name)==0) c1->phase[ OPTIMIZE]= fcn; else if( OPTIMIZE && c1->oldscenario && strcmp(c1->oldscenario,scen->name)==0) c1->oldphase[ OPTIMIZE]= fcn;}#line 354 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx" #line 330 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx"if( scen->tactics && strcmp(scen->tactics,nme) == 0){ Client c1; scen->tacticsCmd = fcn; for(c1 = mal_clients; c1 < mal_clients+MAL_MAXCLIENTS; c1++) if( SCHEDULER && c1->scenario && strcmp(c1->scenario,scen->name)==0) c1->phase[ SCHEDULER]= fcn; else if( SCHEDULER && c1->oldscenario && strcmp(c1->oldscenario,scen->name)==0) c1->oldphase[ SCHEDULER]= fcn;}#line 355 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx" #line 330 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx"if( scen->engine && strcmp(scen->engine,nme) == 0){ Client c1; scen->engineCmd = fcn; for(c1 = mal_clients; c1 < mal_clients+MAL_MAXCLIENTS; c1++) if( ENGINE && c1->scenario && strcmp(c1->scenario,scen->name)==0) c1->phase[ ENGINE]= fcn; else if( ENGINE && c1->oldscenario && strcmp(c1->oldscenario,scen->name)==0) c1->oldphase[ ENGINE]= fcn;}#line 356 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx" }}voidshowScenarioByName(stream *f, str nme){ Scenario scen = findScenario(nme); if (scen) showScenario(f, scen);}voidshowAllScenarios(stream *f){ int i; Scenario scen = scenarioRec; for (i = 0; i < MAXSCEN && scen->name; i++, scen++) showScenario(f, scen);}str getScenarioLanguage(Client c){ Scenario scen= findScenario(c->scenario); if( scen) return scen->language; return "mal";}#line 399 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx"strfillScenario(Client c, Scenario scen){ c->scenario = scen->name; c->phase[READER] = scen->readerCmd; c->phase[PARSER] = scen->parserCmd; c->phase[OPTIMIZE] = scen->optimizerCmd; c->phase[SCHEDULER] = scen->tacticsCmd; c->phase[ENGINE] = scen->engineCmd; c->phase[INITCLIENT] = scen->initClientCmd; c->phase[EXITCLIENT] = scen->exitClientCmd; c->state[READER] = 0; c->state[PARSER] = 0; c->state[OPTIMIZE] = 0; c->state[SCHEDULER] = 0; c->state[ENGINE] = 0; c->state[INITCLIENT] = 0; c->state[EXITCLIENT] = 0; if (scen->initClientCmd) return((*scen->initClientCmd) (c)); return(MAL_SUCCEED);}voidclrScenario(Client c){ if (c->scenario == 0) return; c->scenario = 0; c->phase[READER] = 0; c->phase[PARSER] = 0; c->phase[OPTIMIZE] = 0; c->phase[SCHEDULER] = 0; c->phase[ENGINE] = 0; c->phase[INITCLIENT] = 0; c->phase[EXITCLIENT] = 0; c->state[READER] = 0; c->state[PARSER] = 0; c->state[OPTIMIZE] = 0; c->state[SCHEDULER] = 0; c->state[ENGINE] = 0; c->state[INITCLIENT] = 0; c->state[EXITCLIENT] = 0;}#line 450 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx"strsetScenario(Client c, str nme){ int i; str msg; Scenario scen = scenarioRec; scen = findScenario(nme); if (scen == NULL) throw(MAL, "setScenario", "Scenario '%s' not initialized", nme); if (c->scenario) { c->oldscenario = c->scenario; for (i = 0; i < 7; i++) { c->oldstate[i] = c->state[i]; c->oldphase[i] = c->phase[i]; } } for (i = 0; i < 7; i++) c->state[i] = 0; msg = initScenario(c, scen); if (msg) return msg; return MAL_SUCCEED;}#line 482 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx"strgetCurrentScenario(Client c){ return c->scenario;}voidresetScenario(Client c){ int i; Scenario scen = scenarioRec; if (c->scenario == 0) return; scen = findScenario(c->scenario); if (scen != NULL && scen->exitClientCmd) (*scen->exitClientCmd) (c); c->scenario = c->oldscenario; for (i = 0; i < 7; i++) { c->state[i] = c->oldstate[i]; c->phase[i] = c->oldphase[i]; } c->oldscenario = 0;}voidexitScenario(Client c){ Scenario scen = scenarioRec; if (c->scenario == 0) return; scen = findScenario(c->scenario); if (scen->exitSystemCmd) (*scen->exitSystemCmd) (c);}#line 522 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx"#line 570 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx"strrunScenarioBody(Client c){ str msg= MAL_SUCCEED;/* postponed if( !isServerOwner(c) ){ c->mode = FINISHING; }*/ while (c->mode > FINISHING) { msg = MAL_SUCCEED; #line 552 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx" if(msg== MAL_SUCCEED && c->phase[READER] && ((msg= (str) (*c->phase[READER])(c)) || c->mode <= FINISHING)){ /* error occurred */#ifdef MAL_SCENARIO_DEBUG stream_printf(GDKstdout,"Error in READER phase\n"); if( /*c->mode > FINISHING &&*/ msg ) stream_printf(GDKstdout,"%s",msg);#endif if (msg) { /* FIXME: why is the error not handed back to the user here? */ GDKfree(msg); msg=0; } continue; }#line 582 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx" #line 552 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx" if(msg== MAL_SUCCEED && c->phase[PARSER] && ((msg= (str) (*c->phase[PARSER])(c)) || c->mode <= FINISHING)){ /* error occurred */#ifdef MAL_SCENARIO_DEBUG stream_printf(GDKstdout,"Error in PARSER phase\n"); if( /*c->mode > FINISHING &&*/ msg ) stream_printf(GDKstdout,"%s",msg);#endif if (msg) { /* FIXME: why is the error not handed back to the user here? */ GDKfree(msg); msg=0; } continue; }#line 583 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx" #line 552 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx" if(msg== MAL_SUCCEED && c->phase[OPTIMIZE] && ((msg= (str) (*c->phase[OPTIMIZE])(c)) || c->mode <= FINISHING)){ /* error occurred */#ifdef MAL_SCENARIO_DEBUG stream_printf(GDKstdout,"Error in OPTIMIZE phase\n"); if( /*c->mode > FINISHING &&*/ msg ) stream_printf(GDKstdout,"%s",msg);#endif if (msg) { /* FIXME: why is the error not handed back to the user here? */ GDKfree(msg); msg=0; } continue; }#line 584 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx" #line 552 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx" if(msg== MAL_SUCCEED && c->phase[SCHEDULER] && ((msg= (str) (*c->phase[SCHEDULER])(c)) || c->mode <= FINISHING)){ /* error occurred */#ifdef MAL_SCENARIO_DEBUG stream_printf(GDKstdout,"Error in SCHEDULER phase\n"); if( /*c->mode > FINISHING &&*/ msg ) stream_printf(GDKstdout,"%s",msg);#endif if (msg) { /* FIXME: why is the error not handed back to the user here? */ GDKfree(msg); msg=0; } continue; }#line 585 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx" #line 552 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx" if(msg== MAL_SUCCEED && c->phase[ENGINE] && ((msg= (str) (*c->phase[ENGINE])(c)) || c->mode <= FINISHING)){ /* error occurred */#ifdef MAL_SCENARIO_DEBUG stream_printf(GDKstdout,"Error in ENGINE phase\n"); if( /*c->mode > FINISHING &&*/ msg ) stream_printf(GDKstdout,"%s",msg);#endif if (msg) { /* FIXME: why is the error not handed back to the user here? */ GDKfree(msg); msg=0; } continue; }#line 586 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx" } return msg;}strrunScenario(Client c){ int cnt = 0; str msg = MAL_SUCCEED; Client c1; if( c== 0 || c->phase[READER] == 0) return msg; msg= runScenarioBody(c); if( msg != MAL_SUCCEED) stream_printf(c->fdout,"!%s\n",msg);#ifdef MAL_SCENARIO_DEBUG printf("About to terminate scenario %s\n", c->scenario);#endif#line 609 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_scenario.mx" if( c->scenario) for (c1 = mal_clients; c1 < mal_clients + MAL_MAXCLIENTS; c1++) if (c1->scenario && strcmp(c->scenario, c1->scenario) == 0) cnt++; if (c->phase[EXITCLIENT]) {#ifdef MAL_SCENARIO_DEBUG printf("Calling client exit function \n");#endif (*c->phase[EXITCLIENT]) (c); }#ifdef MAL_SCENARIO_DEBUG printf("scenario client cnt %d\n",cnt);#endif if (cnt == 1) { exitScenario(c); } return msg;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -