diff options
Diffstat (limited to 'src/cls/queue/cls_queue_ops.h')
-rw-r--r-- | src/cls/queue/cls_queue_ops.h | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/src/cls/queue/cls_queue_ops.h b/src/cls/queue/cls_queue_ops.h new file mode 100644 index 000000000..64891cffb --- /dev/null +++ b/src/cls/queue/cls_queue_ops.h @@ -0,0 +1,139 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab + +#ifndef CEPH_CLS_QUEUE_OPS_H +#define CEPH_CLS_QUEUE_OPS_H + +#include "cls/queue/cls_queue_types.h" + +struct cls_queue_init_op { + uint64_t queue_size{0}; + uint64_t max_urgent_data_size{0}; + ceph::buffer::list bl_urgent_data; + + cls_queue_init_op() {} + + void encode(ceph::buffer::list& bl) const { + ENCODE_START(1, 1, bl); + encode(queue_size, bl); + encode(max_urgent_data_size, bl); + encode(bl_urgent_data, bl); + ENCODE_FINISH(bl); + } + + void decode(ceph::buffer::list::const_iterator& bl) { + DECODE_START(1, bl); + decode(queue_size, bl); + decode(max_urgent_data_size, bl); + decode(bl_urgent_data, bl); + DECODE_FINISH(bl); + } + +}; +WRITE_CLASS_ENCODER(cls_queue_init_op) + +struct cls_queue_enqueue_op { + std::vector<ceph::buffer::list> bl_data_vec; + + cls_queue_enqueue_op() {} + + void encode(ceph::buffer::list& bl) const { + ENCODE_START(1, 1, bl); + encode(bl_data_vec, bl); + ENCODE_FINISH(bl); + } + + void decode(ceph::buffer::list::const_iterator& bl) { + DECODE_START(1, bl); + decode(bl_data_vec, bl); + DECODE_FINISH(bl); + } +}; +WRITE_CLASS_ENCODER(cls_queue_enqueue_op) + +struct cls_queue_list_op { + uint64_t max; + std::string start_marker; + + cls_queue_list_op() {} + + void encode(ceph::buffer::list& bl) const { + ENCODE_START(1, 1, bl); + encode(max, bl); + encode(start_marker, bl); + ENCODE_FINISH(bl); + } + + void decode(ceph::buffer::list::const_iterator& bl) { + DECODE_START(1, bl); + decode(max, bl); + decode(start_marker, bl); + DECODE_FINISH(bl); + } +}; +WRITE_CLASS_ENCODER(cls_queue_list_op) + +struct cls_queue_list_ret { + bool is_truncated; + std::string next_marker; + std::vector<cls_queue_entry> entries; + + cls_queue_list_ret() {} + + void encode(ceph::buffer::list& bl) const { + ENCODE_START(1, 1, bl); + encode(is_truncated, bl); + encode(next_marker, bl); + encode(entries, bl); + ENCODE_FINISH(bl); + } + + void decode(ceph::buffer::list::const_iterator& bl) { + DECODE_START(1, bl); + decode(is_truncated, bl); + decode(next_marker, bl); + decode(entries, bl); + DECODE_FINISH(bl); + } +}; +WRITE_CLASS_ENCODER(cls_queue_list_ret) + +struct cls_queue_remove_op { + std::string end_marker; + + cls_queue_remove_op() {} + + void encode(ceph::buffer::list& bl) const { + ENCODE_START(1, 1, bl); + encode(end_marker, bl); + ENCODE_FINISH(bl); + } + + void decode(ceph::buffer::list::const_iterator& bl) { + DECODE_START(1, bl); + decode(end_marker, bl); + DECODE_FINISH(bl); + } +}; +WRITE_CLASS_ENCODER(cls_queue_remove_op) + +struct cls_queue_get_capacity_ret { + uint64_t queue_capacity; + + cls_queue_get_capacity_ret() {} + + void encode(ceph::buffer::list& bl) const { + ENCODE_START(1, 1, bl); + encode(queue_capacity, bl); + ENCODE_FINISH(bl); + } + + void decode(ceph::buffer::list::const_iterator& bl) { + DECODE_START(1, bl); + decode(queue_capacity, bl); + DECODE_FINISH(bl); + } +}; +WRITE_CLASS_ENCODER(cls_queue_get_capacity_ret) + +#endif /* CEPH_CLS_QUEUE_OPS_H */ |