void output(){ if (!rank){ outLine(0,data); MPI_Status status; for (int i=1;i<size;++i){ MPI_Recv(tmpData,len,MPI_DT_,i,i,MPI_COMM_WORLD,&status); outLine(i,tmpData); } } else { MPI_Send(data,len,MPI_DT_,0,rank,MPI_COMM_WORLD); } MPI_Barrier(MPI_COMM_WORLD); }
//--------------------------------------------------------------------------- static char putMethodLabel(ushort off) { char str[32]; int len = qsnprintf(str, sizeof(str), "met%03u_%s", curSeg.id.Number, off ? "end" : "begin"); if ( !checkLine(len)) return(1 ); out_tagon(COLOR_CODNAME); outLine(str, len); out_tagoff(COLOR_CODNAME); return(0); }
wstring MalieExec::ParseString(DWORD dwIndex) { bool fl_rub=0,fl_vol=0; wstring strLine( (WCHAR *)&pStrTable[vStrIndex[dwIndex].offset], (WCHAR *)&pStrTable[vStrIndex[dwIndex].offset+vStrIndex[dwIndex].length] ); wstring outLine(strLine.size()+3,0); size_t len = 0; for (size_t idx = 0;idx<strLine.size();++idx) { switch(strLine[idx]) { case 0: if (fl_rub||fl_vol) fl_rub=fl_vol=0; outLine[len++]=EOSTR; break; case 1: idx+=4; break; case 2: ++idx; break; case 3: idx+=2; break; case 4: ++idx; break; case 5: idx+=2; break; case 6: idx+=2; break; case 0xA: outLine[len++]=fl_rub?STRUB:L'\n'; break; case 7: switch (strLine[++idx]) { case 0x0001://递归调用文字读取,然后继续处理(包含注释的文字) outLine[len++]=TO_RUB; fl_rub=1; break; case 0x0004://下一句自动出来 outLine[len++]=NXL; break; case 0x0006://代表本句结束 outLine[len++]=TO_RTN; break; case 0x0007://递归调用文字读取然后wcslen,跳过不处理。应该是用于注释 ++idx; idx+=wcslen(&strLine[idx]); break; case 0x0008://LoadVoice 后面是Voice名 outLine[len++]=TO_VOL; fl_vol=1; break; case 0x0009://LoadVoice结束 outLine[len++]=EOVOL; break; default: outLine[len++] = UNKNOW_SIG; break; } break; default: outLine[len++]=strLine[idx]; } } outLine[len++]=EOPAR; outLine[len++]=L'\n'; outLine[len++]=L'\n'; return move(outLine); }