return id;
}
+ static constexpr bool is_trackable = false;
+
virtual unsigned get_type() const = 0;
virtual const char *get_type_name() const = 0;
virtual void print(std::ostream &) const = 0;
return typename InterruptorT::template futurize_t<ret_t>{std::move(ret)};
}
}
+
+public:
+ static constexpr bool is_trackable = true;
};
template <class T>
ShardServices &shard_services, Ref<PG> pg);
std::tuple<
+ StartEvent,
ConnectionPipeline::AwaitActive::BlockingEvent,
ConnectionPipeline::AwaitMap::BlockingEvent,
ConnectionPipeline::GetPG::BlockingEvent,
ShardServices &shard_services, Ref<PG> pg);
std::tuple<
+ StartEvent,
ConnectionPipeline::AwaitActive::BlockingEvent,
ConnectionPipeline::AwaitMap::BlockingEvent,
ConnectionPipeline::GetPG::BlockingEvent,
ShardServices &shard_services, Ref<PG> pg);
std::tuple<
+ StartEvent,
ConnectionPipeline::AwaitActive::BlockingEvent,
ConnectionPipeline::AwaitMap::BlockingEvent,
ConnectionPipeline::GetPG::BlockingEvent,
auto &opref = *op;
auto id = op->get_id();
+ if constexpr (T::is_trackable) {
+ op->template track_event<typename T::StartEvent>();
+ }
auto fut = opref.template enter_stage<>(
opref.get_connection_pipeline().await_active
).then([this, &opref, &logger] {