package erjang.m.erlang;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import erjang.EAtom;
import erjang.EInternalPort;
public class DistEntry {
static Map<EAtom, DistEntry> table = new ConcurrentHashMap<EAtom, DistEntry>();
static {
}
private final EAtom sysname;
private final EInternalPort cid;
public int flags;
public DistEntry(EAtom sysname, EInternalPort cid) {
this.sysname = sysname;
this.cid = cid;
table.put(sysname, this);
}
/** get DistEntry for sysname (may return null) */
static DistEntry find(EAtom sysname) {
return table.get(sysname);
}
static DistEntry find_or_insert(EAtom sysname) {
DistEntry ent = table.get(sysname);
if (ent == null) {
return new DistEntry(sysname, null);
} else {
return ent;
}
}
static DistEntry sysname_to_connected_dist_entry(EAtom sysname) {
DistEntry ent = table.get(sysname);
if (ent == null) {
return null;
} else {
return ent.cid == null ? null : ent;
}
}
}