/** * Create an OtpErlangExit exception with the given reason and sender pid. * * @param reason * the reason this exit signal has been sent. * * @param pid * the pid that sent this exit. */ public OtpErlangExit(OtpErlangObject reason, OtpErlangPid pid) : base(reason.ToString()) { this.reason = reason; this.pid = pid; }
/** * Create an OtpErlangExit exception with the given reason. * * @param reason * the reason this exit signal has been sent. */ public OtpErlangExit(OtpErlangObject reason) : base(reason.ToString()) { this.reason = reason; }
public static String ExtractPid(OtpErlangObject value) { return value.ToString(); }
/// <summary> /// Converts the type of the erlang to basic. /// </summary> /// <param name="erlangObject">The erlang object.</param> /// <returns>The object.</returns> /// <remarks></remarks> private object ConvertErlangToBasicType(OtpErlangObject erlangObject) { try { if (erlangObject is OtpErlangBinary) { return ((OtpErlangBinary)erlangObject).binaryValue(); } else if (erlangObject is OtpErlangAtom) { return ((OtpErlangAtom)erlangObject).atomValue(); } else if (erlangObject is OtpErlangBinary) { return ((OtpErlangBinary)erlangObject).binaryValue(); } else if (erlangObject is OtpErlangBoolean) { return ExtractBoolean(erlangObject); } else if (erlangObject is OtpErlangByte) { return ((OtpErlangByte)erlangObject).byteValue(); } else if (erlangObject is OtpErlangChar) { return ((OtpErlangChar)erlangObject).charValue(); } else if (erlangObject is OtpErlangDouble) { return ((OtpErlangDouble)erlangObject).doubleValue(); } else if (erlangObject is OtpErlangFloat) { return ((OtpErlangFloat)erlangObject).floatValue(); } else if (erlangObject is OtpErlangInt) { return ((OtpErlangInt)erlangObject).intValue(); } else if (erlangObject is OtpErlangLong) { return ((OtpErlangLong)erlangObject).longValue(); } else if (erlangObject is OtpErlangShort) { return ((OtpErlangShort)erlangObject).shortValue(); } else if (erlangObject is OtpErlangString) { return ((OtpErlangString)erlangObject).stringValue(); } else if (erlangObject is OtpErlangPid) { return erlangObject.ToString(); } else { throw new ErlangConversionException( "Could not convert Erlang object [" + erlangObject.GetType() + "] to .NET type."); } } catch (OtpErlangRangeException ex) { // TODO: Erlang.NET exceptions do not support nesting root exceptions. throw new ErlangConversionException("Could not convert Erlang object [" + erlangObject.GetType() + "] to .NET type. OtpErlangRangeException msg [" + ex.Message + "]"); } }