30 lines
678 B
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);
|
|
}
|
|
}
|