Example #1
0
 private IEnumerable<Tuple<String, object>> ListToMenuItems(Erlang.List list)
 {
     Erlang.Object itemPat = Erlang.Object.Format("{Text,Code}");
     Erlang.VarBind binding;
     foreach (Erlang.Object item in list)
     {
         if (itemPat.match(item, (binding = new Otp.Erlang.VarBind())))
         {
             Erlang.Object text = binding.find("Text");
             string textStr = text.stringValue();
             Erlang.Object code = binding.find("Code");
             yield return new Tuple<String, object>(textStr, code);
         }
     }
 }
Example #2
0
        private void GetList(OtpMbox mbox, Action<IEnumerable<Tuple<String, object>>> handler)
        {
            Otp.Erlang.Object reply = mbox.rpcCall(
                remote, "servant", "get_confirmations",
                new Otp.Erlang.List());

            Erlang.Object okPat = Erlang.Object.Format("{ok, List}");
            Erlang.Object itemPat = Erlang.Object.Format("{Text,Code}");
            Erlang.VarBind binding;
            if (okPat.match(reply, (binding = new Otp.Erlang.VarBind())))
            {
                Erlang.List list = binding.find("List") as Erlang.List;
                handler(ListToMenuItems(list));
            }
            else
            {
                WriteLine("Bad reply on getList {0}", reply.ToString());
            }
        }