public ICompletes <T> ActorOf <T>(Address address)
 {
     if (!actor.IsStopped)
     {
         Action <IDirectoryScanner> consumer = actor => actor.ActorOf <T>(address);
         var completes = new BasicCompletes <T>(actor.Scheduler);
         mailbox.Send(new LocalMessage <IDirectoryScanner>(actor, consumer, completes, ActorOfRepresentation1));
         return(completes);
     }
     else
     {
         actor.DeadLetters.FailedDelivery(new DeadLetter(actor, ActorOfRepresentation1));
     }
     return(null);
 }
Пример #2
0
        public ICompletes <Optional <T> > MaybeActorOf <T>(IAddress address)
        {
            if (!actor.IsStopped)
            {
                Action <IDirectoryScanner> consumer = x => x.MaybeActorOf <T>(address);
                var completes = new BasicCompletes <Optional <T> >(actor.Scheduler);
                if (mailbox.IsPreallocated)
                {
                    mailbox.Send(actor, consumer, completes, ActorOfRepresentation2);
                }
                else
                {
                    mailbox.Send(new LocalMessage <IDirectoryScanner>(actor, consumer, completes, ActorOfRepresentation2));
                }

                return(completes);
            }

            actor.DeadLetters.FailedDelivery(new DeadLetter(actor, ActorOfRepresentation2));
            return(null !);
        }
        public ICompletes <T> ActorOf <T>(IAddress address)
        {
            if (!_actor.IsStopped)
            {
                Action <IDirectoryScanner> consumer = x => x.ActorOf <T>(address);
                var completes = new BasicCompletes <T>(_actor.Scheduler);
                if (_mailbox.IsPreallocated)
                {
                    _mailbox.Send(_actor, consumer, completes, ActorOfRepresentation1);
                }
                else
                {
                    _mailbox.Send(new LocalMessage <IDirectoryScanner>(_actor, consumer, completes, ActorOfRepresentation1));
                }

                return(completes);
            }

            _actor.DeadLetters?.FailedDelivery(new DeadLetter(_actor, ActorOfRepresentation1));
            return(null !);
        }