]> git.proxmox.com Git - ceph.git/blob - ceph/src/test/librbd/object_map/mock/MockInvalidateRequest.h
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / test / librbd / object_map / mock / MockInvalidateRequest.h
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
3
4 #include "librbd/object_map/InvalidateRequest.h"
5
6 // template definitions
7 #include "librbd/object_map/InvalidateRequest.cc"
8
9 namespace librbd {
10 namespace object_map {
11
12 template <typename I>
13 struct MockInvalidateRequestBase {
14 static std::list<InvalidateRequest<I>*> s_requests;
15 uint64_t snap_id = 0;
16 bool force = false;
17 Context *on_finish = nullptr;
18
19 static InvalidateRequest<I>* create(I &image_ctx, uint64_t snap_id,
20 bool force, Context *on_finish) {
21 ceph_assert(!s_requests.empty());
22 InvalidateRequest<I>* req = s_requests.front();
23 req->snap_id = snap_id;
24 req->force = force;
25 req->on_finish = on_finish;
26 s_requests.pop_front();
27 return req;
28 }
29
30 MockInvalidateRequestBase() {
31 s_requests.push_back(static_cast<InvalidateRequest<I>*>(this));
32 }
33
34 MOCK_METHOD0(send, void());
35 };
36
37 template <typename I>
38 std::list<InvalidateRequest<I>*> MockInvalidateRequestBase<I>::s_requests;
39
40 } // namespace object_map
41 } // namespace librbd