@Override public void updateFlush() { Date date = new Date(); Map<String, MutableInt> pktin_buffer = this.pktin_local_buffer.get(); for (String key : pktin_buffer.keySet()) { MutableInt currval = pktin_buffer.get(key); int delta = currval.get(); if (delta > 0) { List<ICounter> counters = this.pktinCounters.get(key); if (counters != null) { for (ICounter c : counters) { c.increment(date, delta); } } } } // We could do better "GC" of counters that have not been update "recently" pktin_buffer.clear(); Map<String, MutableInt> pktout_buffer = this.pktout_local_buffer.get(); for (String key : pktout_buffer.keySet()) { MutableInt currval = pktout_buffer.get(key); int delta = currval.get(); if (delta > 0) { List<ICounter> counters = this.pktoutCounters.get(key); if (counters != null) { for (ICounter c : counters) { c.increment(date, delta); } } } } // We could do better "GC" of counters that have not been update "recently" pktout_buffer.clear(); }