StreamSubscriptionSpecification(Type actor, string provider, Func <string, string> matcher, Func <object, string> selector = null, Func <object, bool> filter = null) { Requires.NotNullOrWhitespace(provider, nameof(provider)); Requires.NotNull(matcher, nameof(matcher)); Interface = ActorGrain.InterfaceOf(actor); Provider = provider; this.matcher = matcher; this.selector = selector; this.filter = filter ?? (x => true); }
public override Task <object> Receive(ActorGrain actor, object message, Func <object, Task <object> > receiver) { switch (message) { case SetText msg: if (msg.Text == "interrupt") { throw new InvalidOperationException(); } msg.Text += ".intercepted"; break; case StreamItem item: item.Text += ".intercepted"; break; } return(Next.Receive(actor, message, receiver)); }
internal TimerService(ActorGrain grain) { this.grain = grain; this.registry = grain.Runtime().TimerRegistry; }
public Supervision(ActorGrain actor, TimeSpan?pingback = null) { this.actor = actor; this.pingback = pingback ?? TimeSpan.FromMinutes(1); reminderName = $"{actor.GetType().Name}_keepalive"; }
public Task <object> Receive(ActorGrain actor, object message, Receive receiver) => receiver(message);
internal BackgroundJobService(ActorGrain host) { Requires.NotNull(host, nameof(host)); this.host = host; }