ConnectionObserverI.java
// Copyright (c) ZeroC, Inc.
package com.zeroc.Ice;
import com.zeroc.Ice.Instrumentation.ConnectionObserver;
import com.zeroc.IceMX.ConnectionMetrics;
import com.zeroc.IceMX.ObserverWithDelegate;
/**
* @hidden Public because it's used by IceMX (via reflection).
*/
public class ConnectionObserverI extends ObserverWithDelegate<ConnectionMetrics, ConnectionObserver>
implements ConnectionObserver {
@Override
public void sentBytes(final int num) {
_sentBytes = num;
forEach(_sentBytesUpdate);
if (_delegate != null) {
_delegate.sentBytes(num);
}
}
@Override
public void receivedBytes(int num) {
_receivedBytes = num;
forEach(_receivedBytesUpdate);
if (_delegate != null) {
_delegate.receivedBytes(num);
}
}
private final MetricsUpdate<ConnectionMetrics> _sentBytesUpdate =
new MetricsUpdate<ConnectionMetrics>() {
@Override
public void update(ConnectionMetrics v) {
v.sentBytes += _sentBytes;
}
};
private final MetricsUpdate<ConnectionMetrics> _receivedBytesUpdate =
new MetricsUpdate<ConnectionMetrics>() {
@Override
public void update(ConnectionMetrics v) {
v.receivedBytes += _receivedBytes;
}
};
private int _sentBytes;
private int _receivedBytes;
}