aboutsummaryrefslogtreecommitdiffstats
path: root/storage/src/tests/persistence/filestorage/forwardingmessagesender.h
blob: 8dd5691fe22c7b7f2ab2f879b6549331c37d2f1b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#pragma once

#include <vespa/storage/common/messagesender.h>
#include <vespa/storage/common/storagelink.h>

namespace storage {

/**
 * Simple implementation of MessageSender which simply forwards all messages
 * to a provided storage link.
 */
struct ForwardingMessageSender : public MessageSender {
    StorageLink& link;

    ForwardingMessageSender(StorageLink& l) : link(l) {}

    void sendCommand(const std::shared_ptr<api::StorageCommand> & cmd) override { link.sendUp(cmd); }
    void sendReply(const std::shared_ptr<api::StorageReply> & reply) override { link.sendUp(reply); }
};

} // storage