/* * Argument types used by cls_kvs.cc * * Created on: Aug 10, 2012 * Author: eleanor */ #ifndef CLS_KVS_H_ #define CLS_KVS_H_ #define EBALANCE 137 #include "include/encoding.h" #include "key_value_store/kv_flat_btree_async.h" using namespace std; using ceph::bufferlist; struct assert_size_args { uint64_t bound; //the size to compare to - should be k or 2k uint64_t comparator; //should be CEPH_OSD_CMPXATTR_OP_EQ, //CEPH_OSD_CMPXATTR_OP_LT, or //CEPH_OSD_CMPXATTR_OP_GT void encode(bufferlist &bl) const { ENCODE_START(1,1,bl); ::encode(bound, bl); ::encode(comparator, bl); ENCODE_FINISH(bl); } void decode(bufferlist::iterator &p) { DECODE_START(1, p); ::decode(bound, p); ::decode(comparator, p); DECODE_FINISH(p); } }; WRITE_CLASS_ENCODER(assert_size_args) struct idata_from_key_args { string key; index_data idata; index_data next_idata; void encode(bufferlist &bl) const { ENCODE_START(1,1,bl); ::encode(key, bl); ::encode(idata, bl); ::encode(next_idata, bl); ENCODE_FINISH(bl); } void decode(bufferlist::iterator &p) { DECODE_START(1, p); ::decode(key, p); ::decode(idata, p); ::decode(next_idata, p); DECODE_FINISH(p); } }; WRITE_CLASS_ENCODER(idata_from_key_args) struct idata_from_idata_args { index_data idata; index_data next_idata; void encode(bufferlist &bl) const { ENCODE_START(1,1,bl); ::encode(idata, bl); ::encode(next_idata, bl); ENCODE_FINISH(bl); } void decode(bufferlist::iterator &p) { DECODE_START(1, p); ::decode(idata, p); ::decode(next_idata, p); DECODE_FINISH(p); } }; WRITE_CLASS_ENCODER(idata_from_idata_args) struct omap_set_args { map omap; uint64_t bound; bool exclusive; void encode(bufferlist &bl) const { ENCODE_START(1,1,bl); ::encode(omap, bl); ::encode(bound, bl); ::encode(exclusive, bl); ENCODE_FINISH(bl); } void decode(bufferlist::iterator &p) { DECODE_START(1, p); ::decode(omap, p); ::decode(bound, p); ::decode(exclusive, p); DECODE_FINISH(p); } }; WRITE_CLASS_ENCODER(omap_set_args) struct omap_rm_args { std::set omap; uint64_t bound; void encode(bufferlist &bl) const { ENCODE_START(1,1,bl); ::encode(omap, bl); ::encode(bound, bl); ENCODE_FINISH(bl); } void decode(bufferlist::iterator &p) { DECODE_START(1, p); ::decode(omap, p); ::decode(bound, p); DECODE_FINISH(p); } }; WRITE_CLASS_ENCODER(omap_rm_args) struct rebalance_args { object_data odata; uint64_t bound; uint64_t comparator; void encode(bufferlist &bl) const { ENCODE_START(1,1,bl); ::encode(odata, bl); ::encode(bound, bl); ::encode(comparator, bl); ENCODE_FINISH(bl); } void decode(bufferlist::iterator &p) { DECODE_START(1, p); ::decode(odata,p); ::decode(bound, p); ::decode(comparator, p); DECODE_FINISH(p); } }; WRITE_CLASS_ENCODER(rebalance_args) #endif /* CLS_KVS_H_ */