View Javadoc

1   /* ***** BEGIN LICENSE BLOCK *****
2    * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3    *
4    * The contents of this file are subject to the Mozilla Public License Version
5    * 1.1 (the "License"); you may not use this file except in compliance with
6    * the License. You may obtain a copy of the License at
7    * http://www.mozilla.org/MPL/
8    *
9    * Software distributed under the License is distributed on an "AS IS" basis,
10   * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11   * for the specific language governing rights and limitations under the
12   * License.
13   *
14   * The Original Code is "SMS Library for the Java platform".
15   *
16   * The Initial Developer of the Original Code is Markus Eriksson.
17   * Portions created by the Initial Developer are Copyright (C) 2002
18   * the Initial Developer. All Rights Reserved.
19   *
20   * Contributor(s):
21   *
22   * Alternatively, the contents of this file may be used under the terms of
23   * either the GNU General Public License Version 2 or later (the "GPL"), or
24   * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
25   * in which case the provisions of the GPL or the LGPL are applicable instead
26   * of those above. If you wish to allow use of your version of this file only
27   * under the terms of either the GPL or the LGPL, and not to allow others to
28   * use your version of this file under the terms of the MPL, indicate your
29   * decision by deleting the provisions above and replace them with the notice
30   * and other provisions required by the GPL or the LGPL. If you do not delete
31   * the provisions above, a recipient may use your version of this file under
32   * the terms of any one of the MPL, the GPL or the LGPL.
33   *
34   * ***** END LICENSE BLOCK ***** */
35  package org.marre.sms.transport;
36  
37  import java.io.IOException;
38  import java.util.Properties;
39  
40  import org.marre.sms.SmsAddress;
41  import org.marre.sms.SmsException;
42  import org.marre.sms.SmsMessage;
43  
44  /***
45   * Interface for an SMS transport.
46   * 
47   * This interface is used to transfer an smsj message to the sms server.
48   * 
49   * @author Markus Eriksson
50   * @version $Id: SmsTransport.java,v 1.12 2005/11/26 16:31:59 c95men Exp $
51   */
52  public interface SmsTransport
53  {
54      /***
55       * Initializes the transport.
56       * 
57       * Please see each transport for information on what properties that are available.
58       *
59       * @param props Properties used to configure this transport.
60       * @throws SmsException If there was a problem with the configuration. 
61       */
62      void init(Properties props) throws SmsException;
63  
64      /***
65       * Connects to the SMS server.
66       * 
67       * @throws SmsException Indicates a sms related problem.
68       * @throws IOException Inidicates a failure to communicate with the SMS server.
69       */
70      void connect() throws SmsException, IOException;
71  
72      /***
73       * Pings the SMS sender.
74       *
75       * Should be used to keep the connection alive.
76       * 
77       * @throws SmsException Indicates a sms related problem.
78       * @throws IOException Inidicates a failure to communicate with the SMS server.
79       */
80      void ping() throws SmsException, IOException;
81      
82      /***
83       * Sends an SmsMessage to the given destination.
84       * 
85       * This method returns a local identifier for the message. This messageid can then be used to query the 
86       * status, cancel or replace the sent SMS. The format of the identifier is specific to the SmsTransport 
87       * implementation. The SmsTransport implementation may decide how long the message id is valid. 
88       * 
89       * Depending on the implementation this method is blocking or non-blocking.
90       * 
91       * It is possible that the returned identifier is null. This indicates that the actual transport
92       * doesn't handle message ids.
93       * 
94       * @param msg The Message to send
95       * @param dest Destination address
96       * @param sender Sender address
97       * @return a local identifier for the message.
98       * @throws SmsException Indicates a sms related problem.
99       * @throws IOException Inidicates a failure to communicate with the SMS server.
100      */
101     String send(SmsMessage msg, SmsAddress dest, SmsAddress sender) throws SmsException, IOException;
102 
103     /***
104      * Disconnects from the SMS server.
105      * 
106      * @throws SmsException Indicates a sms related problem.
107      * @throws IOException Inidicates a failure to communicate with the SMS server.
108      */
109     void disconnect() throws SmsException, IOException;
110 }