|
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
|
2 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
3 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
5 |
|
6 /* |
|
7 |
|
8 An interface used for runtime pseudo-aggregation of RDF delegate |
|
9 objects. |
|
10 |
|
11 */ |
|
12 |
|
13 #include "nsrootidl.idl" |
|
14 #include "nsISupports.idl" |
|
15 interface nsIRDFResource; |
|
16 |
|
17 /** |
|
18 * This interface should be implemented by an XPCOM factory that |
|
19 * is registered to handle "@mozilla.org/rdf/delegate-factory/[key]/[scheme];1" |
|
20 * ContractIDs. |
|
21 * |
|
22 * The factory will be invoked to create delegate objects from |
|
23 * nsIRDFResource::GetDelegate(). |
|
24 */ |
|
25 [scriptable, uuid(A1B89470-A124-11d3-BE59-0020A6361667)] |
|
26 interface nsIRDFDelegateFactory : nsISupports |
|
27 { |
|
28 /** |
|
29 * Create a delegate for the specified RDF resource. |
|
30 * |
|
31 * The created delegate should forward AddRef() and Release() |
|
32 * calls to the aOuter object. |
|
33 */ |
|
34 void CreateDelegate(in nsIRDFResource aOuter, |
|
35 in string aKey, |
|
36 in nsIIDRef aIID, |
|
37 [retval, iid_is(aIID)] out nsQIResult aResult); |
|
38 }; |
|
39 |
|
40 |