home *** CD-ROM | disk | FTP | other *** search
- import java.io.PrintStream;
- import stardiv.tools.SjProtocolWindow;
-
- public class JSbxQueue {
- private int nNoOfElementsInQueue;
- private JSbxQueueElement aHead;
- private JSbxQueueElement aEnd;
-
- public JSbxQueue(Object var1) {
- SjProtocolWindow.AddUserEvent(this, "JSbxQueue() creator: " + var1);
- this.Init();
- }
-
- public synchronized void Append(Object var1) {
- JSbxQueueElement var2 = new JSbxQueueElement(var1);
- if (this.aEnd == null) {
- this.aHead = var2;
- this.aEnd = this.aHead;
- } else {
- this.aEnd.next = var2;
- this.aEnd = var2;
- }
-
- ++this.nNoOfElementsInQueue;
- this.notify();
- }
-
- public synchronized Object Get() {
- try {
- while(this.aHead == null) {
- this.wait();
- }
- } catch (InterruptedException var2) {
- return null;
- }
-
- JSbxQueueElement var1 = this.aHead;
- this.aHead = this.aHead.next;
- --this.nNoOfElementsInQueue;
- if (this.aHead == null) {
- this.aEnd = null;
- }
-
- return var1.aElement;
- }
-
- public synchronized Object Peek() {
- return this.aHead != null ? this.aHead.aElement : null;
- }
-
- public synchronized int NoOfElements() {
- return this.nNoOfElementsInQueue;
- }
-
- public synchronized void Clear() {
- this.Init();
- }
-
- private void Init() {
- this.aHead = null;
- this.aEnd = null;
- this.nNoOfElementsInQueue = 0;
- }
-
- public void Dump(PrintStream var1) {
- var1.println("DUMP JSbxQueue");
- JSbxQueueElement var2 = this.aHead;
-
- for(int var3 = 0; var2 != null; var2 = var2.next) {
- ++var3;
- var1.println(var3 + " " + var2);
- }
-
- }
- }
-