src/share/vm/jfr/recorder/repository/jfrChunkWriter.cpp

changeset 9947
db357034b763
parent 9858
b985cbb00e68
equal deleted inserted replaced
9946:103d1261f1f4 9947:db357034b763
30 #include "jfr/utilities/jfrTypes.hpp" 30 #include "jfr/utilities/jfrTypes.hpp"
31 #include "runtime/mutexLocker.hpp" 31 #include "runtime/mutexLocker.hpp"
32 #include "runtime/os.hpp" 32 #include "runtime/os.hpp"
33 #include "runtime/os.hpp" 33 #include "runtime/os.hpp"
34 34
35 const u2 JFR_VERSION_MAJOR = 2; 35 static const u2 JFR_VERSION_MAJOR = 2;
36 const u2 JFR_VERSION_MINOR = 0; 36 static const u2 JFR_VERSION_MINOR = 0;
37
38 static const size_t MAGIC_LEN = 4; 37 static const size_t MAGIC_LEN = 4;
39 static const size_t FILEHEADER_SLOT_SIZE = 8; 38 static const size_t FILEHEADER_SLOT_SIZE = 8;
40 static const size_t CHUNK_SIZE_OFFSET = 8; 39 static const size_t CHUNK_SIZE_OFFSET = 8;
41 40
42 JfrChunkWriter::JfrChunkWriter() : JfrChunkWriterBase(NULL), _chunkstate(NULL) {} 41 JfrChunkWriter::JfrChunkWriter() : JfrChunkWriterBase(NULL), _chunkstate(NULL) {}
77 _chunkstate->reset(); 76 _chunkstate->reset();
78 } 77 }
79 return is_open; 78 return is_open;
80 } 79 }
81 80
82 size_t JfrChunkWriter::close(intptr_t metadata_offset) { 81 size_t JfrChunkWriter::close(int64_t metadata_offset) {
83 write_header(metadata_offset); 82 write_header(metadata_offset);
84 this->flush(); 83 this->flush();
85 this->close_fd(); 84 this->close_fd();
86 return size_written(); 85 return (size_t)size_written();
87 } 86 }
88 87
89 void JfrChunkWriter::write_header(intptr_t metadata_offset) { 88 void JfrChunkWriter::write_header(int64_t metadata_offset) {
90 assert(this->is_valid(), "invariant"); 89 assert(this->is_valid(), "invariant");
91 // Chunk size 90 // Chunk size
92 this->write_be_at_offset((jlong)size_written(), CHUNK_SIZE_OFFSET); 91 this->write_be_at_offset((jlong)size_written(), CHUNK_SIZE_OFFSET);
93 // initial checkpoint event offset 92 // initial checkpoint event offset
94 this->write_be_at_offset(_chunkstate->previous_checkpoint_offset(), CHUNK_SIZE_OFFSET + (1 * FILEHEADER_SLOT_SIZE)); 93 this->write_be_at_offset(_chunkstate->previous_checkpoint_offset(), CHUNK_SIZE_OFFSET + (1 * FILEHEADER_SLOT_SIZE));
104 103
105 void JfrChunkWriter::set_chunk_path(const char* chunk_path) { 104 void JfrChunkWriter::set_chunk_path(const char* chunk_path) {
106 _chunkstate->set_path(chunk_path); 105 _chunkstate->set_path(chunk_path);
107 } 106 }
108 107
109 intptr_t JfrChunkWriter::size_written() const { 108 int64_t JfrChunkWriter::size_written() const {
110 return this->is_valid() ? this->current_offset() : 0; 109 return this->is_valid() ? this->current_offset() : 0;
111 } 110 }
112 111
113 intptr_t JfrChunkWriter::previous_checkpoint_offset() const { 112 int64_t JfrChunkWriter::previous_checkpoint_offset() const {
114 return _chunkstate->previous_checkpoint_offset(); 113 return _chunkstate->previous_checkpoint_offset();
115 } 114 }
116 115
117 void JfrChunkWriter::set_previous_checkpoint_offset(intptr_t offset) { 116 void JfrChunkWriter::set_previous_checkpoint_offset(int64_t offset) {
118 _chunkstate->set_previous_checkpoint_offset(offset); 117 _chunkstate->set_previous_checkpoint_offset(offset);
119 } 118 }
120 119
121 void JfrChunkWriter::time_stamp_chunk_now() { 120 void JfrChunkWriter::time_stamp_chunk_now() {
122 _chunkstate->update_time_to_now(); 121 _chunkstate->update_time_to_now();

mercurial