tango.util.container.Clink

License:
BSD style:

Version:
Apr 2008: Initial release

Authors:
Kris

Since:
0.99.7

Based upon Doug Lea's Java collection package

struct Clink(V);
Clinks are links that are always arranged in circular lists.

Ref set(V v);
Set to point to ourselves

Ref set(V v, Ref p, Ref n);
Set to point to n as next cell and p as the prior cell

param:
n, the new next cell

param:
p, the new prior cell

bool singleton();
Return true if current cell is the only one on the list

void addNext(V v, scope Ref delegate() alloc);
Make a cell holding v and link it immediately after current cell

Ref addPrev(V v, scope Ref delegate() alloc);
make a node holding v, link it before the current cell, and return it

void linkPrev(Ref p);
link p before current cell

int size();
return the number of cells in the list

Ref find(V element);
return the first cell holding element found in a circular traversal starting at current cell, or null if no such

int count(V element);
return the number of cells holding element found in a circular traversal

Ref nth(size_t n);
return the nth cell traversed from here. It may wrap around.

void unlinkNext();
Unlink the next cell. This has no effect on the list if isSingleton()

void unlinkPrev();
Unlink the previous cell. This has no effect on the list if isSingleton()

void unlink();
Unlink self from list it is in. Causes it to be a singleton

Ref copyList(scope Ref delegate() alloc);
Make a copy of the list and return new head.


Page generated by Ddoc. Copyright (c) 2008 Kris Bell. All rights reserved