/* * Copyright (c) 2011-2013 The original author or authors * ------------------------------------------------------ * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * and Apache License v2.0 which accompanies this distribution. * * The Eclipse Public License is available at * http://www.eclipse.org/legal/epl-v10.html * * The Apache License v2.0 is available at * http://www.opensource.org/licenses/apache2.0.php * * You may elect to redistribute this code under either of these licenses. */ package io.vertx.test.fakemetrics; import io.vertx.core.metrics.Measured; import io.vertx.core.net.SocketAddress; import io.vertx.core.spi.metrics.DatagramSocketMetrics; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * @author <a href="mailto:julien@julienviet.com">Julien Viet</a> */ public class FakeDatagramSocketMetrics extends FakeMetricsBase implements DatagramSocketMetrics { private volatile String localName; private volatile SocketAddress localAddress; private final List<PacketMetric> reads = Collections.synchronizedList(new ArrayList<>()); private final List<PacketMetric> writes = Collections.synchronizedList(new ArrayList<>()); public FakeDatagramSocketMetrics(Measured measured) { super(measured); } public String getLocalName() { return localName; } public SocketAddress getLocalAddress() { return localAddress; } public List<PacketMetric> getReads() { return reads; } public List<PacketMetric> getWrites() { return writes; } @Override public void listening(String localName, SocketAddress localAddress) { this.localName = localName; this.localAddress = localAddress; } @Override public void bytesRead(Void socketMetric, SocketAddress remoteAddress, long numberOfBytes) { reads.add(new PacketMetric(remoteAddress, numberOfBytes)); } @Override public void bytesWritten(Void socketMetric, SocketAddress remoteAddress,long numberOfBytes) { writes.add(new PacketMetric(remoteAddress, numberOfBytes)); } @Override public void exceptionOccurred(Void socketMetric, SocketAddress remoteAddress, Throwable t) { } @Override public boolean isEnabled() { return true; } @Override public void close() { } }