public Task SubscribeAsync(ActorId actorId, int eventInterfaceId, IActorEventSubscriberProxy subscriber)
        {
            Type eventType;

            if (!this.eventIdToEventTypeMap.TryGetValue(eventInterfaceId, out eventType))
            {
                throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, SR.ErrorEventNotSupportedByActor, eventInterfaceId, actorId));
            }

            var eventProxy = this.GetActorEventProxy(actorId, eventType);

            eventProxy.AddSubscriber(subscriber);

            return(TaskDone.Done);
        }
コード例 #2
0
        internal void AddSubscriber(IActorEventSubscriberProxy subscriber)
        {
            if (subscriber.RemotingListener.Equals(RemotingListener.V2Listener))
            {
                if (this.serviceRemotingMessageBodyFactory == null)
                {
                    this.serviceRemotingMessageBodyFactory = subscriber.GetRemotingMessageBodyFactory();
                }

                this.subscriberProxiesV2.AddOrUpdate(subscriber.Id, subscriber, (id, existing) => subscriber);
            }
            else
            {
                #if !DotNetCoreClr
                this.subscriberProxiesV1.AddOrUpdate(subscriber.Id, subscriber, (id, existing) => subscriber);
                #endif
            }
        }
コード例 #3
0
 public Task SubscribeAsync(ActorId actorId, int eventInterfaceId, IActorEventSubscriberProxy subscriber)
 {
     return(TaskDone.Done);
 }
コード例 #4
0
 public Task SubscribeAsync(ActorId actorId, int eventInterfaceId, IActorEventSubscriberProxy subscriber)
 {
     return(this.eventManager.SubscribeAsync(actorId, eventInterfaceId, subscriber));
 }
コード例 #5
0
 private static void SendTo(
     IActorEventSubscriberProxy subscriberProxy, int eventInterfaceId, int eventMethodId,
     byte[] eventMsgBytes)
 {
     subscriberProxy.RaiseEvent(eventInterfaceId, eventMethodId, eventMsgBytes);
 }
コード例 #6
0
 private static void SendTo(
     IActorEventSubscriberProxy subscriberProxy, int eventInterfaceId, int eventMethodId,
     IServiceRemotingRequestMessageBody messageBody)
 {
     subscriberProxy.RaiseEvent(eventInterfaceId, eventMethodId, messageBody);
 }
コード例 #7
0
 internal void AddSubscriber(IActorEventSubscriberProxy subscriber)
 {
     this.subscriberProxies.AddOrUpdate(subscriber.Id, subscriber, (id, existing) => subscriber);
 }