Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / mojo / public / interfaces / bindings / tests / sample_factory.mojom
1 // Copyright 2013 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 [JavaPackage="org.chromium.mojo.bindings.test.mojom.sample"]
6 module sample;
7
8 import "sample_import.mojom";
9
10 // This sample shows how handles to MessagePipes can be sent as both parameters
11 // to methods as well as fields on structs.
12
13 struct Request {
14   int32 x;
15   handle<message_pipe>? pipe;
16   array<handle<message_pipe>>? more_pipes;
17
18   // Interfaces can be used as members.
19   imported.ImportedInterface? obj;
20 };
21
22 struct Response {
23   int32 x;
24   handle<message_pipe>? pipe;
25 };
26
27 interface NamedObject {
28   SetName(string name);
29   GetName() => (string name);
30 };
31
32 [Client=FactoryClient]
33 interface Factory {
34   DoStuff(Request request, handle<message_pipe>? pipe);
35   DoStuff2(handle<data_pipe_consumer> pipe);
36   CreateNamedObject(NamedObject& obj);
37   RequestImportedInterface(
38       imported.ImportedInterface& obj) => (imported.ImportedInterface& obj);
39   TakeImportedInterface(
40       imported.ImportedInterface obj) => (imported.ImportedInterface obj);
41 };
42
43 interface FactoryClient {
44   DidStuff(Response response, string text);
45   DidStuff2(string text);
46 };