/* 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/. */

#include "nsISupports.idl"

%{C++
#define MOBILE_MESSAGE_DATABASE_SERVICE_CID \
{ 0x0d84b9c2, 0x8f76, 0x4ba4,    \
{ 0xa5, 0xcd, 0xdb, 0xfb, 0x01, 0xdf, 0xda, 0x99 } }
#define MOBILE_MESSAGE_DATABASE_SERVICE_CONTRACTID "@mozilla.org/mobilemessage/mobilemessagedatabaseservice;1"
%}

interface nsICursorContinueCallback;
interface nsIDOMMozSmsFilter;
interface nsIMobileMessageCallback;
interface nsIMobileMessageCursorCallback;

[scriptable, uuid(ea6f49ae-3a4c-47eb-a489-15578e634100)]
interface nsIMobileMessageDatabaseService : nsISupports
{
  [binaryname(GetMessageMoz)]
  void getMessage(in long messageId,
                  in nsIMobileMessageCallback request);

  void deleteMessage([array, size_is(count)] in long messageIds,
                     in uint32_t count,
                     in nsIMobileMessageCallback request);

  nsICursorContinueCallback createMessageCursor(in nsIDOMMozSmsFilter filter,
                                                in boolean reverse,
                                                in nsIMobileMessageCursorCallback callback);

  void markMessageRead(in long messageId,
                       in boolean value,
                       in nsIMobileMessageCallback request);

  nsICursorContinueCallback createThreadCursor(in nsIMobileMessageCursorCallback callback);
};
