blob: 828a665797d2f9c6d5f777018877636a4da72a31 [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.
#include "mojo/public/cpp/bindings/lib/proxy_to_responder.h"
#include "mojo/public/cpp/bindings/message.h"
namespace mojo {
namespace internal {
ProxyToResponder::ProxyToResponder(
const Message& message,
std::unique_ptr<MessageReceiverWithStatus> responder)
: request_id_(message.request_id()),
trace_nonce_(message.header()->trace_nonce),
is_sync_(message.has_flag(Message::kFlagIsSync)),
responder_(std::move(responder)) {}
ProxyToResponder::~ProxyToResponder() {
// If the Callback was dropped then deleting the responder will close
// the pipe so the calling application knows to stop waiting for a reply.
responder_.reset();
}
} // namespace internal
} // namespace mojo