Copyright (C) 1994, Digital Equipment Corp.
INTERFACE Linked2List;
IMPORT Text;
TYPE T = OBJECT
monitor: MUTEX;
first: E; last: E
METHODS
Prepend (e: E) := Prepend;
Append (e: E) := Append;
Remove (e: E) := Remove;
First (): E := First;
Next (e: E): E := Next;
Last (): E := Last;
Previous (e: E): E := Previous;
MoveToFirst (e: E): BOOLEAN := MoveToFirst;
MoveToLast (e: E): BOOLEAN := MoveToLast;
END;
TYPE E = OBJECT
list: T;
next: E; previous: E;
METHODS
MakeFirst (): BOOLEAN := MakeFirst;
MakeLast (): BOOLEAN := MakeLast;
END;
PROCEDURE New (): T;
PROCEDURE Init (t: T);
PROCEDURE Prepend (t: T; e: E);
PROCEDURE Append (t: T; e: E);
PROCEDURE Remove (t: T; e: E);
PROCEDURE First (t: T): E;
PROCEDURE Next (t: T; e: E): E;
PROCEDURE Last (t: T): E;
PROCEDURE Previous (t: T; e: E): E;
PROCEDURE MoveToFirst (t: T; e: E): BOOLEAN;
PROCEDURE MoveToLast (t: T; e: E): BOOLEAN;
PROCEDURE MakeFirst (e: E): BOOLEAN;
PROCEDURE MakeLast (e: E): BOOLEAN;
END Linked2List.