]>
git.proxmox.com Git - ceph.git/blob - ceph/src/test/librados_test_stub/TestMemIoCtxImpl.h
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
4 #ifndef CEPH_TEST_MEM_IO_CTX_IMPL_H
5 #define CEPH_TEST_MEM_IO_CTX_IMPL_H
7 #include "test/librados_test_stub/TestIoCtxImpl.h"
8 #include "test/librados_test_stub/TestMemCluster.h"
12 class TestMemRadosClient
;
14 class TestMemIoCtxImpl
: public TestIoCtxImpl
{
17 TestMemIoCtxImpl(TestMemRadosClient
*client
, int64_t m_pool_id
,
18 const std::string
& pool_name
,
19 TestMemCluster::Pool
*pool
);
20 ~TestMemIoCtxImpl() override
;
22 TestIoCtxImpl
*clone() override
;
24 int aio_remove(const std::string
& oid
, AioCompletionImpl
*c
) override
;
26 int append(const std::string
& oid
, const bufferlist
&bl
,
27 const SnapContext
&snapc
) override
;
29 int assert_exists(const std::string
&oid
) override
;
31 int create(const std::string
& oid
, bool exclusive
) override
;
32 int list_snaps(const std::string
& o
, snap_set_t
*out_snaps
) override
;
33 int omap_get_vals(const std::string
& oid
,
34 const std::string
& start_after
,
35 const std::string
&filter_prefix
,
37 std::map
<std::string
, bufferlist
> *out_vals
) override
;
38 int omap_get_vals2(const std::string
& oid
,
39 const std::string
& start_after
,
40 const std::string
&filter_prefix
,
42 std::map
<std::string
, bufferlist
> *out_vals
,
43 bool *pmore
) override
;
44 int omap_rm_keys(const std::string
& oid
,
45 const std::set
<std::string
>& keys
) override
;
46 int omap_set(const std::string
& oid
, const std::map
<std::string
,
47 bufferlist
> &map
) override
;
48 int read(const std::string
& oid
, size_t len
, uint64_t off
,
49 bufferlist
*bl
) override
;
50 int remove(const std::string
& oid
, const SnapContext
&snapc
) override
;
51 int selfmanaged_snap_create(uint64_t *snapid
) override
;
52 int selfmanaged_snap_remove(uint64_t snapid
) override
;
53 int selfmanaged_snap_rollback(const std::string
& oid
,
54 uint64_t snapid
) override
;
55 int sparse_read(const std::string
& oid
, uint64_t off
, uint64_t len
,
56 std::map
<uint64_t,uint64_t> *m
, bufferlist
*data_bl
) override
;
57 int stat(const std::string
& oid
, uint64_t *psize
, time_t *pmtime
) override
;
58 int truncate(const std::string
& oid
, uint64_t size
,
59 const SnapContext
&snapc
) override
;
60 int write(const std::string
& oid
, bufferlist
& bl
, size_t len
,
61 uint64_t off
, const SnapContext
&snapc
) override
;
62 int write_full(const std::string
& oid
, bufferlist
& bl
,
63 const SnapContext
&snapc
) override
;
64 int writesame(const std::string
& oid
, bufferlist
& bl
, size_t len
,
65 uint64_t off
, const SnapContext
&snapc
) override
;
66 int cmpext(const std::string
& oid
, uint64_t off
, bufferlist
& cmp_bl
) override
;
67 int xattr_get(const std::string
& oid
,
68 std::map
<std::string
, bufferlist
>* attrset
) override
;
69 int xattr_set(const std::string
& oid
, const std::string
&name
,
70 bufferlist
& bl
) override
;
71 int zero(const std::string
& oid
, uint64_t off
, uint64_t len
) override
;
74 TestMemCluster::Pool
*get_pool() {
79 TestMemIoCtxImpl(const TestMemIoCtxImpl
&);
81 TestMemRadosClient
*m_client
= nullptr;
82 TestMemCluster::Pool
*m_pool
= nullptr;
84 void append_clone(bufferlist
& src
, bufferlist
* dest
);
85 size_t clip_io(size_t off
, size_t len
, size_t bl_len
);
86 void ensure_minimum_length(size_t len
, bufferlist
*bl
);
88 TestMemCluster::SharedFile
get_file(const std::string
&oid
, bool write
,
89 const SnapContext
&snapc
);
93 } // namespace librados
95 #endif // CEPH_TEST_MEM_IO_CTX_IMPL_H