001package jmri.jmrit.ussctc;
002
003/**
004 * A Section is the base type for the pieces that make up and are referenced by a {@link jmri.jmrit.ussctc.Station}.
005 * <p>
006 * The type argument defines the communications from central to field and from field to central
007 * @author Bob Jacobsen Copyright (C) 2007, 2017
008 */
009public interface CentralSection<To extends Enum<To>, From extends Enum<From>> {
010
011    /**
012     * Inform central CTC machine part of section that a code-send operation (from central to field)
013     * has started and obtain the value to be sent over the line.
014     * @return The value to be conveyed to the field.
015     */
016    To codeSendStart();
017    
018    /**
019     * Provides the code sequence to the central CTC machine at the end of the indication-send operation.
020     * @param value to be conveyed.
021     */
022    void indicationComplete(From value);
023    
024}