1 /* 2 * Created on 16-Apr-2004 3 */ 4 package ca.uhn.hl7v2.protocol; 5 6 import ca.uhn.hl7v2.HL7Exception; 7 8 /** 9 * Represents a persistent store for incoming messages. Messages 10 * may be stored here before an accept ACK is returned. The local 11 * side of the interface then takes on responsibility for delivering 12 * the message to the application. 13 * 14 * @author <a href="mailto:bryan.tripp@uhn.on.ca">Bryan Tripp</a> 15 * @version $Revision: 1.1 $ updated on $Date: 2007-02-19 02:24:38 $ by $Author: jamesagnew $ 16 */ 17 public interface SafeStorage { 18 19 /** 20 * Stores a message so that it can be reliably retrieved and sent to 21 * the proper application, even if this service is restarted in the mean 22 * time. 23 * 24 * @param theMessage the message to store 25 * @throws HL7Exception if there is some problem accessing the store 26 */ 27 void store(Transportable theMessage) throws HL7Exception; 28 29 /** 30 * If the given message exists in the store, it is removed. 31 * 32 * @param theMessage the message to discard 33 */ 34 void discard(Transportable theMessage); 35 36 /** 37 * Returns all messages that have been stored. The store retains a copy 38 * of each one until discard() is called. This method would be called 39 * after the HL7 server is restarted. 40 * 41 * @return all messages in the store 42 */ 43 Transportable[] restore(); 44 45 }