Class FlightRecordingLoader
- java.lang.Object
-
- org.openjdk.jmc.flightrecorder.internal.FlightRecordingLoader
-
public final class FlightRecordingLoader extends java.lang.ObjectHelper class for loading flight recordings from disk.
-
-
Field Summary
Fields Modifier and Type Field Description private static byte[]FLIGHT_RECORDER_MAGICprivate static java.util.logging.LoggerLOGGERprivate static intMIN_MEMORY_PER_THREADprivate static java.lang.StringSINGLE_THREADED_PARSER_PROPERTY_KEYprivate static shortVERSION_0private static shortVERSION_1private static shortVERSION_2
-
Constructor Summary
Constructors Constructor Description FlightRecordingLoader()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static ChunkcreateChunkInput(java.io.DataInput input, int firstByte, byte[] reusableBuffer)private static IChunkLoadercreateChunkLoader(IChunkSupplier chunkSupplier, LoaderContext context, byte[] buffer, boolean ignoreTruncatedChunk)static IChunkSuppliercreateChunkSupplier(java.io.InputStream input)static IChunkSuppliercreateChunkSupplier(java.io.RandomAccessFile input)static IChunkSuppliercreateChunkSupplier(java.io.RandomAccessFile input, java.util.Collection<ChunkInfo> chunks)private static ChunkInfogetChunkInfo(Chunk nextChunk, long nextChunkPos)static EventArray[]loadStream(java.io.InputStream stream, boolean hideExperimentals, boolean ignoreTruncatedChunk)static EventArray[]loadStream(java.io.InputStream stream, java.util.List<? extends IParserExtension> extensions, boolean hideExperimentals, boolean ignoreTruncatedChunk)Read events from an input stream of JFR data.static java.util.List<ChunkInfo>readChunkInfo(IChunkSupplier chunkSupplier)static EventArray[]readChunks(java.lang.Runnable monitor, java.util.List<? extends IParserExtension> extensions, IChunkSupplier chunkSupplier, boolean hideExperimentals, boolean ignoreTruncatedChunk)static EventArray[]readChunks(java.lang.Runnable monitor, IChunkSupplier chunkSupplier, boolean hideExperimentals, boolean ignoreTruncatedChunk)private static voidsendProgress(java.lang.Runnable listener)
-
-
-
Field Detail
-
LOGGER
private static final java.util.logging.Logger LOGGER
-
SINGLE_THREADED_PARSER_PROPERTY_KEY
private static final java.lang.String SINGLE_THREADED_PARSER_PROPERTY_KEY
- See Also:
- Constant Field Values
-
MIN_MEMORY_PER_THREAD
private static final int MIN_MEMORY_PER_THREAD
- See Also:
- Constant Field Values
-
VERSION_0
private static final short VERSION_0
- See Also:
- Constant Field Values
-
VERSION_1
private static final short VERSION_1
- See Also:
- Constant Field Values
-
VERSION_2
private static final short VERSION_2
- See Also:
- Constant Field Values
-
FLIGHT_RECORDER_MAGIC
private static final byte[] FLIGHT_RECORDER_MAGIC
-
-
Method Detail
-
loadStream
public static EventArray[] loadStream(java.io.InputStream stream, boolean hideExperimentals, boolean ignoreTruncatedChunk) throws CouldNotLoadRecordingException, java.io.IOException
- Throws:
CouldNotLoadRecordingExceptionjava.io.IOException
-
loadStream
public static EventArray[] loadStream(java.io.InputStream stream, java.util.List<? extends IParserExtension> extensions, boolean hideExperimentals, boolean ignoreTruncatedChunk) throws CouldNotLoadRecordingException, java.io.IOException
Read events from an input stream of JFR data.- Parameters:
stream- input streamextensions- the extensions to use when parsing the datahideExperimentals- iftrue, then events of types marked as experimental will be ignored when reading the data- Returns:
- an array of EventArrays (one event type per EventArray)
- Throws:
CouldNotLoadRecordingExceptionjava.io.IOException
-
createChunkSupplier
public static IChunkSupplier createChunkSupplier(java.io.InputStream input) throws CouldNotLoadRecordingException, java.io.IOException
- Throws:
CouldNotLoadRecordingExceptionjava.io.IOException
-
createChunkSupplier
public static IChunkSupplier createChunkSupplier(java.io.RandomAccessFile input) throws CouldNotLoadRecordingException, java.io.IOException
- Throws:
CouldNotLoadRecordingExceptionjava.io.IOException
-
createChunkSupplier
public static IChunkSupplier createChunkSupplier(java.io.RandomAccessFile input, java.util.Collection<ChunkInfo> chunks) throws CouldNotLoadRecordingException, java.io.IOException
- Throws:
CouldNotLoadRecordingExceptionjava.io.IOException
-
createChunkInput
private static Chunk createChunkInput(java.io.DataInput input, int firstByte, byte[] reusableBuffer) throws CouldNotLoadRecordingException, java.io.IOException
- Throws:
CouldNotLoadRecordingExceptionjava.io.IOException
-
readChunkInfo
public static java.util.List<ChunkInfo> readChunkInfo(IChunkSupplier chunkSupplier) throws CouldNotLoadRecordingException, java.io.IOException
- Throws:
CouldNotLoadRecordingExceptionjava.io.IOException
-
getChunkInfo
private static ChunkInfo getChunkInfo(Chunk nextChunk, long nextChunkPos) throws CouldNotLoadRecordingException, java.io.IOException
- Throws:
CouldNotLoadRecordingExceptionjava.io.IOException
-
readChunks
public static EventArray[] readChunks(java.lang.Runnable monitor, IChunkSupplier chunkSupplier, boolean hideExperimentals, boolean ignoreTruncatedChunk) throws CouldNotLoadRecordingException, java.io.IOException
- Throws:
CouldNotLoadRecordingExceptionjava.io.IOException
-
readChunks
public static EventArray[] readChunks(java.lang.Runnable monitor, java.util.List<? extends IParserExtension> extensions, IChunkSupplier chunkSupplier, boolean hideExperimentals, boolean ignoreTruncatedChunk) throws CouldNotLoadRecordingException, java.io.IOException
- Throws:
CouldNotLoadRecordingExceptionjava.io.IOException
-
sendProgress
private static void sendProgress(java.lang.Runnable listener)
-
createChunkLoader
private static IChunkLoader createChunkLoader(IChunkSupplier chunkSupplier, LoaderContext context, byte[] buffer, boolean ignoreTruncatedChunk) throws CouldNotLoadRecordingException, java.io.IOException
- Parameters:
chunkSupplier- chunk data sourcecontext- loader context that the returned chunk loader will send event data tobuffer- Initial byte array to use for storing chunk data. SeeIChunkSupplier.getNextChunk(byte[]).ignoreTruncatedChunk- if true, then any exceptions caused by getting and reading the next chunk will be ignored and instead make the method return null- Returns:
- a new chunk loader or null if no more data is available from the chunk supplier
- Throws:
CouldNotLoadRecordingExceptionjava.io.IOException
-
-