001 /*
002 * Created on 16-Apr-2004
003 */
004 package ca.uhn.hl7v2.protocol;
005
006 import ca.uhn.hl7v2.HL7Exception;
007
008 /**
009 * Represents a persistent store for incoming messages. Messages
010 * may be stored here before an accept ACK is returned. The local
011 * side of the interface then takes on responsibility for delivering
012 * the message to the application.
013 *
014 * @author <a href="mailto:bryan.tripp@uhn.on.ca">Bryan Tripp</a>
015 * @version $Revision: 1.1 $ updated on $Date: 2007-02-19 02:24:38 $ by $Author: jamesagnew $
016 */
017 public interface SafeStorage {
018
019 /**
020 * Stores a message so that it can be reliably retrieved and sent to
021 * the proper application, even if this service is restarted in the mean
022 * time.
023 *
024 * @param theMessage the message to store
025 * @throws HL7Exception if there is some problem accessing the store
026 */
027 public void store(Transportable theMessage) throws HL7Exception;
028
029 /**
030 * If the given message exists in the store, it is removed.
031 *
032 * @param theMessage the message to discard
033 * @throws HL7Exception if there is some problem accessing the store
034 */
035 public void discard(Transportable theMessage) throws HL7Exception;
036
037 /**
038 * Returns all messages that have been stored. The store retains a copy
039 * of each one until discard() is called. This method would be called
040 * after the HL7 server is restarted.
041 *
042 * @return all messages in the store
043 * @throws HL7Exception if there is some problem accessing the store
044 */
045 public Transportable[] restore() throws HL7Exception;
046
047 }