1 /* ***** BEGIN LICENSE BLOCK *****
2 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
4 * The contents of this file are subject to the Mozilla Public License Version
5 * 1.1 (the "License"); you may not use this file except in compliance with
6 * the License. You may obtain a copy of the License at
7 * http://www.mozilla.org/MPL/
9 * Software distributed under the License is distributed on an "AS IS" basis,
10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11 * for the specific language governing rights and limitations under the
14 * The Original Code is Mozilla.
16 * The Initial Developer of the Original Code is
17 * Darin Fisher <darin@meer.net>.
18 * Portions created by the Initial Developer are Copyright (C) 2004
19 * the Initial Developer. All Rights Reserved.
23 * Alternatively, the contents of this file may be used under the terms of
24 * either the GNU General Public License Version 2 or later (the "GPL"), or
25 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
26 * in which case the provisions of the GPL or the LGPL are applicable instead
27 * of those above. If you wish to allow use of your version of this file only
28 * under the terms of either the GPL or the LGPL, and not to allow others to
29 * use your version of this file under the terms of the MPL, indicate your
30 * decision by deleting the provisions above and replace them with the notice
31 * and other provisions required by the GPL or the LGPL. If you do not delete
32 * the provisions above, a recipient may use your version of this file under
33 * the terms of any one of the MPL, the GPL or the LGPL.
35 * ***** END LICENSE BLOCK ***** */
37 #include
"nsISupports.idl"
40 * This interface exposes the general notion of a scheduled object with a
41 * integral priority value. Following UNIX conventions, smaller (and possibly
42 * negative) values have higher priority.
44 * This interface does not strictly define what happens when the priority of an
45 * object is changed. An implementation of this interface is free to define
46 * the side-effects of changing the priority of an object. In some cases,
47 * changing the priority of an object may be disallowed (resulting in an
48 * exception being thrown) or may simply be ignored.
50 [scriptable
, uuid(aa578b44
-abd5
-4c19
-8b14
-36d4de6fdc36
)]
51 interface nsISupportsPriority
: nsISupports
54 * Typical priority values.
56 const long PRIORITY_HIGHEST
= -20;
57 const long PRIORITY_HIGH
= -10;
58 const long PRIORITY_NORMAL
= 0;
59 const long PRIORITY_LOW
= 10;
60 const long PRIORITY_LOWEST
= 20;
63 * This attribute may be modified to change the priority of this object. The
64 * implementation of this interface is free to truncate a given priority
65 * value to whatever limits are appropriate. Typically, this attribute is
66 * initialized to PRIORITY_NORMAL, but implementations may choose to assign a
67 * different initial value.
69 attribute
long priority
;
72 * This method adjusts the priority attribute by a given delta. It helps
73 * reduce the amount of coding required to increment or decrement the value
74 * of the priority attribute.
76 void adjustPriority
(in long delta
);