package org.kairosdb.plugin.carbon.pickle; import net.razorvine.pickle.Opcodes; import java.io.IOException; import java.io.OutputStream; import java.util.List; /** Created with IntelliJ IDEA. User: bhawkins Date: 10/7/13 Time: 10:31 AM To change this template use File | Settings | File Templates. */ public class Pickler extends net.razorvine.pickle.Pickler { public static final byte PROTOCOL = 2; private OutputStream m_out; public void writeMetrics(List<PickleMetric> metrics, OutputStream out) throws IOException { m_out = out; dump(metrics, out); } @Override public void save(Object o) throws IOException { if (o instanceof PickleMetric) { PickleMetric metric = (PickleMetric) o; save(metric.getPath()); save((double)metric.getTime()); /*m_out.write(Opcodes.INT); m_out.write(String.valueOf(metric.getTime()).getBytes()); m_out.write('\n');*/ if (metric.isLongValue()) save(metric.getLongValue()); else save(metric.getDoubleValue()); m_out.write(Opcodes.TUPLE2); m_out.write(Opcodes.TUPLE2); } else super.save(o); } }