001/* 002 * Created on 16-Apr-2004 003 */ 004package ca.uhn.hl7v2.protocol; 005 006import 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 */ 017public 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 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 */ 034 void discard(Transportable theMessage); 035 036 /** 037 * Returns all messages that have been stored. The store retains a copy 038 * of each one until discard() is called. This method would be called 039 * after the HL7 server is restarted. 040 * 041 * @return all messages in the store 042 */ 043 Transportable[] restore(); 044 045}