Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / 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;
16   bool force;
17   Context *on_finish;
18
19   static InvalidateRequest<I>* create(I &image_ctx, uint64_t snap_id,
20                                       bool force, Context *on_finish) {
21     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