package org.yamcs.yarch; import java.util.Collection; public interface Stream { //states public final static int SETUP = 0; public final static int RUNNING = 1; public final static int QUITTING = 2; /** * Start emitting tuples. */ public abstract void start(); public abstract TupleDefinition getDefinition(); public abstract void emitTuple(Tuple t); public abstract String getName(); public abstract void setName(String streamName); public abstract void addSubscriber(StreamSubscriber s); public abstract void removeSubscriber(StreamSubscriber s); public abstract ColumnDefinition getColumnDefinition(String colName); /** * Closes the stream by: * send the streamClosed signal to all subscribed clients */ public abstract void close(); public abstract int getState(); public abstract long getNumEmittedTuples(); public abstract int getSubscriberCount(); public abstract Collection<StreamSubscriber> getSubscribers(); }