Class EventQueue

java.lang.Object
io.a2a.server.events.EventQueue
All Implemented Interfaces:
AutoCloseable

public abstract class EventQueue extends Object implements AutoCloseable
  • Field Details

  • Constructor Details

    • EventQueue

      protected EventQueue()
    • EventQueue

      protected EventQueue(int queueSize)
    • EventQueue

      protected EventQueue(EventQueue parent)
  • Method Details

    • getQueueSize

      public int getQueueSize()
    • awaitQueuePollerStart

      public abstract void awaitQueuePollerStart() throws InterruptedException
      Throws:
      InterruptedException
    • enqueueEvent

      public void enqueueEvent(Event event)
    • enqueueItem

      public void enqueueItem(EventQueueItem item)
    • dequeueEventItem

      public EventQueueItem dequeueEventItem(int waitMilliSeconds) throws EventQueueClosedException
      Dequeues an EventQueueItem from the queue.

      This method returns the full EventQueueItem wrapper, allowing callers to check metadata like whether the event is replicated via EventQueueItem.isReplicated().

      Parameters:
      waitMilliSeconds - the maximum time to wait in milliseconds
      Returns:
      the EventQueueItem, or null if timeout occurs
      Throws:
      EventQueueClosedException - if the queue is closed and empty
    • taskDone

      public void taskDone()
    • close

      public abstract void close()
      Specified by:
      close in interface AutoCloseable
    • close

      public abstract void close(boolean immediate)
    • close

      public abstract void close(boolean immediate, boolean notifyParent)
      Close this queue with control over parent notification (ChildQueue only).
      Parameters:
      immediate - If true, clear all pending events immediately
      notifyParent - If true, notify parent (standard behavior). If false, close this queue without decrementing parent's reference count (used for non-blocking non-final tasks to keep MainQueue alive for resubscription)
      Throws:
      UnsupportedOperationException - if called on MainQueue
    • isClosed

      public boolean isClosed()
    • doClose

      protected void doClose()
    • doClose

      protected void doClose(boolean immediate)