blob: d4ac365915939232b04bf929e0570449da79ced3 [file] [log] [blame]
// 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.
part of bindings;
abstract class Struct {
final int encodedSize;
Struct(this.encodedSize);
void encode(Encoder encoder);
Message serialize() {
var encoder = new Encoder(encodedSize);
encode(encoder);
return encoder.message;
}
ServiceMessage serializeWithHeader(MessageHeader header) {
var encoder = new Encoder(encodedSize + header.size);
header.encode(encoder);
encode(encoder);
return new ServiceMessage(encoder.message, header);
}
}