src/hotspot/share/jfr/writers/jfrStreamWriterHost.inline.hpp
changeset 53897 0abec72a3ac2
parent 53244 9807daeb47c4
equal deleted inserted replaced
53896:b47fd614c75e 53897:0abec72a3ac2
    42 StreamWriterHost<Adapter, AP>::StreamWriterHost(Thread* thread) :
    42 StreamWriterHost<Adapter, AP>::StreamWriterHost(Thread* thread) :
    43   MemoryWriterHost<Adapter, AP>(thread), _stream_pos(0), _fd(invalid_fd) {
    43   MemoryWriterHost<Adapter, AP>(thread), _stream_pos(0), _fd(invalid_fd) {
    44 }
    44 }
    45 
    45 
    46 template <typename Adapter, typename AP>
    46 template <typename Adapter, typename AP>
    47 inline intptr_t StreamWriterHost<Adapter, AP>::current_stream_position() const {
    47 inline int64_t StreamWriterHost<Adapter, AP>::current_stream_position() const {
    48   return this->used_offset() + _stream_pos;
    48   return this->used_offset() + _stream_pos;
    49 }
    49 }
    50 
    50 
    51 template <typename Adapter, typename AP>
    51 template <typename Adapter, typename AP>
    52 inline bool StreamWriterHost<Adapter, AP>::accommodate(size_t used, size_t requested) {
    52 inline bool StreamWriterHost<Adapter, AP>::accommodate(size_t used, size_t requested) {
    71 
    71 
    72 template <typename Adapter, typename AP>
    72 template <typename Adapter, typename AP>
    73 inline void StreamWriterHost<Adapter, AP>::flush(size_t size) {
    73 inline void StreamWriterHost<Adapter, AP>::flush(size_t size) {
    74   assert(size > 0, "invariant");
    74   assert(size > 0, "invariant");
    75   assert(this->is_valid(), "invariant");
    75   assert(this->is_valid(), "invariant");
    76   _stream_pos += os::write(_fd, this->start_pos(), (int)size);
    76   _stream_pos += os::write(_fd, this->start_pos(), (unsigned int)size);
    77   StorageHost<Adapter, AP>::reset();
    77   StorageHost<Adapter, AP>::reset();
    78   assert(0 == this->used_offset(), "invariant");
    78   assert(0 == this->used_offset(), "invariant");
    79 }
    79 }
    80 
    80 
    81 template <typename Adapter, typename AP>
    81 template <typename Adapter, typename AP>
    82 inline bool StreamWriterHost<Adapter, AP>::has_valid_fd() const {
    82 inline bool StreamWriterHost<Adapter, AP>::has_valid_fd() const {
    83   return invalid_fd != _fd;
    83   return invalid_fd != _fd;
    84 }
    84 }
    85 
    85 
    86 template <typename Adapter, typename AP>
    86 template <typename Adapter, typename AP>
    87 inline intptr_t StreamWriterHost<Adapter, AP>::current_offset() const {
    87 inline int64_t StreamWriterHost<Adapter, AP>::current_offset() const {
    88   return current_stream_position();
    88   return current_stream_position();
    89 }
    89 }
    90 
    90 
    91 template <typename Adapter, typename AP>
    91 template <typename Adapter, typename AP>
    92 void StreamWriterHost<Adapter, AP>::seek(intptr_t offset) {
    92 void StreamWriterHost<Adapter, AP>::seek(int64_t offset) {
    93   this->flush();
    93   this->flush();
    94   assert(0 == this->used_offset(), "can only seek from beginning");
    94   assert(0 == this->used_offset(), "can only seek from beginning");
    95   _stream_pos = os::seek_to_file_offset(_fd, offset);
    95   _stream_pos = os::seek_to_file_offset(_fd, offset);
    96 }
    96 }
    97 
    97 
   108 template <typename Adapter, typename AP>
   108 template <typename Adapter, typename AP>
   109 void StreamWriterHost<Adapter, AP>::write_unbuffered(const void* buf, size_t len) {
   109 void StreamWriterHost<Adapter, AP>::write_unbuffered(const void* buf, size_t len) {
   110   this->flush();
   110   this->flush();
   111   assert(0 == this->used_offset(), "can only seek from beginning");
   111   assert(0 == this->used_offset(), "can only seek from beginning");
   112   while (len > 0) {
   112   while (len > 0) {
   113     const int n = MIN2<int>((int)len, INT_MAX);
   113     const unsigned int n = MIN2((unsigned int)len, (unsigned int)INT_MAX);
   114     _stream_pos += os::write(_fd, buf, n);
   114     _stream_pos += os::write(_fd, buf, n);
   115     len -= n;
   115     len -= n;
   116   }
   116   }
   117 }
   117 }
   118 
   118