| Index: mojo/bindings/java/src/org/chromium/mojo/bindings/Struct.java
|
| diff --git a/mojo/bindings/java/src/org/chromium/mojo/bindings/Struct.java b/mojo/bindings/java/src/org/chromium/mojo/bindings/Struct.java
|
| index f7c16a2decb0fa75c54e0684ed020a1b6bfa9163..dc1742a3491a87a1b6385abc2dd65084fa1ede3a 100644
|
| --- a/mojo/bindings/java/src/org/chromium/mojo/bindings/Struct.java
|
| +++ b/mojo/bindings/java/src/org/chromium/mojo/bindings/Struct.java
|
| @@ -42,6 +42,35 @@ public abstract class Struct {
|
| this.size = size;
|
| this.numFields = numFields;
|
| }
|
| +
|
| + /**
|
| + * @see Object#hashCode()
|
| + */
|
| + @Override
|
| + public int hashCode() {
|
| + final int prime = 31;
|
| + int result = 1;
|
| + result = prime * result + numFields;
|
| + result = prime * result + size;
|
| + return result;
|
| + }
|
| +
|
| + /**
|
| + * @see Object#equals(Object)
|
| + */
|
| + @Override
|
| + public boolean equals(Object object) {
|
| + if (object == this)
|
| + return true;
|
| + if (object == null)
|
| + return false;
|
| + if (getClass() != object.getClass())
|
| + return false;
|
| +
|
| + DataHeader other = (DataHeader) object;
|
| + return (numFields == other.numFields &&
|
| + size == other.size);
|
| + }
|
| }
|
|
|
| /**
|
| @@ -73,4 +102,18 @@ public abstract class Struct {
|
| return encoder.getMessage();
|
| }
|
|
|
| + /**
|
| + * Returns the serialization of the struct prepended with the given header.
|
| + *
|
| + * @param header the header to prepend to the returned message.
|
| + * @param core the |Core| implementation used to generate handles. Only used if the |Struct|
|
| + * being encoded contains interfaces, can be |null| otherwise.
|
| + */
|
| + public MessageWithHeader serializeWithHeader(Core core, MessageHeader header) {
|
| + Encoder encoder = new Encoder(core, mEncodedBaseSize + header.getSize());
|
| + header.encode(encoder);
|
| + encode(encoder);
|
| + return new MessageWithHeader(encoder.getMessage(), header);
|
| + }
|
| +
|
| }
|
|
|