blob: 349b215f40eed3003e3d3c852e5de084dfb774f0 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004 Composent, Inc. and others. All rights reserved. This
* program and the accompanying materials are made available under the terms of
* the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors: Composent, Inc. - initial API and implementation
******************************************************************************/
package org.eclipse.ecf.core.sharedobject.util;
import org.eclipse.ecf.core.util.Event;
public interface IQueueDequeue {
/**
* Dequeue a single event. Returns null if no Events available for dequeue
*
* @return Event the Event dequeued. Null if queue is empty.
*/
Event dequeue();
/**
* Dequeue several events in one operation. num events are dequeued.
*
* @return Event[] the Events dequeue. Returns null if there are not
* sufficient events on queue to support dequeuing num events
*/
Event[] dequeue(int num);
/**
* Dequeue all available Events.
*
* @return Event[] the events on this queue. Returns null if there are no
* events in queue
*/
Event[] dequeue_all();
/**
* Dequeue a single Event. Blocks until an Event is available for dequeue,
* or until timeout_millis have elapsed. If timeout_millis is -1, dequeue
* does not timeout.
*
* @param timeout_millis
* the timeout for a dequeue in milliseconds.
*
* @return Event removed from queue. Returns null if no events on queue.
*/
Event blocking_dequeue(int timeout_millis);
/**
* Dequeue a multiple Events. Blocks until num Events are available for
* dequeue, or until timeout_millis have elapsed. If timeout_millis is -1,
* dequeue does not timeout.
*
* @param timeout_millis
* the timeout for a dequeue in milliseconds.
*
* @param num
* the number of Events to dequeue
*
* @return Event [] the num Events removed from queue
*/
Event[] blocking_dequeue(int timeout_millis, int num);
/**
* Dequeue all Events currently on queue. Blocks until num Events are
* available for dequeue, or until timeout_millis have elapsed. If
* timeout_millis is -1, dequeue does not timeout.
*
* @param timeout_millis
* the timeout for a dequeue in milliseconds.
*
* @return Event [] the num Events removed from queue
*/
Event[] blocking_dequeue_all(int timeout_millis);
/**
* Provide the current size of the queue (the number of Events) currently on
* the queue.
*
* @return size the int size of the queue
*/
int size();
}