// Copyright 2013 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. module sample { enum BarType { BAR_VERTICAL = 1, BAR_HORIZONTAL = 2, BAR_INVALID }; struct Bar { uint8 alpha @0; uint8 beta @1; uint8 gamma @2; int32 type @3; }; [RequiredFields=7] struct Foo { string name @8; int32 x @0; int32 y @1; bool a @2; bool b @3; bool c @4; Bar bar @5; Bar[] extra_bars @7; uint8[] data @6; handle<message_pipe> source @9; }; [Peer=ServiceClient] interface Service { void Frobinate(Foo foo @0, bool baz @1, handle<message_pipe> port @2) @0; }; [Peer=Service] interface ServiceClient { void DidFrobinate(int32 result @0) @0; }; }