27 |
27 |
28 #include "jfr/writers/jfrStorageAdapter.hpp" |
28 #include "jfr/writers/jfrStorageAdapter.hpp" |
29 #include "jfr/writers/jfrStreamWriterHost.inline.hpp" |
29 #include "jfr/writers/jfrStreamWriterHost.inline.hpp" |
30 #include "jfr/writers/jfrWriterHost.inline.hpp" |
30 #include "jfr/writers/jfrWriterHost.inline.hpp" |
31 |
31 |
32 typedef MallocAdapter<M> JfrStreamBuffer; // 1 mb buffered writes |
32 typedef MallocAdapter<M> JfrChunkBuffer; // 1 mb buffered writes |
33 typedef StreamWriterHost<JfrStreamBuffer, JfrCHeapObj> JfrBufferedStreamWriter; |
33 typedef StreamWriterHost<JfrChunkBuffer, JfrCHeapObj> JfrBufferedChunkWriter; |
34 typedef WriterHost<BigEndianEncoder, CompressedIntegerEncoder, JfrBufferedStreamWriter> JfrChunkWriterBase; |
34 typedef WriterHost<BigEndianEncoder, CompressedIntegerEncoder, JfrBufferedChunkWriter> JfrChunkWriterBase; |
35 |
35 |
36 class JfrChunkState; |
36 class JfrChunk; |
|
37 class JfrChunkHeadWriter; |
37 |
38 |
38 class JfrChunkWriter : public JfrChunkWriterBase { |
39 class JfrChunkWriter : public JfrChunkWriterBase { |
|
40 friend class JfrChunkHeadWriter; |
39 friend class JfrRepository; |
41 friend class JfrRepository; |
40 private: |
42 private: |
41 JfrChunkState* _chunkstate; |
43 JfrChunk* _chunk; |
42 |
44 void set_path(const char* path); |
|
45 int64_t flush_chunk(bool flushpoint); |
43 bool open(); |
46 bool open(); |
44 size_t close(int64_t metadata_offset); |
47 int64_t close(); |
45 void write_header(int64_t metadata_offset); |
48 int64_t current_chunk_start_nanos() const; |
46 void set_chunk_path(const char* chunk_path); |
49 int64_t write_chunk_header_checkpoint(bool flushpoint); |
47 |
50 |
48 public: |
51 public: |
49 JfrChunkWriter(); |
52 JfrChunkWriter(); |
50 bool initialize(); |
53 ~JfrChunkWriter(); |
|
54 |
51 int64_t size_written() const; |
55 int64_t size_written() const; |
52 int64_t last_checkpoint_offset() const; |
56 int64_t last_checkpoint_offset() const; |
53 void set_last_checkpoint_offset(int64_t offset); |
57 void set_last_checkpoint_offset(int64_t offset); |
54 void time_stamp_chunk_now(); |
58 void set_last_metadata_offset(int64_t offset); |
|
59 |
|
60 bool has_metadata() const; |
|
61 void set_time_stamp(); |
55 }; |
62 }; |
56 |
63 |
57 #endif // SHARE_JFR_RECORDER_REPOSITORY_JFRCHUNKWRITER_HPP |
64 #endif // SHARE_JFR_RECORDER_REPOSITORY_JFRCHUNKWRITER_HPP |