Ejemplo n.º 1
0
 private void ctor(ErlLocalNode home)
 {
   m_TcpKeepAlive = home.TcpKeepAlive;
   m_TcpLinger = home.TcpLinger;
   m_TcpNoDelay = home.TcpNoDelay;
   m_TcpRcvBufSize = home.TcpRcvBufSize;
   m_TcpSndBufSize = home.TcpSndBufSize;
 }
Ejemplo n.º 2
0
 public ErlRpcServer(ErlLocalNode owner)
 {
   m_Active = true;
   Node = owner;
   Self = Node.CreateMbox(ConstAtoms.Rex);
   m_Thread = new Thread(start);
   m_Thread.Name = "{0} RPC".Args(owner.NodeName);
   m_Thread.IsBackground = true;
   m_Thread.Start();
 }
Ejemplo n.º 3
0
 public ErlRpcServer(ErlLocalNode owner)
 {
     m_Active              = true;
     Node                  = owner;
     Self                  = Node.CreateMbox(ConstAtoms.Rex);
     m_Thread              = new Thread(threadSpin);
     m_Thread.Name         = "{0} RPC".Args(owner.NodeName);
     m_Thread.IsBackground = true;
     m_Thread.Start();
 }
Ejemplo n.º 4
0
 public ErlIoServer(ErlLocalNode owner)
 {
   m_Active = true;
   Node = owner;
   Self = Node.CreateMbox(ConstAtoms.User);
   m_Thread = new Thread(threadSpin);
   m_Thread.Name = "{0} I/O".Args(owner.NodeName);
   m_Thread.IsBackground = true;
   m_Thread.Start();
 }
Ejemplo n.º 5
0
 public ErlIoServer(ErlLocalNode owner)
 {
     m_Active              = true;
     Node                  = owner;
     Self                  = Node.CreateMbox(ConstAtoms.User);
     m_Thread              = new Thread(startIO);
     m_Thread.Name         = "{0} I/O".Args(owner.NodeName);
     m_Thread.IsBackground = true;
     m_Thread.Start();
 }
Ejemplo n.º 6
0
 private void node_NodeStatusChange(ErlLocalNode sender, ErlAtom node, bool up, object info)
 {
     if (!node.Equals(this.m_RemoteName))
     {
         return;                             //filter-out nodes that are not mine
     }
     if (!up)
     {
         asyncReconnect();
     }
 }
Ejemplo n.º 7
0
        public ErlAcceptor(ErlLocalNode node, int port, IPAddress address = null)
        {
            m_Node = node;

            m_Sock = new TcpListener(address ?? Dns.GetHostEntry("localhost").AddressList[0], port);
            m_Sock.Start();
            m_Port    = ((System.Net.IPEndPoint)m_Sock.LocalEndpoint).Port;
            node.Port = this.m_Port;

            publishPort();
            m_Thread = new Thread(threadSpin);
            m_Thread.IsBackground = true;
            m_Thread.Name         = "acceptor " + node.NodeName;
            m_Thread.Start();
        }
Ejemplo n.º 8
0
    public ErlAcceptor(ErlLocalNode node, int port, IPAddress address = null)
    {
      m_Node = node;

      m_Sock = new TcpListener(address ?? Dns.GetHostEntry("localhost").AddressList[0], port);
      m_Sock.Start();
      m_Port = ((System.Net.IPEndPoint)m_Sock.LocalEndpoint).Port;
      node.Port = this.m_Port;

      publishPort();
      m_Thread = new Thread(threadSpin);
      m_Thread.IsBackground = true;
      m_Thread.Name = "acceptor " + node.NodeName;
      m_Thread.Start();
    }
Ejemplo n.º 9
0
        public void BeforeTest()
        {
            var node = new ErlLocalNode("test@localhost", true, false);

            node.Start();
            ErlApp.Node = node;

            store = new ErlDataStore();

            store.RemoteName   = REMOTE_NAME;
            store.RemoteCookie = REMOTE_COOKIE;
            store.QueryResolver.ScriptAssembly = SCRIPT_ASM;
            //store.QueryResolver.RegisterHandlerLocation("NFX.NUnit.Integration.CRUD.ErlSpecific, NFX.NUnit.Integration");
            store.Start();

            clearAll();
        }
