www.pudn.com > yidong.rar > MOProcess.java


package sample;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import aiismg.jcmppapi30.CMPPDeliverResp;
import aiismg.jcmppapi30.VirCallback;

public class MOProcess extends VirCallback {
	private String sParamFile;
	private String sMsgFile;
	private int nOutput = 1;
	private static int nCounter = 0;

	public MOProcess( String sPF, String sMF, int nOt )
	{
		sParamFile = sPF;
		sMsgFile = sMF;
		nOutput = nOt;
	}

	public synchronized int Callback(CMPPDeliverResp pDeliverResp, byte[] sDestNo )
	{
		String sFileName = sParamFile + "." + Integer.toString( nCounter );
		FileOutputStream pFile;
	
		try{
			pFile = new FileOutputStream( sFileName );
			int nLen;
			pFile = new FileOutputStream( sParamFile );
			pFile.write( pDeliverResp.sMsgID.getBytes() );
			pFile.write( '\n' );
			pFile.write( (Byte.toString( pDeliverResp.nMsgLevel )).getBytes() );
			for( nLen = 0; nLen < pDeliverResp.sServiceID.length; nLen++ )
				if( pDeliverResp.sServiceID[nLen] == 0 )
					break;
			pFile.write( '\n' );
			pFile.write( pDeliverResp.sServiceID, 0, nLen );
			pFile.write( '\n' );
			pFile.write( (Byte.toString( pDeliverResp.nMsgFormat )).getBytes() );
			pFile.write( '\n' );
			for( nLen = 0; nLen < pDeliverResp.sSrcTermID.length; nLen++ )
				if( pDeliverResp.sSrcTermID[nLen] == 0 )
					break;
			pFile.write( pDeliverResp.sSrcTermID, 0, nLen );
			pFile.write( '\n' );
			pFile.write( (Byte.toString( pDeliverResp.nIsReply )).getBytes() );
			pFile.write( '\n' );
			pFile.write( (Integer.toString( pDeliverResp.nMsgLen )).getBytes() );
			pFile.write( '\n' );
			for( nLen = 0; nLen < sDestNo.length; nLen++ )
				if( sDestNo[nLen] == 0 )
					break;
			pFile.write( sDestNo, 0, nLen );
			pFile.write( '\n' );
			pFile.close();
		} catch( SecurityException excpt ) {
			 if( nOutput == 1 )
			   System.err.println( "Fail to create file " + sFileName );
			 return 1;
		} catch( FileNotFoundException nfcpt ) {
			 if( nOutput == 1 )
			   System.err.println( "No such file:" + sFileName );
			 return 1;
		} catch( IOException excpt ) {
			if( nOutput == 1 )
			  System.err.println( "Fail to write file " + sFileName );
			return 1;
		}

		sFileName = sMsgFile + "." + Integer.toString( nCounter );
		try{
			pFile = new FileOutputStream( sFileName );
			pFile.write( pDeliverResp.sMsgContent, 0, pDeliverResp.nMsgLen );
			pFile.close();
		} catch( SecurityException excpt ) {
			 if( nOutput == 1 )
			   System.err.println( "Fail to create file " + sFileName );
			 return 1;
		} catch( FileNotFoundException nfcpt ) {
			 if( nOutput == 1 )
			   System.err.println( "No such file:" + sFileName );
			 return 1;
		} catch( IOException excpt ) {
			if( nOutput == 1 )
			  System.err.println( "Fail to write file " + sFileName );
			return 1;
		}
	
		nCounter++;
	
		return 0;
	}
}