001package jmri.jmrix.qsi;
002
003/**
004 * Define interface for sending and receiving messages to the QSI command
005 * station.
006 *
007 * @author Bob Jacobsen Copyright (C) 2001
008 */
009public interface QsiInterface {
010
011    void addQsiListener(QsiListener l);
012
013    void removeQsiListener(QsiListener l);
014
015    /**
016     * Test operational status of interface.
017     *
018     * @return true is interface implementation is operational
019     */
020    boolean status();
021
022    /**
023     * Send a message through the interface.
024     *
025     * @param m Message to be sent.
026     * @param l Listener to be notified of reply.
027     */
028    void sendQsiMessage(QsiMessage m, QsiListener l);
029
030}