/*
 * BEGIN FLOCK GPL
 *
 * Copyright Flock Inc. 2005-2008
 * http://flock.com
 *
 * This file may be used under the terms of the
 * GNU General Public License Version 2 or later (the "GPL"),
 * http://www.gnu.org/licenses/gpl.html
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * END FLOCK GPL
 */

#include "nsISupports.idl"
#include "nsIEnumerator.idl"

[scriptable, uuid(B5C002D5-718D-46B9-98A3-DA766D74F4CE)]
interface flockIPQEnumerator: nsIEnumerator {
	nsISupports getNext();
	PRBool hasMoreElements();
};

[scriptable, uuid(df1cc8a4-4367-11db-8929-0016cbca64d1)]
interface flockIPriorityQueue: nsISupports {
  void push(in nsISupports element);
  nsISupports pop();
};

%{C++


#define FLOCK_PRIORITYQUEUE_CID \
{ 0xdf1cc8a4, 0x4367, 0x11db, { 0x89, 0x29, 0x0, 0x16, 0xcb, 0xca, 0x64, 0xd1 } }

#define FLOCK_PRIORITYQUEUE_CLASSNAME "Flock Priority Queue"
#define FLOCK_PRIORITYQUEUE_CONTRACTID "@flock.com/priority-queue;1"


%}
