From 262897b9f6ca0ee9854faef6d03668b51532becf Mon Sep 17 00:00:00 2001 From: Yuan Zhou Date: Fri, 18 Jan 2019 00:10:33 +0800 Subject: [PATCH] tools: clean up types for immutable obj cache daemon Signed-off-by: Yuan Zhou --- src/tools/immutable_object_cache/Types.cc | 52 ++++++++++++++- src/tools/immutable_object_cache/Types.h | 78 ++++------------------- 2 files changed, 61 insertions(+), 69 deletions(-) diff --git a/src/tools/immutable_object_cache/Types.cc b/src/tools/immutable_object_cache/Types.cc index 2f22e12552797..dba1488db0d58 100644 --- a/src/tools/immutable_object_cache/Types.cc +++ b/src/tools/immutable_object_cache/Types.cc @@ -10,8 +10,6 @@ namespace ceph { namespace immutable_obj_cache { -// TODO : fix compile issue -/* void ObjectCacheMsgHeader::encode(bufferlist& bl) const { ceph::encode(seq, bl); ceph::encode(type, bl); @@ -29,7 +27,55 @@ void ObjectCacheMsgHeader::decode(bufferlist::const_iterator& it) { ceph::decode(data_len, it); ceph::decode(reserved, it); } -*/ + +void ObjectCacheMsgData::encode(bufferlist& bl) { + ceph::encode(m_image_size, bl); + ceph::encode(m_read_offset, bl); + ceph::encode(m_read_len, bl); + ceph::encode(m_pool_name, bl); + ceph::encode(m_image_name, bl); + ceph::encode(m_oid, bl); +} + +void ObjectCacheMsgData::decode(bufferlist& bl) { + auto i = bl.cbegin(); + ceph::decode(m_image_size, i); + ceph::decode(m_read_offset, i); + ceph::decode(m_read_len, i); + ceph::decode(m_pool_name, i); + ceph::decode(m_image_name, i); + ceph::decode(m_oid, i); +} + +void ObjectCacheRequest::encode() { + m_data.encode(m_data_buffer); + m_head.data_len = m_data_buffer.length(); + m_head.data_len = m_data_buffer.length(); + ceph_assert(m_head_buffer.length() == 0); + m_head.encode(m_head_buffer); + ceph_assert(sizeof(ObjectCacheMsgHeader) == m_head_buffer.length()); +} + +bufferlist ObjectCacheRequest::get_head_buffer() { + return m_head_buffer; +} +bufferlist ObjectCacheRequest::get_data_buffer() { + return m_data_buffer; +} + +ObjectCacheRequest* decode_object_cache_request( + ObjectCacheMsgHeader* head, bufferlist data_buffer) { + ObjectCacheRequest* req = new ObjectCacheRequest(); + req->m_head = *head; + ceph_assert(req->m_head.data_len == data_buffer.length()); + req->m_data.decode(data_buffer); + return req; +} + +ObjectCacheRequest* decode_object_cache_request( + bufferlist head_buffer, bufferlist data_buffer) { + return decode_object_cache_request((ObjectCacheMsgHeader*)(head_buffer.c_str()), data_buffer); +} } // namespace immutable_obj_cache } // namespace ceph diff --git a/src/tools/immutable_object_cache/Types.h b/src/tools/immutable_object_cache/Types.h index efd818177fbca..943a5f2aaa6b0 100644 --- a/src/tools/immutable_object_cache/Types.h +++ b/src/tools/immutable_object_cache/Types.h @@ -18,23 +18,8 @@ struct ObjectCacheMsgHeader { uint32_t data_len; uint32_t reserved; - void encode(bufferlist& bl) const { - ceph::encode(seq, bl); - ceph::encode(type, bl); - ceph::encode(version, bl); - ceph::encode(padding, bl); - ceph::encode(data_len, bl); - ceph::encode(reserved, bl); - } - - void decode(bufferlist::const_iterator& it) { - ceph::decode(seq, it); - ceph::decode(type, it); - ceph::decode(version, it); - ceph::decode(padding, it); - ceph::decode(data_len, it); - ceph::decode(reserved, it); - } + void encode(bufferlist& bl) const; + void decode(bufferlist::const_iterator& it); }; class ObjectCacheMsgData { @@ -46,27 +31,8 @@ public: std::string m_image_name; std::string m_oid; - ObjectCacheMsgData(){} - ~ObjectCacheMsgData(){} - - void encode(bufferlist& bl) { - ceph::encode(m_image_size, bl); - ceph::encode(m_read_offset, bl); - ceph::encode(m_read_len, bl); - ceph::encode(m_pool_name, bl); - ceph::encode(m_image_name, bl); - ceph::encode(m_oid, bl); - } - - void decode(bufferlist& bl) { - auto i = bl.cbegin(); - ceph::decode(m_image_size, i); - ceph::decode(m_read_offset, i); - ceph::decode(m_read_len, i); - ceph::decode(m_pool_name, i); - ceph::decode(m_image_name, i); - ceph::decode(m_oid, i); - } + void encode(bufferlist& bl); + void decode(bufferlist& bl); }; class ObjectCacheRequest { @@ -77,37 +43,17 @@ public: bufferlist m_data_buffer; GenContext* m_process_msg; - ObjectCacheRequest() {} - ~ObjectCacheRequest() {} - void encode() { - m_data.encode(m_data_buffer); - m_head.data_len = m_data_buffer.length(); - m_head.data_len = m_data_buffer.length(); - assert(m_head_buffer.length() == 0); - m_head.encode(m_head_buffer); - assert(sizeof(ObjectCacheMsgHeader) == m_head_buffer.length()); - } - bufferlist get_head_buffer() { - return m_head_buffer; - } - bufferlist get_data_buffer() { - return m_data_buffer; - } + void encode(); + bufferlist get_head_buffer(); + bufferlist get_data_buffer(); + }; -inline ObjectCacheRequest* decode_object_cache_request( - ObjectCacheMsgHeader* head, bufferlist data_buffer) { - ObjectCacheRequest* req = new ObjectCacheRequest(); - req->m_head = *head; - assert(req->m_head.data_len == data_buffer.length()); - req->m_data.decode(data_buffer); - return req; -} +ObjectCacheRequest* decode_object_cache_request( + ObjectCacheMsgHeader* head, bufferlist data_buffer); -inline ObjectCacheRequest* decode_object_cache_request( - bufferlist head_buffer, bufferlist data_buffer) { - return decode_object_cache_request((ObjectCacheMsgHeader*)(head_buffer.c_str()), data_buffer); -} +ObjectCacheRequest* decode_object_cache_request( + bufferlist head_buffer, bufferlist data_buffer); } // namespace immutable_obj_cache } // namespace ceph -- 2.39.5