js/xpconnect/tests/idl/xpctest_params.idl

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/xpconnect/tests/idl/xpctest_params.idl	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,84 @@
     1.4 +/* This Source Code Form is subject to the terms of the Mozilla Public
     1.5 + * License, v. 2.0. If a copy of the MPL was not distributed with this
     1.6 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     1.7 +
     1.8 +/**
     1.9 + * Test pararameter passing and argument conversion.
    1.10 + *
    1.11 + * Each test method returns the value in 'b', and copies 'a' into 'b'. This lets
    1.12 + * us test return values, in params, and inout params (out params should be
    1.13 + * covered by the intersection of return values and inout).
    1.14 + */
    1.15 +
    1.16 +#include "nsISupports.idl"
    1.17 +
    1.18 +interface nsIXPCTestInterfaceA;
    1.19 +interface nsIXPCTestInterfaceB;
    1.20 +
    1.21 +[scriptable, uuid(fe2b7433-ac3b-49ef-9344-b67228bfdd46)]
    1.22 +interface nsIXPCTestParams : nsISupports {
    1.23 +
    1.24 +  // These types correspond to the ones in typelib.py
    1.25 +  boolean               testBoolean(in boolean a, inout boolean b);
    1.26 +  octet                 testOctet(in octet a, inout octet b);
    1.27 +  short                 testShort(in short a, inout short b);
    1.28 +  long                  testLong(in long a, inout long b);
    1.29 +  long long             testLongLong(in long long a, inout long long b);
    1.30 +  unsigned short        testUnsignedShort(in unsigned short a, inout unsigned short b);
    1.31 +  unsigned long         testUnsignedLong(in unsigned long a, inout unsigned long b);
    1.32 +  unsigned long long    testUnsignedLongLong(in unsigned long long a, inout unsigned long long b);
    1.33 +  float                 testFloat(in float a, inout float b);
    1.34 +  double                testDouble(in double a, inout float b);
    1.35 +  char                  testChar(in char a, inout char b);
    1.36 +  string                testString(in string a, inout string b);
    1.37 +  wchar                 testWchar(in wchar a, inout wchar b);
    1.38 +  wstring               testWstring(in wstring a, inout wstring b);
    1.39 +  DOMString             testDOMString(in DOMString a, inout DOMString b);
    1.40 +  AString               testAString(in AString a, inout AString b);
    1.41 +  AUTF8String           testAUTF8String(in AUTF8String a, inout AUTF8String b);
    1.42 +  ACString              testACString(in ACString a, inout ACString b);
    1.43 +  jsval                 testJsval(in jsval a, inout jsval b);
    1.44 +
    1.45 +  //
    1.46 +  // Dependent parameters use the same types as above, but are handled much differently.
    1.47 +  //
    1.48 +
    1.49 +  // Test arrays.
    1.50 +  void                  testShortArray(in unsigned long aLength, [array, size_is(aLength)] in short a,
    1.51 +                                       inout unsigned long bLength, [array, size_is(bLength)] inout short b,
    1.52 +                                       out unsigned long rvLength, [retval, array, size_is(rvLength)] out short rv);
    1.53 +  void                  testDoubleArray(in unsigned long aLength, [array, size_is(aLength)] in double a,
    1.54 +                                        inout unsigned long bLength, [array, size_is(bLength)] inout double b,
    1.55 +                                        out unsigned long rvLength, [retval, array, size_is(rvLength)] out double rv);
    1.56 +  void                  testStringArray(in unsigned long aLength, [array, size_is(aLength)] in string a,
    1.57 +                                        inout unsigned long bLength, [array, size_is(bLength)] inout string b,
    1.58 +                                        out unsigned long rvLength, [retval, array, size_is(rvLength)] out string rv);
    1.59 +  void                  testWstringArray(in unsigned long aLength, [array, size_is(aLength)] in wstring a,
    1.60 +                                         inout unsigned long bLength, [array, size_is(bLength)] inout wstring b,
    1.61 +                                         out unsigned long rvLength, [retval, array, size_is(rvLength)] out wstring rv);
    1.62 +  void                  testInterfaceArray(in unsigned long aLength, [array, size_is(aLength)] in nsIXPCTestInterfaceA a,
    1.63 +                                           inout unsigned long bLength, [array, size_is(bLength)] inout nsIXPCTestInterfaceA b,
    1.64 +                                           out unsigned long rvLength, [retval, array, size_is(rvLength)] out nsIXPCTestInterfaceA rv);
    1.65 +
    1.66 +  // Test sized strings.
    1.67 +  void                  testSizedString(in unsigned long aLength, [size_is(aLength)] in string a,
    1.68 +                                        inout unsigned long bLength, [size_is(bLength)] inout string b,
    1.69 +                                        out unsigned long rvLength, [retval, size_is(rvLength)] out string rv);
    1.70 +  void                  testSizedWstring(in unsigned long aLength, [size_is(aLength)] in wstring a,
    1.71 +                                         inout unsigned long bLength, [size_is(bLength)] inout wstring b,
    1.72 +                                         out unsigned long rvLength, [retval, size_is(rvLength)] out wstring rv);
    1.73 +
    1.74 +  // Test iid_is.
    1.75 +  void                  testInterfaceIs(in nsIIDPtr aIID, [iid_is(aIID)] in nsQIResult a,
    1.76 +                                        inout nsIIDPtr bIID, [iid_is(bIID)] inout nsQIResult b,
    1.77 +                                        out nsIIDPtr rvIID, [retval, iid_is(rvIID)] out nsQIResult rv);
    1.78 +
    1.79 +  // Test arrays of iid_is. According to khuey we don't use it for anything
    1.80 +  // in mozilla-central, but calendar stuff depends on it.
    1.81 +  void                  testInterfaceIsArray(in unsigned long aLength, in nsIIDPtr aIID,
    1.82 +                                             [array, size_is(aLength), iid_is(aIID)] in nsQIResult a,
    1.83 +                                             inout unsigned long bLength, inout nsIIDPtr bIID,
    1.84 +                                             [array, size_is(bLength), iid_is(bIID)] inout nsQIResult b,
    1.85 +                                             out unsigned long rvLength, out nsIIDPtr rvIID,
    1.86 +                                             [retval, array, size_is(rvLength), iid_is(rvIID)] out nsQIResult rv);
    1.87 +};

mercurial