|
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 #include "nsISupports.idl" |
|
6 |
|
7 /** |
|
8 * This interface exposes the general notion of a scheduled object with a |
|
9 * integral priority value. Following UNIX conventions, smaller (and possibly |
|
10 * negative) values have higher priority. |
|
11 * |
|
12 * This interface does not strictly define what happens when the priority of an |
|
13 * object is changed. An implementation of this interface is free to define |
|
14 * the side-effects of changing the priority of an object. In some cases, |
|
15 * changing the priority of an object may be disallowed (resulting in an |
|
16 * exception being thrown) or may simply be ignored. |
|
17 */ |
|
18 [scriptable, uuid(aa578b44-abd5-4c19-8b14-36d4de6fdc36)] |
|
19 interface nsISupportsPriority : nsISupports |
|
20 { |
|
21 /** |
|
22 * Typical priority values. |
|
23 */ |
|
24 const long PRIORITY_HIGHEST = -20; |
|
25 const long PRIORITY_HIGH = -10; |
|
26 const long PRIORITY_NORMAL = 0; |
|
27 const long PRIORITY_LOW = 10; |
|
28 const long PRIORITY_LOWEST = 20; |
|
29 |
|
30 /** |
|
31 * This attribute may be modified to change the priority of this object. The |
|
32 * implementation of this interface is free to truncate a given priority |
|
33 * value to whatever limits are appropriate. Typically, this attribute is |
|
34 * initialized to PRIORITY_NORMAL, but implementations may choose to assign a |
|
35 * different initial value. |
|
36 */ |
|
37 attribute long priority; |
|
38 |
|
39 /** |
|
40 * This method adjusts the priority attribute by a given delta. It helps |
|
41 * reduce the amount of coding required to increment or decrement the value |
|
42 * of the priority attribute. |
|
43 */ |
|
44 void adjustPriority(in long delta); |
|
45 }; |