Ejemplo n.º 10
0
    bool IRunHook.Prologue(Runner runner, FID id, MethodInfo method, RunAttribute attr, ref object[] args)
    {
      var node = new ErlLocalNode("test@localhost", true, false);
      node.Start();
      ErlApp.Node = node;

      store = new ErlDataStore();

      store.RemoteName = REMOTE_NAME;
      store.RemoteCookie = REMOTE_COOKIE;
      store.QueryResolver.ScriptAssembly = SCRIPT_ASM;
      //store.QueryResolver.RegisterHandlerLocation("NFX.ITest.CRUD.ErlSpecific, NFX.ITest");
      store.Start();

      clearAll();
      return false;
    }
Ejemplo n.º 11
0
        private void btnErlang_Click(object sender, EventArgs e)
        {
            //connect to erlang
            var n = new ErlLocalNode("b", new ErlAtom("hahaha"));

            n.AcceptConnections = false;
            n.Start();

            var m = n.CreateMbox("test");

            var res = n.Send(m.Self, "[email protected]", "me", new ErlString("Hello! " + DateTime.Now));

            if (!res)
            {
                Console.WriteLine("Can not send message");
            }
            else
            {
                Console.WriteLine("Message sent");
            }
        }
Ejemplo n.º 12
0
 public MboxRegistry(ErlLocalNode enclosingInstance)
 {
     m_Node   = enclosingInstance;
     m_ByPid  = new ConcurrentDictionary <ErlPid, ErlMbox>();
     m_ByName = new ConcurrentDictionary <ErlAtom, ErlMbox>();
 }
Ejemplo n.º 13
0
 /// <summary>
 /// Create a peer node
 /// </summary>
 public ErlRemoteNode(ErlLocalNode home, string toNode, ErlAtom? cookie = null)
     : base(toNode, cookie.HasValue ? cookie.Value : home.Cookie, home.UseShortName)
 {
   ctor(home);
 }
Ejemplo n.º 14
0
 /// <summary>
 /// Constructor used for creating a remote node by the Acceptor of incoming connections
 /// </summary>
 /// <param name="home"></param>
 internal ErlRemoteNode(ErlLocalNode home) : this(home, ErlAtom.Null)
 {
 }
Ejemplo n.º 15
0
 /// <summary>
 /// Create a peer node
 /// </summary>
 public ErlRemoteNode(ErlLocalNode home, ErlAtom toNode, ErlAtom?cookie = null)
     : base(toNode, cookie ?? home.Cookie, home.UseShortName)
 {
     ctor(home);
 }
Ejemplo n.º 16
0
 /// <summary>
 /// Create a connection to a remote node
 /// </summary>
 /// <param name="self">the local node from which you wish to connect</param>
 /// <returns>A connection to the remote node</returns>
 public ErlConnection Connect(ErlLocalNode self)
 {
     return(new ErlConnection(self, this));
 }
Ejemplo n.º 17
0
 /// <summary>
 /// Create a connection to a remote node
 /// </summary>
 /// <param name="self">the local node from which you wish to connect</param>
 /// <returns>A connection to the remote node</returns>
 public ErlConnection Connect(ErlLocalNode self)
 {
   return new ErlConnection(self, this);
 }
Ejemplo n.º 18
0
 /// <summary>
 /// Create a peer node
 /// </summary>
 public ErlRemoteNode(ErlLocalNode home, ErlAtom toNode, ErlAtom? cookie = null)
     : base(toNode, cookie ?? home.Cookie, home.UseShortName)
 {
   ctor(home);
 }
Ejemplo n.º 19
0
 /// <summary>
 /// Constructor used for creating a remote node by the Acceptor of incoming connections
 /// </summary>
 /// <param name="home"></param>
 internal ErlRemoteNode(ErlLocalNode home) : this(home, ErlAtom.Null)
 { }