http://www.zorba-xquery.com/modules/store/data-structures/queue
Description
Before using any of the functions below please remember to import the module namespace:
import module namespace queue = "http://www.zorba-xquery.com/modules/store/data-structures/queue";Implementation of queue for node items, using dynamic collections.
Author
Daniel Turcanu, Sorin Nasoi
XQuery version and encoding
xquery version "3.0" encoding "utf-8";
Namespaces
| ann | http://www.zorba-xquery.com/annotations |
| collections-ddl | http://www.zorba-xquery.com/modules/store/dynamic/collections/ddl |
| collections-dml | http://www.zorba-xquery.com/modules/store/dynamic/collections/dml |
| queue | http://www.zorba-xquery.com/modules/store/data-structures/queue |
| ver | http://www.zorba-xquery.com/options/versioning |
Variable Summary
Function Summary
back($name as xs:QName) as node()?Return the last node in the queue (the last added), without removing it. | |
copy($destName as xs:QName, $sourceName as xs:QName) as empty-sequence()Copy all nodes from source queue to a destination queue. | |
create($name as xs:QName) as empty-sequence()Create a queue with this name. | |
empty($name as xs:QName) as xs:booleanChecks if a queue exists and is empty. | |
front($name as xs:QName) as node()?Return the first node in the queue (the first added), without removing it. | |
pop($name as xs:QName) as node()?Return the first node in the queue, and remove it. | |
push($name as xs:QName, $value as node()) as empty-sequence()Add a new node to the queue; the queue will contain a copy of the given node. | |
size($name as xs:QName) as xs:integerCount of nodes in the queue. |
Variables
$queue:errNS as xs:string
Errors namespace URI.
$queue:errNA as xs:QName
xs:QName with namespace URI="http://www.zorba-xquery.com/modules/store/data-structures/queue" and local name "errNA"
$queue:errExists as xs:QName
xs:QName with namespace URI="http://www.zorba-xquery.com/modules/store/data-structures/queue" and local name "errExists"
Functions
back#1
declare function queue:back(
$name as xs:QName
) as node()?Return the last node in the queue (the last added), without removing it.
Parameters
$name as xs:QNamename of the queue.
Returns
node()?the last node, or empty sequence if queue is empty.
Errors
- queue:errNA if the queue identified by $name does not exist.
Examples
copy#2
declare %ann:sequential function queue:copy(
$destName as xs:QName,
$sourceName as xs:QName
) as empty-sequence() Copy all nodes from source queue to a destination queue.
If destination queue does not exist, it is created first.
If destination queue is not empty, the nodes are appended last.
Parameters
$destName as xs:QNamename of the destination queue.$sourceName as xs:QNamename of the source queue.
Returns
empty-sequence()()
Examples
create#1
declare %ann:sequential function queue:create(
$name as xs:QName
) as empty-sequence() Create a queue with this name.
If queue exists, an error is raised.
Parameters
$name as xs:QNamename of the new queue.
Returns
empty-sequence()()
Errors
- queue:errExists if the queue identified by $name already exists.
empty#1
declare function queue:empty(
$name as xs:QName
) as xs:booleanChecks if a queue exists and is empty.
Parameters
$name as xs:QNamename of the queue.
Returns
xs:booleantrue is the queue is empty or does not exist.
Errors
- queue:errNA if the queue identified by $name does not exist.
Examples
front#1
declare function queue:front(
$name as xs:QName
) as node()?Return the first node in the queue (the first added), without removing it.
Parameters
$name as xs:QNamename of the queue.
Returns
node()?the first node, or empty sequence if queue is empty.
Errors
- queue:errNA if the queue identified by $name does not exist.
Examples
pop#1
declare %ann:sequential function queue:pop(
$name as xs:QName
) as node()?Return the first node in the queue, and remove it.
Parameters
$name as xs:QNamename of the queue.
Returns
node()?the first node, or empty sequence if queue is empty.
Errors
- queue:errNA if the queue identified by $name does not exist.
Examples
push#2
declare %ann:sequential function queue:push(
$name as xs:QName,
$value as node()
) as empty-sequence()Add a new node to the queue; the queue will contain a copy of the given node.
Parameters
$name as xs:QNamename of the queue.$value as node()the node to be added.
Returns
empty-sequence()()
Errors
- queue:errNA if the queue identified by $name does not exist.
Examples
size#1
declare function queue:size(
$name as xs:QName
) as xs:integerCount of nodes in the queue.
Parameters
$name as xs:QNamename of the queue.
Returns
xs:integerthe count of nodes.
Errors
- queue:errNA if the queue identified by $name does not exist.