]>
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 set_alloc_hint(const std::string
& oid
, uint64_t expected_object_size
,
56 uint64_t expected_write_size
,
57 const SnapContext
&snapc
) override
;
58 int sparse_read(const std::string
& oid
, uint64_t off
, uint64_t len
,
59 std::map
<uint64_t,uint64_t> *m
, bufferlist
*data_bl
) override
;
60 int stat(const std::string
& oid
, uint64_t *psize
, time_t *pmtime
) override
;
61 int truncate(const std::string
& oid
, uint64_t size
,
62 const SnapContext
&snapc
) override
;
63 int write(const std::string
& oid
, bufferlist
& bl
, size_t len
,
64 uint64_t off
, const SnapContext
&snapc
) override
;
65 int write_full(const std::string
& oid
, bufferlist
& bl
,
66 const SnapContext
&snapc
) override
;
67 int writesame(const std::string
& oid
, bufferlist
& bl
, size_t len
,
68 uint64_t off
, const SnapContext
&snapc
) override
;
69 int cmpext(const std::string
& oid
, uint64_t off
, bufferlist
& cmp_bl
) override
;
70 int xattr_get(const std::string
& oid
,
71 std::map
<std::string
, bufferlist
>* attrset
) override
;
72 int xattr_set(const std::string
& oid
, const std::string
&name
,
73 bufferlist
& bl
) override
;
74 int zero(const std::string
& oid
, uint64_t off
, uint64_t len
,
75 const SnapContext
&snapc
) override
;
78 TestMemCluster::Pool
*get_pool() {
83 TestMemIoCtxImpl(const TestMemIoCtxImpl
&);
85 TestMemRadosClient
*m_client
= nullptr;
86 TestMemCluster::Pool
*m_pool
= nullptr;
88 void append_clone(bufferlist
& src
, bufferlist
* dest
);
89 size_t clip_io(size_t off
, size_t len
, size_t bl_len
);
90 void ensure_minimum_length(size_t len
, bufferlist
*bl
);
92 TestMemCluster::SharedFile
get_file(const std::string
&oid
, bool write
,
93 const SnapContext
&snapc
);
97 } // namespace librados
99 #endif // CEPH_TEST_MEM_IO_CTX_IMPL_H