Package org.opennms.core.ipc.twin.common
Class AbstractTwinSubscriber
- java.lang.Object
-
- org.opennms.core.ipc.twin.common.AbstractTwinSubscriber
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,TwinSubscriber
- Direct Known Subclasses:
GrpcTwinSubscriber
,JmsTwinSubscriber
,KafkaTwinSubscriber
,LocalTwinSubscriberImpl
public abstract class AbstractTwinSubscriber extends java.lang.Object implements TwinSubscriber
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.String
TAG_TWIN_RPC_REQUEST
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractTwinSubscriber(Identity identity, TracerRegistry tracerRegistry, com.codahale.metrics.MetricRegistry metricRegistry)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
accept(TwinUpdate twinUpdate)
void
close()
Identity
getIdentity()
com.codahale.metrics.MetricRegistry
getMetrics()
io.opentracing.Tracer
getTracer()
TracerRegistry
getTracerRegistry()
protected TwinRequestProto
mapTwinRequestToProto(TwinRequest twinRequest)
protected TwinUpdate
mapTwinResponseToProto(byte[] responseBytes)
protected abstract void
sendRpcRequest(TwinRequest twinRequest)
<T> java.io.Closeable
subscribe(java.lang.String key, java.lang.Class<T> clazz, java.util.function.Consumer<T> consumer)
-
-
-
Field Detail
-
TAG_TWIN_RPC_REQUEST
protected static final java.lang.String TAG_TWIN_RPC_REQUEST
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AbstractTwinSubscriber
protected AbstractTwinSubscriber(Identity identity, TracerRegistry tracerRegistry, com.codahale.metrics.MetricRegistry metricRegistry)
-
-
Method Detail
-
sendRpcRequest
protected abstract void sendRpcRequest(TwinRequest twinRequest)
-
subscribe
public <T> java.io.Closeable subscribe(java.lang.String key, java.lang.Class<T> clazz, java.util.function.Consumer<T> consumer)
- Specified by:
subscribe
in interfaceTwinSubscriber
- Type Parameters:
T
- T is an object type that needs to be replicated from OpenNMS to Minion.- Parameters:
key
- Unique key for the object.clazz
- Specific bean class of T to marshal/unmarshal.consumer
- Consumer of T for subsequent updates to T.- Returns:
- Closeable to close the subscription of T.
-
accept
protected void accept(TwinUpdate twinUpdate)
-
mapTwinResponseToProto
protected TwinUpdate mapTwinResponseToProto(byte[] responseBytes)
-
mapTwinRequestToProto
protected TwinRequestProto mapTwinRequestToProto(TwinRequest twinRequest)
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Throws:
java.io.IOException
-
getTracer
public io.opentracing.Tracer getTracer()
-
getTracerRegistry
public TracerRegistry getTracerRegistry()
-
getMetrics
public com.codahale.metrics.MetricRegistry getMetrics()
-
getIdentity
public Identity getIdentity()
-
-