aboutsummaryrefslogtreecommitdiffstats
path: root/storage/src/tests/persistence/filestorage/forwardingmessagesender.h
blob: c4cdea5a566f5917081255b3d3c4a9bfcb3a0439 (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 Yahoo. 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