]>
git.proxmox.com Git - ceph.git/blob - ceph/src/test/osdc/MemWriteback.h
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
3 #ifndef CEPH_TEST_OSDC_MEMWRITEBACK_H
4 #define CEPH_TEST_OSDC_MEMWRITEBACK_H
6 #include "include/Context.h"
7 #include "include/types.h"
8 #include "osd/osd_types.h"
9 #include "osdc/WritebackHandler.h"
15 class MemWriteback
: public WritebackHandler
{
17 MemWriteback(CephContext
*cct
, ceph::mutex
*lock
, uint64_t delay_ns
);
18 ~MemWriteback() override
;
20 void read(const object_t
& oid
, uint64_t object_no
,
21 const object_locator_t
& oloc
, uint64_t off
, uint64_t len
,
22 snapid_t snapid
, bufferlist
*pbl
, uint64_t trunc_size
,
23 __u32 trunc_seq
, int op_flags
,
24 const ZTracer::Trace
&parent_trace
,
25 Context
*onfinish
) override
;
27 ceph_tid_t
write(const object_t
& oid
, const object_locator_t
& oloc
,
28 uint64_t off
, uint64_t len
,
29 const SnapContext
& snapc
, const bufferlist
&bl
,
30 ceph::real_time mtime
, uint64_t trunc_size
,
31 __u32 trunc_seq
, ceph_tid_t journal_tid
,
32 const ZTracer::Trace
&parent_trace
,
33 Context
*oncommit
) override
;
35 using WritebackHandler::write
;
37 bool may_copy_on_write(const object_t
&, uint64_t, uint64_t,
39 void write_object_data(const object_t
& oid
, uint64_t off
, uint64_t len
,
40 const bufferlist
& data_bl
);
41 int read_object_data(const object_t
& oid
, uint64_t off
, uint64_t len
,
44 std::map
<object_t
, bufferlist
> object_data
;
48 std::atomic
<unsigned> m_tid
= { 0 };