/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM ../../../dist/idl\nsIMobileConnectionService.idl
 */

#ifndef __gen_nsIMobileConnectionService_h__
#define __gen_nsIMobileConnectionService_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

#include "js/Value.h"

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIMobileConnectionInfo; /* forward declaration */

class nsIMobileNetworkInfo; /* forward declaration */

class nsIVariant; /* forward declaration */


/* starting interface:    nsIMobileConnectionListener */
#define NS_IMOBILECONNECTIONLISTENER_IID_STR "bc0d4d76-fd3a-4593-818f-cb6ff87fbb55"

#define NS_IMOBILECONNECTIONLISTENER_IID \
  {0xbc0d4d76, 0xfd3a, 0x4593, \
    { 0x81, 0x8f, 0xcb, 0x6f, 0xf8, 0x7f, 0xbb, 0x55 }}

class NS_NO_VTABLE nsIMobileConnectionListener : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMOBILECONNECTIONLISTENER_IID)

  /* void notifyVoiceChanged (); */
  NS_IMETHOD NotifyVoiceChanged(void) = 0;

  /* void notifyDataChanged (); */
  NS_IMETHOD NotifyDataChanged(void) = 0;

  /* void notifyUssdReceived (in DOMString message, in boolean sessionEnded); */
  NS_IMETHOD NotifyUssdReceived(const nsAString & message, bool sessionEnded) = 0;

  /* void notifyDataError (in DOMString message); */
  NS_IMETHOD NotifyDataError(const nsAString & message) = 0;

  /* void notifyCFStateChanged (in boolean success, in unsigned short action, in unsigned short reason, in DOMString number, in unsigned short timeSeconds, in unsigned short serviceClass); */
  NS_IMETHOD NotifyCFStateChanged(bool success, uint16_t action, uint16_t reason, const nsAString & number, uint16_t timeSeconds, uint16_t serviceClass) = 0;

  /* void notifyEmergencyCbModeChanged (in boolean active, in unsigned long timeoutMs); */
  NS_IMETHOD NotifyEmergencyCbModeChanged(bool active, uint32_t timeoutMs) = 0;

  /* void notifyOtaStatusChanged (in DOMString status); */
  NS_IMETHOD NotifyOtaStatusChanged(const nsAString & status) = 0;

  /* void notifyIccChanged (); */
  NS_IMETHOD NotifyIccChanged(void) = 0;

  /* void notifyRadioStateChanged (); */
  NS_IMETHOD NotifyRadioStateChanged(void) = 0;

  /* void notifyClirModeChanged (in unsigned long mode); */
  NS_IMETHOD NotifyClirModeChanged(uint32_t mode) = 0;

  /* void notifyLastKnownNetworkChanged (); */
  NS_IMETHOD NotifyLastKnownNetworkChanged(void) = 0;

  /* void notifyLastKnownHomeNetworkChanged (); */
  NS_IMETHOD NotifyLastKnownHomeNetworkChanged(void) = 0;

  /* void notifyNetworkSelectionModeChanged (); */
  NS_IMETHOD NotifyNetworkSelectionModeChanged(void) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMobileConnectionListener, NS_IMOBILECONNECTIONLISTENER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMOBILECONNECTIONLISTENER \
  NS_IMETHOD NotifyVoiceChanged(void) MOZ_OVERRIDE; \
  NS_IMETHOD NotifyDataChanged(void) MOZ_OVERRIDE; \
  NS_IMETHOD NotifyUssdReceived(const nsAString & message, bool sessionEnded) MOZ_OVERRIDE; \
  NS_IMETHOD NotifyDataError(const nsAString & message) MOZ_OVERRIDE; \
  NS_IMETHOD NotifyCFStateChanged(bool success, uint16_t action, uint16_t reason, const nsAString & number, uint16_t timeSeconds, uint16_t serviceClass) MOZ_OVERRIDE; \
  NS_IMETHOD NotifyEmergencyCbModeChanged(bool active, uint32_t timeoutMs) MOZ_OVERRIDE; \
  NS_IMETHOD NotifyOtaStatusChanged(const nsAString & status) MOZ_OVERRIDE; \
  NS_IMETHOD NotifyIccChanged(void) MOZ_OVERRIDE; \
  NS_IMETHOD NotifyRadioStateChanged(void) MOZ_OVERRIDE; \
  NS_IMETHOD NotifyClirModeChanged(uint32_t mode) MOZ_OVERRIDE; \
  NS_IMETHOD NotifyLastKnownNetworkChanged(void) MOZ_OVERRIDE; \
  NS_IMETHOD NotifyLastKnownHomeNetworkChanged(void) MOZ_OVERRIDE; \
  NS_IMETHOD NotifyNetworkSelectionModeChanged(void) MOZ_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMOBILECONNECTIONLISTENER(_to) \
  NS_IMETHOD NotifyVoiceChanged(void) MOZ_OVERRIDE { return _to NotifyVoiceChanged(); } \
  NS_IMETHOD NotifyDataChanged(void) MOZ_OVERRIDE { return _to NotifyDataChanged(); } \
  NS_IMETHOD NotifyUssdReceived(const nsAString & message, bool sessionEnded) MOZ_OVERRIDE { return _to NotifyUssdReceived(message, sessionEnded); } \
  NS_IMETHOD NotifyDataError(const nsAString & message) MOZ_OVERRIDE { return _to NotifyDataError(message); } \
  NS_IMETHOD NotifyCFStateChanged(bool success, uint16_t action, uint16_t reason, const nsAString & number, uint16_t timeSeconds, uint16_t serviceClass) MOZ_OVERRIDE { return _to NotifyCFStateChanged(success, action, reason, number, timeSeconds, serviceClass); } \
  NS_IMETHOD NotifyEmergencyCbModeChanged(bool active, uint32_t timeoutMs) MOZ_OVERRIDE { return _to NotifyEmergencyCbModeChanged(active, timeoutMs); } \
  NS_IMETHOD NotifyOtaStatusChanged(const nsAString & status) MOZ_OVERRIDE { return _to NotifyOtaStatusChanged(status); } \
  NS_IMETHOD NotifyIccChanged(void) MOZ_OVERRIDE { return _to NotifyIccChanged(); } \
  NS_IMETHOD NotifyRadioStateChanged(void) MOZ_OVERRIDE { return _to NotifyRadioStateChanged(); } \
  NS_IMETHOD NotifyClirModeChanged(uint32_t mode) MOZ_OVERRIDE { return _to NotifyClirModeChanged(mode); } \
  NS_IMETHOD NotifyLastKnownNetworkChanged(void) MOZ_OVERRIDE { return _to NotifyLastKnownNetworkChanged(); } \
  NS_IMETHOD NotifyLastKnownHomeNetworkChanged(void) MOZ_OVERRIDE { return _to NotifyLastKnownHomeNetworkChanged(); } \
  NS_IMETHOD NotifyNetworkSelectionModeChanged(void) MOZ_OVERRIDE { return _to NotifyNetworkSelectionModeChanged(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMOBILECONNECTIONLISTENER(_to) \
  NS_IMETHOD NotifyVoiceChanged(void) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyVoiceChanged(); } \
  NS_IMETHOD NotifyDataChanged(void) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyDataChanged(); } \
  NS_IMETHOD NotifyUssdReceived(const nsAString & message, bool sessionEnded) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyUssdReceived(message, sessionEnded); } \
  NS_IMETHOD NotifyDataError(const nsAString & message) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyDataError(message); } \
  NS_IMETHOD NotifyCFStateChanged(bool success, uint16_t action, uint16_t reason, const nsAString & number, uint16_t timeSeconds, uint16_t serviceClass) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyCFStateChanged(success, action, reason, number, timeSeconds, serviceClass); } \
  NS_IMETHOD NotifyEmergencyCbModeChanged(bool active, uint32_t timeoutMs) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyEmergencyCbModeChanged(active, timeoutMs); } \
  NS_IMETHOD NotifyOtaStatusChanged(const nsAString & status) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyOtaStatusChanged(status); } \
  NS_IMETHOD NotifyIccChanged(void) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyIccChanged(); } \
  NS_IMETHOD NotifyRadioStateChanged(void) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyRadioStateChanged(); } \
  NS_IMETHOD NotifyClirModeChanged(uint32_t mode) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyClirModeChanged(mode); } \
  NS_IMETHOD NotifyLastKnownNetworkChanged(void) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyLastKnownNetworkChanged(); } \
  NS_IMETHOD NotifyLastKnownHomeNetworkChanged(void) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyLastKnownHomeNetworkChanged(); } \
  NS_IMETHOD NotifyNetworkSelectionModeChanged(void) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyNetworkSelectionModeChanged(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsMobileConnectionListener : public nsIMobileConnectionListener
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMOBILECONNECTIONLISTENER

  nsMobileConnectionListener();

private:
  ~nsMobileConnectionListener();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsMobileConnectionListener, nsIMobileConnectionListener)

