Otp.AbstractConnection.decodeIO C# (CSharp) Method

decodeIO() static private method

static private decodeIO ( Erlang msg ) : string
msg Erlang
return string
        internal static string decodeIO(Erlang.Object msg)
        {
            if (msg is Erlang.Tuple)
            {
                Erlang.Tuple t = (Erlang.Tuple)msg;
                if (t.arity() == 4)
                {
                    Erlang.Atom  ios = t[0] as Erlang.Atom;
                    Erlang.Tuple data = t[3] as Erlang.Tuple;
                    if (ios != null && ios.atomValue() == "io_request" && data != null)
                    {
                        if ((data[0] as Erlang.Atom).atomValue() == "put_chars")
                        {
                            if (data[1] is Erlang.String)
                                return (data[1] as Erlang.String).stringValue();
                            else if (data[1] is Erlang.Binary)
                            {
                                byte[] bin = (data[1] as Erlang.Binary).binaryValue();
                                char[] s = new char[bin.Length];
                                bin.CopyTo(s, 0);
                                return new string(s);
                            }
                            else
                                return data[1].ToString();
                        }
                    }
                }
            }
            return null;
        }