PeerMetricConverterFactory.java
- /*
- * @copyright defined in LICENSE.txt
- */
- package hera.transport;
- import static org.slf4j.LoggerFactory.getLogger;
- import hera.api.function.Function1;
- import hera.api.model.PeerMetric;
- import hera.util.Base58Utils;
- import org.slf4j.Logger;
- import types.Metric;
- public class PeerMetricConverterFactory {
- protected final transient Logger logger = getLogger(getClass());
- protected final Function1<PeerMetric, Metric.PeerMetric> domainConverter =
- new Function1<PeerMetric, Metric.PeerMetric>() {
- @Override
- public Metric.PeerMetric apply(final PeerMetric domainPeer) {
- throw new UnsupportedOperationException();
- }
- };
- protected final Function1<Metric.PeerMetric, PeerMetric> rpcConverter =
- new Function1<Metric.PeerMetric, PeerMetric>() {
- @Override
- public PeerMetric apply(final Metric.PeerMetric rpcPeerMetric) {
- logger.trace("Rpc peer metric to convert: {}", rpcPeerMetric);
- final PeerMetric domainPeerMetric = PeerMetric.newBuilder()
- .peerId(Base58Utils.encode(rpcPeerMetric.getPeerID().toByteArray()))
- .sumIn(rpcPeerMetric.getSumIn())
- .sumOut(rpcPeerMetric.getSumOut())
- .averageIn(rpcPeerMetric.getAvrIn())
- .averageOut(rpcPeerMetric.getAvrOut())
- .build();
- logger.trace("Domain peer metric converted: {}", domainPeerMetric);
- return domainPeerMetric;
- }
- };
- public ModelConverter<PeerMetric, Metric.PeerMetric> create() {
- return new ModelConverter<PeerMetric, Metric.PeerMetric>(domainConverter, rpcConverter);
- }
- }