]>
git.proxmox.com Git - ceph.git/blob - ceph/src/crimson/os/seastore/onode_manager/simple-fltree/onode_delta.h
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:nil -*-
2 // vim: ts=8 sw=2 smarttab
8 #include "common/hobject.h"
9 #include "include/buffer_fwd.h"
11 #include "crimson/os/seastore/onode.h"
12 #include "crimson/os/seastore/seastore_types.h"
14 using crimson::os::seastore::OnodeRef
;
17 enum class op_t
: uint8_t {
29 // - changing the embedded extent map of given oid
30 // - mutating the embedded xattrs of given oid
35 crimson::os::seastore::laddr_t addr
= 0;
38 ceph::bufferptr cells
;
44 delta_t(delta_t
&& delta
);
45 delta_t
& operator=(delta_t
&& delta
);
48 static delta_t
insert_onode(unsigned slot
, const ghobject_t
& oid
, OnodeRef onode
);
49 static delta_t
update_onode(unsigned slot
, const ghobject_t
& oid
, OnodeRef onode
);
50 static delta_t
insert_child(unsigned slot
, const ghobject_t
& oid
, crimson::os::seastore::laddr_t addr
);
51 static delta_t
update_key(unsigned slot
, const ghobject_t
& oid
);
52 static delta_t
shift_left(unsigned n
);
53 static delta_t
trim_right(unsigned n
);
54 static delta_t
insert_front(ceph::buffer::ptr keys
,
55 ceph::buffer::ptr cells
);
56 static delta_t
insert_back(ceph::buffer::ptr keys
,
57 ceph::buffer::ptr cells
);
58 static delta_t
remove_from(unsigned slot
);
61 static delta_t
insert_item(unsigned slot
, const ghobject_t
& oid
, OnodeRef onode
) {
62 return insert_onode(slot
, oid
, onode
);
64 static delta_t
insert_item(unsigned slot
, const ghobject_t
& oid
, crimson::os::seastore::laddr_t addr
) {
65 return insert_child(slot
, oid
, addr
);
68 void encode(ceph::bufferlist
& bl
);
69 void decode(ceph::bufferlist::const_iterator
& p
);