virtual ~AioContext() {}
};
+ struct printer {
+ static constexpr uint8_t ptr = 1; // pointer to Blob
+ static constexpr uint8_t nick = 2; // a nickname of this Blob
+ static constexpr uint8_t disk = 4; // disk allocations of Blob
+ static constexpr uint8_t sdisk = 8; // shortened version of disk allocaitons
+ static constexpr uint8_t use = 16; // use tracker
+ static constexpr uint8_t suse = 32; // shortened use tracker
+ static constexpr uint8_t chk = 64; // checksum, full dump
+ static constexpr uint8_t schk = 128; // only base checksum info
+ };
+
/// cached buffer
struct Buffer {
MEMPOOL_CLASS_HELPERS();
void dump(ceph::Formatter* f) const;
friend std::ostream& operator<<(std::ostream& out, const Blob &b);
- struct printer {
+ struct printer : public BlueStore::printer {
const Blob& blob;
uint8_t mode;
printer(const Blob& blob, uint8_t mode)
:blob(blob), mode(mode) {}
- static constexpr uint8_t ptr = 1; //pointer to Blob
- static constexpr uint8_t nick = 2; //a nickname of this Blob
- static constexpr uint8_t disk = 4; //disk allocations of Blob
- static constexpr uint8_t sdisk = 8; //shortened version of disk allocaitons
- static constexpr uint8_t use = 16; //use tracker
- static constexpr uint8_t suse = 32; //shortened use tracker
- static constexpr uint8_t chk = 64; //checksum, full dump
- static constexpr uint8_t schk = 128; //only base checksum info
};
friend std::ostream& operator<<(std::ostream& out, const printer &p);
printer print(uint8_t mode) const {
blob->get_cache()->rm_extent();
}
}
+ struct printer : public BlueStore::printer {
+ const Extent& ext;
+ uint8_t mode;
+ printer(const Extent& ext, uint8_t mode)
+ :ext(ext), mode(mode) {}
+ };
+ friend std::ostream& operator<<(std::ostream& out, const printer &p);
+ printer print(uint8_t mode) const {
+ return printer(*this, mode);
+ }
void dump(ceph::Formatter* f) const;
std::ostream& operator<<(std::ostream& out, const BlueStore::Blob::printer &p)
{
- using P = BlueStore::Blob::printer;
+ using P = BlueStore::printer;
out << "Blob(";
if (p.mode & P::ptr) {
out << &p.blob << " ";
return out;
}
+std::ostream& operator<<(std::ostream& out, const BlueStore::Extent::printer &p)
+{
+ out << std::hex << "0x" << p.ext.logical_offset << "~" << p.ext.length
+ << ": 0x" << p.ext.blob_offset << "~" << p.ext.length << std::dec
+ << " " << p.ext.blob->print(p.mode);
+ return out;
+}