RailSignalAPI/src/main/java/nl/andrewl/railsignalapi/live/ComponentDownlink.java

30 lines
678 B
Java

package nl.andrewl.railsignalapi.live;
import lombok.Getter;
/**
* A downlink connection to one or more components (linked by a {@link nl.andrewl.railsignalapi.model.LinkToken}
* which we can send messages to.
*/
public abstract class ComponentDownlink {
@Getter
private final long tokenId;
public ComponentDownlink(long tokenId) {
this.tokenId = tokenId;
}
public abstract void send(Object msg) throws Exception;
public abstract void shutdown() throws Exception;
@Override
public boolean equals(Object o) {
return o instanceof ComponentDownlink cd && cd.tokenId == this.tokenId;
}
@Override
public int hashCode() {
return Long.hashCode(tokenId);
}
}