nsMobileConnectionListener::nsMobileConnectionListener()
{
  /* member initializers and constructor code */
}

nsMobileConnectionListener::~nsMobileConnectionListener()
{
  /* destructor code */
}

/* void notifyVoiceChanged (); */
NS_IMETHODIMP nsMobileConnectionListener::NotifyVoiceChanged()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyDataChanged (); */
NS_IMETHODIMP nsMobileConnectionListener::NotifyDataChanged()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyUssdReceived (in DOMString message, in boolean sessionEnded); */
NS_IMETHODIMP nsMobileConnectionListener::NotifyUssdReceived(const nsAString & message, bool sessionEnded)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyDataError (in DOMString message); */
NS_IMETHODIMP nsMobileConnectionListener::NotifyDataError(const nsAString & message)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyCFStateChanged (in boolean success, in unsigned short action, in unsigned short reason, in DOMString number, in unsigned short timeSeconds, in unsigned short serviceClass); */
NS_IMETHODIMP nsMobileConnectionListener::NotifyCFStateChanged(bool success, uint16_t action, uint16_t reason, const nsAString & number, uint16_t timeSeconds, uint16_t serviceClass)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyEmergencyCbModeChanged (in boolean active, in unsigned long timeoutMs); */
NS_IMETHODIMP nsMobileConnectionListener::NotifyEmergencyCbModeChanged(bool active, uint32_t timeoutMs)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyOtaStatusChanged (in DOMString status); */
NS_IMETHODIMP nsMobileConnectionListener::NotifyOtaStatusChanged(const nsAString & status)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyIccChanged (); */
NS_IMETHODIMP nsMobileConnectionListener::NotifyIccChanged()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyRadioStateChanged (); */
NS_IMETHODIMP nsMobileConnectionListener::NotifyRadioStateChanged()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyClirModeChanged (in unsigned long mode); */
NS_IMETHODIMP nsMobileConnectionListener::NotifyClirModeChanged(uint32_t mode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyLastKnownNetworkChanged (); */
NS_IMETHODIMP nsMobileConnectionListener::NotifyLastKnownNetworkChanged()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyLastKnownHomeNetworkChanged (); */
NS_IMETHODIMP nsMobileConnectionListener::NotifyLastKnownHomeNetworkChanged()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyNetworkSelectionModeChanged (); */
NS_IMETHODIMP nsMobileConnectionListener::NotifyNetworkSelectionModeChanged()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#define NO_ADDITIONAL_INFORMATION 0

/* starting interface:    nsIMobileConnectionCallback */
#define NS_IMOBILECONNECTIONCALLBACK_IID_STR "e9d7c247-34c6-42bf-875b-f99b19db394f"

#define NS_IMOBILECONNECTIONCALLBACK_IID \
  {0xe9d7c247, 0x34c6, 0x42bf, \
    { 0x87, 0x5b, 0xf9, 0x9b, 0x19, 0xdb, 0x39, 0x4f }}

class nsIMobileConnectionCallback : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMOBILECONNECTIONCALLBACK_IID)

  /* void notifySuccess (); */
  NS_IMETHOD NotifySuccess(void) = 0;

  /* void notifySuccessWithString (in DOMString result); */
  NS_IMETHOD NotifySuccessWithString(const nsAString & result) = 0;

  /* void notifySuccessWithBoolean (in boolean result); */
  NS_IMETHOD NotifySuccessWithBoolean(bool result) = 0;

  /* void notifyGetNetworksSuccess (in uint32_t count, [array, size_is (count)] in nsIMobileNetworkInfo networks); */
  NS_IMETHOD NotifyGetNetworksSuccess(uint32_t count, nsIMobileNetworkInfo **networks) = 0;

  /* void notifySendCancelMmiSuccess (in jsval result); */
  NS_IMETHOD NotifySendCancelMmiSuccess(JS::HandleValue result) = 0;

  /* void notifyGetCallForwardingSuccess (in jsval results); */
  NS_IMETHOD NotifyGetCallForwardingSuccess(JS::HandleValue results) = 0;

  /* void notifyGetCallBarringSuccess (in unsigned short program, in boolean enabled, in unsigned short serviceClass); */
  NS_IMETHOD NotifyGetCallBarringSuccess(uint16_t program, bool enabled, uint16_t serviceClass) = 0;

  /* void notifyGetClirStatusSuccess (in unsigned short n, in unsigned short m); */
  NS_IMETHOD NotifyGetClirStatusSuccess(uint16_t n, uint16_t m) = 0;

  /* [optional_argc] void notifyError (in DOMString name, [optional] in DOMString message, [optional] in DOMString serviceCode, [optional] in unsigned short additionalInformation); */
  NS_IMETHOD NotifyError(const nsAString & name, const nsAString & message, const nsAString & serviceCode, uint16_t additionalInformation, uint8_t _argc) = 0;

   // non-virtual so it won't affect the vtable
  inline nsresult NotifyError(const nsAString& aName)
  {
    return NotifyError(aName, EmptyString(), EmptyString(),
                       NO_ADDITIONAL_INFORMATION, 0 /* ARGC = 0 */);
  }
  // non-virtual so it won't affect the vtable
  inline nsresult NotifyError(const nsAString& aName,
                              const nsAString& aMessage)
  {
    return NotifyError(aName, aMessage, EmptyString(), NO_ADDITIONAL_INFORMATION,
                       1 /* ARGC = 1 */);
  }
  // non-virtual so it won't affect the vtable
  inline nsresult NotifyError(const nsAString& aName,
                              const nsAString& aMessage,
                              const nsAString& aServiceCode)
  {
    return NotifyError(aName, aMessage, aServiceCode, NO_ADDITIONAL_INFORMATION,
                       2 /* ARGC = 2 */);
  }
  // non-virtual so it won't affect the vtable
  inline nsresult NotifyError(const nsAString& aName,
                              const nsAString& aMessage,
                              const nsAString& aServiceCode,
                              uint16_t aAdditionInformation)
  {
    return NotifyError(aName, aMessage, aServiceCode, aAdditionInformation,
                       3 /* ARGC = 3 */);
  }
};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMobileConnectionCallback, NS_IMOBILECONNECTIONCALLBACK_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMOBILECONNECTIONCALLBACK \
  NS_IMETHOD NotifySuccess(void) MOZ_OVERRIDE; \
  NS_IMETHOD NotifySuccessWithString(const nsAString & result) MOZ_OVERRIDE; \
  NS_IMETHOD NotifySuccessWithBoolean(bool result) MOZ_OVERRIDE; \
  NS_IMETHOD NotifyGetNetworksSuccess(uint32_t count, nsIMobileNetworkInfo **networks) MOZ_OVERRIDE; \
  NS_IMETHOD NotifySendCancelMmiSuccess(JS::HandleValue result) MOZ_OVERRIDE; \
  NS_IMETHOD NotifyGetCallForwardingSuccess(JS::HandleValue results) MOZ_OVERRIDE; \
  NS_IMETHOD NotifyGetCallBarringSuccess(uint16_t program, bool enabled, uint16_t serviceClass) MOZ_OVERRIDE; \
  NS_IMETHOD NotifyGetClirStatusSuccess(uint16_t n, uint16_t m) MOZ_OVERRIDE; \
  NS_IMETHOD NotifyError(const nsAString & name, const nsAString & message, const nsAString & serviceCode, uint16_t additionalInformation, uint8_t _argc) MOZ_OVERRIDE; \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMOBILECONNECTIONCALLBACK(_to) \
  NS_IMETHOD NotifySuccess(void) MOZ_OVERRIDE { return _to NotifySuccess(); } \
  NS_IMETHOD NotifySuccessWithString(const nsAString & result) MOZ_OVERRIDE { return _to NotifySuccessWithString(result); } \
  NS_IMETHOD NotifySuccessWithBoolean(bool result) MOZ_OVERRIDE { return _to NotifySuccessWithBoolean(result); } \
  NS_IMETHOD NotifyGetNetworksSuccess(uint32_t count, nsIMobileNetworkInfo **networks) MOZ_OVERRIDE { return _to NotifyGetNetworksSuccess(count, networks); } \
  NS_IMETHOD NotifySendCancelMmiSuccess(JS::HandleValue result) MOZ_OVERRIDE { return _to NotifySendCancelMmiSuccess(result); } \
  NS_IMETHOD NotifyGetCallForwardingSuccess(JS::HandleValue results) MOZ_OVERRIDE { return _to NotifyGetCallForwardingSuccess(results); } \
  NS_IMETHOD NotifyGetCallBarringSuccess(uint16_t program, bool enabled, uint16_t serviceClass) MOZ_OVERRIDE { return _to NotifyGetCallBarringSuccess(program, enabled, serviceClass); } \
  NS_IMETHOD NotifyGetClirStatusSuccess(uint16_t n, uint16_t m) MOZ_OVERRIDE { return _to NotifyGetClirStatusSuccess(n, m); } \
  NS_IMETHOD NotifyError(const nsAString & name, const nsAString & message, const nsAString & serviceCode, uint16_t additionalInformation, uint8_t _argc) MOZ_OVERRIDE { return _to NotifyError(name, message, serviceCode, additionalInformation, _argc); } \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMOBILECONNECTIONCALLBACK(_to) \
  NS_IMETHOD NotifySuccess(void) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifySuccess(); } \
  NS_IMETHOD NotifySuccessWithString(const nsAString & result) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifySuccessWithString(result); } \
  NS_IMETHOD NotifySuccessWithBoolean(bool result) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifySuccessWithBoolean(result); } \
  NS_IMETHOD NotifyGetNetworksSuccess(uint32_t count, nsIMobileNetworkInfo **networks) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyGetNetworksSuccess(count, networks); } \
  NS_IMETHOD NotifySendCancelMmiSuccess(JS::HandleValue result) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifySendCancelMmiSuccess(result); } \
  NS_IMETHOD NotifyGetCallForwardingSuccess(JS::HandleValue results) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyGetCallForwardingSuccess(results); } \
  NS_IMETHOD NotifyGetCallBarringSuccess(uint16_t program, bool enabled, uint16_t serviceClass) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyGetCallBarringSuccess(program, enabled, serviceClass); } \
  NS_IMETHOD NotifyGetClirStatusSuccess(uint16_t n, uint16_t m) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyGetClirStatusSuccess(n, m); } \
  NS_IMETHOD NotifyError(const nsAString & name, const nsAString & message, const nsAString & serviceCode, uint16_t additionalInformation, uint8_t _argc) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyError(name, message, serviceCode, additionalInformation, _argc); } \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsMobileConnectionCallback : public nsIMobileConnectionCallback
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMOBILECONNECTIONCALLBACK

  nsMobileConnectionCallback();

