From dbeaa4a8e391d4be22244cc0dd68195b87deddcf Mon Sep 17 00:00:00 2001 From: Daniel Gryniewicz Date: Fri, 13 May 2022 12:57:12 -0400 Subject: [PATCH] RGW - Zipper - Add rgw_sal_fwd.h Add a header that forward declares the SAL objects. This can be used in various headers in RGW. Signed-off-by: Daniel Gryniewicz --- src/rgw/rgw_acl_s3.h | 2 +- src/rgw/rgw_common.h | 4 +--- src/rgw/rgw_log.h | 5 ++--- src/rgw/rgw_lua.h | 2 +- src/rgw/rgw_lua_request.h | 4 +--- src/rgw/rgw_metadata.h | 4 +--- src/rgw/rgw_multi.h | 5 +---- src/rgw/rgw_otp.h | 5 +---- src/rgw/rgw_period_pusher.h | 7 +------ src/rgw/rgw_quota.h | 5 +---- src/rgw/rgw_rados.h | 2 +- src/rgw/rgw_realm_reloader.h | 7 +------ src/rgw/rgw_rest_conn.h | 5 +---- src/rgw/rgw_sal.h | 15 ++------------- src/rgw/rgw_sal_fwd.h | 36 ++++++++++++++++++++++++++++++++++++ src/rgw/rgw_tools.h | 4 +--- src/rgw/rgw_usage.h | 3 +-- src/rgw/rgw_user.h | 4 +--- 18 files changed, 55 insertions(+), 64 deletions(-) create mode 100644 src/rgw/rgw_sal_fwd.h diff --git a/src/rgw/rgw_acl_s3.h b/src/rgw/rgw_acl_s3.h index 907bcc17676e7..09cc7c39a1d34 100644 --- a/src/rgw/rgw_acl_s3.h +++ b/src/rgw/rgw_acl_s3.h @@ -12,9 +12,9 @@ #include "include/str_list.h" #include "rgw_xml.h" #include "rgw_acl.h" +#include "rgw_sal_fwd.h" class RGWUserCtl; -namespace rgw { namespace sal { class Store; } } class ACLPermission_S3 : public ACLPermission, public XMLObj { diff --git a/src/rgw/rgw_common.h b/src/rgw/rgw_common.h index eafa25806e988..c9a831df53eb0 100644 --- a/src/rgw/rgw_common.h +++ b/src/rgw/rgw_common.h @@ -41,15 +41,13 @@ #include "include/rados/librados.hpp" #include "rgw_public_access.h" #include "common/tracer.h" +#include "rgw_sal_fwd.h" namespace ceph { class Formatter; } namespace rgw::sal { - class User; - class Bucket; - class Object; using Attrs = std::map; } diff --git a/src/rgw/rgw_log.h b/src/rgw/rgw_log.h index f798941a13ce4..7cba7d1e1a7bd 100644 --- a/src/rgw/rgw_log.h +++ b/src/rgw/rgw_log.h @@ -9,10 +9,9 @@ #include "common/OutputDataSocket.h" #include #include +#include "rgw_sal_fwd.h" -namespace rgw { namespace sal { - class Store; -} } +#define dout_subsys ceph_subsys_rgw struct rgw_log_entry { diff --git a/src/rgw/rgw_lua.h b/src/rgw/rgw_lua.h index 2fd920a36e79b..1eb14c605ffd4 100644 --- a/src/rgw/rgw_lua.h +++ b/src/rgw/rgw_lua.h @@ -2,11 +2,11 @@ #include #include "common/async/yield_context.h" +#include "rgw_sal_fwd.h" class lua_State; class rgw_user; namespace rgw::sal { - class Store; class RadosStore; } diff --git a/src/rgw/rgw_lua_request.h b/src/rgw/rgw_lua_request.h index e49989e32e3a3..f7569a3e764d7 100644 --- a/src/rgw/rgw_lua_request.h +++ b/src/rgw/rgw_lua_request.h @@ -2,13 +2,11 @@ #include #include "include/common_fwd.h" +#include "rgw_sal_fwd.h" struct req_state; class RGWREST; class OpsLogSink; -namespace rgw::sal { - class Store; -} namespace rgw::lua { class Background; } diff --git a/src/rgw/rgw_metadata.h b/src/rgw/rgw_metadata.h index 9dece2dc1d25f..a3bb634c47406 100644 --- a/src/rgw/rgw_metadata.h +++ b/src/rgw/rgw_metadata.h @@ -17,11 +17,9 @@ #include "common/RefCountedObj.h" #include "common/ceph_time.h" #include "services/svc_meta_be.h" +#include "rgw_sal_fwd.h" -namespace rgw { namespace sal { -class Store; -} } class RGWCoroutine; class JSONObj; struct RGWObjVersionTracker; diff --git a/src/rgw/rgw_multi.h b/src/rgw/rgw_multi.h index 668b12080194b..8070455f835f5 100644 --- a/src/rgw/rgw_multi.h +++ b/src/rgw/rgw_multi.h @@ -9,10 +9,7 @@ #include "rgw_obj_manifest.h" #include "rgw_compression_types.h" #include "common/dout.h" - -namespace rgw { namespace sal { - class Store; -} } +#include "rgw_sal_fwd.h" #define MULTIPART_UPLOAD_ID_PREFIX_LEGACY "2/" #define MULTIPART_UPLOAD_ID_PREFIX "2~" // must contain a unique char that may not come up in gen_rand_alpha() diff --git a/src/rgw/rgw_otp.h b/src/rgw/rgw_otp.h index 9bd17e6aff983..eacff15314c21 100644 --- a/src/rgw/rgw_otp.h +++ b/src/rgw/rgw_otp.h @@ -4,10 +4,7 @@ #ifndef CEPH_RGW_OTP_H #define CEPH_RGW_OTP_H -namespace rgw { namespace sal { -class Store; -} } - +#include "rgw_sal_fwd.h" #include "cls/otp/cls_otp_types.h" #include "services/svc_meta_be_otp.h" diff --git a/src/rgw/rgw_period_pusher.h b/src/rgw/rgw_period_pusher.h index 7f88e4e968f20..975cf38013144 100644 --- a/src/rgw/rgw_period_pusher.h +++ b/src/rgw/rgw_period_pusher.h @@ -10,12 +10,7 @@ #include "common/async/yield_context.h" #include "rgw_realm_reloader.h" - -namespace rgw { -namespace sal { -class Store; -} -} +#include "rgw_sal_fwd.h" class RGWPeriod; diff --git a/src/rgw/rgw_quota.h b/src/rgw/rgw_quota.h index 2a63dab490538..5978721098c48 100644 --- a/src/rgw/rgw_quota.h +++ b/src/rgw/rgw_quota.h @@ -24,6 +24,7 @@ #include "rgw/rgw_basic_types.h" #include "common/async/yield_context.h" +#include "rgw_sal_fwd.h" static inline int64_t rgw_rounded_kb(int64_t bytes) { @@ -31,10 +32,6 @@ static inline int64_t rgw_rounded_kb(int64_t bytes) } class JSONObj; -namespace rgw { namespace sal { - class Store; -} } - struct RGWQuotaInfo { template friend class RGWQuotaCache; diff --git a/src/rgw/rgw_rados.h b/src/rgw/rgw_rados.h index 597ee89bd1385..2051b0a027c5e 100644 --- a/src/rgw/rgw_rados.h +++ b/src/rgw/rgw_rados.h @@ -38,6 +38,7 @@ #include "common/Throttle.h" #include "common/ceph_mutex.h" #include "rgw_cache.h" +#include "rgw_sal_fwd.h" struct D3nDataCache; @@ -303,7 +304,6 @@ class RGWCoroutinesManagerRegistry; class RGWGetDirHeader_CB; class RGWGetUserHeader_CB; namespace rgw { namespace sal { - class Store; class RadosStore; class MPRadosSerializer; class LCRadosSerializer; diff --git a/src/rgw/rgw_realm_reloader.h b/src/rgw/rgw_realm_reloader.h index 221f840b92ffb..baf8dce97050a 100644 --- a/src/rgw/rgw_realm_reloader.h +++ b/src/rgw/rgw_realm_reloader.h @@ -6,12 +6,7 @@ #include "rgw_realm_watcher.h" #include "common/Cond.h" - -namespace rgw { -namespace sal { -class Store; -} -} +#include "rgw_sal_fwd.h" /** * RGWRealmReloader responds to new period notifications by recreating RGWRados diff --git a/src/rgw/rgw_rest_conn.h b/src/rgw/rgw_rest_conn.h index f697c58220ede..a612cf0cc3051 100644 --- a/src/rgw/rgw_rest_conn.h +++ b/src/rgw/rgw_rest_conn.h @@ -7,13 +7,10 @@ #include "common/ceph_json.h" #include "common/RefCountedObj.h" #include "include/common_fwd.h" +#include "rgw_sal_fwd.h" #include -namespace rgw { namespace sal { - class Store; -} } - class RGWSI_Zone; template diff --git a/src/rgw/rgw_sal.h b/src/rgw/rgw_sal.h index 0fcb6b005d096..b308389992e59 100644 --- a/src/rgw/rgw_sal.h +++ b/src/rgw/rgw_sal.h @@ -15,6 +15,7 @@ #pragma once +#include "rgw_sal_fwd.h" #include "rgw_user.h" #include "rgw_notify_event_type.h" #include "common/tracer.h" @@ -201,22 +202,10 @@ namespace rgw { namespace sal { #define RGW_SAL_VERSION 1 -class User; -class Bucket; -class Object; -class BucketList; -class MultipartUpload; struct MPSerializer; -class Lifecycle; -class Notification; class GCChain; -class Writer; -class Zone; -class LuaScriptManager; class RGWOIDCProvider; class RGWRole; -class PlacementTier; -struct RGWRoleInfo; enum AttrsMod { ATTRSMOD_NONE = 0, @@ -269,7 +258,7 @@ class Completions { }; /** A list of key-value attributes */ -using Attrs = std::map; + using Attrs = std::map; /** * @brief Base singleton representing a Store or stacking layer diff --git a/src/rgw/rgw_sal_fwd.h b/src/rgw/rgw_sal_fwd.h new file mode 100644 index 0000000000000..bb78ed6adbe10 --- /dev/null +++ b/src/rgw/rgw_sal_fwd.h @@ -0,0 +1,36 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab ft=cpp + +/* + * Ceph - scalable distributed file system + * + * Copyright (C) 2022 Red Hat, Inc. + * + * This is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software + * Foundation. See file COPYING. + * + */ + +#pragma once + + +namespace rgw { namespace sal { + + class Store; + class User; + class Bucket; + class BucketList; + class Object; + class MultipartUpload; + class Lifecycle; + class Notification; + class Writer; + class PlacementTier; + class ZoneGroup; + class Zone; + class LuaScriptManager; + struct RGWRoleInfo; + +} } // namespace rgw::sal diff --git a/src/rgw/rgw_tools.h b/src/rgw/rgw_tools.h index 8e3ea8a91ef52..3e14805e1100f 100644 --- a/src/rgw/rgw_tools.h +++ b/src/rgw/rgw_tools.h @@ -12,6 +12,7 @@ #include "common/ceph_time.h" #include "rgw_common.h" +#include "rgw_sal_fwd.h" class RGWSI_SysObj; @@ -19,9 +20,6 @@ class RGWRados; class RGWSysObjectCtx; struct RGWObjVersionTracker; class optional_yield; -namespace rgw { namespace sal { - class Store; -} } struct obj_version; diff --git a/src/rgw/rgw_usage.h b/src/rgw/rgw_usage.h index 1faaf35ba3288..474b45e7cb8e7 100644 --- a/src/rgw/rgw_usage.h +++ b/src/rgw/rgw_usage.h @@ -11,8 +11,7 @@ #include "common/dout.h" #include "rgw_formats.h" #include "rgw_user.h" - -namespace rgw { namespace sal { class Store; } } +#include "rgw_sal_fwd.h" class RGWUsage diff --git a/src/rgw/rgw_user.h b/src/rgw/rgw_user.h index 732a7827f37ff..710c61c30622e 100644 --- a/src/rgw/rgw_user.h +++ b/src/rgw/rgw_user.h @@ -17,6 +17,7 @@ #include "common/Formatter.h" #include "rgw_formats.h" #include "rgw_metadata.h" +#include "rgw_sal_fwd.h" #define RGW_USER_ANON_ID "anonymous" @@ -31,9 +32,6 @@ class RGWBucketCtl; class RGWUserBuckets; class RGWGetUserStats_CB; -namespace rgw { namespace sal { -class Store; -} } /** * A string wrapper that includes encode/decode functions -- 2.39.5