Akka.Interfaced.SlimSocket.Server.TcpGateway.IActorBoundGatewaySync C# (CSharp) Метод

IActorBoundGatewaySync() приватный Метод

private IActorBoundGatewaySync ( IActorRef actor, TaggedType types, object tag, ActorBindingFlags bindingFlags ) : IRequestTarget
actor IActorRef
types Akka.Interfaced.SlimServer.TaggedType
tag object
bindingFlags ActorBindingFlags
Результат IRequestTarget
        IRequestTarget IActorBoundGatewaySync.OpenChannel(IActorRef actor, TaggedType[] types, object tag, ActorBindingFlags bindingFlags)
        {
            if (actor == null)
                throw new ArgumentNullException(nameof(actor));

            if (_isStopped)
                return null;

            // create token and add to waiting list

            string token;
            while (true)
            {
                token = Guid.NewGuid().ToString();
                lock (_waitingMap)
                {
                    if (_waitingMap.ContainsKey(token) == false)
                    {
                        _waitingMap.Add(token, new WaitingItem
                        {
                            Tag = tag,
                            BindingActor = Tuple.Create(actor, types, bindingFlags),
                            Time = DateTime.UtcNow
                        });
                        break;
                    }
                }
            }

            var address = string.Join("|", ChannelType.Tcp.ToString(),
                                           _initiator.ConnectEndPoint.ToString(),
                                           token);
            return new BoundActorTarget(1, address);
        }

Same methods

TcpGateway::IActorBoundGatewaySync ( InterfacedActorRef actor, object tag, ActorBindingFlags bindingFlags ) : InterfacedActorRef