1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
4 #ifndef CEPH_LIBRBD_CACHE_PWL_BUILDER_H
5 #define CEPH_LIBRBD_CACHE_PWL_BUILDER_H
15 virtual std::shared_ptr
<WriteLogEntry
> create_write_log_entry(
16 uint64_t image_offset_bytes
, uint64_t write_bytes
) = 0;
17 virtual std::shared_ptr
<WriteLogEntry
> create_write_log_entry(
18 std::shared_ptr
<SyncPointLogEntry
> sync_point_entry
,
19 uint64_t image_offset_bytes
, uint64_t write_bytes
) = 0;
20 virtual std::shared_ptr
<WriteLogEntry
> create_writesame_log_entry(
21 uint64_t image_offset_bytes
, uint64_t write_bytes
,
22 uint32_t data_length
) = 0;
23 virtual std::shared_ptr
<WriteLogEntry
> create_writesame_log_entry(
24 std::shared_ptr
<SyncPointLogEntry
> sync_point_entry
,
25 uint64_t image_offset_bytes
, uint64_t write_bytes
,
26 uint32_t data_length
) = 0;
27 virtual C_WriteRequest
<T
> *create_write_request(
28 T
&pwl
, utime_t arrived
, io::Extents
&&image_extents
,
29 bufferlist
&& bl
, const int fadvise_flags
, ceph::mutex
&lock
,
30 PerfCounters
*perfcounter
, Context
*user_req
) = 0;
31 virtual C_WriteSameRequest
<T
> *create_writesame_request(
32 T
&pwl
, utime_t arrived
, io::Extents
&&image_extents
,
33 bufferlist
&& bl
, const int fadvise_flags
, ceph::mutex
&lock
,
34 PerfCounters
*perfcounter
, Context
*user_req
) = 0;
35 virtual C_WriteRequest
<T
> *create_comp_and_write_request(
36 T
&pwl
, utime_t arrived
, io::Extents
&&image_extents
,
37 bufferlist
&& cmp_bl
, bufferlist
&& bl
, uint64_t *mismatch_offset
,
38 const int fadvise_flags
, ceph::mutex
&lock
,
39 PerfCounters
*perfcounter
, Context
*user_req
) = 0;
40 virtual std::shared_ptr
<WriteLogOperation
> create_write_log_operation(
41 WriteLogOperationSet
&set
, uint64_t image_offset_bytes
,
42 uint64_t write_bytes
, CephContext
*cct
,
43 std::shared_ptr
<WriteLogEntry
> write_log_entry
) = 0;
44 virtual std::shared_ptr
<WriteLogOperation
> create_write_log_operation(
45 WriteLogOperationSet
&set
, uint64_t image_offset_bytes
,
46 uint64_t write_bytes
, uint32_t data_len
, CephContext
*cct
,
47 std::shared_ptr
<WriteLogEntry
> writesame_log_entry
) = 0;
48 virtual std::shared_ptr
<pwl::DiscardLogOperation
> create_discard_log_operation(
49 std::shared_ptr
<SyncPoint
> sync_point
, uint64_t image_offset_bytes
,
50 uint64_t write_bytes
, uint32_t discard_granularity_bytes
,
51 utime_t dispatch_time
, PerfCounters
*perfcounter
, CephContext
*cct
) = 0;
52 virtual C_ReadRequest
*create_read_request(CephContext
*cct
, utime_t arrived
,
53 PerfCounters
*perfcounter
, ceph::bufferlist
*bl
, Context
*on_finish
) = 0;
61 #endif // CEPH_LIBRBD_CACHE_PWL_BUILDER_H