/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*-
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

package org.mozilla.gecko;

#ifdef MOZ_WEBSMS_BACKEND
import org.mozilla.gecko.GeckoSmsManager;
#endif

class SmsManager
{
  static private ISmsManager sInstance = null;

  static public ISmsManager getInstance() {
#ifdef MOZ_WEBSMS_BACKEND
    if (sInstance == null) {
      sInstance = new GeckoSmsManager();
    }
#endif
    return sInstance;
  }
}

interface ISmsManager
{
  public void start();
  public void stop();
  public void shutdown();

  public int getNumberOfMessagesForText(String aText);
  public void send(String aNumber, String aMessage, int aRequestId, long aProcessId);
  public int saveSentMessage(String aRecipient, String aBody, long aDate);
  public void getMessage(int aMessageId, int aRequestId, long aProcessId);
  public void deleteMessage(int aMessageId, int aRequestId, long aProcessId);
  public void createMessageList(long aStartDate, long aEndDate, String[] aNumbers, int aNumbersCount, int aDeliveryState, boolean aReverse, int aRequestId, long aProcessId);
  public void getNextMessageInList(int aListId, int aRequestId, long aProcessId);
  public void clearMessageList(int aListId);
}