Difference between revisions of "VCLDequeueOperation"

From GreenVulcano Wiki
Jump to: navigation, search
Line 2: Line 2:
  
 
<syntaxhighlight lang="java5">
 
<syntaxhighlight lang="java5">
 +
/**
 +
* This interface identifies operations used to perform dequeue.
 +
*
 +
* The DequeueOperation adds the acknowledge() method to the
 +
* Operation interface in order to confirm consumed messages to the
 +
* underlying MOM.
 +
*
 +
*/
 +
</syntaxhighlight>
  
 +
==DequeueOperation constants==
 +
<syntaxhighlight lang="java5">
 
public static final String TYPE  = "dequeue";
 
public static final String TYPE  = "dequeue";
  
Line 16: Line 27:
 
*/
 
*/
 
public static final long  TO_NON_BLOCKING = -1;
 
public static final long  TO_NON_BLOCKING = -1;
 +
</syntaxhighlight>
  
 +
==DequeueOperation public static methods==
 +
<syntaxhighlight lang="java5">
 
/**
 
/**
 
* Returns null if no messages are available or timeout occurs.
 
* Returns null if no messages are available or timeout occurs.

Revision as of 13:22, 21 December 2012

Interface: it.greenvulcano.gvesb.virtual.DequeueOperation

/**
* This interface identifies operations used to perform dequeue.
*
* The DequeueOperation adds the acknowledge() method to the
* Operation interface in order to confirm consumed messages to the
* underlying MOM.
*
*/

DequeueOperation constants

public static final String TYPE  = "dequeue";

/**
* Used in the setTimeout() in order to set an infinite
* timeout.
*/
public static final long   TO_INDEFINITELY = 0;

/**
* Used in the setTimeout() in order to set a non-blocking
* receive.
*/
public static final long   TO_NON_BLOCKING = -1;

DequeueOperation public static methods

/**
* Returns null if no messages are available or timeout occurs.
*
* @param gvBuffer
* @return a GVBuffer or null if no messages are
*         available or timeout occurs.
* @throws ConnectionException
* @throws DequeueException
* @throws InvalidDataException
*/
public GVBuffer perform(GVBuffer gvBuffer) throws ConnectionException, DequeueException, InvalidDataException;

/**
* This method acknowledge the message identified by the given Id.
*
* @param id
* @throws ConnectionException
* @throws AcknowledgeException
*/
public void acknowledge(Id id) throws ConnectionException, AcknowledgeException;

/**
* This method acknowledge all the messages.
*
* @throws ConnectionException
* @throws AcknowledgeException
*/
public void acknowledgeAll() throws ConnectionException, AcknowledgeException;

/**
* This method roll-back the dequeue of the message identified by the given
* Id.
*
* @param id
* @throws ConnectionException
* @throws AcknowledgeException
*/
public void rollback(Id id) throws ConnectionException, AcknowledgeException;

/**
* This method roll-back the dequeue of all the messages.
*
* @throws ConnectionException
* @throws AcknowledgeException
*/
public void rollbackAll() throws ConnectionException, AcknowledgeException;

/**
* This method set the filter for messages to receive. 
* This filter is valid only for the first perform() invocation.
* The filter is reset also if perform() terminate with an exception. 
* Despite the GVVCL is a virtual interface, the syntax for the filter is
* like the syntax for JMS selectors. The concrete implementation must
* adapt to the underlying MOM.
*
* @param filter
* @throws FilterException
*/
public void setFilter(String filter) throws FilterException;

/**
* This method sets the timeout for the receive operation. 
* If 0 then the receive blocks indefinitely. If > 0
* then this parameter specify, in milliseconds, the time that the
* receive must wait for a message. If < 0 then executes a
* non-blocking receive. 
* This parameter is valid only for the first perform() invocation.
* The timeout is reset also if perform() terminate with an exception.
*
* @param timeout
*        Specify the receive timeout. If > 0 specifies the
*        milliseconds for timeout. It is possible to use the
*        TO_xxx constants in order to specify a non-blocking
*        receive operation or a indefinitely blocking receive.
*
*/
public void setTimeout(long timeout);