/* * @(#)InputConnector.java 1.5 02/08/21 * * Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved. */ package com.sun.media; import javax.media.*; /** * InputConnector defines the buffer movement and format typing * interface for input connectors. * * @see OutputConnector * */ public interface InputConnector extends Connector { /** * Return the OutputConnector this InputConnector is connected * to. If this Connector is unconnected return null. */ public OutputConnector getOutputConnector(); /** * Sets the OutputConnector this InputConnector is connected * to. This method is called by the connectTo() method of the OutputConnector. */ public void setOutputConnector(OutputConnector outputConnector); /** * checks if there are valid Buffer objects in the Connector's queue. * @return if there are vaild Buffer objects in the Connector's queue. */ public boolean isValidBufferAvailable(); /** * Get buffer object containing media.<br> * The exact behavior depands on the protocol: * <ul> * <li><b>ProtocolPush</b> - if buffer is not available throws RuntimeException </li> * <li><b>ProtocolSafe</b> - if buffer is available read the buffer and perform notify() on the connection.<br> * if buffer is not available perform wait() on the connection. </li> * </ul> * */ public Buffer getValidBuffer(); /** * Indicates the oldest Buffer object got from this Connector was used and can * be "recycled" by the upstream Module.<br> * if such buffer Objects does not exists throws RuntimeException. * The exact behavior depands on the protocol: * <ul> * <li><b>ProtocolPush</b> - no operation. </li> * <li><b>ProtocolSafe</b> - perform notify() on the connection lock object.<br> * </ul> * */ public void readReport(); }