From 0c869b2782aeecb92dff232b46a499a3821f9f2c Mon Sep 17 00:00:00 2001
From: HJ Copyright © 2011-2020 Michael Truog Version: 2.0.1 Nov 26 2020 14:55:34
- ------------------------------------------------------------------------ Authors: Michael Truog (mjtruog at protonmail dot com). pqueue() = {integer(), {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, queue:queue(), {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}} | {empty, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, queue:queue(), {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}}
-
-
-Module pqueue
-
- Static Priority Queue.
- This priority queue implementation depends on a static number of priorities
- (-20 (high) to 20 (low)) so that tuple access times can be exploited for
- quick in/out priority queue operations.
-Description
- Static Priority Queue.
- This priority queue implementation depends on a static number of priorities
- (-20 (high) to 20 (low)) so that tuple access times can be exploited for
- quick in/out priority queue operations. This implementation was created to
- avoid the slowness within the priority queue used by both RabbitMQ and Riak
- (https://github.com/basho/riak_core/blob/master/src/priority_queue.erl).
-Data Types
-
-pqueue()
-Function Index
-
-
-
-in/2
- Append an item to the tail of the 0 priority queue.
- O(1).
-in/3
- Append an item to the tail of a specific priority queue.
- O(1).
-is_empty/1
- Check if the priority queue is empty.
- O(1).
-is_queue/1
- Check if the priority queue type is as expected.
- O(1).
-join/2
- Join two priority queues.
- O(N).
-len/1
- Determine the length of a priority queue.
- O(N).
-new/0
- Create a new priority queue.
- O(1).
-out/1
- Take an item from the head of the priority queue.
- O(1) amortized, O(N) worst case.
-out/2
- Take an item of a specific priority from the head of the queue.
- O(1) amortized, O(N) worst case.
-pout/1
- Take an item from the head of the priority queue.
- Includes the priority in the return value.
-test/0
- Regression test.
.
-to_list/1
- Convert the priority queue to a list.
- O(N).Function Details
-
-in/2
-Append an item to the tail of the 0 priority queue.
- O(1)
-
is_empty(X1::pqueue()) -> true | false
-
is_queue(X1::pqueue()) -> true | false
-
-
len(X1::pqueue()) -> non_neg_integer()
-
new() -> pqueue()
-
-
-
-
test() -> any()
--
to_list(X1::pqueue()) -> [term()]
-
Generated by EDoc
- - -- cgit v1.2.3