01: /*
02: * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
03: */
04: package com.tcsimulator.listener;
05:
06: import com.tc.simulator.listener.StatsListener;
07:
08: import java.util.Iterator;
09: import java.util.Map;
10: import java.util.Properties;
11: import java.util.Map.Entry;
12:
13: import EDU.oswego.cs.dl.util.concurrent.LinkedQueue;
14:
15: public final class StatsListenerObject implements StatsListener {
16: private static final String TOKEN = "<app-perf>";
17: private final LinkedQueue outputQueue;
18:
19: private final String label;
20:
21: public StatsListenerObject(Properties properties,
22: LinkedQueue outputQueue) {
23: StringBuffer buf = new StringBuffer();
24: for (Iterator i = properties.entrySet().iterator(); i.hasNext();) {
25: Map.Entry entry = (Entry) i.next();
26: buf.append(entry.getKey() + "=" + entry.getValue());
27: if (i.hasNext()) {
28: buf.append(",");
29: }
30: }
31: this .label = buf.toString();
32: this .outputQueue = outputQueue;
33: }
34:
35: public void sample(long sampleValue, String desc) {
36: if (desc == null)
37: desc = "";
38: try {
39: outputQueue.put(TOKEN + label + desc + ": " + sampleValue);
40: } catch (InterruptedException e) {
41: throw new RuntimeException(e);
42: }
43: }
44:
45: }
|