internal TypeManager( SiloAddress myAddr, GrainTypeManager grainTypeManager, ISiloStatusOracle oracle, OrleansTaskScheduler scheduler, TimeSpan refreshClusterMapTimeout, ImplicitStreamSubscriberTable implicitStreamSubscriberTable) : base(Constants.TypeManagerId, myAddr) { if (grainTypeManager == null) throw new ArgumentNullException(nameof(grainTypeManager)); if (oracle == null) throw new ArgumentNullException(nameof(oracle)); if (scheduler == null) throw new ArgumentNullException(nameof(scheduler)); if (implicitStreamSubscriberTable == null) throw new ArgumentNullException(nameof(implicitStreamSubscriberTable)); this.grainTypeManager = grainTypeManager; this.statusOracle = oracle; this.implicitStreamSubscriberTable = implicitStreamSubscriberTable; this.scheduler = scheduler; this.hasToRefreshClusterGrainInterfaceMap = true; this.refreshClusterGrainInterfaceMapTimer = new AsyncTaskSafeTimer( OnRefreshClusterMapTimer, null, TimeSpan.Zero, // Force to do it once right now refreshClusterMapTimeout); }
public ImplicitStreamPubSub(ImplicitStreamSubscriberTable implicitPubSubTable) { if (implicitPubSubTable == null) { throw new ArgumentNullException("implicitPubSubTable"); } this.implicitTable = implicitPubSubTable; }
public ImplicitStreamPubSub(IInternalGrainFactory grainFactory, ImplicitStreamSubscriberTable implicitPubSubTable) { if (implicitPubSubTable == null) { throw new ArgumentNullException("implicitPubSubTable"); } this.grainFactory = grainFactory; this.implicitTable = implicitPubSubTable; }
public StreamPubSubImpl(IStreamPubSub explicitPubSub, ImplicitStreamSubscriberTable implicitPubSub) { if (explicitPubSub == null) { throw new ArgumentNullException("explicitPubSub"); } if (implicitPubSub == null) { throw new ArgumentNullException("implicitPubSub"); } this.explicitPubSub = explicitPubSub; this.implicitPubSub = implicitPubSub; }
public Task <ISet <PubSubSubscriptionState> > RegisterProducer(StreamId streamId, string streamProvider, IStreamProducerExtension streamProducer) { ISet <PubSubSubscriptionState> result = new HashSet <PubSubSubscriptionState>(); if (!ImplicitStreamSubscriberTable.IsImplicitSubscribeEligibleNameSpace(streamId.Namespace)) { return(Task.FromResult(result)); } IDictionary <Guid, IStreamConsumerExtension> implicitSubscriptions = implicitTable.GetImplicitSubscribers(streamId, this.grainFactory); foreach (var kvp in implicitSubscriptions) { GuidId subscriptionId = GuidId.GetGuidId(kvp.Key); result.Add(new PubSubSubscriptionState(subscriptionId, streamId, kvp.Value)); } return(Task.FromResult(result)); }
public StreamPubSubImpl(IStreamPubSub explicitPubSub, ImplicitStreamSubscriberTable implicitPubSub) { if (explicitPubSub == null) { throw new ArgumentNullException("explicitPubSub"); } if (implicitPubSub == null) { throw new ArgumentNullException("implicitPubSub"); } this.explicitPubSub = explicitPubSub; this.implicitPubSub = implicitPubSub; }