public ProcessOpTransaction Write(object value, string name, string prop, ProcessFlags flags) { var op = new WriteConfigOp(value, name, prop, flags); var settings = Settings.IfNone(Map <string, object> .Empty).AddOrUpdate($"{name}@{prop}", value); return(new ProcessOpTransaction(ProcessId, Ops.Enqueue(op), settings)); }
InboxDirective StatefulUserInbox(Actor <S, T> actor, IActorInbox inbox, UserControlMessage msg, ActorItem parent) { if (IsPaused) { userQueue = userQueue.Enqueue(msg); } else { while (userQueue.Count > 0) { // Don't process messages if we've been paused if (IsPaused) { return(InboxDirective.Pause); } var qmsg = userQueue.Peek(); userQueue = userQueue.Dequeue(); ProcessInboxDirective(ActorInboxCommon.UserMessageInbox(actor, inbox, qmsg, parent), qmsg); } if (IsPaused) { // Don't process the message if we've been paused userQueue = userQueue.Enqueue(msg); return(InboxDirective.Pause); } return(ProcessInboxDirective(ActorInboxCommon.UserMessageInbox(actor, inbox, msg, parent), msg)); } return(InboxDirective.Default); }
InboxDirective StatefulUserInbox(Actor <S, T> actor, IActorInbox inbox, UserControlMessage msg, ActorItem parent) { if (IsPaused) { userQueue = userQueue.Enqueue(msg); } else { while (userQueue.Count > 0) { var qmsg = userQueue.Peek(); userQueue = userQueue.Dequeue(); ActorInboxCommon.UserMessageInbox(actor, inbox, qmsg, parent); } var directive = ActorInboxCommon.UserMessageInbox(actor, inbox, msg, parent); if (directive == InboxDirective.PushToFrontOfQueue) { var newQueue = Que <UserControlMessage> .Empty; while (userQueue.Count > 0) { newQueue = newQueue.Enqueue(userQueue.Peek()); userQueue.Dequeue(); } userQueue = newQueue; } } return(InboxDirective.Default); }
public static Que <T> toQueue <T>(IEnumerable <T> items) { var q = new Que <T>(); foreach (var item in items) { q = q.Enqueue(item); } return(q); }
public static Que <T> Queue <T>(params T[] items) { var q = new Que <T>(); foreach (var item in items) { q = q.Enqueue(item); } return(q); }
public static Que <T> enq <T>(Que <T> queue, T value) => queue.Enqueue(value);