Exemple #1
0
  @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();
  }