mirror of
https://github.com/ceph/ceph
synced 2026-08-02 07:03:18 +00:00
librados: add symbol versioning to the C++ API
The future goal would be to change the version for each Ceph major release to ensure C++ applications will need to be recompiled against the librados C++ API since we don't guarentee ABI stability. Fixes: https://tracker.ceph.com/issues/38177 Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This commit is contained in:
parent
7bf6b5ee12
commit
d2b1ab49f5
@ -1868,6 +1868,7 @@ fi
|
||||
%{_includedir}/rados/crc32c.h
|
||||
%{_includedir}/rados/inline_memory.h
|
||||
%{_includedir}/rados/librados.hpp
|
||||
%{_includedir}/rados/librados_fwd.hpp
|
||||
%{_includedir}/rados/page.h
|
||||
%{_includedir}/rados/rados_types.hpp
|
||||
|
||||
|
||||
4
debian/control
vendored
4
debian/control
vendored
@ -864,7 +864,7 @@ Description: Meta-package for python libraries for the Ceph libraries
|
||||
Package: python-rados
|
||||
Architecture: linux-any
|
||||
Section: python
|
||||
Depends: librados2 | librados2
|
||||
Depends: librados2
|
||||
${misc:Depends},
|
||||
${python:Depends},
|
||||
${shlibs:Depends},
|
||||
@ -898,7 +898,7 @@ Description: Python 2 libraries for the Ceph librados library
|
||||
Package: python3-rados
|
||||
Architecture: linux-any
|
||||
Section: python
|
||||
Depends: librados2 | librados2,
|
||||
Depends: librados2,
|
||||
${misc:Depends},
|
||||
${python3:Depends},
|
||||
${shlibs:Depends},
|
||||
|
||||
1
debian/libradospp-dev.install
vendored
1
debian/libradospp-dev.install
vendored
@ -3,5 +3,6 @@ usr/include/rados/buffer_fwd.h
|
||||
usr/include/rados/crc32c.h
|
||||
usr/include/rados/inline_memory.h
|
||||
usr/include/rados/librados.hpp
|
||||
usr/include/rados/librados_fwd.hpp
|
||||
usr/include/rados/page.h
|
||||
usr/include/rados/rados_types.hpp
|
||||
|
||||
@ -2,13 +2,9 @@
|
||||
#define CEPH_CLS_CAS_CLIENT_H
|
||||
|
||||
#include "include/types.h"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "common/hobject.h"
|
||||
|
||||
namespace librados {
|
||||
class ObjectWriteOperation;
|
||||
class IoCtx;
|
||||
}
|
||||
|
||||
void cls_chunk_refcount_get(librados::ObjectWriteOperation& op, const hobject_t& soid);
|
||||
void cls_chunk_refcount_put(librados::ObjectWriteOperation& op, const hobject_t& soid);
|
||||
void cls_chunk_refcount_set(librados::ObjectWriteOperation& op, set<hobject_t>& refs);
|
||||
|
||||
@ -1,11 +1,9 @@
|
||||
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "mds/mdstypes.h"
|
||||
#include "cls_cephfs.h"
|
||||
|
||||
class AccumulateArgs;
|
||||
namespace librados {
|
||||
class IoCtx;
|
||||
}
|
||||
|
||||
class ClsCephFSClient
|
||||
{
|
||||
|
||||
@ -4,16 +4,12 @@
|
||||
#ifndef CEPH_CLS_JOURNAL_CLIENT_H
|
||||
#define CEPH_CLS_JOURNAL_CLIENT_H
|
||||
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "cls/journal/cls_journal_types.h"
|
||||
#include <set>
|
||||
#include <boost/optional.hpp>
|
||||
|
||||
class Context;
|
||||
namespace librados {
|
||||
class IoCtx;
|
||||
class ObjectWriteOperation;
|
||||
class ObjectReadOperation;
|
||||
}
|
||||
|
||||
namespace cls {
|
||||
namespace journal {
|
||||
|
||||
@ -6,16 +6,9 @@
|
||||
|
||||
#include <chrono>
|
||||
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "cls/lock/cls_lock_types.h"
|
||||
|
||||
namespace librados {
|
||||
class AioCompletion;
|
||||
class ObjectWriteOperation;
|
||||
class IoCtx;
|
||||
class ObjectReadOperation;
|
||||
class ObjectOperation;
|
||||
}
|
||||
|
||||
namespace rados {
|
||||
namespace cls {
|
||||
namespace lock {
|
||||
|
||||
@ -1,14 +1,9 @@
|
||||
#ifndef CEPH_CLS_LOG_CLIENT_H
|
||||
#define CEPH_CLS_LOG_CLIENT_H
|
||||
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "cls_log_types.h"
|
||||
|
||||
namespace librados {
|
||||
class ObjectWriteOperation;
|
||||
class ObjectReadOperation;
|
||||
class IoCtx;
|
||||
}
|
||||
|
||||
/*
|
||||
* log objclass
|
||||
*/
|
||||
|
||||
@ -4,10 +4,6 @@
|
||||
|
||||
#include "include/rados/librados.hpp"
|
||||
|
||||
namespace librados {
|
||||
class IoCtx;
|
||||
}
|
||||
|
||||
namespace cls_lua_client {
|
||||
int exec(librados::IoCtx& ioctx, const std::string& oid,
|
||||
const std::string& script, const std::string& handler,
|
||||
|
||||
@ -15,12 +15,9 @@
|
||||
#ifndef CEPH_LIBRBD_CLS_NUMOPS_CLIENT_H
|
||||
#define CEPH_LIBRBD_CLS_NUMOPS_CLIENT_H
|
||||
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include <string>
|
||||
|
||||
namespace librados {
|
||||
class IoCtx;
|
||||
}
|
||||
|
||||
namespace rados {
|
||||
namespace cls {
|
||||
namespace numops {
|
||||
|
||||
@ -4,13 +4,9 @@
|
||||
#ifndef CEPH_CLS_OTP_CLIENT_H
|
||||
#define CEPH_CLS_OTP_CLIENT_H
|
||||
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "cls/otp/cls_otp_types.h"
|
||||
|
||||
namespace librados {
|
||||
class ObjectWriteOperation;
|
||||
class IoCtx;
|
||||
}
|
||||
|
||||
namespace rados {
|
||||
namespace cls {
|
||||
namespace otp {
|
||||
|
||||
@ -9,14 +9,9 @@
|
||||
#include "common/bit_vector.hpp"
|
||||
#include "common/snap_types.h"
|
||||
#include "include/types.h"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
|
||||
class Context;
|
||||
namespace librados {
|
||||
class IoCtx;
|
||||
class ObjectOperation;
|
||||
class ObjectReadOperation;
|
||||
class ObjectWriteOperation;
|
||||
}
|
||||
|
||||
namespace librbd {
|
||||
namespace cls_client {
|
||||
|
||||
@ -1,13 +1,9 @@
|
||||
#ifndef CEPH_CLS_REFCOUNT_CLIENT_H
|
||||
#define CEPH_CLS_REFCOUNT_CLIENT_H
|
||||
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "include/types.h"
|
||||
|
||||
namespace librados {
|
||||
class ObjectWriteOperation;
|
||||
class IoCtx;
|
||||
}
|
||||
|
||||
/*
|
||||
* refcount objclass
|
||||
*
|
||||
|
||||
@ -8,12 +8,6 @@
|
||||
|
||||
#include "cls_timeindex_ops.h"
|
||||
|
||||
namespace librados {
|
||||
class ObjectWriteOperation;
|
||||
class ObjectReadOperation;
|
||||
class IoCtx;
|
||||
}
|
||||
|
||||
/**
|
||||
* timeindex objclass
|
||||
*/
|
||||
|
||||
@ -4,15 +4,10 @@
|
||||
#ifndef CEPH_CLS_USER_CLIENT_H
|
||||
#define CEPH_CLS_USER_CLIENT_H
|
||||
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "cls_user_ops.h"
|
||||
#include "common/RefCountedObj.h"
|
||||
|
||||
namespace librados {
|
||||
class ObjectWriteOperation;
|
||||
class ObjectReadOperation;
|
||||
class IoCtx;
|
||||
}
|
||||
|
||||
class RGWGetUserHeader_CB : public RefCountedObject {
|
||||
public:
|
||||
~RGWGetUserHeader_CB() override {}
|
||||
|
||||
@ -1,15 +1,9 @@
|
||||
#ifndef CEPH_CLS_VERSION_CLIENT_H
|
||||
#define CEPH_CLS_VERSION_CLIENT_H
|
||||
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "cls_version_ops.h"
|
||||
|
||||
namespace librados {
|
||||
class ObjectWriteOperation;
|
||||
class ObjectReadOperation;
|
||||
class ObjectOperation;
|
||||
class IoCtx;
|
||||
}
|
||||
|
||||
/*
|
||||
* version objclass
|
||||
*/
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
install(FILES rados/librados.h
|
||||
install(FILES
|
||||
rados/librados.h
|
||||
rados/rados_types.h
|
||||
rados/rados_types.hpp
|
||||
rados/librados_fwd.hpp
|
||||
rados/librados.hpp
|
||||
buffer.h
|
||||
buffer_fwd.h
|
||||
|
||||
@ -189,6 +189,8 @@ namespace buffer CEPH_BUFFER_API {
|
||||
raw* create_msg(unsigned len, char *buf, XioDispatchHook *m_hook);
|
||||
#endif
|
||||
|
||||
inline namespace v14_2_0 {
|
||||
|
||||
/*
|
||||
* a buffer pointer. references (a subsequence of) a raw buffer.
|
||||
*/
|
||||
@ -1243,6 +1245,8 @@ namespace buffer CEPH_BUFFER_API {
|
||||
static list static_from_string(std::string& s);
|
||||
};
|
||||
|
||||
} // inline namespace v14_2_0
|
||||
|
||||
/*
|
||||
* efficient hash of one or more bufferlists
|
||||
*/
|
||||
|
||||
@ -3,8 +3,10 @@
|
||||
|
||||
namespace ceph {
|
||||
namespace buffer {
|
||||
class ptr;
|
||||
class list;
|
||||
inline namespace v14_2_0 {
|
||||
class ptr;
|
||||
class list;
|
||||
}
|
||||
class hash;
|
||||
}
|
||||
|
||||
|
||||
@ -11,6 +11,7 @@
|
||||
#include "buffer.h"
|
||||
|
||||
#include "librados.h"
|
||||
#include "librados_fwd.hpp"
|
||||
#include "rados_types.hpp"
|
||||
|
||||
namespace libradosstriper
|
||||
@ -18,37 +19,41 @@ namespace libradosstriper
|
||||
class RadosStriper;
|
||||
}
|
||||
|
||||
namespace librados
|
||||
{
|
||||
using ceph::bufferlist;
|
||||
namespace librados {
|
||||
|
||||
using ceph::bufferlist;
|
||||
|
||||
struct AioCompletionImpl;
|
||||
struct IoCtxImpl;
|
||||
struct ListObjectImpl;
|
||||
class NObjectIteratorImpl;
|
||||
struct ObjListCtx;
|
||||
class ObjectOperationImpl;
|
||||
struct PlacementGroupImpl;
|
||||
struct PoolAsyncCompletionImpl;
|
||||
|
||||
typedef struct rados_cluster_stat_t cluster_stat_t;
|
||||
typedef struct rados_pool_stat_t pool_stat_t;
|
||||
|
||||
typedef void *list_ctx_t;
|
||||
typedef uint64_t auid_t;
|
||||
typedef void *config_t;
|
||||
|
||||
typedef struct {
|
||||
std::string client;
|
||||
std::string cookie;
|
||||
std::string address;
|
||||
} locker_t;
|
||||
|
||||
typedef std::map<std::string, pool_stat_t> stats_map;
|
||||
|
||||
typedef void *completion_t;
|
||||
typedef void (*callback_t)(completion_t cb, void *arg);
|
||||
|
||||
inline namespace v14_2_0 {
|
||||
|
||||
struct AioCompletionImpl;
|
||||
class IoCtx;
|
||||
struct IoCtxImpl;
|
||||
class ObjectOperationImpl;
|
||||
struct ObjListCtx;
|
||||
struct PoolAsyncCompletionImpl;
|
||||
class RadosClient;
|
||||
struct ListObjectImpl;
|
||||
class NObjectIteratorImpl;
|
||||
|
||||
typedef void *list_ctx_t;
|
||||
typedef uint64_t auid_t;
|
||||
typedef void *config_t;
|
||||
|
||||
typedef struct rados_cluster_stat_t cluster_stat_t;
|
||||
typedef struct rados_pool_stat_t pool_stat_t;
|
||||
|
||||
typedef struct {
|
||||
std::string client;
|
||||
std::string cookie;
|
||||
std::string address;
|
||||
} locker_t;
|
||||
|
||||
typedef std::map<std::string, pool_stat_t> stats_map;
|
||||
|
||||
typedef void *completion_t;
|
||||
typedef void (*callback_t)(completion_t cb, void *arg);
|
||||
|
||||
class CEPH_RADOS_API ListObject
|
||||
{
|
||||
@ -64,7 +69,7 @@ namespace librados
|
||||
private:
|
||||
ListObject(ListObjectImpl *impl);
|
||||
|
||||
friend class NObjectIteratorImpl;
|
||||
friend class librados::NObjectIteratorImpl;
|
||||
friend std::ostream& operator<<(std::ostream& out, const ListObject& lop);
|
||||
|
||||
ListObjectImpl *impl;
|
||||
@ -86,7 +91,7 @@ namespace librados
|
||||
void set(rados_object_list_cursor c);
|
||||
|
||||
friend class IoCtx;
|
||||
friend class NObjectIteratorImpl;
|
||||
friend class librados::NObjectIteratorImpl;
|
||||
friend std::ostream& operator<<(std::ostream& os, const librados::ObjectCursor& oc);
|
||||
|
||||
std::string to_str() const;
|
||||
@ -112,7 +117,7 @@ namespace librados
|
||||
NObjectIterator &operator++(); //< Preincrement; errors are thrown as exceptions
|
||||
NObjectIterator operator++(int); //< Postincrement; errors are thrown as exceptions
|
||||
friend class IoCtx;
|
||||
friend class NObjectIteratorImpl;
|
||||
friend class librados::NObjectIteratorImpl;
|
||||
|
||||
/// get current hash position of the iterator, rounded to the current pg
|
||||
uint32_t get_pg_hash_position() const;
|
||||
@ -1281,7 +1286,6 @@ namespace librados
|
||||
IoCtxImpl *io_ctx_impl;
|
||||
};
|
||||
|
||||
struct PlacementGroupImpl;
|
||||
struct CEPH_RADOS_API PlacementGroup {
|
||||
PlacementGroup();
|
||||
PlacementGroup(const PlacementGroup&);
|
||||
@ -1453,7 +1457,9 @@ namespace librados
|
||||
const Rados& operator=(const Rados& rhs);
|
||||
RadosClient *client;
|
||||
};
|
||||
}
|
||||
|
||||
} // namespace v14_2_0
|
||||
} // namespace librados
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
32
src/include/rados/librados_fwd.hpp
Normal file
32
src/include/rados/librados_fwd.hpp
Normal file
@ -0,0 +1,32 @@
|
||||
#ifndef __LIBRADOS_FWD_HPP
|
||||
#define __LIBRADOS_FWD_HPP
|
||||
|
||||
namespace libradosstriper {
|
||||
|
||||
class RadosStriper;
|
||||
|
||||
} // namespace libradosstriper
|
||||
|
||||
namespace librados {
|
||||
inline namespace v14_2_0 {
|
||||
|
||||
class AioCompletion;
|
||||
class IoCtx;
|
||||
class ListObject;
|
||||
class NObjectIterator;
|
||||
class ObjectCursor;
|
||||
class ObjectItem;
|
||||
class ObjectOperation;
|
||||
class ObjectOperationCompletion;
|
||||
class ObjectReadOperation;
|
||||
class ObjectWriteOperation;
|
||||
class PlacementGroup;
|
||||
class PoolAsyncCompletion;
|
||||
class Rados;
|
||||
class WatchCtx;
|
||||
class WatchCtx2;
|
||||
|
||||
} // inline namespace v14_2_0
|
||||
} // namespace librados
|
||||
|
||||
#endif // __LIBRADOS_FWD_HPP
|
||||
@ -9,7 +9,7 @@ add_library(librados_impl STATIC
|
||||
add_library(librados ${CEPH_SHARED}
|
||||
librados_c.cc
|
||||
librados_cxx.cc
|
||||
../common/buffer.cc)
|
||||
$<TARGET_OBJECTS:common_buffer_obj>)
|
||||
if(ENABLE_SHARED)
|
||||
set_target_properties(librados PROPERTIES
|
||||
OUTPUT_NAME rados
|
||||
|
||||
@ -40,8 +40,6 @@ inline std::ostream& operator<<(std::ostream& out, const struct ListObjectImpl&
|
||||
return out;
|
||||
}
|
||||
|
||||
struct ObjListCtx;
|
||||
|
||||
class NObjectIteratorImpl {
|
||||
public:
|
||||
NObjectIteratorImpl() {}
|
||||
@ -56,10 +54,6 @@ class NObjectIteratorImpl {
|
||||
NObjectIteratorImpl &operator++(); // Preincrement
|
||||
NObjectIteratorImpl operator++(int); // Postincrement
|
||||
const ListObject *get_listobjectp() { return &cur_obj; }
|
||||
friend class IoCtx;
|
||||
friend struct ListObjectImpl;
|
||||
//friend class ListObject;
|
||||
friend class NObjectIterator;
|
||||
|
||||
/// get current hash position of the iterator, rounded to the current pg
|
||||
uint32_t get_pg_hash_position() const;
|
||||
@ -75,7 +69,6 @@ class NObjectIteratorImpl {
|
||||
|
||||
void set_filter(const bufferlist &bl);
|
||||
|
||||
private:
|
||||
NObjectIteratorImpl(ObjListCtx *ctx_);
|
||||
void get_next();
|
||||
std::shared_ptr < ObjListCtx > ctx;
|
||||
|
||||
@ -3,29 +3,29 @@ LIBRADOS_PRIVATE {
|
||||
};
|
||||
|
||||
LIBRADOS_14.2.0 {
|
||||
global:
|
||||
extern "C++" {
|
||||
ceph::buffer::*;
|
||||
librados::AioCompletion::*;
|
||||
librados::IoCtx::*;
|
||||
librados::ListObject::*;
|
||||
librados::NObjectIterator::*;
|
||||
librados::ObjectCursor::*;
|
||||
librados::ObjectOperation::*;
|
||||
librados::ObjectReadOperation::*;
|
||||
librados::ObjectWriteOperation::*;
|
||||
librados::PlacementGroup::*;
|
||||
librados::PoolAsyncCompletion::*;
|
||||
librados::Rados::*;
|
||||
librados::WatchCtx::*;
|
||||
librados::WatchCtx2::*;
|
||||
"librados::operator<<(std::ostream&, librados::ListObject const&)";
|
||||
"librados::operator<<(std::ostream&, librados::ObjectCursor const&)";
|
||||
"librados::operator<<(std::ostream&, librados::PlacementGroup const&)";
|
||||
"typeinfo for librados::ObjectOperation";
|
||||
"typeinfo for librados::ObjectReadOperation";
|
||||
"typeinfo for librados::ObjectWriteOperation";
|
||||
"typeinfo for librados::WatchCtx";
|
||||
"typeinfo for librados::WatchCtx2";
|
||||
};
|
||||
global:
|
||||
extern "C++" {
|
||||
ceph::buffer::v14_2_0::*;
|
||||
librados::v14_2_0::*;
|
||||
|
||||
"typeinfo for librados::v14_2_0::ObjectOperation";
|
||||
"typeinfo name for librados::v14_2_0::ObjectOperation";
|
||||
"vtable for librados::v14_2_0::ObjectOperation";
|
||||
|
||||
"typeinfo for librados::v14_2_0::ObjectReadOperation";
|
||||
"typeinfo name for librados::v14_2_0::ObjectReadOperation";
|
||||
"vtable for librados::v14_2_0::ObjectReadOperation";
|
||||
|
||||
"typeinfo for librados::v14_2_0::ObjectWriteOperation";
|
||||
"typeinfo name for librados::v14_2_0::ObjectWriteOperation";
|
||||
"vtable for librados::v14_2_0::ObjectWriteOperation";
|
||||
|
||||
"typeinfo for librados::v14_2_0::WatchCtx";
|
||||
"typeinfo name for librados::v14_2_0::WatchCtx";
|
||||
"vtable for librados::v14_2_0::WatchCtx";
|
||||
|
||||
"typeinfo for librados::v14_2_0::WatchCtx2";
|
||||
"typeinfo name for librados::v14_2_0::WatchCtx2";
|
||||
"vtable for librados::v14_2_0::WatchCtx2";
|
||||
};
|
||||
} LIBRADOS_PRIVATE;
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
#include "include/int_types.h"
|
||||
#include "include/Context.h"
|
||||
#include "include/interval_set.h"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "common/Cond.h"
|
||||
#include "common/Mutex.h"
|
||||
#include "common/Cond.h"
|
||||
@ -29,9 +30,6 @@ class SafeTimer;
|
||||
namespace journal {
|
||||
class Journaler;
|
||||
}
|
||||
namespace librados {
|
||||
class IoCtx;
|
||||
}
|
||||
|
||||
namespace librbd {
|
||||
|
||||
|
||||
@ -5,15 +5,12 @@
|
||||
#define CEPH_LIBRBD_MIRRORING_WATCHER_H
|
||||
|
||||
#include "include/int_types.h"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "cls/rbd/cls_rbd_types.h"
|
||||
#include "librbd/ImageCtx.h"
|
||||
#include "librbd/Watcher.h"
|
||||
#include "librbd/mirroring_watcher/Types.h"
|
||||
|
||||
namespace librados {
|
||||
class IoCtx;
|
||||
}
|
||||
|
||||
namespace librbd {
|
||||
|
||||
namespace watcher {
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
|
||||
#include "include/int_types.h"
|
||||
#include "include/fs_types.h"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "include/rbd/object_map_types.h"
|
||||
#include "common/bit_vector.hpp"
|
||||
#include "librbd/Utils.h"
|
||||
@ -13,7 +14,6 @@
|
||||
|
||||
class Context;
|
||||
class RWLock;
|
||||
namespace librados { class IoCtx; }
|
||||
namespace ZTracer { struct Trace; }
|
||||
|
||||
namespace librbd {
|
||||
|
||||
@ -5,13 +5,12 @@
|
||||
#define CEPH_LIBRBD_TRASH_WATCHER_H
|
||||
|
||||
#include "include/int_types.h"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "cls/rbd/cls_rbd_types.h"
|
||||
#include "librbd/ImageCtx.h"
|
||||
#include "librbd/Watcher.h"
|
||||
#include "librbd/trash_watcher/Types.h"
|
||||
|
||||
namespace librados { class IoCtx; }
|
||||
|
||||
namespace librbd {
|
||||
|
||||
namespace watcher {
|
||||
|
||||
@ -5,15 +5,10 @@
|
||||
#define CEPH_LIBRBD_API_CONFIG_H
|
||||
|
||||
#include "include/rbd/librbd.hpp"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
|
||||
struct ConfigProxy;
|
||||
|
||||
namespace librados {
|
||||
|
||||
class IoCtx;
|
||||
|
||||
}
|
||||
|
||||
namespace librbd {
|
||||
|
||||
class ImageCtx;
|
||||
|
||||
@ -5,11 +5,10 @@
|
||||
#define CEPH_LIBRBD_API_GROUP_H
|
||||
|
||||
#include "include/rbd/librbd.hpp"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
namespace librados { struct IoCtx; }
|
||||
|
||||
namespace librbd {
|
||||
|
||||
struct ImageCtx;
|
||||
|
||||
@ -5,13 +5,12 @@
|
||||
#define LIBRBD_API_IMAGE_H
|
||||
|
||||
#include "include/rbd/librbd.hpp"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "librbd/Types.h"
|
||||
#include <map>
|
||||
#include <set>
|
||||
#include <string>
|
||||
|
||||
namespace librados { struct IoCtx; }
|
||||
|
||||
namespace librbd {
|
||||
|
||||
class ImageOptions;
|
||||
|
||||
@ -5,17 +5,12 @@
|
||||
#define CEPH_LIBRBD_API_MIGRATION_H
|
||||
|
||||
#include "include/int_types.h"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "include/rbd/librbd.hpp"
|
||||
#include "cls/rbd/cls_rbd_types.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
namespace librados {
|
||||
|
||||
class IoCtx;
|
||||
|
||||
}
|
||||
|
||||
namespace librbd {
|
||||
|
||||
class ImageCtx;
|
||||
|
||||
@ -4,12 +4,11 @@
|
||||
#ifndef CEPH_LIBRBD_API_NAMESPACE_H
|
||||
#define CEPH_LIBRBD_API_NAMESPACE_H
|
||||
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "include/rbd/librbd.hpp"
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
namespace librados { struct IoCtx; }
|
||||
|
||||
namespace librbd {
|
||||
|
||||
struct ImageCtx;
|
||||
|
||||
@ -5,11 +5,10 @@
|
||||
#define CEPH_LIBRBD_API_POOL_H
|
||||
|
||||
#include "include/int_types.h"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "include/rbd/librbd.h"
|
||||
#include <map>
|
||||
|
||||
namespace librados { class IoCtx; }
|
||||
|
||||
namespace librbd {
|
||||
|
||||
struct ImageCtx;
|
||||
|
||||
@ -4,16 +4,11 @@
|
||||
#ifndef CEPH_LIBRBD_API_POOL_METADATA_H
|
||||
#define CEPH_LIBRBD_API_POOL_METADATA_H
|
||||
|
||||
#include "include/buffer.h"
|
||||
#include "include/buffer_fwd.h"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
|
||||
#include <map>
|
||||
|
||||
namespace librados {
|
||||
|
||||
class IoCtx;
|
||||
|
||||
}
|
||||
|
||||
namespace librbd {
|
||||
|
||||
class ImageCtx;
|
||||
|
||||
@ -4,12 +4,11 @@
|
||||
#ifndef LIBRBD_API_TRASH_H
|
||||
#define LIBRBD_API_TRASH_H
|
||||
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "include/rbd/librbd.hpp"
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
namespace librados { struct IoCtx; }
|
||||
|
||||
namespace librbd {
|
||||
|
||||
class ProgressContext;
|
||||
|
||||
@ -5,7 +5,8 @@
|
||||
#define CEPH_LIBRBD_MANAGED_LOCK_BREAK_REQUEST_H
|
||||
|
||||
#include "include/int_types.h"
|
||||
#include "include/buffer.h"
|
||||
#include "include/buffer_fwd.h"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "msg/msg_types.h"
|
||||
#include <list>
|
||||
#include <string>
|
||||
@ -16,8 +17,6 @@ class Context;
|
||||
class ContextWQ;
|
||||
class obj_watch_t;
|
||||
|
||||
namespace librados { class IoCtx; }
|
||||
|
||||
namespace librbd {
|
||||
|
||||
class ImageCtx;
|
||||
|
||||
@ -6,11 +6,11 @@
|
||||
|
||||
#include "include/int_types.h"
|
||||
#include "include/buffer.h"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include <string>
|
||||
|
||||
class Context;
|
||||
|
||||
namespace librados { class IoCtx; }
|
||||
|
||||
namespace librbd {
|
||||
|
||||
struct ImageCtx;
|
||||
|
||||
@ -4,7 +4,8 @@
|
||||
#ifndef CEPH_LIBRBD_MIRROR_ENABLE_REQUEST_H
|
||||
#define CEPH_LIBRBD_MIRROR_ENABLE_REQUEST_H
|
||||
|
||||
#include "include/buffer.h"
|
||||
#include "include/buffer_fwd.h"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "cls/rbd/cls_rbd_types.h"
|
||||
#include <map>
|
||||
#include <string>
|
||||
@ -12,8 +13,6 @@
|
||||
class Context;
|
||||
class ContextWQ;
|
||||
|
||||
namespace librados { class IoCtx; }
|
||||
|
||||
namespace librbd {
|
||||
|
||||
class ImageCtx;
|
||||
|
||||
@ -11,7 +11,6 @@
|
||||
|
||||
struct CephContext;
|
||||
struct Context;
|
||||
namespace librados { struct IoCtx; }
|
||||
|
||||
namespace librbd {
|
||||
|
||||
|
||||
@ -15,15 +15,11 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include <boost/intrusive/list.hpp>
|
||||
#include "rgw_common.h"
|
||||
#include "services/svc_rados.h" // cant forward declare RGWSI_RADOS::Obj
|
||||
|
||||
namespace librados {
|
||||
class ObjectReadOperation;
|
||||
class ObjectWriteOperation;
|
||||
}
|
||||
|
||||
namespace rgw {
|
||||
|
||||
struct AioResult {
|
||||
|
||||
@ -15,15 +15,12 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include <memory>
|
||||
#include "common/ceph_mutex.h"
|
||||
#include "services/svc_rados.h"
|
||||
#include "rgw_aio.h"
|
||||
|
||||
namespace librados {
|
||||
class AioCompletion;
|
||||
}
|
||||
|
||||
namespace rgw {
|
||||
|
||||
// a throttle for aio operations that enforces a maximum window on outstanding
|
||||
|
||||
@ -4,11 +4,11 @@
|
||||
#ifndef LIBRADOS_TEST_STUB_H
|
||||
#define LIBRADOS_TEST_STUB_H
|
||||
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
namespace librados {
|
||||
|
||||
class IoCtx;
|
||||
class MockTestMemIoCtxImpl;
|
||||
class TestCluster;
|
||||
|
||||
|
||||
@ -5,13 +5,13 @@
|
||||
#define CEPH_TEST_LIBRBD_MOCK_JOURNAL_H
|
||||
|
||||
#include "gmock/gmock.h"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "librbd/Journal.h"
|
||||
#include "librbd/journal/Types.h"
|
||||
#include <list>
|
||||
|
||||
struct Context;
|
||||
struct ContextWQ;
|
||||
namespace librados { class IoCtx; }
|
||||
|
||||
namespace librbd {
|
||||
|
||||
|
||||
@ -14,13 +14,11 @@
|
||||
#ifndef JOURNAL_SCANNER_H
|
||||
#define JOURNAL_SCANNER_H
|
||||
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
|
||||
// For Journaler::Header, can't forward-declare nested classes
|
||||
#include <osdc/Journaler.h>
|
||||
|
||||
namespace librados {
|
||||
class IoCtx;
|
||||
}
|
||||
|
||||
#include "JournalFilter.h"
|
||||
|
||||
/**
|
||||
|
||||
@ -16,12 +16,9 @@
|
||||
#ifndef POOL_DUMP_H_
|
||||
#define POOL_DUMP_H_
|
||||
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "tools/RadosDump.h"
|
||||
|
||||
namespace librados {
|
||||
class IoCtx;
|
||||
}
|
||||
|
||||
class PoolDump : public RadosDump
|
||||
{
|
||||
public:
|
||||
|
||||
@ -4,13 +4,12 @@
|
||||
#ifndef CEPH_RBD_MIRROR_DAEMON_SERVICE_INFO_H
|
||||
#define CEPH_RBD_MIRROR_DAEMON_SERVICE_INFO_H
|
||||
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "tools/rbd/ArgumentTypes.h"
|
||||
|
||||
#include <string>
|
||||
#include <map>
|
||||
|
||||
namespace librados { class IoCtx; }
|
||||
|
||||
namespace rbd {
|
||||
|
||||
class MirrorDaemonServiceInfo {
|
||||
|
||||
@ -7,13 +7,13 @@
|
||||
#include <map>
|
||||
#include <vector>
|
||||
|
||||
#include "include/buffer.h"
|
||||
#include "include/buffer_fwd.h"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "common/AsyncOpTracker.h"
|
||||
#include "common/Mutex.h"
|
||||
#include "librbd/Watcher.h"
|
||||
#include "tools/rbd_mirror/instances/Types.h"
|
||||
|
||||
namespace librados { class IoCtx; }
|
||||
namespace librbd { class ImageCtx; }
|
||||
|
||||
namespace rbd {
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
#define RBD_MIRROR_IMAGE_REPLAYER_GET_MIRROR_IMAGE_ID_REQUEST_H
|
||||
|
||||
#include "include/buffer.h"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include <string>
|
||||
|
||||
namespace librados { struct IoCtx; }
|
||||
namespace librbd { struct ImageCtx; }
|
||||
|
||||
struct Context;
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
#define RBD_MIRROR_IMAGE_REPLAYER_PREPARE_LOCAL_IMAGE_REQUEST_H
|
||||
|
||||
#include "include/buffer.h"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include <string>
|
||||
|
||||
namespace librados { struct IoCtx; }
|
||||
namespace librbd { struct ImageCtx; }
|
||||
|
||||
struct Context;
|
||||
|
||||
@ -4,7 +4,8 @@
|
||||
#ifndef RBD_MIRROR_IMAGE_REPLAYER_PREPARE_REMOTE_IMAGE_REQUEST_H
|
||||
#define RBD_MIRROR_IMAGE_REPLAYER_PREPARE_REMOTE_IMAGE_REQUEST_H
|
||||
|
||||
#include "include/buffer.h"
|
||||
#include "include/buffer_fwd.h"
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
#include "cls/journal/cls_journal_types.h"
|
||||
#include "journal/Settings.h"
|
||||
#include "librbd/journal/TypeTraits.h"
|
||||
@ -12,7 +13,6 @@
|
||||
|
||||
namespace journal { class Journaler; }
|
||||
namespace journal { class Settings; }
|
||||
namespace librados { struct IoCtx; }
|
||||
namespace librbd { struct ImageCtx; }
|
||||
namespace librbd { namespace journal { struct MirrorPeerClientMeta; } }
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user