gecko-dev/dom/mobilemessage/interfaces/nsIRilMobileMessageDatabaseService.idl

154 lines
6.8 KiB
Plaintext

/* 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 "domstubs.idl"
#include "nsISupports.idl"
#include "nsIMobileMessageDatabaseService.idl"
[scriptable, function, uuid(92986322-8d56-11e2-8816-73a531c493c2)]
interface nsIRilMobileMessageDatabaseCallback : nsISupports
{
/**
* |aDomMessage|: the nsIDOMMoz{Mms,Sms}Message
*/
void notify(in nsresult aRv, in nsISupports aDomMessage);
};
[scriptable, function, uuid(32b02bbe-60a1-45e0-a748-ad40709b09dd)]
interface nsIRilMobileMessageDatabaseRecordCallback : nsISupports
{
/**
* |aMessageRecord| Object: the mobile-message database record
* |aDomMessage|: the nsIDOMMoz{Mms,Sms}Message. Noted, this value might be null.
*/
void notify(in nsresult aRv, in jsval aMessageRecord, in nsISupports aDomMessage);
};
[scriptable, function, uuid(1b0ff03c-a2bc-11e3-a443-838d034c9805)]
interface nsIRilMobileMessageDatabaseConcatenationCallback : nsISupports
{
/**
* |aCompleteMessage|: jsval: the completely concatenated message. Noted, this value might be null.
*/
void notify(in nsresult aRv, in jsval aCompleteMessage);
};
%{C++
#define RIL_MOBILE_MESSAGE_DATABASE_SERVICE_CID \
{ 0x29785f90, 0x6b5b, 0x11e2, { 0x92, 0x01, 0x3b, 0x28, 0x01, 0x70, 0xb2, 0xec } }
#define RIL_MOBILE_MESSAGE_DATABASE_SERVICE_CONTRACTID \
"@mozilla.org/mobilemessage/rilmobilemessagedatabaseservice;1"
%}
[scriptable, uuid(0b437a5c-a2bc-11e3-bd1b-dbb173eb35f8)]
interface nsIRilMobileMessageDatabaseService : nsIMobileMessageDatabaseService
{
/**
* |aMessage| Object: should contain the following properties for internal use:
* - |type| DOMString: "sms" or "mms"
* - |timestamp| Number: the timestamp of received message
* - |iccId| DOMString: [optional] the ICC ID of the SIM for receiving
* message if available.
*
* - If |type| == "sms", we also need:
* - |messageClass| DOMString: the message class of received message
* - |receiver| DOMString: the phone number of receiver
* - |pid| Number: the TP-PID field of the SMS TPDU, default 0.
* - |sender| DOMString: the phone number of sender
*
* - If |type| == "mms", we also need:
* - |delivery| DOMString: the delivery state of received message
* - |deliveryStatus| DOMString: the delivery status of received message
* - |receivers| DOMString Array: the phone numbers of receivers
* - |phoneNumber| DOMString: [optional] my own phone number.
*/
void saveReceivedMessage(in jsval aMessage,
[optional] in nsIRilMobileMessageDatabaseCallback aCallback);
/**
* |aMessage| Object: should contain the following properties for internal use:
* - |type| DOMString: "sms" or "mms"
* - |sender| DOMString: the phone number of sender
* - |timestamp| Number: the timestamp of sending message
* - |deliveryStatusRequested| Bool: true when the delivery report is requested.
* - |iccId| DOMString: the ICC ID of the SIM for sending message
*
* - If |type| == "sms", we also need:
* - |receiver| DOMString: the phone number of receiver
*
* - If |type| == "mms", we also need:
* - |receivers| DOMString Array: the phone numbers of receivers
*/
void saveSendingMessage(in jsval aMessage,
[optional] in nsIRilMobileMessageDatabaseCallback aCallback);
/**
* |aMessageId| Number: the message's DB record ID.
* |aReceiver| DOMString: the phone number of receiver (for MMS; can be null).
* |aDelivery| DOMString: the new delivery value to update (can be null).
* |aDeliveryStatus| DOMString: the new delivery status to update (can be null).
* |aEnvelopeId| DOMString: the "message-id" specified in the MMS PDU headers.
* |aCallback| nsIRilMobileMessageDatabaseCallback: an optional callback.
*/
void setMessageDeliveryByMessageId(in long aMessageId,
in DOMString aReceiver,
in DOMString aDelivery,
in DOMString aDeliveryStatus,
in DOMString aEnvelopeId,
[optional] in nsIRilMobileMessageDatabaseCallback aCallback);
/**
* |aEnvelopeId| DOMString: the "message-id" specified in the MMS PDU headers.
* |aReceiver| DOMString: the phone number of receiver (for MMS; can be null).
* |aDeliveryStatus| DOMString: the new delivery status to be updated (can be null).
* |aCallback| nsIRilMobileMessageDatabaseCallback: an optional callback.
*/
void setMessageDeliveryStatusByEnvelopeId(in DOMString aEnvelopeId,
in DOMString aReceiver,
in DOMString aDeliveryStatus,
[optional] in nsIRilMobileMessageDatabaseCallback aCallback);
/**
* |aEnvelopeId| DOMString: the "message-id" specified in the MMS PDU headers.
* |aReceiver| DOMString: the phone number of receiver (for MMS; can be null).
* |aReadStatus| DOMString: the new read status to be updated.
* |aCallback| nsIRilMobileMessageDatabaseCallback: an optional callback.
*/
void setMessageReadStatusByEnvelopeId(in DOMString aEnvelopeId,
in DOMString aReceiver,
in DOMString aReadStatus,
[optional] in nsIRilMobileMessageDatabaseCallback aCallback);
/**
* |aMessageId| Number: the message's DB record ID.
* |aCallback| nsIRilMobileMessageDatabaseRecordCallback: a callback which
* takes result flag, message record and domMessage as parameters.
*/
void getMessageRecordById(in long aMessageId,
in nsIRilMobileMessageDatabaseRecordCallback aCallback);
/**
* |aTransactionId| DOMString: the transaction ID of MMS PDU.
* |aCallback| nsIRilMobileMessageDatabaseRecordCallback: a callback which
* takes result flag and message record as parameters.
*/
void getMessageRecordByTransactionId(in DOMString aTransactionId,
in nsIRilMobileMessageDatabaseRecordCallback aCallback);
/**
* |aCrError| nsresult: the NS_ERROR defined in Components.results.
*
* @returns the error code defined in nsIMobileMessageCallback
*/
jsval translateCrErrorToMessageCallbackError(in nsresult aCrError);
/**
* |aSmsSegment| jsval: Decoded Single SMS PDU.
* |aCallback| nsIRilMobileMessageDatabaseConcatenationCallback: a callback which
* takes result flag, and complete mesage as parameters.
*/
void saveSmsSegment(in jsval aSmsSegment,
in nsIRilMobileMessageDatabaseConcatenationCallback aCallback);
};