#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
{
#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<std::string, ceph::buffer::list>;
}
#include "common/OutputDataSocket.h"
#include <vector>
#include <fstream>
+#include "rgw_sal_fwd.h"
-namespace rgw { namespace sal {
- class Store;
-} }
+#define dout_subsys ceph_subsys_rgw
struct rgw_log_entry {
#include <string>
#include "common/async/yield_context.h"
+#include "rgw_sal_fwd.h"
class lua_State;
class rgw_user;
namespace rgw::sal {
- class Store;
class RadosStore;
}
#include <string>
#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;
}
#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;
#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()
#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"
#include "common/async/yield_context.h"
#include "rgw_realm_reloader.h"
-
-namespace rgw {
-namespace sal {
-class Store;
-}
-}
+#include "rgw_sal_fwd.h"
class RGWPeriod;
#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)
{
}
class JSONObj;
-namespace rgw { namespace sal {
- class Store;
-} }
-
struct RGWQuotaInfo {
template<class T> friend class RGWQuotaCache;
#include "common/Throttle.h"
#include "common/ceph_mutex.h"
#include "rgw_cache.h"
+#include "rgw_sal_fwd.h"
struct D3nDataCache;
class RGWGetDirHeader_CB;
class RGWGetUserHeader_CB;
namespace rgw { namespace sal {
- class Store;
class RadosStore;
class MPRadosSerializer;
class LCRadosSerializer;
#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
#include "common/ceph_json.h"
#include "common/RefCountedObj.h"
#include "include/common_fwd.h"
+#include "rgw_sal_fwd.h"
#include <atomic>
-namespace rgw { namespace sal {
- class Store;
-} }
-
class RGWSI_Zone;
template<class T>
#pragma once
+#include "rgw_sal_fwd.h"
#include "rgw_user.h"
#include "rgw_notify_event_type.h"
#include "common/tracer.h"
#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,
};
/** A list of key-value attributes */
-using Attrs = std::map<std::string, ceph::buffer::list>;
+ using Attrs = std::map<std::string, ceph::buffer::list>;
/**
* @brief Base singleton representing a Store or stacking layer
--- /dev/null
+// -*- 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
#include "common/ceph_time.h"
#include "rgw_common.h"
+#include "rgw_sal_fwd.h"
class RGWSI_SysObj;
class RGWSysObjectCtx;
struct RGWObjVersionTracker;
class optional_yield;
-namespace rgw { namespace sal {
- class Store;
-} }
struct obj_version;
#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
#include "common/Formatter.h"
#include "rgw_formats.h"
#include "rgw_metadata.h"
+#include "rgw_sal_fwd.h"
#define RGW_USER_ANON_ID "anonymous"
class RGWUserBuckets;
class RGWGetUserStats_CB;
-namespace rgw { namespace sal {
-class Store;
-} }
/**
* A string wrapper that includes encode/decode functions