📄 slog2toslog2.java
字号:
} treetrunk.addDrawable( cmplx_obj ); } else { System.err.println( "Slog2ToSlog2: Unrecognized return " + "from peekNextKind() = " + next_kind ); } } // Endof while ( dobj_ins.peekNextKind() ) treetrunk.flushToFile(); objdefs.removeUnusedCategories(); slog_outs.writeCategoryMap( objdefs ); // treetrunk's IdentityLineIDMap could be duplicate of the one // in the logfile // lineIDmaps.add( treetrunk.getIdentityLineIDMap() ); slog_outs.writeLineIDMapList( lineIDmaps ); slog_outs.close(); dobj_ins.close(); /* */ Date time3 = new Date(); System.out.println( "\n" ); System.out.println( "Number of Drawables = " + Nobjs ); // System.out.println( "time1 = " + time1 + ", " + time1.getTime() ); // System.out.println( "time2 = " + time2 + ", " + time2.getTime() ); // System.out.println( "time3 = " + time3 + ", " + time3.getTime() ); System.out.println( "timeElapsed between 1 & 2 = " + ( time2.getTime() - time1.getTime() ) + " msec" ); System.out.println( "timeElapsed between 2 & 3 = " + ( time3.getTime() - time2.getTime() ) + " msec" ); } private static int parseByteSize( String size_str ) { int idxOfKilo = Math.max( size_str.indexOf( 'k' ), size_str.indexOf( 'K' ) ); int idxOfMega = Math.max( size_str.indexOf( 'm' ), size_str.indexOf( 'M' ) ); if ( idxOfKilo > 0 ) return Integer.parseInt( size_str.substring( 0, idxOfKilo ) ) * 1024; else if ( idxOfMega > 0 ) return Integer.parseInt( size_str.substring( 0, idxOfMega ) ) * 1024 * 1024; else return Integer.parseInt( size_str ); } private static String help_msg = "Usage: java slog2.output.Slog2ToSlog2 " + "[options] slog2_filename.\n" + " options: \n" + "\t [-h|--h|-help|--help] " + "\t Display HELP message.\n" + "\t [-tc] " + "\t Check increasing endtime order,\n" + "\t " + "\t exit when 1st violation occurs.\n" + "\t [-tcc] " + "\t Check increasing endtime order,\n" + "\t " + "\t continue when violations occur.\n" + "\t [-nc number_of_children_per_node] " + "\t Default value is taken from the\n" + "\t " + "\t input slog2 file.\n" + "\t [-ls max_byte_size_of_leaf_node] " + "\t Default value is taken from the\n" + "\t " + "\t input slog2 file.\n" + "\t [-r id1,id2,...,idN] " + "\t Remove drawable categories of \n" + "\t " + "\t indexes, id1,id2,...,idN.\n" + "\t [-o output_filename_with_slog2_suffix]" + "\n\n" + " note: \"max_byte_size_of_leaf_node\" " + "can be specified with suffix " + "k, K, m or M,\n" + " where k or K stands for kilobyte," + " m or M stands for megabyte.\n" + " e.g. 64k means 65536 bytes.\n"; private static void parseCmdLineArgs( String argv[] ) { String arg_str; int idx; StringBuffer err_msg = new StringBuffer(); in_filename = null; enable_endtime_check = false; continue_when_violation = false; idx = 0; try { while ( idx < argv.length ) { if ( argv[ idx ].startsWith( "-" ) ) { if ( argv[ idx ].equals( "-h" ) || argv[ idx ].equals( "--h" ) || argv[ idx ].equals( "-help" ) || argv[ idx ].equals( "--help" ) ) { System.out.println( help_msg ); System.out.flush(); System.exit( 0 ); } else if ( argv[ idx ].equals( "-tc" ) ) { enable_endtime_check = true; continue_when_violation = false; err_msg.append( "\n endtime_order_check_exit = true" ); idx++; } else if ( argv[ idx ].equals( "-tcc" ) ) { enable_endtime_check = true; continue_when_violation = true; err_msg.append( "\n endtime_order_check_stay = true" ); idx++; } else if ( argv[ idx ].equals( "-nc" ) ) { arg_str = argv[ ++idx ]; num_children_per_node = Short.parseShort( arg_str ); err_msg.append( "\n number_of_children_per_node = " + arg_str ); idx++; } else if ( argv[ idx ].equals( "-ls" ) ) { arg_str = argv[ ++idx ]; leaf_bytesize = parseByteSize( arg_str ); err_msg.append( "\n max_byte_size_of_leaf_node = " + arg_str ); idx++; } else if ( argv[ idx ].equals( "-r" ) ) { arg_str = argv[ ++idx ]; parseRemovalCategoryIndexes( arg_str ); idx++; } else if ( argv[ idx ].equals( "-o" ) ) { out_filename = argv[ ++idx ].trim(); err_msg.append( "\n output_filename = " + out_filename ); idx++; if ( ! out_filename.endsWith( ".slog2" ) ) System.err.println( "Warning: The suffix of the " + "output filename is NOT " + "\".slog2\"." ); } else { System.err.println( "Unrecognized option, " + argv[ idx ] + ", at " + indexOrderStr( idx+1 ) + " command line argument" ); System.out.flush(); System.exit( 1 ); } } else { in_filename = argv[ idx ]; idx++; } } } catch ( ArrayIndexOutOfBoundsException idxerr ) { if ( err_msg.length() > 0 ) System.err.println( err_msg.toString() ); System.err.println( "Error occurs after option " + argv[ idx-1 ] + ", " + indexOrderStr( idx ) + " command line argument." ); // System.err.println( help_msg ); idxerr.printStackTrace(); } catch ( NumberFormatException numerr ) { if ( err_msg.length() > 0 ) System.err.println( err_msg.toString() ); String idx_order_str = indexOrderStr( idx ); System.err.println( "Error occurs after option " + argv[ idx-1 ] + ", " + indexOrderStr( idx ) + " command line argument. It needs a number." ); // System.err.println( help_msg ); numerr.printStackTrace(); } if ( in_filename == null ) { System.err.println( "This program needs a SLOG2 filename " + "as part of the command line arguments." ); System.err.println( help_msg ); System.exit( 1 ); } } private static String indexOrderStr( int idx ) { switch (idx) { case 1 : return Integer.toString( idx ) + "st"; case 2 : return Integer.toString( idx ) + "nd"; case 3 : return Integer.toString( idx ) + "rd"; default : return Integer.toString( idx ) + "th"; } } private static void parseRemovalCategoryIndexes( String arg_str ) { StringTokenizer idxs_itr; int ii; idxs_itr = new StringTokenizer( arg_str.trim(), "," ); del_iobjdefs = new int[ idxs_itr.countTokens() ]; for ( ii = 0; idxs_itr.hasMoreTokens(); ii++ ) del_iobjdefs[ ii ] = Integer.parseInt( idxs_itr.nextToken() ); // Sort del_iobjdefs[] into ascending order Arrays.sort( del_iobjdefs ); } private static boolean isCategoryToBeRemoved( int iobjdef ) { if ( del_iobjdefs != null ) { if ( Arrays.binarySearch( del_iobjdefs, iobjdef ) >= 0 ) return true; } return false; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -