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

annhttp://www.zorba-xquery.com/annotations
collections-ddlhttp://www.zorba-xquery.com/modules/store/dynamic/collections/ddl
collections-dmlhttp://www.zorba-xquery.com/modules/store/dynamic/collections/dml
queuehttp://www.zorba-xquery.com/modules/store/data-structures/queue
verhttp://www.zorba-xquery.com/options/versioning

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:boolean

Checks 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:integer

Count 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:QName
    name 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:QName
    name of the destination queue.
  • $sourceName as xs:QName
    name 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:QName
    name 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:boolean

Checks if a queue exists and is empty.

Parameters

  • $name as xs:QName
    name of the queue.

Returns

  • xs:boolean

    true 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:QName
    name 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:QName
    name 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:QName
    name 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:integer

Count of nodes in the queue.

Parameters

  • $name as xs:QName
    name of the queue.

Returns

  • xs:integer

    the count of nodes.

Errors

  • queue:errNA if the queue identified by $name does not exist.

Examples

blog comments powered by Disqus