Esempio n. 1
0
        public void AssignActor(IActor actor, ActorHostInstancePolicy actorHostInstancePolicy = ActorHostInstancePolicy.TryReuseExisting)
        {
            AssertNotDisposed();

            lock (@lock)
            {
                GetOrCreateActorHost(actor, actorHostInstancePolicy).AssignActor(actor);
            }
        }
Esempio n. 2
0
        private IActorHost GetOrCreateActorHost(IActor actor, ActorHostInstancePolicy actorHostInstancePolicy)
        {
            var actorHost = actorHosts.FirstOrDefault(ah => ah.CanAssignActor(actor));

            if (actorHostInstancePolicy == ActorHostInstancePolicy.AlwaysCreateNew || !actorHosts.Any() ||
                actorHost == null)
            {
                actorHost = actorHostFactory.Create();
                actorHost.Start();
                actorHosts.Add(actorHost);
            }

            return(actorHost);
        }
Esempio n. 3
0
 public void AssignActor(IActor actor, ActorHostInstancePolicy actorHostInstancePolicy = ActorHostInstancePolicy.TryReuseExisting)
 {
     AssertKinoBuilt();
     actorHostManager.AssignActor(actor, actorHostInstancePolicy);
 }