package scouter.agent.trace;
import scouter.lang.step.ThreadCallPossibleStep;
import scouter.util.IntKeyLinkedMap;
public class TransferMap {
public static class ID {
public long gxid;
public long caller;
public long callee;
public byte xType;
public long callerThreadId;
public ThreadCallPossibleStep tcStep;
public ID(long gxid, long caller, long callee, byte xType) {
this(gxid, caller, callee, xType, 0L, null);
}
public ID(long gxid, long caller, long callee, byte xType, long callerThreadId, ThreadCallPossibleStep tcStep) {
this.gxid = gxid;
this.caller = caller;
this.callee = callee;
this.xType = xType;
this.callerThreadId = callerThreadId;
this.tcStep = tcStep;
}
}
private static IntKeyLinkedMap<ID> map = new IntKeyLinkedMap<ID>().setMax(2001);
public static void put(int hash, long gxid, long caller, long callee, byte xType) {
put(hash, gxid, caller, callee, xType, 0L, null);
}
public static void put(int hash, long gxid, long caller, long callee, byte xType, long callerThreadId, ThreadCallPossibleStep tcStep) {
map.put(hash, new ID(gxid, caller, callee, xType, callerThreadId, tcStep));
}
public static void remove(int hash) {
map.remove(hash);
}
public static ID get(int hash) {
return map.get(hash);
}
}