blob: 20d2bf7d975cdc23c3ffcfcc3f9a149e3845cfbe [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_SEND_MESSAGE_HELPER_H_
#define MOJO_PUBLIC_CPP_BINDINGS_LIB_SEND_MESSAGE_HELPER_H_
#include <memory>
#include "base/component_export.h"
namespace mojo {
class Message;
class MessageReceiver;
class MessageReceiverWithResponder;
namespace internal {
// Helpers to send a given mojo message to a given receiver.
// Extracted in a separate function to ensure that operations like emitting
// trace events can be performed without affecting the binary size of the
// generated bindings.
COMPONENT_EXPORT(MOJO_CPP_BINDINGS_BASE)
void SendMojoMessage(MessageReceiverWithResponder& receiver,
Message& message,
std::unique_ptr<MessageReceiver> responder);
COMPONENT_EXPORT(MOJO_CPP_BINDINGS_BASE)
void SendMojoMessage(MessageReceiver& receiver, Message& message);
} // namespace internal
} // namespace mojo
#endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_SEND_MESSAGE_HELPER_H_