/* 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 protocol PContent; include protocol PIccRequest; include PIccTypes; using struct mozilla::void_t from "ipc/IPCMessageUtils.h"; namespace mozilla { namespace dom { namespace icc { union OptionalIccInfoData { void_t; IccInfoData; }; struct GetCardLockEnabledRequest { uint32_t lockType; }; struct UnlockCardLockRequest { uint32_t lockType; nsString password; nsString newPin; }; struct SetCardLockEnabledRequest { uint32_t lockType; nsString password; bool enabled; }; struct ChangeCardLockPasswordRequest { uint32_t lockType; nsString password; nsString newPassword; }; struct GetCardLockRetryCountRequest { uint32_t lockType; }; struct MatchMvnoRequest { uint32_t mvnoType; nsString mvnoData; }; struct GetServiceStateEnabledRequest { uint32_t service; }; struct ReadContactsRequest { uint32_t contactType; }; struct UpdateContactRequest { uint32_t contactType; nsString pin2; IccContactData contact; }; union IccRequest { GetCardLockEnabledRequest; UnlockCardLockRequest; SetCardLockEnabledRequest; ChangeCardLockPasswordRequest; GetCardLockRetryCountRequest; MatchMvnoRequest; GetServiceStateEnabledRequest; ReadContactsRequest; UpdateContactRequest; }; sync protocol PIcc { manager PContent; manages PIccRequest; child: /** * Notify CardStateChanged with updated CardState. */ async NotifyCardStateChanged(uint32_t aCardState); /** * Notify IccInfoChanged with updated IccInfo. */ async NotifyIccInfoChanged(OptionalIccInfoData aInfoData); /** * Notify STK proactive command issue by selected UICC. * * @param aStkProactiveCmd * a MozStkCommand instance serialized in JSON. */ async NotifyStkCommand(nsString aStkProactiveCmd); /** * Notify that STK session is ended by selected UICC. */ async NotifyStkSessionEnd(); parent: /** * Sent when the child no longer needs to use PIcc. */ async __delete__(); /** * Sent when the child makes an asynchronous request to the parent. */ async PIccRequest(IccRequest aRequest); /** * Send STK response to the selected UICC. * * @param aCommand * a MozStkCommand instance serialized in JSON. * @param aResponse * a MozStkResponse instance serialized in JSON. */ async StkResponse(nsString aCommand, nsString aResponse); /** * Send STK Menu Selection to the selected UICC. */ async StkMenuSelection(uint16_t aItemIdentifier, bool aHelpRequested); /** * Send STK Timer Expiration to the selected UICC. */ async StkTimerExpiration(uint16_t aTimerId, uint32_t aTimerValue); /** * Send STK Event Download to the selected UICC. * * @param aEvent * a MozStkXxxEvent instance serialized in JSON. */ async StkEventDownload(nsString aEvent); /** * Sync call to initialize the updated IccInfo/CardState. */ sync Init() returns (OptionalIccInfoData aInfoData, uint32_t aCardState); }; } // namespace icc } // namespace dom } // namespace mozilla