msg->pushes.swap(i->second);
msg->compute_cost(cct);
msg->is_repair = get_parent()->pg_is_repair();
- std::vector wrapped_msg{
- std::make_pair(i->first.osd, static_cast<Message*>(msg))
- };
- get_parent()->send_message_osd_cluster(wrapped_msg, msg->map_epoch);
+ get_parent()->send_message_osd_cluster(i->first.osd, msg, msg->map_epoch);
}
std::map<int, MOSDPGPushReply*> replies;
for (map<pg_shard_t, vector<PushReplyOp>>::iterator i =
#include "erasure-code/ErasureCodeInterface.h"
#include "ECUtil.h"
#include "ECTypes.h"
+#include "messages/MOSDPGPushReply.h"
+#include "msg/MessageRef.h"
#if WITH_CRIMSON
#include "crimson/osd/object_context.h"
#include "os/Transaction.h"
#include "OSDMap.h"
#include "common/WorkQueue.h"
#include "PGLog.h"
+#include "messages/MOSDPGPush.h"
// ECListener -- an interface decoupling the pipelines from
// particular implementation of ECBackendL (crimson vs cassical).
// XXX
virtual void send_message_osd_cluster(
std::vector<std::pair<int, Message*>>& messages, epoch_t from_epoch) = 0;
+ virtual void send_message_osd_cluster(
+ int osd, MOSDPGPush* msg, epoch_t from_epoch) = 0;
virtual std::ostream& gen_dbg_prefix(std::ostream& out) const = 0;
int peer, Message *m, epoch_t from_epoch) override {
osd->send_message_osd_cluster(peer, m, from_epoch);
}
+ void send_message_osd_cluster(
+ int osd, MOSDPGPush* msg, epoch_t from_epoch) override {
+ std::vector wrapped_msg {
+ std::make_pair(osd, static_cast<Message*>(msg))
+ };
+ send_message_osd_cluster(wrapped_msg, from_epoch);
+ }
void send_message_osd_cluster(
std::vector<std::pair<int, Message*>>& messages, epoch_t from_epoch) override {
osd->send_message_osd_cluster(messages, from_epoch);
}
+ void send_message_osd_cluster(int osd, MOSDPGPush* msg, epoch_t from_epoch) override {
+
+ }
+
ostream &gen_dbg_prefix(ostream &out) const override {
out << dbg_prefix;
return out;