/// <summary> /// Write a new style (R6 and later) Erlang ref to the stream /// </summary> public void WriteRef(ErlRef r) { Debug.Assert(r != ErlRef.Null); Debug.Assert(r.Ids.Length == 3); int arity = (int)(r.Ids.Length); // r6 ref write(ErlExternalTag.NewRef); // how many id values Write2BE(arity); WriteAtom(r.Node); // note: creation BEFORE id in r6 ref Write1(r.Creation & 0x3); // 2 bits // first int gets truncated to 18 bits Write4BE(r.Ids[0]); Write4BE(r.Ids[1]); Write4BE(r.Ids[2]); }
public void Down(ErlRef eref, ErlPid pid, ErlAtom reason) { // TODO throw new NotImplementedException(); }
internal static ErlMsg MonitorPexit(IErlObject from, ErlPid dest, ErlRef eref, IErlObject reason) { return(new ErlMsg(Tag.MonitorPexit, from, dest, eref: eref, reason: reason)); }
public ErlDown(ErlRef eref, ErlPid pid, IErlObject reason) : base(pid, reason) { Ref = eref; }
internal static ErlMsg DemonitorP(ErlPid from, IErlObject /* Pid or Atom */ dest, ErlRef eref) { return(new ErlMsg(Tag.DemonitorP, from, dest, eref: eref)); }