- /*
- * @(#)NotificationBuffer.java 1.4 03/12/19
- *
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- */
-
- package com.sun.jmx.remote.internal;
-
- import java.util.Set;
- import javax.management.remote.NotificationResult;
- import javax.management.remote.TargetedNotification;
-
- /** A buffer of notifications received from an MBean server. */
- public interface NotificationBuffer {
- /**
- * <p>Fetch notifications that match the given listeners.</p>
- *
- * <p>The operation only considers notifications with a sequence
- * number at least <code>startSequenceNumber</code>. It will take
- * no longer than <code>timeout</code>, and will return no more
- * than <code>maxNotifications</code> different notifications.</p>
- *
- * <p>If there are no notifications matching the criteria, the
- * operation will block until one arrives, subject to the
- * timeout.</p>
- *
- * @param listeners a Set of {@link ListenerInfo} that reflects
- * the filters to be applied to notifications. Accesses to this
- * Set are synchronized on the Set object. The Set is consulted
- * for selected notifications that are present when the method
- * starts, and for selected notifications that arrive while it is
- * executing. The contents of the Set can be modified, with
- * appropriate synchronization, while the method is running.
- * @param startSequenceNumber the first sequence number to
- * consider.
- * @param timeout the maximum time to wait. May be 0 to indicate
- * not to wait if there are no notifications.
- * @param maxNotifications the maximum number of notifications to
- * return. May be 0 to indicate a wait for eligible notifications
- * that will return a usable <code>nextSequenceNumber</code>. The
- * {@link TargetedNotification} array in the returned {@link
- * NotificationResult} may contain more than this number of
- * elements but will not contain more than this number of
- * different notifications.
- */
- public NotificationResult
- fetchNotifications(Set/*<ListenerInfo>*/ listeners,
- long startSequenceNumber,
- long timeout,
- int maxNotifications)
- throws InterruptedException;
-
- /**
- * <p>Discard this buffer.</p>
- */
- public void dispose();
- }