private:
  ~nsMobileConnectionCallback();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsMobileConnectionCallback, nsIMobileConnectionCallback)

nsMobileConnectionCallback::nsMobileConnectionCallback()
{
  /* member initializers and constructor code */
}

nsMobileConnectionCallback::~nsMobileConnectionCallback()
{
  /* destructor code */
}

/* void notifySuccess (); */
NS_IMETHODIMP nsMobileConnectionCallback::NotifySuccess()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifySuccessWithString (in DOMString result); */
NS_IMETHODIMP nsMobileConnectionCallback::NotifySuccessWithString(const nsAString & result)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifySuccessWithBoolean (in boolean result); */
NS_IMETHODIMP nsMobileConnectionCallback::NotifySuccessWithBoolean(bool result)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyGetNetworksSuccess (in uint32_t count, [array, size_is (count)] in nsIMobileNetworkInfo networks); */
NS_IMETHODIMP nsMobileConnectionCallback::NotifyGetNetworksSuccess(uint32_t count, nsIMobileNetworkInfo **networks)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifySendCancelMmiSuccess (in jsval result); */
NS_IMETHODIMP nsMobileConnectionCallback::NotifySendCancelMmiSuccess(JS::HandleValue result)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyGetCallForwardingSuccess (in jsval results); */
NS_IMETHODIMP nsMobileConnectionCallback::NotifyGetCallForwardingSuccess(JS::HandleValue results)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyGetCallBarringSuccess (in unsigned short program, in boolean enabled, in unsigned short serviceClass); */
NS_IMETHODIMP nsMobileConnectionCallback::NotifyGetCallBarringSuccess(uint16_t program, bool enabled, uint16_t serviceClass)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyGetClirStatusSuccess (in unsigned short n, in unsigned short m); */
NS_IMETHODIMP nsMobileConnectionCallback::NotifyGetClirStatusSuccess(uint16_t n, uint16_t m)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [optional_argc] void notifyError (in DOMString name, [optional] in DOMString message, [optional] in DOMString serviceCode, [optional] in unsigned short additionalInformation); */
NS_IMETHODIMP nsMobileConnectionCallback::NotifyError(const nsAString & name, const nsAString & message, const nsAString & serviceCode, uint16_t additionalInformation, uint8_t _argc)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#define NS_MOBILE_CONNECTION_SERVICE_CID \
  { 0xc6f229d4, 0x16e2, 0x4600, \
    { 0x87, 0x2a, 0x3d, 0x3d, 0xc5, 0xb8, 0x55, 0x41 } }
