| Index: mojo/edk/system/data_pipe_control_message.cc
|
| diff --git a/mojo/edk/system/data_pipe_control_message.cc b/mojo/edk/system/data_pipe_control_message.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e81df6a95d6c5a8faa4dcbb3ac52301f09f37c98
|
| --- /dev/null
|
| +++ b/mojo/edk/system/data_pipe_control_message.cc
|
| @@ -0,0 +1,35 @@
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "mojo/edk/system/data_pipe_control_message.h"
|
| +
|
| +#include "mojo/edk/embedder/platform_handle_vector.h"
|
| +#include "mojo/edk/system/node_controller.h"
|
| +#include "mojo/edk/system/ports_message.h"
|
| +
|
| +namespace mojo {
|
| +namespace edk {
|
| +
|
| +void SendDataPipeControlMessage(NodeController* node_controller,
|
| + const ports::PortRef& port,
|
| + DataPipeCommand command,
|
| + uint32_t num_bytes) {
|
| + scoped_ptr<PortsMessage> message =
|
| + PortsMessage::NewUserMessage(sizeof(DataPipeControlMessage), 0, 0);
|
| + CHECK(message);
|
| +
|
| + DataPipeControlMessage* data =
|
| + static_cast<DataPipeControlMessage*>(message->mutable_payload_bytes());
|
| + data->command = command;
|
| + data->num_bytes = num_bytes;
|
| +
|
| + int rv = node_controller->SendMessage(port, &message);
|
| + if (rv != ports::OK && rv != ports::ERROR_PORT_PEER_CLOSED) {
|
| + DLOG(ERROR) << "Unexpected failure sending data pipe control message: "
|
| + << rv;
|
| + }
|
| +}
|
| +
|
| +} // namespace edk
|
| +} // namespace mojo
|
|
|