APIMeter update the included value on each click

This change update the internal value on each time click, after this
change the rate calculation will be done on the proxy at the price of
continuesly query the server. It is yet to be determine if this is a
problem, if so, it is possible to do and store those calculation on the
server and just pull them on demend.

Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This commit is contained in:
Amnon Heiman 2015-06-18 11:48:14 +03:00
parent d1f85080b4
commit 1cf0279644

View File

@ -21,9 +21,25 @@ public class APIMeter extends Meter {
url = _url; url = _url;
} }
@Override public long get_value() {
public long count() {
return c.getLongValue(url); return c.getLongValue(url);
} }
// Meter doesn't have a set value method.
// to mimic it, we clear the old value and set it to a new one.
// This is safe because the only this method would be used
// to update the values
public long set(long new_value) {
long res = super.count();
mark(-res);
mark(new_value);
return res;
}
@Override
void tick() {
set(get_value());
super.tick();
}
} }