#define NS_MOBILE_CONNECTION_SERVICE_CONTRACTID \
  "@mozilla.org/mobileconnection/mobileconnectionservice;1"

/* starting interface:    nsIMobileConnectionService */
#define NS_IMOBILECONNECTIONSERVICE_IID_STR "b50ad32d-f70e-4729-a947-e8cfdb6ba81f"

#define NS_IMOBILECONNECTIONSERVICE_IID \
  {0xb50ad32d, 0xf70e, 0x4729, \
    { 0xa9, 0x47, 0xe8, 0xcf, 0xdb, 0x6b, 0xa8, 0x1f }}

class NS_NO_VTABLE nsIMobileConnectionService : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMOBILECONNECTIONSERVICE_IID)

  enum {
    ICC_SERVICE_CLASS_VOICE = 1,
    ICC_SERVICE_CLASS_DATA = 2,
    ICC_SERVICE_CLASS_FAX = 4,
    ICC_SERVICE_CLASS_SMS = 8,
    ICC_SERVICE_CLASS_DATA_SYNC = 16,
    ICC_SERVICE_CLASS_DATA_ASYNC = 32,
    ICC_SERVICE_CLASS_PACKET = 64,
    ICC_SERVICE_CLASS_PAD = 128,
    ICC_SERVICE_CLASS_MAX = 128,
    CALL_FORWARD_ACTION_DISABLE = 0,
    CALL_FORWARD_ACTION_ENABLE = 1,
    CALL_FORWARD_ACTION_QUERY_STATUS = 2,
    CALL_FORWARD_ACTION_REGISTRATION = 3,
    CALL_FORWARD_ACTION_ERASURE = 4,
    CALL_FORWARD_REASON_UNCONDITIONAL = 0,
    CALL_FORWARD_REASON_MOBILE_BUSY = 1,
    CALL_FORWARD_REASON_NO_REPLY = 2,
    CALL_FORWARD_REASON_NOT_REACHABLE = 3,
    CALL_FORWARD_REASON_ALL_CALL_FORWARDING = 4,
    CALL_FORWARD_REASON_ALL_CONDITIONAL_CALL_FORWARDING = 5,
    CALL_BARRING_PROGRAM_ALL_OUTGOING = 0,
    CALL_BARRING_PROGRAM_OUTGOING_INTERNATIONAL = 1,
    CALL_BARRING_PROGRAM_OUTGOING_INTERNATIONAL_EXCEPT_HOME = 2,
    CALL_BARRING_PROGRAM_ALL_INCOMING = 3,
    CALL_BARRING_PROGRAM_INCOMING_ROAMING = 4,
    CLIR_DEFAULT = 0,
    CLIR_INVOCATION = 1,
    CLIR_SUPPRESSION = 2
  };

  /* void registerListener (in unsigned long clientId, in nsIMobileConnectionListener listener); */
  NS_IMETHOD RegisterListener(uint32_t clientId, nsIMobileConnectionListener *listener) = 0;

  /* void unregisterListener (in unsigned long clientId, in nsIMobileConnectionListener listener); */
  NS_IMETHOD UnregisterListener(uint32_t clientId, nsIMobileConnectionListener *listener) = 0;

  /* DOMString getLastKnownNetwork (in unsigned long clientId); */
  NS_IMETHOD GetLastKnownNetwork(uint32_t clientId, nsAString & _retval) = 0;

  /* DOMString getLastKnownHomeNetwork (in unsigned long clientId); */
  NS_IMETHOD GetLastKnownHomeNetwork(uint32_t clientId, nsAString & _retval) = 0;

  /* nsIMobileConnectionInfo getVoiceConnectionInfo (in unsigned long clientId); */
  NS_IMETHOD GetVoiceConnectionInfo(uint32_t clientId, nsIMobileConnectionInfo * *_retval) = 0;

  /* nsIMobileConnectionInfo getDataConnectionInfo (in unsigned long clientId); */
  NS_IMETHOD GetDataConnectionInfo(uint32_t clientId, nsIMobileConnectionInfo * *_retval) = 0;

  /* DOMString getIccId (in unsigned long clientId); */
  NS_IMETHOD GetIccId(uint32_t clientId, nsAString & _retval) = 0;

  /* DOMString getNetworkSelectionMode (in unsigned long clientId); */
  NS_IMETHOD GetNetworkSelectionMode(uint32_t clientId, nsAString & _retval) = 0;

  /* DOMString getRadioState (in unsigned long clientId); */
  NS_IMETHOD GetRadioState(uint32_t clientId, nsAString & _retval) = 0;

  /* nsIVariant getSupportedNetworkTypes (in unsigned long clientId); */
  NS_IMETHOD GetSupportedNetworkTypes(uint32_t clientId, nsIVariant * *_retval) = 0;

  /* void getNetworks (in unsigned long clientId, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD GetNetworks(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void selectNetwork (in unsigned long clientId, in nsIMobileNetworkInfo network, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD SelectNetwork(uint32_t clientId, nsIMobileNetworkInfo *network, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void selectNetworkAutomatically (in unsigned long clientId, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD SelectNetworkAutomatically(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void setPreferredNetworkType (in unsigned long clientId, in DOMString type, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD SetPreferredNetworkType(uint32_t clientId, const nsAString & type, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void getPreferredNetworkType (in unsigned long clientId, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD GetPreferredNetworkType(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void setRoamingPreference (in unsigned long clientId, in DOMString mode, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD SetRoamingPreference(uint32_t clientId, const nsAString & mode, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void getRoamingPreference (in unsigned long clientId, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD GetRoamingPreference(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void setVoicePrivacyMode (in unsigned long clientId, in bool enabled, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD SetVoicePrivacyMode(uint32_t clientId, bool enabled, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void getVoicePrivacyMode (in unsigned long clientId, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD GetVoicePrivacyMode(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void sendMMI (in unsigned long clientId, in DOMString mmi, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD SendMMI(uint32_t clientId, const nsAString & mmi, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void cancelMMI (in unsigned long clientId, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD CancelMMI(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void getCallForwarding (in unsigned long clientId, in unsigned short reason, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD GetCallForwarding(uint32_t clientId, uint16_t reason, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void setCallForwarding (in unsigned long clientId, in jsval options, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD SetCallForwarding(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void getCallBarring (in unsigned long clientId, in jsval options, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD GetCallBarring(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void setCallBarring (in unsigned long clientId, in jsval options, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD SetCallBarring(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void changeCallBarringPassword (in unsigned long clientId, in jsval options, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD ChangeCallBarringPassword(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void setCallWaiting (in unsigned long clientId, in bool enabled, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD SetCallWaiting(uint32_t clientId, bool enabled, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void getCallWaiting (in unsigned long clientId, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD GetCallWaiting(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void setCallingLineIdRestriction (in unsigned long clientId, in unsigned short clirMode, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD SetCallingLineIdRestriction(uint32_t clientId, uint16_t clirMode, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void getCallingLineIdRestriction (in unsigned long clientId, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD GetCallingLineIdRestriction(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void exitEmergencyCbMode (in unsigned long clientId, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD ExitEmergencyCbMode(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) = 0;

  /* void setRadioEnabled (in unsigned long clientId, in bool enabled, in nsIMobileConnectionCallback requestCallback); */
  NS_IMETHOD SetRadioEnabled(uint32_t clientId, bool enabled, nsIMobileConnectionCallback *requestCallback) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMobileConnectionService, NS_IMOBILECONNECTIONSERVICE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMOBILECONNECTIONSERVICE \
  NS_IMETHOD RegisterListener(uint32_t clientId, nsIMobileConnectionListener *listener) MOZ_OVERRIDE; \
  NS_IMETHOD UnregisterListener(uint32_t clientId, nsIMobileConnectionListener *listener) MOZ_OVERRIDE; \
  NS_IMETHOD GetLastKnownNetwork(uint32_t clientId, nsAString & _retval) MOZ_OVERRIDE; \
  NS_IMETHOD GetLastKnownHomeNetwork(uint32_t clientId, nsAString & _retval) MOZ_OVERRIDE; \
  NS_IMETHOD GetVoiceConnectionInfo(uint32_t clientId, nsIMobileConnectionInfo * *_retval) MOZ_OVERRIDE; \
  NS_IMETHOD GetDataConnectionInfo(uint32_t clientId, nsIMobileConnectionInfo * *_retval) MOZ_OVERRIDE; \
  NS_IMETHOD GetIccId(uint32_t clientId, nsAString & _retval) MOZ_OVERRIDE; \
  NS_IMETHOD GetNetworkSelectionMode(uint32_t clientId, nsAString & _retval) MOZ_OVERRIDE; \
  NS_IMETHOD GetRadioState(uint32_t clientId, nsAString & _retval) MOZ_OVERRIDE; \
  NS_IMETHOD GetSupportedNetworkTypes(uint32_t clientId, nsIVariant * *_retval) MOZ_OVERRIDE; \
  NS_IMETHOD GetNetworks(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD SelectNetwork(uint32_t clientId, nsIMobileNetworkInfo *network, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD SelectNetworkAutomatically(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD SetPreferredNetworkType(uint32_t clientId, const nsAString & type, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD GetPreferredNetworkType(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD SetRoamingPreference(uint32_t clientId, const nsAString & mode, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD GetRoamingPreference(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD SetVoicePrivacyMode(uint32_t clientId, bool enabled, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD GetVoicePrivacyMode(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD SendMMI(uint32_t clientId, const nsAString & mmi, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD CancelMMI(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD GetCallForwarding(uint32_t clientId, uint16_t reason, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD SetCallForwarding(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD GetCallBarring(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD SetCallBarring(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD ChangeCallBarringPassword(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD SetCallWaiting(uint32_t clientId, bool enabled, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD GetCallWaiting(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD SetCallingLineIdRestriction(uint32_t clientId, uint16_t clirMode, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD GetCallingLineIdRestriction(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD ExitEmergencyCbMode(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; \
  NS_IMETHOD SetRadioEnabled(uint32_t clientId, bool enabled, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMOBILECONNECTIONSERVICE(_to) \
  NS_IMETHOD RegisterListener(uint32_t clientId, nsIMobileConnectionListener *listener) MOZ_OVERRIDE { return _to RegisterListener(clientId, listener); } \
  NS_IMETHOD UnregisterListener(uint32_t clientId, nsIMobileConnectionListener *listener) MOZ_OVERRIDE { return _to UnregisterListener(clientId, listener); } \
  NS_IMETHOD GetLastKnownNetwork(uint32_t clientId, nsAString & _retval) MOZ_OVERRIDE { return _to GetLastKnownNetwork(clientId, _retval); } \
  NS_IMETHOD GetLastKnownHomeNetwork(uint32_t clientId, nsAString & _retval) MOZ_OVERRIDE { return _to GetLastKnownHomeNetwork(clientId, _retval); } \
  NS_IMETHOD GetVoiceConnectionInfo(uint32_t clientId, nsIMobileConnectionInfo * *_retval) MOZ_OVERRIDE { return _to GetVoiceConnectionInfo(clientId, _retval); } \
  NS_IMETHOD GetDataConnectionInfo(uint32_t clientId, nsIMobileConnectionInfo * *_retval) MOZ_OVERRIDE { return _to GetDataConnectionInfo(clientId, _retval); } \
  NS_IMETHOD GetIccId(uint32_t clientId, nsAString & _retval) MOZ_OVERRIDE { return _to GetIccId(clientId, _retval); } \
  NS_IMETHOD GetNetworkSelectionMode(uint32_t clientId, nsAString & _retval) MOZ_OVERRIDE { return _to GetNetworkSelectionMode(clientId, _retval); } \
  NS_IMETHOD GetRadioState(uint32_t clientId, nsAString & _retval) MOZ_OVERRIDE { return _to GetRadioState(clientId, _retval); } \
  NS_IMETHOD GetSupportedNetworkTypes(uint32_t clientId, nsIVariant * *_retval) MOZ_OVERRIDE { return _to GetSupportedNetworkTypes(clientId, _retval); } \
  NS_IMETHOD GetNetworks(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to GetNetworks(clientId, requestCallback); } \
  NS_IMETHOD SelectNetwork(uint32_t clientId, nsIMobileNetworkInfo *network, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to SelectNetwork(clientId, network, requestCallback); } \
  NS_IMETHOD SelectNetworkAutomatically(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to SelectNetworkAutomatically(clientId, requestCallback); } \
  NS_IMETHOD SetPreferredNetworkType(uint32_t clientId, const nsAString & type, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to SetPreferredNetworkType(clientId, type, requestCallback); } \
  NS_IMETHOD GetPreferredNetworkType(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to GetPreferredNetworkType(clientId, requestCallback); } \
  NS_IMETHOD SetRoamingPreference(uint32_t clientId, const nsAString & mode, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to SetRoamingPreference(clientId, mode, requestCallback); } \
  NS_IMETHOD GetRoamingPreference(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to GetRoamingPreference(clientId, requestCallback); } \
  NS_IMETHOD SetVoicePrivacyMode(uint32_t clientId, bool enabled, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to SetVoicePrivacyMode(clientId, enabled, requestCallback); } \
  NS_IMETHOD GetVoicePrivacyMode(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to GetVoicePrivacyMode(clientId, requestCallback); } \
  NS_IMETHOD SendMMI(uint32_t clientId, const nsAString & mmi, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to SendMMI(clientId, mmi, requestCallback); } \
  NS_IMETHOD CancelMMI(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to CancelMMI(clientId, requestCallback); } \
  NS_IMETHOD GetCallForwarding(uint32_t clientId, uint16_t reason, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to GetCallForwarding(clientId, reason, requestCallback); } \
  NS_IMETHOD SetCallForwarding(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to SetCallForwarding(clientId, options, requestCallback); } \
  NS_IMETHOD GetCallBarring(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to GetCallBarring(clientId, options, requestCallback); } \
  NS_IMETHOD SetCallBarring(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to SetCallBarring(clientId, options, requestCallback); } \
  NS_IMETHOD ChangeCallBarringPassword(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to ChangeCallBarringPassword(clientId, options, requestCallback); } \
  NS_IMETHOD SetCallWaiting(uint32_t clientId, bool enabled, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to SetCallWaiting(clientId, enabled, requestCallback); } \
  NS_IMETHOD GetCallWaiting(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to GetCallWaiting(clientId, requestCallback); } \
  NS_IMETHOD SetCallingLineIdRestriction(uint32_t clientId, uint16_t clirMode, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to SetCallingLineIdRestriction(clientId, clirMode, requestCallback); } \
  NS_IMETHOD GetCallingLineIdRestriction(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to GetCallingLineIdRestriction(clientId, requestCallback); } \
  NS_IMETHOD ExitEmergencyCbMode(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to ExitEmergencyCbMode(clientId, requestCallback); } \
  NS_IMETHOD SetRadioEnabled(uint32_t clientId, bool enabled, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return _to SetRadioEnabled(clientId, enabled, requestCallback); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMOBILECONNECTIONSERVICE(_to) \
  NS_IMETHOD RegisterListener(uint32_t clientId, nsIMobileConnectionListener *listener) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->RegisterListener(clientId, listener); } \
  NS_IMETHOD UnregisterListener(uint32_t clientId, nsIMobileConnectionListener *listener) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->UnregisterListener(clientId, listener); } \
  NS_IMETHOD GetLastKnownNetwork(uint32_t clientId, nsAString & _retval) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastKnownNetwork(clientId, _retval); } \
  NS_IMETHOD GetLastKnownHomeNetwork(uint32_t clientId, nsAString & _retval) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastKnownHomeNetwork(clientId, _retval); } \
  NS_IMETHOD GetVoiceConnectionInfo(uint32_t clientId, nsIMobileConnectionInfo * *_retval) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVoiceConnectionInfo(clientId, _retval); } \
  NS_IMETHOD GetDataConnectionInfo(uint32_t clientId, nsIMobileConnectionInfo * *_retval) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDataConnectionInfo(clientId, _retval); } \
  NS_IMETHOD GetIccId(uint32_t clientId, nsAString & _retval) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIccId(clientId, _retval); } \
  NS_IMETHOD GetNetworkSelectionMode(uint32_t clientId, nsAString & _retval) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNetworkSelectionMode(clientId, _retval); } \
  NS_IMETHOD GetRadioState(uint32_t clientId, nsAString & _retval) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRadioState(clientId, _retval); } \
  NS_IMETHOD GetSupportedNetworkTypes(uint32_t clientId, nsIVariant * *_retval) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedNetworkTypes(clientId, _retval); } \
  NS_IMETHOD GetNetworks(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNetworks(clientId, requestCallback); } \
  NS_IMETHOD SelectNetwork(uint32_t clientId, nsIMobileNetworkInfo *network, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SelectNetwork(clientId, network, requestCallback); } \
  NS_IMETHOD SelectNetworkAutomatically(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SelectNetworkAutomatically(clientId, requestCallback); } \
  NS_IMETHOD SetPreferredNetworkType(uint32_t clientId, const nsAString & type, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPreferredNetworkType(clientId, type, requestCallback); } \
  NS_IMETHOD GetPreferredNetworkType(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPreferredNetworkType(clientId, requestCallback); } \
  NS_IMETHOD SetRoamingPreference(uint32_t clientId, const nsAString & mode, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRoamingPreference(clientId, mode, requestCallback); } \
  NS_IMETHOD GetRoamingPreference(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRoamingPreference(clientId, requestCallback); } \
  NS_IMETHOD SetVoicePrivacyMode(uint32_t clientId, bool enabled, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVoicePrivacyMode(clientId, enabled, requestCallback); } \
  NS_IMETHOD GetVoicePrivacyMode(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVoicePrivacyMode(clientId, requestCallback); } \
  NS_IMETHOD SendMMI(uint32_t clientId, const nsAString & mmi, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SendMMI(clientId, mmi, requestCallback); } \
  NS_IMETHOD CancelMMI(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->CancelMMI(clientId, requestCallback); } \
  NS_IMETHOD GetCallForwarding(uint32_t clientId, uint16_t reason, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCallForwarding(clientId, reason, requestCallback); } \
  NS_IMETHOD SetCallForwarding(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCallForwarding(clientId, options, requestCallback); } \
  NS_IMETHOD GetCallBarring(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCallBarring(clientId, options, requestCallback); } \
  NS_IMETHOD SetCallBarring(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCallBarring(clientId, options, requestCallback); } \
  NS_IMETHOD ChangeCallBarringPassword(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->ChangeCallBarringPassword(clientId, options, requestCallback); } \
  NS_IMETHOD SetCallWaiting(uint32_t clientId, bool enabled, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCallWaiting(clientId, enabled, requestCallback); } \
  NS_IMETHOD GetCallWaiting(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCallWaiting(clientId, requestCallback); } \
  NS_IMETHOD SetCallingLineIdRestriction(uint32_t clientId, uint16_t clirMode, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCallingLineIdRestriction(clientId, clirMode, requestCallback); } \
  NS_IMETHOD GetCallingLineIdRestriction(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCallingLineIdRestriction(clientId, requestCallback); } \
  NS_IMETHOD ExitEmergencyCbMode(uint32_t clientId, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->ExitEmergencyCbMode(clientId, requestCallback); } \
  NS_IMETHOD SetRadioEnabled(uint32_t clientId, bool enabled, nsIMobileConnectionCallback *requestCallback) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRadioEnabled(clientId, enabled, requestCallback); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsMobileConnectionService : public nsIMobileConnectionService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMOBILECONNECTIONSERVICE

  nsMobileConnectionService();

private:
  ~nsMobileConnectionService();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsMobileConnectionService, nsIMobileConnectionService)

nsMobileConnectionService::nsMobileConnectionService()
{
  /* member initializers and constructor code */
}

nsMobileConnectionService::~nsMobileConnectionService()
{
  /* destructor code */
}

/* void registerListener (in unsigned long clientId, in nsIMobileConnectionListener listener); */
NS_IMETHODIMP nsMobileConnectionService::RegisterListener(uint32_t clientId, nsIMobileConnectionListener *listener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void unregisterListener (in unsigned long clientId, in nsIMobileConnectionListener listener); */
NS_IMETHODIMP nsMobileConnectionService::UnregisterListener(uint32_t clientId, nsIMobileConnectionListener *listener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* DOMString getLastKnownNetwork (in unsigned long clientId); */
NS_IMETHODIMP nsMobileConnectionService::GetLastKnownNetwork(uint32_t clientId, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* DOMString getLastKnownHomeNetwork (in unsigned long clientId); */
NS_IMETHODIMP nsMobileConnectionService::GetLastKnownHomeNetwork(uint32_t clientId, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMobileConnectionInfo getVoiceConnectionInfo (in unsigned long clientId); */
NS_IMETHODIMP nsMobileConnectionService::GetVoiceConnectionInfo(uint32_t clientId, nsIMobileConnectionInfo * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMobileConnectionInfo getDataConnectionInfo (in unsigned long clientId); */
NS_IMETHODIMP nsMobileConnectionService::GetDataConnectionInfo(uint32_t clientId, nsIMobileConnectionInfo * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* DOMString getIccId (in unsigned long clientId); */
NS_IMETHODIMP nsMobileConnectionService::GetIccId(uint32_t clientId, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* DOMString getNetworkSelectionMode (in unsigned long clientId); */
NS_IMETHODIMP nsMobileConnectionService::GetNetworkSelectionMode(uint32_t clientId, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* DOMString getRadioState (in unsigned long clientId); */
NS_IMETHODIMP nsMobileConnectionService::GetRadioState(uint32_t clientId, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIVariant getSupportedNetworkTypes (in unsigned long clientId); */
NS_IMETHODIMP nsMobileConnectionService::GetSupportedNetworkTypes(uint32_t clientId, nsIVariant * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getNetworks (in unsigned long clientId, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::GetNetworks(uint32_t clientId, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void selectNetwork (in unsigned long clientId, in nsIMobileNetworkInfo network, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::SelectNetwork(uint32_t clientId, nsIMobileNetworkInfo *network, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void selectNetworkAutomatically (in unsigned long clientId, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::SelectNetworkAutomatically(uint32_t clientId, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setPreferredNetworkType (in unsigned long clientId, in DOMString type, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::SetPreferredNetworkType(uint32_t clientId, const nsAString & type, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getPreferredNetworkType (in unsigned long clientId, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::GetPreferredNetworkType(uint32_t clientId, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setRoamingPreference (in unsigned long clientId, in DOMString mode, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::SetRoamingPreference(uint32_t clientId, const nsAString & mode, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getRoamingPreference (in unsigned long clientId, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::GetRoamingPreference(uint32_t clientId, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setVoicePrivacyMode (in unsigned long clientId, in bool enabled, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::SetVoicePrivacyMode(uint32_t clientId, bool enabled, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getVoicePrivacyMode (in unsigned long clientId, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::GetVoicePrivacyMode(uint32_t clientId, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void sendMMI (in unsigned long clientId, in DOMString mmi, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::SendMMI(uint32_t clientId, const nsAString & mmi, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void cancelMMI (in unsigned long clientId, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::CancelMMI(uint32_t clientId, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getCallForwarding (in unsigned long clientId, in unsigned short reason, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::GetCallForwarding(uint32_t clientId, uint16_t reason, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setCallForwarding (in unsigned long clientId, in jsval options, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::SetCallForwarding(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getCallBarring (in unsigned long clientId, in jsval options, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::GetCallBarring(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setCallBarring (in unsigned long clientId, in jsval options, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::SetCallBarring(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void changeCallBarringPassword (in unsigned long clientId, in jsval options, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::ChangeCallBarringPassword(uint32_t clientId, JS::HandleValue options, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setCallWaiting (in unsigned long clientId, in bool enabled, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::SetCallWaiting(uint32_t clientId, bool enabled, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getCallWaiting (in unsigned long clientId, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::GetCallWaiting(uint32_t clientId, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setCallingLineIdRestriction (in unsigned long clientId, in unsigned short clirMode, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::SetCallingLineIdRestriction(uint32_t clientId, uint16_t clirMode, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getCallingLineIdRestriction (in unsigned long clientId, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::GetCallingLineIdRestriction(uint32_t clientId, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void exitEmergencyCbMode (in unsigned long clientId, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::ExitEmergencyCbMode(uint32_t clientId, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setRadioEnabled (in unsigned long clientId, in bool enabled, in nsIMobileConnectionCallback requestCallback); */
NS_IMETHODIMP nsMobileConnectionService::SetRadioEnabled(uint32_t clientId, bool enabled, nsIMobileConnectionCallback *requestCallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif


#endif /* __gen_nsIMobileConnectionService_h__ */
