#include "journal/ReplayEntry.h"
#include "journal/ReplayHandler.h"
#include "librbd/journal/Types.h"
+#include "librbd/journal/TypeTraits.h"
#include <algorithm>
#include <iosfwd>
#include <list>
class AioObjectRequest;
class ImageCtx;
-namespace journal {
-
-template <typename> class Replay;
-
-template <typename ImageCtxT>
-struct TypeTraits {
- typedef ::journal::Journaler Journaler;
- typedef ::journal::Future Future;
- typedef ::journal::ReplayEntry ReplayEntry;
-};
-
-} // namespace journal
-
+namespace journal { template <typename> class Replay; }
template <typename ImageCtxT = ImageCtx>
class Journal {
librbd/image_watcher/NotifyLockOwner.h \
librbd/journal/Replay.h \
librbd/journal/Types.h \
+ librbd/journal/TypeTraits.h \
librbd/object_map/InvalidateRequest.h \
librbd/object_map/LockRequest.h \
librbd/object_map/Request.h \
--- /dev/null
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
+
+#ifndef CEPH_LIBRBD_JOURNAL_TYPE_TRAITS_H
+#define CEPH_LIBRBD_JOURNAL_TYPE_TRAITS_H
+
+namespace journal {
+class Future;
+class Journaler;
+class ReplayEntry;
+}
+
+namespace librbd {
+namespace journal {
+
+template <typename ImageCtxT>
+struct TypeTraits {
+ typedef ::journal::Journaler Journaler;
+ typedef ::journal::Future Future;
+ typedef ::journal::ReplayEntry ReplayEntry;
+};
+
+} // namespace journal
+} // namespace librbd
+
+#endif // CEPH_LIBRBD_JOURNAL_TYPE_TRAITS_H
#include "librbd/Utils.h"
#include "librbd/journal/Replay.h"
#include "librbd/journal/Types.h"
+#include "librbd/journal/TypeTraits.h"
#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include <functional>
#include <gmock/gmock.h>
#include "librbd/Journal.h"
+#include "librbd/journal/TypeTraits.h"
namespace journal {
#include "librbd/ExclusiveLock.h"
#include "librbd/ImageCtx.h"
#include "librbd/ImageState.h"
+#include "librbd/journal/Types.h"
#include "tools/rbd_mirror/ImageSync.h"
#include "tools/rbd_mirror/Threads.h"
#include "include/int_types.h"
#include "librbd/ImageCtx.h"
-#include "librbd/Journal.h"
+#include "librbd/journal/TypeTraits.h"
#include "common/Mutex.h"
#include <map>
#include <vector>
#include "librbd/ImageCtx.h"
#include "librbd/ImageState.h"
#include "librbd/internal.h"
+#include "librbd/journal/Types.h"
#include "librbd/Utils.h"
#include "tools/rbd_mirror/ImageSync.h"
#include "include/int_types.h"
#include "include/rados/librados.hpp"
-#include "librbd/Journal.h"
+#include "librbd/journal/TypeTraits.h"
#include <string>
class Context;
class SafeTimer;
namespace journal { class Journaler; }
namespace librbd { class ImageCtx; }
+namespace librbd { namespace journal { struct MirrorPeerClientMeta; } }
namespace rbd {
namespace mirror {
#include "include/int_types.h"
#include "include/rados/librados.hpp"
#include "common/Mutex.h"
-#include "librbd/Journal.h"
#include "librbd/journal/Types.h"
+#include "librbd/journal/TypeTraits.h"
#include <map>
#include <vector>
class Context;
+class SafeTimer;
namespace journal { class Journaler; }
namespace librbd { struct ImageCtx; }
#include "include/rados/librados.hpp"
#include "common/snap_types.h"
#include "librbd/ImageCtx.h"
-#include "librbd/Journal.h"
+#include "librbd/journal/TypeTraits.h"
#include <map>
#include <set>
#include <string>
#ifndef RBD_MIRROR_IMAGE_SYNC_SYNC_POINT_CREATE_REQUEST_H
#define RBD_MIRROR_IMAGE_SYNC_SYNC_POINT_CREATE_REQUEST_H
-#include "librbd/Journal.h"
#include "librbd/journal/Types.h"
+#include "librbd/journal/TypeTraits.h"
#include <string>
class Context;
#ifndef RBD_MIRROR_IMAGE_SYNC_SYNC_POINT_PRUNE_REQUEST_H
#define RBD_MIRROR_IMAGE_SYNC_SYNC_POINT_PRUNE_REQUEST_H
-#include "librbd/Journal.h"
#include "librbd/journal/Types.h"
+#include "librbd/journal/TypeTraits.h"
#include <list>
#include <string>