package org.jerlang.erts.erlang; import org.jerlang.type.Integer; import org.jerlang.type.List; import org.jerlang.type.PID; import org.jerlang.type.Term; import org.jerlang.type.TimerReference; import org.jerlang.vm.VirtualMachine; public class ErlangSendAfter { private ErlangSendAfter() { } public static Term dispatch(List params) { switch (params.length()) { case 3: Integer time = params.head().toInteger(); params = params.tail(); PID pid = params.head().toPID(); params = params.tail(); Term msg = params.head(); return send_after_3(time, pid, msg); default: throw Error.badarg; } } /** * http://www.erlang.org/doc/man/erlang.html#self-0 */ public static TimerReference send_after_3(Integer time, PID pid, Term message) { return VirtualMachine.instance().send_after(time.toInt(), message, pid); } }