]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/sal: RGWGetUserStats_CB cleanup
authorCasey Bodley <cbodley@redhat.com>
Wed, 22 Nov 2023 14:19:37 +0000 (09:19 -0500)
committerCasey Bodley <cbodley@redhat.com>
Thu, 23 Nov 2023 19:47:08 +0000 (14:47 -0500)
the base class doesn't need member variables. the derived class in
rgw_quota.cc accepts stats by const-ref

Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_quota.cc
src/rgw/rgw_sal.h
src/rgw/services/svc_user_rados.cc

index c2f300b1fdb8333bcf42959c2cadebff9d1c1f03..b245f7a972126a62ddb3bc09ff0a80aebc96d46e 100644 (file)
@@ -86,9 +86,9 @@ public:
                 const DoutPrefixProvider* dpp);
   void adjust_stats(const rgw_user& user, rgw_bucket& bucket, int objs_delta, uint64_t added_bytes, uint64_t removed_bytes);
 
-  void set_stats(const rgw_user& user, const rgw_bucket& bucket, RGWQuotaCacheStats& qs, RGWStorageStats& stats);
+  void set_stats(const rgw_user& user, const rgw_bucket& bucket, RGWQuotaCacheStats& qs, const RGWStorageStats& stats);
   int async_refresh(const rgw_user& user, const rgw_bucket& bucket, RGWQuotaCacheStats& qs);
-  void async_refresh_response(const rgw_user& user, rgw_bucket& bucket, RGWStorageStats& stats);
+  void async_refresh_response(const rgw_user& user, rgw_bucket& bucket, const RGWStorageStats& stats);
   void async_refresh_fail(const rgw_user& user, rgw_bucket& bucket);
 
   class AsyncRefreshHandler {
@@ -140,7 +140,7 @@ void RGWQuotaCache<T>::async_refresh_fail(const rgw_user& user, rgw_bucket& buck
 }
 
 template<class T>
-void RGWQuotaCache<T>::async_refresh_response(const rgw_user& user, rgw_bucket& bucket, RGWStorageStats& stats)
+void RGWQuotaCache<T>::async_refresh_response(const rgw_user& user, rgw_bucket& bucket, const RGWStorageStats& stats)
 {
   ldout(driver->ctx(), 20) << "async stats refresh response for bucket=" << bucket << dendl;
 
@@ -154,7 +154,7 @@ void RGWQuotaCache<T>::async_refresh_response(const rgw_user& user, rgw_bucket&
 }
 
 template<class T>
-void RGWQuotaCache<T>::set_stats(const rgw_user& user, const rgw_bucket& bucket, RGWQuotaCacheStats& qs, RGWStorageStats& stats)
+void RGWQuotaCache<T>::set_stats(const rgw_user& user, const rgw_bucket& bucket, RGWQuotaCacheStats& qs, const RGWStorageStats& stats)
 {
   qs.stats = stats;
   qs.expiration = ceph_clock_now();
@@ -380,17 +380,18 @@ class UserAsyncRefreshHandler : public RGWQuotaCache<rgw_user>::AsyncRefreshHand
                                 public RGWGetUserStats_CB {
   const DoutPrefixProvider *dpp;
   rgw_bucket bucket;
-public:
-  UserAsyncRefreshHandler(const DoutPrefixProvider *_dpp, rgw::sal::Driver* _driver, RGWQuotaCache<rgw_user> *_cache,
-                          const rgw_user& _user, const rgw_bucket& _bucket) :
-                          RGWQuotaCache<rgw_user>::AsyncRefreshHandler(_driver, _cache),
-                          RGWGetUserStats_CB(_user),
-                          dpp(_dpp),
-                          bucket(_bucket) {}
+  rgw_user user;
+ public:
+  UserAsyncRefreshHandler(const DoutPrefixProvider *_dpp, rgw::sal::Driver* _driver,
+                          RGWQuotaCache<rgw_user> *_cache,
+                          const rgw_user& _user, const rgw_bucket& _bucket)
+      : RGWQuotaCache<rgw_user>::AsyncRefreshHandler(_driver, _cache),
+        dpp(_dpp), bucket(_bucket), user(_user)
+  {}
 
   void drop_reference() override { put(); }
   int init_fetch() override;
-  void handle_response(int r) override;
+  void handle_response(int r, const RGWStorageStats& stats) override;
 };
 
 int UserAsyncRefreshHandler::init_fetch()
@@ -409,7 +410,7 @@ int UserAsyncRefreshHandler::init_fetch()
   return 0;
 }
 
-void UserAsyncRefreshHandler::handle_response(int r)
+void UserAsyncRefreshHandler::handle_response(int r, const RGWStorageStats& stats)
 {
   if (r < 0) {
     ldout(driver->ctx(), 20) << "AsyncRefreshHandler::handle_response() r=" << r << dendl;
index 9b099be4ac2c6983c39b32ae685cac376ac05fd5..73ba1e18fd12532a420b5212487d7cab5824c3fa 100644 (file)
@@ -95,16 +95,8 @@ public:
 };
 
 class RGWGetUserStats_CB : public RefCountedObject {
-protected:
-  rgw_user user;
-  RGWStorageStats stats;
-public:
-  explicit RGWGetUserStats_CB(const rgw_user& _user) : user(_user) {}
-  ~RGWGetUserStats_CB() override {}
-  virtual void handle_response(int r) = 0;
-  virtual void set_response(RGWStorageStats& _stats) {
-    stats = _stats;
-  }
+ public:
+  virtual void handle_response(int r, const RGWStorageStats& stats) = 0;
 };
 
 struct RGWObjState {
index c99af935415dde7640e01fe001fbbf37a50b4f02..1b23dad53fbd8f8777458396289cb9b06d5e3139 100644 (file)
@@ -935,17 +935,13 @@ public:
 
   void handle_response(int r, cls_user_header& header) override {
     const cls_user_stats& hs = header.stats;
-    if (r >= 0) {
-      RGWStorageStats stats;
+    RGWStorageStats stats;
 
-      stats.size = hs.total_bytes;
-      stats.size_rounded = hs.total_bytes_rounded;
-      stats.num_objects = hs.total_entries;
+    stats.size = hs.total_bytes;
+    stats.size_rounded = hs.total_bytes_rounded;
+    stats.num_objects = hs.total_entries;
 
-      cb->set_response(stats);
-    }
-
-    cb->handle_response(r);
+    cb->handle_response(r, stats);
 
     cb->put();
   }