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);
}
Example #2
0
//---------------------------------------------------------------------------
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);
}
Example #3
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);
}