예제 #1
0
        internal static IActorDispatch GetJsDispatcher(ProcessId pid)
        {
            switch (pid.Count())
            {
            case 0:
            case 1:
                return(new ActorDispatchNotExist(pid));

            //  /root/js                            <-- relay
            case 2:
                return(GetDispatcher(pid.Skip(1), rootItem, pid));

            //  /root/js/{connection id}            <-- relay
            case 3:
                return(GetDispatcher(pid.Skip(1), rootItem, pid));

            // /root/js/{connection id}/js-root/..  --> back to JS
            default:
                return(new ActorDispatchJS(pid, pid.Take(3), rootItem.Actor.Children["js"]));
            }
        }