Files
JIMRI/java/test/jmri/jmrix/can/TrafficControllerScaffoldLoopback.java
T
2026-06-17 14:00:51 +02:00

52 lines
1.4 KiB
Java

package jmri.jmrix.can;
import jmri.jmrix.AbstractMRListener;
import jmri.jmrix.AbstractMRMessage;
import jmri.jmrix.AbstractMRReply;
/**
* Stands in for the can.TrafficController class
* Passes a CanMessage or CanReply to any internal listeners
* You should normally use TrafficControllerScaffold, not this.
*
* @author Steve Young (c) 2019
*/
public class TrafficControllerScaffoldLoopback extends TrafficControllerScaffold {
public TrafficControllerScaffoldLoopback() {
}
// forwards to any listeners
@Override
public void forwardMessage(AbstractMRListener l, AbstractMRMessage r) {
if ( l instanceof CanListener && r instanceof CanMessage ) {
((CanListener) l).message((CanMessage) r);
}
}
// forwards to any listeners
@Override
public void forwardReply(AbstractMRListener l, AbstractMRReply r) {
if ( l instanceof CanListener && r instanceof CanReply ) {
((CanListener) l).reply((CanReply) r);
}
}
@Override
public void sendCanMessage(CanMessage m, CanListener l) {
// save a copy
outbound.addElement(m);
mLastSender = l;
notifyMessage(m, l);
}
@Override
public void sendCanReply(CanReply r, CanListener l) {
// save a copy
inbound.addElement(r);
mLastSender = l;
notifyReply(r, l);
}
}