⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 print_1pass.java

📁 fortran并行计算包
💻 JAVA
字号:
/* *  (C) 2001 by Argonne National Laboratory *      See COPYRIGHT in top-level directory. *//* *  @author  Anthony Chan */package logformat.clogTOdrawable;import java.util.List;import java.util.ArrayList;import java.util.Map;import java.util.HashMap;import java.util.Iterator;import java.util.Date;import java.lang.reflect.*;import java.io.*;import base.drawable.Primitive;import logformat.clog.*;// This program prints the CLOG file format.public class Print_1pass{    private static String                   filename;    private static logformat.clog.InputLog  clog_ins;    private static MixedDataInputStream     blk_ins;    private static int                      total_bytesize;    private static int                      bytes_read;    private static int                      rectype;    private static Map                      evtdefs;    private static List                     objdefs;    private static ObjDef                   objdef;    private static RecHeader                header    = new RecHeader();    private static RecDefState              def       = new RecDefState();    private static RecRaw                   raw       = new RecRaw();    private static RecColl                  coll      = new RecColl();    private static RecComm                  comm      = new RecComm();    private static RecEvent                 event     = new RecEvent();    private static RecMsg                   msg       = new RecMsg();    private static RecSrc                   src       = new RecSrc();    private static RecTshift                tshift    = new RecTshift();    private static Topo_Arrow               arrowform;    private static Topo_State               stateform;    private static ObjMethod                obj_fn;    public static final void createDefs()    {        Class           arrow_class, state_class;        Method          start_fn = null, final_fn = null;        Class[]         typelist;        objdefs   = new ArrayList();        evtdefs   = new HashMap();        ColorNameMap.initMapFromRGBtxt( "jumpshot.colors" );        ObjDef.setFirstNextCategoryIndex( 0 );        int def_idx;        arrowform = new Topo_Arrow( );        def_idx = ObjDef.getNextCategoryIndex();        objdef = new ObjDef( def_idx, new RecDefMsg(), arrowform, 3 );        objdef.setInfoKeys( "(msg_tag=%d, msg_size=%d)" );        arrowform.setCategory( objdef );        objdefs.add( objdef.getIndex(), objdef );        arrow_class = arrowform.getClass();        typelist = new Class[] { RecHeader.class, RecRaw.class };        try {            start_fn = arrow_class.getMethod( "matchStartEvent", typelist );            final_fn = arrow_class.getMethod( "matchFinalEvent", typelist );        } catch ( NoSuchMethodException err ) {             err.printStackTrace();             System.exit( 1 );        }        obj_fn = new ObjMethod();        obj_fn.obj = arrowform;        obj_fn.method = start_fn;        evtdefs.put( objdef.start_evt, obj_fn );        obj_fn = new ObjMethod();        obj_fn.obj = arrowform;        obj_fn.method = final_fn;        evtdefs.put( objdef.final_evt, obj_fn );        List defs = logformat.clog.RecDefState.getMPIinitUndefinedStateDefs();        defs.addAll(             logformat.clog.RecDefState.getUSERinitUndefinedStateDefs() );        Iterator itr = defs.iterator();        while ( itr.hasNext() ) {            def = ( RecDefState ) itr.next();            stateform = new Topo_State();            def_idx = ObjDef.getNextCategoryIndex();            objdef = new ObjDef( def_idx, def, stateform, 1 );            stateform.setCategory( objdef );            objdefs.add( objdef.getIndex(), objdef );            state_class = stateform.getClass();            try {                start_fn = state_class.getMethod( "matchStartEvent",                                                  typelist );                final_fn = state_class.getMethod( "matchFinalEvent",                                                  typelist );            } catch ( NoSuchMethodException err ) {                err.printStackTrace();                System.exit( 1 );            }            obj_fn = new ObjMethod();            obj_fn.obj = stateform;            obj_fn.method = start_fn;            evtdefs.put( objdef.start_evt, obj_fn );            obj_fn = new ObjMethod();            obj_fn.obj = stateform;            obj_fn.method = final_fn;            evtdefs.put( objdef.final_evt, obj_fn );        }        /*        System.err.println( "\n\t objdefs : " );        Iterator objdefs_itr = objdefs.iterator();        while ( objdefs_itr.hasNext() ) {            objdef = (obj_def) objdefs_itr.next();            System.err.println( objdef.toString() );        }        System.err.println( "\n\t evtdefs : " );        Iterator evtdefs_itr = evtdefs.entrySet().iterator();        while ( evtdefs_itr.hasNext() )            System.err.println( evtdefs_itr.next() );        */    }    public static final void createPrimitives()    {        Class           state_class;        Method          start_fn = null, final_fn = null;        Class[]         typelist;        ObjMethod       evt_pairing, obj_meth1, obj_meth2;        Primitive       obj;        int             def_idx;        int             raw_etype;        int             Nmatched = 0;        typelist = new Class[] { RecHeader.class, RecRaw.class };        System.out.println( "\n\t Completed Objects : " );        clog_ins  = new logformat.clog.InputLog( filename );        total_bytesize = 0;        blk_ins = clog_ins.getBlockStream();        while ( blk_ins != null ) {            rectype = logformat.clog.Const.AllType.UNDEF;            while (  rectype != logformat.clog.Const.RecType.ENDBLOCK                  && rectype != logformat.clog.Const.RecType.ENDLOG ) {                bytes_read = header.readFromDataStream( blk_ins );                total_bytesize += bytes_read;                    rectype = header.getRecType();                switch ( rectype ) {                    case RecDefState.RECTYPE:                        bytes_read = def.readFromDataStream( blk_ins );                        total_bytesize += bytes_read;                        obj_meth1 = (ObjMethod) evtdefs.get( def.startetype );                        obj_meth2 = (ObjMethod) evtdefs.get( def.endetype );                        if ( obj_meth1 == null || obj_meth2 == null ) {                            stateform = new Topo_State();                            def_idx = ObjDef.getNextCategoryIndex();                            objdef = new ObjDef( def_idx, def, stateform, 1 );                            stateform.setCategory( objdef );                            objdefs.add( objdef.getIndex(), objdef );                            state_class = stateform.getClass();                            try {                                start_fn = state_class .getMethod(                                           "matchStartEvent", typelist );                                final_fn = state_class.getMethod(                                           "matchFinalEvent", typelist );                            } catch ( NoSuchMethodException err ) {                                err.printStackTrace();                                System.exit( 1 );                            }                            obj_fn = new ObjMethod();                            obj_fn.obj = stateform;                            obj_fn.method = start_fn;                            evtdefs.put( objdef.start_evt, obj_fn );                            obj_fn = new ObjMethod();                            obj_fn.obj = stateform;                            obj_fn.method = final_fn;                            evtdefs.put( objdef.final_evt, obj_fn );                        }                        else {  // i.e. obj_meth1 != null && obj_meth2 != null                             if ( obj_meth1.obj == obj_meth2.obj ) {                                stateform = ( Topo_State ) obj_meth1.obj;                                objdef = ( ObjDef ) stateform.getCategory();                                objdef.setName( def.description );                                objdef.setColor(                                   ColorNameMap.getColorAlpha( def.color ) );                            }                            else {                                System.err.println( "**** Error! "                                                  + obj_meth1.obj + "!="                                                  + obj_meth2.obj );                            }                        }                        break;                    case RecRaw.RECTYPE:                        bytes_read = raw.readFromDataStream( blk_ins );                        total_bytesize += bytes_read;                        raw_etype = raw.etype.intValue();                        if (    raw_etype != Const.EvtType.CONSTDEF                              && raw_etype != Const.AllType.UNDEF ) {                       	    evt_pairing = (ObjMethod) evtdefs.get( raw.etype );                            Object[] arglist = new Object[] { header, raw };                            obj = null;                            try {                                obj = (Primitive) evt_pairing.method                                                 .invoke( evt_pairing.obj,                                                          arglist );                            } catch ( IllegalAccessException err ) {                                err.printStackTrace();                                System.err.println( "Offending rec_raw = "                                                  + raw );                            // catching NoMatchingEventException                            } catch ( InvocationTargetException err ) {                                err.printStackTrace();                            } catch ( NullPointerException nullerr ) {                                nullerr.printStackTrace();                                System.err.println( "Offending rec_header = "                                                  + header );                                System.err.println( "Offending rec_raw = "                                                  + raw );                                System.exit(1);                            }                            if ( obj != null ) {                                System.out.println( (++Nmatched) + ", "                                                  + obj.toString() );                            }                        }                        break;                    case RecColl.RECTYPE:                        bytes_read = coll.skipBytesFromDataStream( blk_ins );                        total_bytesize += bytes_read;                        break;                    case RecComm.RECTYPE:                        bytes_read = comm.skipBytesFromDataStream( blk_ins );                        total_bytesize += bytes_read;                         break;                    case RecEvent.RECTYPE:                        bytes_read = event.skipBytesFromDataStream( blk_ins );                        total_bytesize += bytes_read;                        break;                    case RecMsg.RECTYPE:                        bytes_read = msg.skipBytesFromDataStream( blk_ins );                        total_bytesize += bytes_read;                        break;                    case RecSrc.RECTYPE:                        bytes_read = src.skipBytesFromDataStream( blk_ins );                        total_bytesize += bytes_read;                        break;                    case RecTshift.RECTYPE:                        bytes_read = tshift.skipBytesFromDataStream( blk_ins );                        total_bytesize += bytes_read;                        break;                    case logformat.clog.Const.RecType.ENDBLOCK:                        // System.out.println( "End Of Block" );                        blk_ins = clog_ins.getBlockStream();                        break;                    case logformat.clog.Const.RecType.ENDLOG:                        // System.out.println( "End Of File" );                        blk_ins = null;                        break;                    default:                        System.err.println( "Unknown Record type = "                                          + rectype );                }   // endof switch ( rectype )            }   //  endof while ( rectype != (ENDBLOCK/ENDLOG) )        }   //  endof while ( blk_ins != null )        clog_ins.close();        System.err.println( "\n\t " + arrowform.getPartialObjects().size()                          + " Unmatched arrow events" );        System.err.println( "\n\t " + stateform.getPartialObjects().size()                          + " Unmatched state events" );        System.err.println( "\n\t " + Nmatched + " primitives." );        // Remove unused objdef from objdefs-list        Iterator objdefs_itr = objdefs.iterator();        while ( objdefs_itr.hasNext() ) {            objdef = (ObjDef) objdefs_itr.next();            if ( objdef.getName() == null )                objdefs_itr.remove();        }        System.err.println( "\n\t objdefs : " );        objdefs_itr = objdefs.iterator();        while ( objdefs_itr.hasNext() ) {            objdef = (ObjDef) objdefs_itr.next();            System.err.println( objdef.toString() );        }    }    public static final void main( String[] args )    {        if ( args.length != 1 ) {            System.err.println( "It needs the filename to be the only command "                              + "line arguemnt" );            System.exit( 0 );        }        filename = args[ 0 ];        Date time1 = new Date();        createDefs();        Date time2 = new Date();        createPrimitives();        Date time3 = new Date();        System.err.println( "Total ByteSize of the logfile = "                          + total_bytesize );        // System.err.println( "time1 = " + time1 + ", " + time1.getTime() );        // System.err.println( "time2 = " + time2 + ", " + time2.getTime() );        // System.err.println( "time3 = " + time3 + ", " + time3.getTime() );        System.err.println( "timeElapsed between 1 & 2 = "                          + ( time2.getTime() - time1.getTime() ) + " msec" );        System.err.println( "timeElapsed between 2 & 3 = "                          + ( time3.getTime() - time2.getTime() ) + " msec" );    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -