OLD | NEW |
| (Empty) |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 package org.chromium.mojo.bindings; | |
6 | |
7 import org.chromium.mojo.system.Handle; | |
8 import org.chromium.mojo.system.MessagePipeHandle; | |
9 | |
10 import java.nio.ByteBuffer; | |
11 import java.util.List; | |
12 | |
13 /** | |
14 * A raw message to be sent/received from a {@link MessagePipeHandle}. Note that
this can contain | |
15 * any data, not necessarily a Mojo message with a proper header. See also {@lin
k ServiceMessage}. | |
16 */ | |
17 public class Message { | |
18 | |
19 /** | |
20 * The data of the message. | |
21 */ | |
22 private final ByteBuffer mBuffer; | |
23 | |
24 /** | |
25 * The handles of the message. | |
26 */ | |
27 private final List<? extends Handle> mHandle; | |
28 | |
29 /** | |
30 * This message interpreted as a message for a mojo service with an appropri
ate header. | |
31 */ | |
32 private ServiceMessage mWithHeader = null; | |
33 | |
34 /** | |
35 * Constructor. | |
36 * | |
37 * @param buffer The buffer containing the bytes to send. This must be a dir
ect buffer. | |
38 * @param handles The list of handles to send. | |
39 */ | |
40 public Message(ByteBuffer buffer, List<? extends Handle> handles) { | |
41 assert buffer.isDirect(); | |
42 mBuffer = buffer; | |
43 mHandle = handles; | |
44 } | |
45 | |
46 /** | |
47 * The data of the message. | |
48 */ | |
49 public ByteBuffer getData() { | |
50 return mBuffer; | |
51 } | |
52 | |
53 /** | |
54 * The handles of the message. | |
55 */ | |
56 public List<? extends Handle> getHandles() { | |
57 return mHandle; | |
58 } | |
59 | |
60 /** | |
61 * Returns the message interpreted as a message for a mojo service. | |
62 */ | |
63 public ServiceMessage asServiceMessage() { | |
64 if (mWithHeader == null) { | |
65 mWithHeader = new ServiceMessage(this); | |
66 } | |
67 return mWithHeader; | |
68 } | |
69 } | |
OLD | NEW |