--- a/src/hotspot/share/jfr/recorder/repository/jfrChunkWriter.hpp Wed Oct 30 16:14:56 2019 +0100
+++ b/src/hotspot/share/jfr/recorder/repository/jfrChunkWriter.hpp Wed Oct 30 19:43:52 2019 +0100
@@ -29,29 +29,36 @@
#include "jfr/writers/jfrStreamWriterHost.inline.hpp"
#include "jfr/writers/jfrWriterHost.inline.hpp"
-typedef MallocAdapter<M> JfrStreamBuffer; // 1 mb buffered writes
-typedef StreamWriterHost<JfrStreamBuffer, JfrCHeapObj> JfrBufferedStreamWriter;
-typedef WriterHost<BigEndianEncoder, CompressedIntegerEncoder, JfrBufferedStreamWriter> JfrChunkWriterBase;
+typedef MallocAdapter<M> JfrChunkBuffer; // 1 mb buffered writes
+typedef StreamWriterHost<JfrChunkBuffer, JfrCHeapObj> JfrBufferedChunkWriter;
+typedef WriterHost<BigEndianEncoder, CompressedIntegerEncoder, JfrBufferedChunkWriter> JfrChunkWriterBase;
-class JfrChunkState;
+class JfrChunk;
+class JfrChunkHeadWriter;
class JfrChunkWriter : public JfrChunkWriterBase {
+ friend class JfrChunkHeadWriter;
friend class JfrRepository;
private:
- JfrChunkState* _chunkstate;
-
+ JfrChunk* _chunk;
+ void set_path(const char* path);
+ int64_t flush_chunk(bool flushpoint);
bool open();
- size_t close(int64_t metadata_offset);
- void write_header(int64_t metadata_offset);
- void set_chunk_path(const char* chunk_path);
+ int64_t close();
+ int64_t current_chunk_start_nanos() const;
+ int64_t write_chunk_header_checkpoint(bool flushpoint);
public:
JfrChunkWriter();
- bool initialize();
+ ~JfrChunkWriter();
+
int64_t size_written() const;
int64_t last_checkpoint_offset() const;
void set_last_checkpoint_offset(int64_t offset);
- void time_stamp_chunk_now();
+ void set_last_metadata_offset(int64_t offset);
+
+ bool has_metadata() const;
+ void set_time_stamp();
};
#endif // SHARE_JFR_RECORDER_REPOSITORY_JFRCHUNKWRITER_HPP