preamble.java
来自「mpi并行计算的c++代码 可用vc或gcc编译通过 可以用来搭建并行计算试验环」· Java 代码 · 共 181 行
JAVA
181 行
/* * (C) 2001 by Argonne National Laboratory * See COPYRIGHT in top-level directory. *//* * @author Anthony Chan */package logformat.clog2;import java.util.StringTokenizer;import java.util.NoSuchElementException;import java.io.DataInputStream;import java.io.IOException;// Class corresponds to CLOG_Premable_tpublic class Preamble{ // BYTESIZE corresponds to CLOG_PREAMBLE_SIZE private final static int BYTESIZE = 1024; // VERSIONSIZE corresponds to CLOG_VERSION_STRLEN; private final static int VERSIONSIZE = 12; private String version; // this correspond to CLOG_Premable_t.is_big_endian private String is_big_endian_title; private boolean is_big_endian; // this correspond to CLOG_Premable_t.block_size private String block_size_title; private int block_size; // this correspond to CLOG_Premable_t.num_buffered_blocks private String num_blocks_title; private int num_blocks; // this correspond to CLOG_Premable_t.comm_world_size private String world_size_title; private int world_size; // this correspond to CLOG_Premable_t.known_eventID_start private String known_eventID_start_title; private int known_eventID_start; // this correspond to CLOG_Premable_t.user_eventID_start private String user_eventID_start_title; private int user_eventID_start; // this correspond to CLOG_Premable_t.user_solo_eventID_start private String user_solo_eventID_start_title; private int user_solo_eventID_start; // this correspond to CLOG_Premable_t.known_stateID_count private String known_stateID_count_title; private int known_stateID_count; // this correspond to CLOG_Premable_t.user_stateID_count private String user_stateID_count_title; private int user_stateID_count; // this correspond to CLOG_Premable_t.user_solo_eventID_count private String user_solo_eventID_count_title; private int user_solo_eventID_count; public boolean readFromDataStream( DataInputStream in ) { byte[] buffer; StringTokenizer tokens; String str; buffer = new byte[ BYTESIZE ]; try { in.readFully( buffer ); } catch ( IOException ioerr ) { ioerr.printStackTrace(); return false; } tokens = new StringTokenizer( new String( buffer ), "\0" ); try { version = tokens.nextToken().trim(); is_big_endian_title = tokens.nextToken().trim(); str = tokens.nextToken().trim(); is_big_endian = str.equalsIgnoreCase( "true" ) || str.equalsIgnoreCase( "yes" ); block_size_title = tokens.nextToken().trim(); block_size = Integer.parseInt( tokens.nextToken().trim() ); num_blocks_title = tokens.nextToken().trim(); num_blocks = Integer.parseInt( tokens.nextToken().trim() ); world_size_title = tokens.nextToken().trim(); world_size = Integer.parseInt( tokens.nextToken().trim() ); known_eventID_start_title = tokens.nextToken().trim(); known_eventID_start = Integer.parseInt( tokens.nextToken().trim() ); user_eventID_start_title = tokens.nextToken().trim(); user_eventID_start = Integer.parseInt( tokens.nextToken().trim() ); user_solo_eventID_start_title = tokens.nextToken().trim(); user_solo_eventID_start = Integer.parseInt( tokens.nextToken().trim() ); known_stateID_count_title = tokens.nextToken().trim(); known_stateID_count = Integer.parseInt( tokens.nextToken().trim() ); user_stateID_count_title = tokens.nextToken().trim(); user_stateID_count = Integer.parseInt( tokens.nextToken().trim() ); user_solo_eventID_count_title = tokens.nextToken().trim(); user_solo_eventID_count = Integer.parseInt( tokens.nextToken().trim() ); } catch ( NoSuchElementException err ) { err.printStackTrace(); return false; } catch ( NumberFormatException err ) { err.printStackTrace(); return false; } /* Set the const in (comm,rank) -> lineID transformation */ LineID.setCommRank2LineIDxForm( world_size ); return true; } public String getVersionString() { return version; } public boolean isVersionMatched() { return version.equalsIgnoreCase( Const.VERSION ); } public boolean isVersionCompatible() { String old_version; boolean isCompatible; int idx; isCompatible = false; for ( idx = 0; idx < Const.COMPAT_VERSIONS.length && !isCompatible; idx++ ) { old_version = Const.COMPAT_VERSIONS[ idx ]; isCompatible = version.equalsIgnoreCase( old_version ); } return isCompatible; } public boolean isBigEndian() { return is_big_endian; } public int getBlockSize() { return block_size; } public int getCommWorldSize() { return world_size; } public int getKnownEventIDStart() { return known_eventID_start; } public int getUserEventIDStart() { return user_eventID_start; } public int getUserSoloEventIDStart() { return user_solo_eventID_start; } public int getKnownStateIDCount() { return known_stateID_count; } public int getUserStateIDCount() { return user_stateID_count; } public int getUserSoloEventIDCount() { return user_solo_eventID_count; } public String toString() { return ( version + "\n" + is_big_endian_title + is_big_endian + "\n" + block_size_title + block_size + "\n" + num_blocks_title + num_blocks + "\n" + world_size_title + world_size + "\n" + known_eventID_start_title + known_eventID_start + "\n" + user_eventID_start_title + user_eventID_start + "\n" + user_solo_eventID_start_title + user_solo_eventID_start + "\n" + known_stateID_count_title + known_stateID_count + "\n" + user_stateID_count_title + user_stateID_count + "\n" + user_solo_eventID_count_title + user_solo_eventID_count + "\n" ); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?