public async Task <object> Fire(object message) { Requires.NotNull(message, nameof(message)); if (TimerService.IsExecuting() || mocked) { RequestOrigin.Store(Current); return(await actor.Self.Ask <object>(message)); } return(await HandleReceive(message, new RequestOrigin(Current))); }
public Task <object> HandleReceive(Actor actor, object message, RequestOrigin origin) { if (IsNull()) { return(onReceiveAny(actor, message)); } var handler = TryFindReceiveHandler(message); if (handler != null) { return(handler.Invoke(actor, message)); } handler = TryFindReceiveAnyHandler(); return(handler != null ? handler(actor, message) : actor.OnUnhandledReceive(origin, message)); }
public Task <object> HandleReceive(Actor actor, object message, RequestOrigin origin, Func <Type, object, string, RequestOrigin, Task <object> > fallback) { if (IsNull()) { return(onReceiveAny(actor, message)); } var handler = TryFindReceiveHandler(message); if (handler != null) { return(handler.Invoke(actor, message)); } handler = TryFindReceiveAnyHandler(); return(handler != null ? handler(actor, message) : fallback(actor.GetType(), message, Name, origin)); }
internal Task <object> HandleReceive(object message, RequestOrigin origin) => current.HandleReceive(actor, message, origin, onUnhandledReceive ?? OnUnhandledReceiveDefaultCallback);
internal Task <object> HandleReceive(object message) => HandleReceive(message, RequestOrigin.Restore());
internal Task <object> HandleReceive(object message, RequestOrigin origin) => current.HandleReceive(actor, message, origin);