protected AbstractStash(IActorContext context, int capacity = 100) { Context = context; Self = Context.Self; TheStash = new LinkedList <Envelope>(); ActorCell = context.AsInstanceOf <ActorCell>(); Capacity = 100; }
public override Routee NewRoutee(Props routeeProps, IActorContext context) { _nodeAddrEnumerator.MoveNext(); var name = "c" + _childNameCounter.GetAndIncrement(); var deploy = new Deploy(routeeProps.RouterConfig, new RemoteScope(_nodeAddrEnumerator.Current)); var actorRef = context.AsInstanceOf <ActorCell>() .AttachChild(Local.EnrichWithPoolDispatcher(routeeProps, context).WithDeploy(deploy), false, name); return(new ActorRefRoutee(actorRef)); }
/// <summary> /// TBD /// </summary> /// <param name="routeeProps">TBD</param> /// <param name="context">TBD</param> /// <returns>TBD</returns> internal override Routee NewRoutee(Props routeeProps, IActorContext context) { var name = "c" + _childNameCounter.IncrementAndGet(); _nodeAddrEnumerator.MoveNext(); var deploy = new Deploy(routeeProps.RouterConfig, new RemoteScope(_nodeAddrEnumerator.Current)); // attachChild means that the provider will treat this call as if possibly done out of the wrong // context and use RepointableActorRef instead of LocalActorRef. Seems like a slightly sub-optimal // choice in a corner case (and hence not worth fixing). var actorRef = context.AsInstanceOf <ActorCell>() .AttachChild(Local.EnrichWithPoolDispatcher(routeeProps, context).WithDeploy(deploy), false, name); return(new ActorRefRoutee(actorRef)); }
public static IStash GetStash(this IActorContext context) { var actorCell = context.AsInstanceOf <ActorCell>(); var actor = actorCell.Actor; if (!(actor is IActorStash)) { throw new NotSupportedException(string.Format("Cannot create stash for Actor {0} - needs to implement IActorStash interface", actor)); } if (actor is WithBoundedStash) { return(new BoundedStashImpl(context)); } if (actor is WithUnboundedStash) { return(new UnboundedStashImpl(context)); } throw new ArgumentException(string.Format("Actor {0} implements unrecognized subclass of IActorStash - cannot instantiate", actor)); }
public override Routee NewRoutee(Props routeeProps, IActorContext context) { _nodeAddrEnumerator.MoveNext(); var name = "c" + _childNameCounter.GetAndIncrement(); var deploy = new Deploy(routeeProps.RouterConfig, new RemoteScope(_nodeAddrEnumerator.Current)); var actorRef = context.AsInstanceOf<ActorCell>() .AttachChild(Local.EnrichWithPoolDispatcher(routeeProps, context).WithDeploy(deploy), false, name); return new ActorRefRoutee(actorRef); }
protected AbstractStash(IActorContext context, int capacity = 100) { Context = context; Self = Context.Self; TheStash = new LinkedList<Envelope>(); ActorCell = context.AsInstanceOf<ActorCell>(); Capacity = 100; }