PageRenderTime 46ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/lib/otp.net/OtpTest/Test.cs

http://github.com/gebi/jungerl
C# | 84 lines | 68 code | 15 blank | 1 comment | 4 complexity | 8cacc39fa948be6ef0e2e462c42322a5 MD5 | raw file
Possible License(s): AGPL-1.0, JSON, LGPL-2.1, BSD-3-Clause
  1. using System;
  2. namespace Otp
  3. {
  4. public class Test
  5. {
  6. static public void Main(String[] args)
  7. {
  8. System.Console.Out.WriteLine("Otp test...");
  9. if (args.Length < 1)
  10. {
  11. System.Console.Out.WriteLine("Usage: Otp sname\n where sname is" +
  12. "the short name of the Erlang node");
  13. return;
  14. }
  15. OtpNode.useShortNames = true;
  16. String host = System.Net.Dns.GetHostName();
  17. String user = Environment.UserName;
  18. OtpNode node = new OtpNode(user + "@" + host);
  19. String remote = (args[0].Contains("@")) ? args[0] : remote = args[0] + "@" + host;
  20. OtpMbox mbox = null;
  21. System.Console.Out.WriteLine("This node is: {0} (cookie='{1}'). Remote: {2}",
  22. node.node(), node.cookie(), remote);
  23. //bool ok = node.ping(remote, 1000*300);
  24. OtpCookedConnection conn = node.getConnection(remote);
  25. try
  26. {
  27. if (conn != null)
  28. System.Console.Out.WriteLine(" successfully pinged node " + remote + "\n");
  29. else
  30. throw new System.Exception("Could not ping node: " + remote);
  31. conn.traceLevel = 1;
  32. mbox = node.createMbox();
  33. mbox.registerName("server");
  34. mbox.sendRPC(conn.peer.node(), "lists", "reverse", new Erlang.List(new Erlang.String("Hello world!")));
  35. Erlang.Object reply = mbox.receiveRPC(5000);
  36. System.Console.Out.WriteLine("<= " + reply.ToString());
  37. {
  38. Erlang.List rpcArgs = new Erlang.List(
  39. new Erlang.Object[] {
  40. mbox.self(),
  41. new Erlang.Tuple(
  42. new Erlang.Object[] {
  43. new Erlang.Atom("table"), new Erlang.Atom("test"), new Erlang.Atom("simple")
  44. }
  45. )
  46. }
  47. );
  48. mbox.sendRPC(conn.peer.node(), "mnesia_subscr", "subscribe", rpcArgs);
  49. reply = mbox.receiveRPC(5000);
  50. System.Console.Out.WriteLine("<= " + reply.ToString());
  51. }
  52. while (true)
  53. {
  54. Erlang.Object msg = mbox.receive();
  55. System.Console.Out.WriteLine("IN msg: " + msg.ToString() + "\n");
  56. }
  57. }
  58. catch (System.Exception e)
  59. {
  60. System.Console.Out.WriteLine("Error: " + e.ToString());
  61. }
  62. finally
  63. {
  64. node.closeMbox(mbox);
  65. }
  66. node.close();
  67. }
  68. }
  69. }