buffer: add no-newline hexdump option

Signed-off-by: Sage Weil <sage@redhat.com>
This commit is contained in:
Sage Weil 2016-05-20 10:28:52 -04:00
parent 7f6174e9d6
commit 46522cf0d2
2 changed files with 9 additions and 5 deletions

View File

@ -2339,7 +2339,7 @@ void buffer::list::write_stream(std::ostream &out) const
}
void buffer::list::hexdump(std::ostream &out) const
void buffer::list::hexdump(std::ostream &out, bool trailing_newline) const
{
if (!length())
return;
@ -2377,7 +2377,8 @@ void buffer::list::hexdump(std::ostream &out) const
did_star = false;
}
}
if (o)
out << "\n";
out << std::hex << std::setw(8) << o << " ";
unsigned i;
@ -2400,9 +2401,12 @@ void buffer::list::hexdump(std::ostream &out) const
else
out << '.';
}
out << '|' << std::dec << std::endl;
out << '|' << std::dec;
}
if (trailing_newline) {
out << "\n" << std::hex << std::setw(8) << length();
out << "\n";
}
out << std::hex << std::setw(8) << length() << "\n";
out.flags(original_flags);
}

View File

@ -580,7 +580,7 @@ namespace buffer CEPH_BUFFER_API {
void decode_base64(list& o);
void write_stream(std::ostream &out) const;
void hexdump(std::ostream &out) const;
void hexdump(std::ostream &out, bool trailing_newline = true) const;
int read_file(const char *fn, std::string *error);
ssize_t read_fd(int fd, size_t len);
int read_fd_zero_copy(int fd, size_t len);