Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Unified Diff: mojo/bindings/java/src/org/chromium/mojo/bindings/MessageWithHeader.java

Issue 392223004: Revert of Adding a router class to handle messages that expect responses. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojo/bindings/java/src/org/chromium/mojo/bindings/MessageWithHeader.java
diff --git a/mojo/bindings/java/src/org/chromium/mojo/bindings/MessageWithHeader.java b/mojo/bindings/java/src/org/chromium/mojo/bindings/MessageWithHeader.java
deleted file mode 100644
index 5c826b680db18117207a1b9384d06ecf98704594..0000000000000000000000000000000000000000
--- a/mojo/bindings/java/src/org/chromium/mojo/bindings/MessageWithHeader.java
+++ /dev/null
@@ -1,98 +0,0 @@
-// Copyright 2014 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.
-
-package org.chromium.mojo.bindings;
-
-import org.chromium.mojo.system.MessagePipeHandle;
-import org.chromium.mojo.system.MessagePipeHandle.ReadMessageResult;
-import org.chromium.mojo.system.MojoResult;
-
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-/**
- * Represents a {@link Message} which contains a {@link MessageHeader}. Deals with parsing the
- * {@link MessageHeader} for a message.
- */
-public class MessageWithHeader {
-
- private final Message mBaseMessage;
- private final MessageHeader mHeader;
- private Message mPayload;
-
- /**
- * Reinterpret the given |message| as a message with the given |header|. The |message| must
- * contain the |header| as the start of its raw data.
- */
- public MessageWithHeader(Message baseMessage, MessageHeader header) {
- assert header.equals(new org.chromium.mojo.bindings.MessageHeader(baseMessage));
- this.mBaseMessage = baseMessage;
- this.mHeader = header;
- }
-
- /**
- * Reinterpret the given |message| as a message with a header. The |message| must contain a
- * header as the start of it's raw data, which will be parsed by this constructor.
- */
- public MessageWithHeader(Message baseMessage) {
- this(baseMessage, new org.chromium.mojo.bindings.MessageHeader(baseMessage));
- }
-
- /**
- * Returns the header of the given message. This will throw a {@link DeserializationException}
- * if the start of the message is not a valid header.
- */
- public MessageHeader getHeader() {
- return mHeader;
- }
-
- /**
- * Returns the payload of the message.
- */
- public Message getPayload() {
- if (mPayload == null) {
- ByteBuffer truncatedBuffer = ((ByteBuffer) mBaseMessage.buffer.position(
- getHeader().getSize())).slice();
- truncatedBuffer.order(ByteOrder.nativeOrder());
- mPayload = new Message(truncatedBuffer, mBaseMessage.handles);
- }
- return mPayload;
- }
-
- /**
- * Returns the raw message.
- */
- public Message getMessage() {
- return mBaseMessage;
- }
-
- /**
- * Set the request identifier on the message.
- */
- void setRequestId(long requestId) {
- mHeader.setRequestId(mBaseMessage.buffer, requestId);
- }
-
- /**
- * Read a message, and pass it to the given |MessageReceiver| if not null. If the
- * |MessageReceiver| is null, the message is lost.
- *
- * @param receiver The {@link MessageReceiver} that will receive the read {@link Message}. Can
- * be <code>null</code>, in which case the message is discarded.
- */
- public static int readAndDispatchMessage(MessagePipeHandle handle, MessageReceiver receiver) {
- // TODO(qsr) Allow usage of a pool of pre-allocated buffer for performance.
- ReadMessageResult result = handle.readMessage(null, 0, MessagePipeHandle.ReadFlags.NONE);
- if (result.getMojoResult() != MojoResult.RESOURCE_EXHAUSTED) {
- return result.getMojoResult();
- }
- ByteBuffer buffer = ByteBuffer.allocateDirect(result.getMessageSize());
- result = handle.readMessage(buffer, result.getHandlesCount(),
- MessagePipeHandle.ReadFlags.NONE);
- if (receiver != null && result.getMojoResult() == MojoResult.OK) {
- receiver.accept(new MessageWithHeader(new Message(buffer, result.getHandles())));
- }
- return result.getMojoResult();
- }
-}

Powered by Google App Engine
This is Rietveld 408576698