xmlBlaster 2.2.0 API

Class QueueQueryPlugin

  extended by org.xmlBlaster.engine.query.plugins.QueueQueryPlugin
All Implemented Interfaces:
I_Query, I_StorageSizeListener

public class QueueQueryPlugin
extends java.lang.Object
implements I_Query, I_StorageSizeListener

Each TopicHandler/SessionInfo or SubjectInfo instance creates its own instance of this plugin.

Michele Laghi
See Also:
The engine.qos.queryspec requirement, The engine.qos.queryspec.QueueQuery requirement

Nested Class Summary
(package private)  class QueueQueryPlugin.WaitingQuery
          Helper container
Field Summary
private  Global global
private static java.util.logging.Logger log
private static java.lang.String ME
private  java.util.Set waitingThreads
Constructor Summary
QueueQueryPlugin(Global global)
Method Summary
 void changed(I_Storage storage, long numEntries, long numBytes, boolean isShutdown)
          We register for queue size changes and our blocking thread returns if we are done.
private  boolean checkIfNeedsWaiting(int entriesInQueue, long bytesInQueue, QueueQueryPlugin.WaitingQuery wq)
          If no restriction is given, i.e.
private  QueueQueryPlugin.WaitingQuery[] getWaitingQueries()
 MsgUnit[] query(java.lang.Object source, java.lang.String query)
          The query to the queue.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail


private static final java.lang.String ME
See Also:
Constant Field Values


private Global global


private static java.util.logging.Logger log


private java.util.Set waitingThreads
Constructor Detail


public QueueQueryPlugin(Global global)
Method Detail


private QueueQueryPlugin.WaitingQuery[] getWaitingQueries()


private final boolean checkIfNeedsWaiting(int entriesInQueue,
                                          long bytesInQueue,
                                          QueueQueryPlugin.WaitingQuery wq)
If no restriction is given, i.e. if both maxEntries and maxBytes is negative, then it will wait.

true if it has to wait, false if there are already sufficently entries in the queue.


public MsgUnit[] query(java.lang.Object source,
                       java.lang.String query)
                throws XmlBlasterException
The query to the queue. The parameters specifying which kind of query it is are specified in the qos, and more precisely in the QuerySpecQos.

Specified by:
query in interface I_Query
source - must be an I_Queue implementation (can not be null).
query - must not be null, e.g. "maxEntries=3&maxSize=1000&consumable=true&waitingDelay=1000" for example from qosData.getQuerySpecArr()[0].getQuery().getQuery()
a MsgUnit[] containing all entries which match the query
XmlBlasterException - if something is wrong in the query (for example if the type of the object specified as the source is wrong)


public void changed(I_Storage storage,
                    long numEntries,
                    long numBytes,
                    boolean isShutdown)
We register for queue size changes and our blocking thread returns if we are done. Enforced by I_StorageSizeListener

Specified by:
changed in interface I_StorageSizeListener
storage - The queue which fires the change event
numEntries - the number of entries in the queue after the change has taken place
numBytes - number of bytes in the queue after the change has taken change.
isShutdown - Is set to true if queue.shutdown() was executed

xmlBlaster 2.2.0 API

Copyright © 1999-2014 The xmlBlaster.org contributers.