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

Side by Side Diff: mojo/public/java/bindings/src/org/chromium/mojo/bindings/Struct.java

Issue 2250183003: Make the fuchsia mojo/public repo the source of truth. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 years, 4 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 unified diff | Download patch
OLDNEW
(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.Core;
8
9 /**
10 * Base class for all mojo structs.
11 */
12 public abstract class Struct {
13 /**
14 * The base size of the encoded struct.
15 */
16 private final int mEncodedBaseSize;
17
18 /**
19 * The version of the struct.
20 */
21 private final int mVersion;
22
23 /**
24 * Constructor.
25 */
26 protected Struct(int encodedBaseSize, int version) {
27 mEncodedBaseSize = encodedBaseSize;
28 mVersion = version;
29 }
30
31 /**
32 * Returns the version of the struct. It is the max version of the struct in the mojom if it has
33 * been created locally, and the version of the received struct if it has be en deserialized.
34 */
35 public int getVersion() {
36 return mVersion;
37 }
38
39 /**
40 * Returns the serialization of the struct. This method can close Handles.
41 *
42 * @param core the |Core| implementation used to generate handles. Only used if the data
43 * structure being encoded contains interfaces, can be |null| oth erwise.
44 */
45 public Message serialize(Core core) {
46 Encoder encoder = new Encoder(core, mEncodedBaseSize);
47 encode(encoder);
48 return encoder.getMessage();
49 }
50
51 /**
52 * Returns the serialization of the struct prepended with the given header.
53 *
54 * @param header the header to prepend to the returned message.
55 * @param core the |Core| implementation used to generate handles. Only used if the |Struct|
56 * being encoded contains interfaces, can be |null| otherwise.
57 */
58 public ServiceMessage serializeWithHeader(Core core, MessageHeader header) {
59 Encoder encoder = new Encoder(core, mEncodedBaseSize + header.getSize()) ;
60 header.encode(encoder);
61 encode(encoder);
62 return new ServiceMessage(encoder.getMessage(), header);
63 }
64
65 /**
66 * Use the given encoder to serialize this data structure.
67 */
68 protected abstract void encode(Encoder encoder);
69 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698