package ddth.dasp.framework.queue;
/**
* Represents a text-based message queue.
*
* @author NBThanh <btnguyen2k@gmail.com>
*/
public interface ITextMessageQueue {
public String getQueueName();
/**
* Consumes a message from the queue. Returns <code>null</code> if the queue
* is empty.
*
* @param message
* @return
* @throws Exception
*/
public String consumeMessage(String message) throws Exception;
/**
* Consumes a message from the queue, waits up to
* <code>timeoutMillisecs</code> milliseconds for the message to be
* available.
*
* @param message
* @param timeoutMillisecs
* timeout in milliseconds
* @return
* @throws Exception
*/
public String consumeMessage(String message, long timeoutMillisecs) throws Exception;
/**
* Produces a message to the queue. Returns <code>true</code> upon success,
* <code>false</code> otherwise.
*
* @param message
* @return
* @throws Exception
*/
public boolean produceMessage(String message) throws Exception;
/**
* Produces a message to the queue, waits up to
* <code>timeoutMillisecs</code> milliseconds if the queue is currently
* full. Returns <code>true</code> upon success, <code>false</code>
* otherwise.
*
* @param message
* @param timeoutMillisecs
* timeout in milliseconds
* @return
* @throws Exception
*/
public boolean produceMessage(String message, long timeoutMillisecs) throws Exception;
}