// 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 {

// This sample shows how handles to MessagePipes can be sent as both parameters
// to methods as well as fields on structs.

struct Request {
  int32 x;
  handle<message_pipe> pipe;
};

struct Response {
  int32 x;
  handle<message_pipe> pipe;
};

[Peer=FactoryClient]
interface Factory {
  void DoStuff(Request request, handle<message_pipe> pipe);
};

[Peer=Factory]
interface FactoryClient {
  void DidStuff(Response response, string text);
};

}  // module sample