From 354f278cb20ce114ff067bcd961fcd570a3191d3 Mon Sep 17 00:00:00 2001 From: Pragmatic Software Date: Sun, 18 Jul 2021 20:49:11 -0700 Subject: [PATCH] PriorityQueue: add `update_priority()` --- lib/PBot/Utils/PriorityQueue.pm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/PBot/Utils/PriorityQueue.pm b/lib/PBot/Utils/PriorityQueue.pm index 35572de8..93b109ef 100644 --- a/lib/PBot/Utils/PriorityQueue.pm +++ b/lib/PBot/Utils/PriorityQueue.pm @@ -13,6 +13,7 @@ use PBot::Imports; sub initialize { my ($self, %conf) = @_; + # list of entrie; each entry is expected to have a `priority` and an `id` field $self->{queue} = []; } @@ -100,4 +101,11 @@ sub add { return $position; } +sub update_priority { + my ($self, $id, $priority) = @_; + my @entries = grep { $_->{id} eq $id } @{$self->{queue}}; + map { $_->{priority} = $priority } @entries; + $self->{queue} = [ sort { $a->{priority} <=> $b->{priority} } @{$self->{queue}} ]; +} + 1;