CLOSED TREE: TraceMonkey merge head. (a=blockers)
[mozilla-central.git] / xpcom / threads / nsISupportsPriority.idl
blobc97d2dce52e354d00ea8f56acac91b5c86940eef
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
12 * License.
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.
21 * Contributor(s):
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"
39 /**
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
53 /**
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;
62 /**
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;
71 /**
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);