/*
* Slots.java
* (FScape)
*
* Copyright (c) 2001-2016 Hanns Holger Rutz. All rights reserved.
*
* This software is published under the GNU General Public License v3+
*
*
* For further information, please contact Hanns Holger Rutz at
* contact@sciss.de
*/
package de.sciss.fscape.util;
import java.io.*;
import java.rmi.*;
import java.util.*;
import de.sciss.fscape.op.SlotAlreadyConnectedException;
public interface Slots
{
// Flags
public static final int SLOTS_STATUSMASK = 0x0F;
public static final int SLOTS_TYPEMASK = 0xF0;
public static final int SLOTS_FREE = 0x01;
public static final int SLOTS_LINKED = 0x02;
public static final int SLOTS_READER = 0x10;
public static final int SLOTS_WRITER = 0x20;
public static final int SLOTS_ANY = 0;
// Common names
public static final String SLOTS_DEFREADER = "in";
public static final String SLOTS_DEFWRITER = "out";
/**
* Liefert eine Aufzaehlung der Slotnamen mit gewuenschtem Filter
*
* @param filter SLOTS_..., z.B. SLOTS_READER | SLOTS_FREE liefert nur frei Leseslots
* @return Aufzaehlung der Slots, evtl. leere Aufzaehlung
*/
public Vector getSlots( int filter );
/**
* Liefert das Slotobjekt mit gewuenschtem Filter
*
* @param name Slotname
* @return Slotobjekt oder null, wenn nicht vorhanden
*/
public Object getSlot( String name );
/**
* Verknuepft einen Slot dieses Objects mit einem eines anderen
*
* @param thisName Name des eigenen Slots
* @param destSlots Ziel-Slots-Objekt
* @param destName Name des Ziel-Slots
*/
public void linkTo( String thisName, Slots destSlots, String destName )
throws SyncFailedException, SlotAlreadyConnectedException, NoSuchElementException;
public void divorceFrom( String thisName, Slots srcSlots, String srcName )
throws NotBoundException, NoSuchElementException;
}
// interface Slots