]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/osd/SnapMapper.h
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / osd / SnapMapper.h
index 3fbc2261a9df05038033fc6a99b0a04bf4ebc010..f8c2aff1b20f420826ac6b0e0593fd06f6444bfb 100644 (file)
@@ -18,7 +18,7 @@
 #include <string>
 #include <set>
 #include <utility>
-#include <string.h>
+#include <cstring>
 
 #include "common/map_cacher.hpp"
 #include "common/hobject.h"
 #include "os/ObjectStore.h"
 #include "osd/OSDMap.h"
 
-class OSDriver : public MapCacher::StoreDriver<std::string, bufferlist> {
+class OSDriver : public MapCacher::StoreDriver<std::string, ceph::buffer::list> {
   ObjectStore *os;
   ObjectStore::CollectionHandle ch;
   ghobject_t hoid;
 
 public:
-  class OSTransaction : public MapCacher::Transaction<std::string, bufferlist> {
+  class OSTransaction : public MapCacher::Transaction<std::string, ceph::buffer::list> {
     friend class OSDriver;
     coll_t cid;
     ghobject_t hoid;
@@ -46,7 +46,7 @@ public:
       : cid(cid), hoid(hoid), t(t) {}
   public:
     void set_keys(
-      const std::map<std::string, bufferlist> &to_set) override {
+      const std::map<std::string, ceph::buffer::list> &to_set) override {
       t->omap_setkeys(cid, hoid, to_set);
     }
     void remove_keys(
@@ -71,10 +71,10 @@ public:
   }
   int get_keys(
     const std::set<std::string> &keys,
-    std::map<std::string, bufferlist> *out) override;
+    std::map<std::string, ceph::buffer::list> *out) override;
   int get_next(
     const std::string &key,
-    pair<std::string, bufferlist> *next) override;
+    std::pair<std::string, ceph::buffer::list> *next) override;
 };
 
 /**
@@ -86,7 +86,7 @@ public:
  *
  * We accomplish this using two sets of keys:
  *  1) OBJECT_PREFIX + obj.str() -> encoding of object_snaps
- *  2) MAPPING_PREFIX + poolid + snapid_t + obj.str() -> encoding of pair<snapid_t, obj>
+ *  2) MAPPING_PREFIX + poolid + snapid_t + obj.str() -> encoding of std::pair<snapid_t, obj>
  *
  * The on disk strings and encodings are implemented in to_raw, to_raw_key,
  * from_raw, to_object_key.
@@ -108,23 +108,23 @@ public:
     object_snaps(hobject_t oid, const std::set<snapid_t> &snaps)
       : oid(oid), snaps(snaps) {}
     object_snaps() {}
-    void encode(bufferlist &bl) const;
-    void decode(bufferlist::const_iterator &bp);
+    void encode(ceph::buffer::list &bl) const;
+    void decode(ceph::buffer::list::const_iterator &bp);
   };
 
   struct Mapping {
     snapid_t snap;
     hobject_t hoid;
-    explicit Mapping(const pair<snapid_t, hobject_t> &in)
+    explicit Mapping(const std::pair<snapid_t, hobject_t> &in)
       : snap(in.first), hoid(in.second) {}
     Mapping() : snap(0) {}
-    void encode(bufferlist &bl) const {
+    void encode(ceph::buffer::list &bl) const {
       ENCODE_START(1, 1, bl);
       encode(snap, bl);
       encode(hoid, bl);
       ENCODE_FINISH(bl);
     }
-    void decode(bufferlist::const_iterator &bl) {
+    void decode(ceph::buffer::list::const_iterator &bl) {
       DECODE_START(1, bl);
       decode(snap, bl);
       decode(hoid, bl);
@@ -157,7 +157,7 @@ public:
 
     bool _parse_m();   ///< advance the (object) mapper pointer
 
-    vector<std::tuple<int64_t, snapid_t, uint32_t, shard_id_t>> stray;
+    std::vector<std::tuple<int64_t, snapid_t, uint32_t, shard_id_t>> stray;
 
     Scrubber(
       CephContext *cct,
@@ -187,7 +187,7 @@ public:
     ObjectStore::CollectionHandle& ch,
     ghobject_t hoid,
     ObjectStore::Transaction *t,
-    map<epoch_t,mempool::osdmap::map<int64_t,snap_interval_set_t>> purged_snaps);
+    std::map<epoch_t,mempool::osdmap::map<int64_t,snap_interval_set_t>> purged_snaps);
   static void scrub_purged_snaps(
     CephContext *cct,
     ObjectStore *store,
@@ -205,11 +205,11 @@ private:
     snapid_t *begin, snapid_t *end);
   static void make_purged_snap_key_value(
     int64_t pool, snapid_t begin,
-    snapid_t end, map<string,bufferlist> *m);
-  static string make_purged_snap_key(int64_t pool, snapid_t last);
+    snapid_t end, std::map<std::string,ceph::buffer::list> *m);
+  static std::string make_purged_snap_key(int64_t pool, snapid_t last);
 
 
-  MapCacher::MapCacher<std::string, bufferlist> backend;
+  MapCacher::MapCacher<std::string, ceph::buffer::list> backend;
 
   static std::string get_legacy_prefix(snapid_t snap);
   std::string to_legacy_raw_key(
@@ -220,13 +220,13 @@ private:
   std::string to_raw_key(
     const std::pair<snapid_t, hobject_t> &to_map);
 
-  std::pair<std::string, bufferlist> to_raw(
+  std::pair<std::string, ceph::buffer::list> to_raw(
     const std::pair<snapid_t, hobject_t> &to_map);
 
   static bool is_mapping(const std::string &to_test);
 
   static std::pair<snapid_t, hobject_t> from_raw(
-    const std::pair<std::string, bufferlist> &image);
+    const std::pair<std::string, ceph::buffer::list> &image);
 
   std::string to_object_key(const hobject_t &hoid);
 
@@ -235,38 +235,38 @@ private:
   void set_snaps(
     const hobject_t &oid,
     const object_snaps &out,
-    MapCacher::Transaction<std::string, bufferlist> *t);
+    MapCacher::Transaction<std::string, ceph::buffer::list> *t);
 
   void clear_snaps(
     const hobject_t &oid,
-    MapCacher::Transaction<std::string, bufferlist> *t);
+    MapCacher::Transaction<std::string, ceph::buffer::list> *t);
 
   // True if hoid belongs in this mapping based on mask_bits and match
   bool check(const hobject_t &hoid) const;
 
   int _remove_oid(
     const hobject_t &oid,    ///< [in] oid to remove
-    MapCacher::Transaction<std::string, bufferlist> *t ///< [out] transaction
+    MapCacher::Transaction<std::string, ceph::buffer::list> *t ///< [out] transaction
     );
 
 public:
-  static string make_shard_prefix(shard_id_t shard) {
+  static std::string make_shard_prefix(shard_id_t shard) {
     if (shard == shard_id_t::NO_SHARD)
-      return string();
+      return std::string();
     char buf[20];
     int r = snprintf(buf, sizeof(buf), ".%x", (int)shard);
     ceph_assert(r < (int)sizeof(buf));
-    return string(buf, r) + '_';
+    return std::string(buf, r) + '_';
   }
   uint32_t mask_bits;
   const uint32_t match;
-  string last_key_checked;
+  std::string last_key_checked;
   const int64_t pool;
   const shard_id_t shard;
-  const string shard_prefix;
+  const std::string shard_prefix;
   SnapMapper(
     CephContext* cct,
-    MapCacher::StoreDriver<std::string, bufferlist> *driver,
+    MapCacher::StoreDriver<std::string, ceph::buffer::list> *driver,
     uint32_t match,  ///< [in] pgid
     uint32_t bits,   ///< [in] current split bits
     int64_t pool,    ///< [in] pool
@@ -277,20 +277,18 @@ public:
     update_bits(mask_bits);
   }
 
-  set<string> prefixes;
+  std::set<std::string> prefixes;
   /// Update bits in case of pg split or merge
   void update_bits(
     uint32_t new_bits  ///< [in] new split bits
     ) {
     mask_bits = new_bits;
-    set<string> _prefixes = hobject_t::get_prefixes(
+    std::set<std::string> _prefixes = hobject_t::get_prefixes(
       mask_bits,
       match,
       pool);
     prefixes.clear();
-    for (set<string>::iterator i = _prefixes.begin();
-        i != _prefixes.end();
-        ++i) {
+    for (auto i = _prefixes.begin(); i != _prefixes.end(); ++i) {
       prefixes.insert(shard_prefix + *i);
     }
   }
@@ -298,29 +296,29 @@ public:
   /// Update snaps for oid, empty new_snaps removes the mapping
   int update_snaps(
     const hobject_t &oid,       ///< [in] oid to update
-    const std::set<snapid_t> &new_snaps, ///< [in] new snap set
+    const std::set<snapid_t> &new_snaps, ///< [in] new snap std::set
     const std::set<snapid_t> *old_snaps, ///< [in] old snaps (for debugging)
-    MapCacher::Transaction<std::string, bufferlist> *t ///< [out] transaction
+    MapCacher::Transaction<std::string, ceph::buffer::list> *t ///< [out] transaction
     ); ///@ return error, 0 on success
 
   /// Add mapping for oid, must not already be mapped
   void add_oid(
     const hobject_t &oid,       ///< [in] oid to add
     const std::set<snapid_t>& new_snaps, ///< [in] snaps
-    MapCacher::Transaction<std::string, bufferlist> *t ///< [out] transaction
+    MapCacher::Transaction<std::string, ceph::buffer::list> *t ///< [out] transaction
     );
 
   /// Returns first object with snap as a snap
   int get_next_objects_to_trim(
     snapid_t snap,              ///< [in] snap to check
     unsigned max,               ///< [in] max to get
-    vector<hobject_t> *out      ///< [out] next objects to trim (must be empty)
+    std::vector<hobject_t> *out      ///< [out] next objects to trim (must be empty)
     );  ///< @return error, -ENOENT if no more objects
 
   /// Remove mapping for oid
   int remove_oid(
     const hobject_t &oid,    ///< [in] oid to remove
-    MapCacher::Transaction<std::string, bufferlist> *t ///< [out] transaction
+    MapCacher::Transaction<std::string, ceph::buffer::list> *t ///< [out] transaction
     ); ///< @return error, -ENOENT if the object is not mapped
 
   /// Get snaps for oid