1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
6 #include "crimson/net/Connection.h"
7 #include "crimson/osd/osd_operation.h"
8 #include "crimson/common/type_helpers.h"
16 namespace crimson::osd
{
21 class RepRequest final
: public OperationT
<RepRequest
> {
23 class ConnectionPipeline
{
24 OrderedExclusivePhase await_map
= {
25 "RepRequest::ConnectionPipeline::await_map"
27 OrderedExclusivePhase get_pg
= {
28 "RepRequest::ConnectionPipeline::get_pg"
33 OrderedExclusivePhase await_map
= {
34 "RepRequest::PGPipeline::await_map"
36 OrderedExclusivePhase process
= {
37 "RepRequest::PGPipeline::process"
41 static constexpr OperationTypeCode type
= OperationTypeCode::replicated_request
;
42 RepRequest(OSD
&, crimson::net::ConnectionRef
&&, Ref
<MOSDRepOp
>&&);
44 void print(std::ostream
&) const final
;
45 void dump_detail(ceph::Formatter
* f
) const final
;
46 seastar::future
<> start();
49 ConnectionPipeline
&cp();
50 PGPipeline
&pp(PG
&pg
);
53 crimson::net::ConnectionRef conn
;
55 PipelineHandle handle
;