js/xpconnect/tests/idl/xpctest_params.idl

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:90097c7c4b2a
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5 /**
6 * Test pararameter passing and argument conversion.
7 *
8 * Each test method returns the value in 'b', and copies 'a' into 'b'. This lets
9 * us test return values, in params, and inout params (out params should be
10 * covered by the intersection of return values and inout).
11 */
12
13 #include "nsISupports.idl"
14
15 interface nsIXPCTestInterfaceA;
16 interface nsIXPCTestInterfaceB;
17
18 [scriptable, uuid(fe2b7433-ac3b-49ef-9344-b67228bfdd46)]
19 interface nsIXPCTestParams : nsISupports {
20
21 // These types correspond to the ones in typelib.py
22 boolean testBoolean(in boolean a, inout boolean b);
23 octet testOctet(in octet a, inout octet b);
24 short testShort(in short a, inout short b);
25 long testLong(in long a, inout long b);
26 long long testLongLong(in long long a, inout long long b);
27 unsigned short testUnsignedShort(in unsigned short a, inout unsigned short b);
28 unsigned long testUnsignedLong(in unsigned long a, inout unsigned long b);
29 unsigned long long testUnsignedLongLong(in unsigned long long a, inout unsigned long long b);
30 float testFloat(in float a, inout float b);
31 double testDouble(in double a, inout float b);
32 char testChar(in char a, inout char b);
33 string testString(in string a, inout string b);
34 wchar testWchar(in wchar a, inout wchar b);
35 wstring testWstring(in wstring a, inout wstring b);
36 DOMString testDOMString(in DOMString a, inout DOMString b);
37 AString testAString(in AString a, inout AString b);
38 AUTF8String testAUTF8String(in AUTF8String a, inout AUTF8String b);
39 ACString testACString(in ACString a, inout ACString b);
40 jsval testJsval(in jsval a, inout jsval b);
41
42 //
43 // Dependent parameters use the same types as above, but are handled much differently.
44 //
45
46 // Test arrays.
47 void testShortArray(in unsigned long aLength, [array, size_is(aLength)] in short a,
48 inout unsigned long bLength, [array, size_is(bLength)] inout short b,
49 out unsigned long rvLength, [retval, array, size_is(rvLength)] out short rv);
50 void testDoubleArray(in unsigned long aLength, [array, size_is(aLength)] in double a,
51 inout unsigned long bLength, [array, size_is(bLength)] inout double b,
52 out unsigned long rvLength, [retval, array, size_is(rvLength)] out double rv);
53 void testStringArray(in unsigned long aLength, [array, size_is(aLength)] in string a,
54 inout unsigned long bLength, [array, size_is(bLength)] inout string b,
55 out unsigned long rvLength, [retval, array, size_is(rvLength)] out string rv);
56 void testWstringArray(in unsigned long aLength, [array, size_is(aLength)] in wstring a,
57 inout unsigned long bLength, [array, size_is(bLength)] inout wstring b,
58 out unsigned long rvLength, [retval, array, size_is(rvLength)] out wstring rv);
59 void testInterfaceArray(in unsigned long aLength, [array, size_is(aLength)] in nsIXPCTestInterfaceA a,
60 inout unsigned long bLength, [array, size_is(bLength)] inout nsIXPCTestInterfaceA b,
61 out unsigned long rvLength, [retval, array, size_is(rvLength)] out nsIXPCTestInterfaceA rv);
62
63 // Test sized strings.
64 void testSizedString(in unsigned long aLength, [size_is(aLength)] in string a,
65 inout unsigned long bLength, [size_is(bLength)] inout string b,
66 out unsigned long rvLength, [retval, size_is(rvLength)] out string rv);
67 void testSizedWstring(in unsigned long aLength, [size_is(aLength)] in wstring a,
68 inout unsigned long bLength, [size_is(bLength)] inout wstring b,
69 out unsigned long rvLength, [retval, size_is(rvLength)] out wstring rv);
70
71 // Test iid_is.
72 void testInterfaceIs(in nsIIDPtr aIID, [iid_is(aIID)] in nsQIResult a,
73 inout nsIIDPtr bIID, [iid_is(bIID)] inout nsQIResult b,
74 out nsIIDPtr rvIID, [retval, iid_is(rvIID)] out nsQIResult rv);
75
76 // Test arrays of iid_is. According to khuey we don't use it for anything
77 // in mozilla-central, but calendar stuff depends on it.
78 void testInterfaceIsArray(in unsigned long aLength, in nsIIDPtr aIID,
79 [array, size_is(aLength), iid_is(aIID)] in nsQIResult a,
80 inout unsigned long bLength, inout nsIIDPtr bIID,
81 [array, size_is(bLength), iid_is(bIID)] inout nsQIResult b,
82 out unsigned long rvLength, out nsIIDPtr rvIID,
83 [retval, array, size_is(rvLength), iid_is(rvIID)] out nsQIResult rv);
84 };

mercurial