Beispiel #1
0
        public void AddActor(IActor actor)
        {
            var registrations = actorHandlerMap.Add(actor);

            internalRegistrationService.RegisterInternalRoutes(registrations.Select(r => new InternalRouteRegistration
            {
                DestinationSocket     = socket,
                KeepRegistrationLocal = r.KeepRegistrationLocal,
                ReceiverIdentifier    = actor.Identifier,
                MessageContract       = r.Identifier
            }
                                                                                    ));
        }
Beispiel #2
0
        public void AssignActor(IActor actor)
        {
            var registrations = actorHandlerMap.Add(actor);

            if (registrations.Any())
            {
                var actorRegistration = new ActorRegistration
                {
                    ActorIdentifier = actor.Identifier,
                    MessageHandlers = registrations
                };
                actorRegistrationsQueue.Enqueue(actorRegistration, cancellationTokenSource?.Token ?? CancellationToken.None);
            }
            else
            {
                logger.Warn($"Actor {actor.GetType().FullName}:{actor.Identifier} seems to not handle any message!");
            }
        }