src/hotspot/share/jfr/recorder/repository/jfrChunkWriter.hpp
changeset 58863 c16ac7a2eba4
parent 58132 caa25ab47aca
child 59226 a0f39cc47387
equal deleted inserted replaced
58861:2c3cc4b01880 58863:c16ac7a2eba4
    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