Class FlightRecordingLoader
- java.lang.Object
-
- org.openjdk.jmc.flightrecorder.internal.FlightRecordingLoader
-
public final class FlightRecordingLoader extends java.lang.Object
Helper class for loading flight recordings from disk.
-
-
Field Summary
Fields Modifier and Type Field Description private static byte[]
FLIGHT_RECORDER_MAGIC
private static java.util.logging.Logger
LOGGER
private static int
MIN_MEMORY_PER_THREAD
private static java.lang.String
SINGLE_THREADED_PARSER_PROPERTY_KEY
private static short
VERSION_0
private static short
VERSION_1
private static short
VERSION_2
-
Constructor Summary
Constructors Constructor Description FlightRecordingLoader()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static Chunk
createChunkInput(java.io.DataInput input, int firstByte, byte[] reusableBuffer)
private static IChunkLoader
createChunkLoader(IChunkSupplier chunkSupplier, LoaderContext context, byte[] buffer, boolean ignoreTruncatedChunk)
static IChunkSupplier
createChunkSupplier(java.io.InputStream input)
static IChunkSupplier
createChunkSupplier(java.io.RandomAccessFile input)
static IChunkSupplier
createChunkSupplier(java.io.RandomAccessFile input, java.util.Collection<ChunkInfo> chunks)
private static ChunkInfo
getChunkInfo(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 void
sendProgress(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:
CouldNotLoadRecordingException
java.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:
CouldNotLoadRecordingException
java.io.IOException
-
createChunkSupplier
public static IChunkSupplier createChunkSupplier(java.io.InputStream input) throws CouldNotLoadRecordingException, java.io.IOException
- Throws:
CouldNotLoadRecordingException
java.io.IOException
-
createChunkSupplier
public static IChunkSupplier createChunkSupplier(java.io.RandomAccessFile input) throws CouldNotLoadRecordingException, java.io.IOException
- Throws:
CouldNotLoadRecordingException
java.io.IOException
-
createChunkSupplier
public static IChunkSupplier createChunkSupplier(java.io.RandomAccessFile input, java.util.Collection<ChunkInfo> chunks) throws CouldNotLoadRecordingException, java.io.IOException
- Throws:
CouldNotLoadRecordingException
java.io.IOException
-
createChunkInput
private static Chunk createChunkInput(java.io.DataInput input, int firstByte, byte[] reusableBuffer) throws CouldNotLoadRecordingException, java.io.IOException
- Throws:
CouldNotLoadRecordingException
java.io.IOException
-
readChunkInfo
public static java.util.List<ChunkInfo> readChunkInfo(IChunkSupplier chunkSupplier) throws CouldNotLoadRecordingException, java.io.IOException
- Throws:
CouldNotLoadRecordingException
java.io.IOException
-
getChunkInfo
private static ChunkInfo getChunkInfo(Chunk nextChunk, long nextChunkPos) throws CouldNotLoadRecordingException, java.io.IOException
- Throws:
CouldNotLoadRecordingException
java.io.IOException
-
readChunks
public static EventArray[] readChunks(java.lang.Runnable monitor, IChunkSupplier chunkSupplier, boolean hideExperimentals, boolean ignoreTruncatedChunk) throws CouldNotLoadRecordingException, java.io.IOException
- Throws:
CouldNotLoadRecordingException
java.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:
CouldNotLoadRecordingException
java.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:
CouldNotLoadRecordingException
java.io.IOException
-
-