package io.vertx.core.eventbus.impl;
import io.vertx.core.impl.ContextInternal;
import java.util.Objects;
public class HandlerHolder<T> {
public final ContextInternal context;
public final HandlerRegistration<T> handler;
public final boolean replyHandler;
public final boolean localOnly;
private boolean removed;
public HandlerHolder(HandlerRegistration<T> handler, boolean replyHandler, boolean localOnly, ContextInternal context) {
this.context = context;
this.handler = handler;
this.replyHandler = replyHandler;
this.localOnly = localOnly;
}
boolean setRemoved() {
boolean unregistered = false;
synchronized (this) {
if (!removed) {
removed = true;
unregistered = true;
}
}
return unregistered;
}
public synchronized boolean isRemoved() {
return removed;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
HandlerHolder<?> that = (HandlerHolder<?>) o;
return Objects.equals(handler, that.handler);
}
@Override
public int hashCode() {
return Objects.hashCode(handler);
}
public long getSeq() {
return 0;
}
public ContextInternal getContext() {
return context;
}
public HandlerRegistration<T> getHandler() {
return handler;
}
public boolean isReplyHandler() {
return replyHandler;
}
public boolean isLocalOnly() {
return localOnly;
}
}