getSenderPid() public method

public getSenderPid ( ) : OtpErlangPid
return OtpErlangPid
コード例 #1
0
        /*
         * pass the message to the node for final delivery. Note that the connection
         * itself needs to know about links (in case of connection failure), so we
         * snoop for link/unlink too here.
         */
        public override void deliver(OtpMsg msg)
        {
            bool delivered = self.deliver(msg);

            switch (msg.type())
            {
                case OtpMsg.linkTag:
                    if (delivered)
                    {
                        links.addLink(msg.getRecipientPid(), msg.getSenderPid());
                    }
                    else
                    {
                        try
                        {
                            // no such pid - send exit to sender
                            base.sendExit(msg.getRecipientPid(), msg.getSenderPid(), new OtpErlangAtom("noproc"));
                        }
                        catch (IOException)
                        {
                        }
                    }
                    break;

                case OtpMsg.unlinkTag:
                case OtpMsg.exitTag:
                    links.removeLink(msg.getRecipientPid(), msg.getSenderPid());
                    break;

                case OtpMsg.exit2Tag:
                    break;
            }

            return;
        }
コード例 #2
0
ファイル: OtpMbox.cs プロジェクト: K2InformaticsGmbH/erlnet
        /*
         * called by OtpNode to deliver message to this mailbox.
         *
         * About exit and exit2: both cause exception to be raised upon receive().
         * However exit (not 2) causes any link to be removed as well, while exit2
         * leaves any links intact.
         */
        public virtual void deliver(OtpMsg m)
        {
            switch (m.type())
            {
                case OtpMsg.linkTag:
                    links.addLink(self, m.getSenderPid());
                    break;

                case OtpMsg.unlinkTag:
                    links.removeLink(self, m.getSenderPid());
                    break;

                case OtpMsg.exitTag:
                    links.removeLink(self, m.getSenderPid());
                    queue.put(m);
                    break;

                case OtpMsg.exit2Tag:
                default:
                    queue.put(m);
                    break;
            }
        }