Line 1: |
Line 1: |
| + | This is used for Push Notifications. |
| + | |
| + | It uses a version of the libstrophe[http://strophe.im/libstrophe/] xmpp library with libxml2. |
| + | Modifications were made to use the [[SSL services|ssl]] service and support network proxy settings. |
| + | |
| = npns:u = | | = npns:u = |
| This is "nn::npns::INpnsUser". | | This is "nn::npns::INpnsUser". |
Line 8: |
Line 13: |
| | 1 || ListenAll | | | 1 || ListenAll |
| |- | | |- |
− | | 2 || ListenTo | + | | 2 || [[#ListenTo]] |
| |- | | |- |
| | 3 || Receive | | | 3 || Receive |
Line 14: |
Line 19: |
| | 4 || ReceiveRaw | | | 4 || ReceiveRaw |
| |- | | |- |
− | | 5 || GetReceiveEvent | + | | 5 || [[#GetReceiveEvent]] |
| + | |- |
| + | | 7 || [[#GetStateChangeEvent]] |
| |- | | |- |
− | | 7 || GetStateChangeEvent | + | | 8 || [18.0.0+] ListenToByName |
| |- | | |- |
| | 21 || CreateToken | | | 21 || CreateToken |
Line 24: |
Line 31: |
| | 25 || QueryIsTokenValid | | | 25 || QueryIsTokenValid |
| |- | | |- |
− | | 26 || [6.0.0+] ListenToMyApplicationId | + | | 26 || [5.0.0+] ListenToMyApplicationId |
| |- | | |- |
| | 101 || Suspend | | | 101 || Suspend |
Line 32: |
Line 39: |
| | 103 || GetState | | | 103 || GetState |
| |- | | |- |
− | | 104 || GetStatistics | + | | 104 || [3.0.0+] GetStatistics |
| |- | | |- |
| | 111 || GetJid | | | 111 || GetJid |
| |- | | |- |
− | | 120 || [7.0.0+] CreateNotificationReceiver | + | | 120 || [7.0.0+] [[#CreateNotificationReceiver]] |
− | |}
| |
− | | |
− | == CreateNotificationReceiver ==
| |
− | Returns an [[#INotificationReceiver]].
| |
− | | |
− | == INotificationReceiver ==
| |
− | {| class="wikitable" border="1"
| |
| |- | | |- |
− | ! Cmd || Name || Notes
| + | | 151 || [8.0.0+] GetStateWithHandover |
| |- | | |- |
− | | 1 || ListenTo || Takes a total of 8-bytes of input, no output. | + | | 152 || [8.0.0+] GetStateChangeEventWithHandover |
| |- | | |- |
− | | 2 || ListenToMyApplicationId || Takes a total of 8-bytes of input and a PID, no output. | + | | 153 || [8.0.0+] GetDropEventWithHandover |
| |- | | |- |
− | | 3 || Receive || Takes a total of 2-bytes of input and a type-0x6 output buffer. | + | | 154 || [12.0.0+] CreateTokenAsync |
− | |-
| |
− | | 4 || GetReceiveEvent || No input, returns an output handle.
| |
| |} | | |} |
| + | |
| + | [5.0.0+] CreateToken/DestroyToken now takes an additional 8-bytes of input and a PID. |
| | | |
| = npns:s = | | = npns:s = |
Line 65: |
Line 65: |
| | 1 || ListenAll | | | 1 || ListenAll |
| |- | | |- |
− | | 2 || ListenTo | + | | 2 || [[#ListenTo]] |
| |- | | |- |
| | 3 || Receive | | | 3 || Receive |
Line 71: |
Line 71: |
| | 4 || ReceiveRaw | | | 4 || ReceiveRaw |
| |- | | |- |
− | | 5 || GetReceiveEvent | + | | 5 || [[#GetReceiveEvent]] |
| + | |- |
| + | | 6 || [[#ListenUndelivered]] |
| |- | | |- |
− | | 6 || ListenUndelivered | + | | 7 || [[#GetStateChangeEvent]] |
| |- | | |- |
− | | 7 || GetStateChangeEvent | + | | 8 || [18.0.0+] ListenToByName |
| |- | | |- |
| | 11 || SubscribeTopic | | | 11 || SubscribeTopic |
Line 81: |
Line 83: |
| | 12 || UnsubscribeTopic | | | 12 || UnsubscribeTopic |
| |- | | |- |
− | | 13 || QueryIsTopicExist | + | | 13 || [1.0.0-17.0.1] QueryIsTopicExist |
| + | |- |
| + | | 14 || [18.0.0+] SubscribeTopicByAccount |
| + | |- |
| + | | 15 || [18.0.0+] UnsubscribeTopicByAccount |
| + | |- |
| + | | 16 || [18.0.0+] DownloadSubscriptionList |
| + | |- |
| + | | 17 || [19.0.0+] |
| |- | | |- |
| | 21 || CreateToken | | | 21 || CreateToken |
Line 92: |
Line 102: |
| |- | | |- |
| | 25 || QueryIsTokenValid | | | 25 || QueryIsTokenValid |
| + | |- |
| + | | 26 || [5.0.0+] ListenToMyApplicationId |
| + | |- |
| + | | 27 || [13.0.0+] DestroyTokenAll |
| + | |- |
| + | | 28 || [18.0.0+] CreateTokenWithName |
| + | |- |
| + | | 29 || [18.0.0+] DestroyTokenWithName |
| |- | | |- |
| | 31 || UploadTokenToBaaS | | | 31 || UploadTokenToBaaS |
| |- | | |- |
− | | 32 || DestroyTokenForBaaS | + | | 32 || [2.0.0+] DestroyTokenForBaaS |
| + | |- |
| + | | 33 || [7.0.0+] CreateTokenForBaas |
| + | |- |
| + | | 34 || [7.0.0+] SetBaasDeviceAccountIdList |
| |- | | |- |
− | | 33 || [6.0.0+] CreateTokenForBaas | + | | 35 || [17.0.0+] LinkNsaId |
| |- | | |- |
− | | 34 || [6.0.0+] SetBaasDeviceAccountIdList | + | | 36 || [17.0.0+] UnlinkNsaId |
| + | |- |
| + | | 37 || [18.0.0+] RelinkNsaId |
| + | |- |
| + | | 40 || [17.0.0+] GetNetworkServiceAccountIdTokenRequestEvent |
| + | |- |
| + | | 41 || [17.0.0+] TryPopNetworkServiceAccountIdTokenRequestUid |
| + | |- |
| + | | 42 || [17.0.0+] SetNetworkServiceAccountIdTokenSuccess |
| + | |- |
| + | | 43 || [17.0.0+] SetNetworkServiceAccountIdTokenFailure |
| + | |- |
| + | | 44 || [17.0.0+] SetUidList |
| + | |- |
| + | | 45 || [17.0.0+] PutDigitalTwinKeyValue |
| + | |- |
| + | | 51 || [18.0.0+] DeleteDigitalTwinKeyValue |
| + | |- |
| + | | 60 || [19.0.0+] |
| + | |- |
| + | | 61 || [19.0.0+] |
| |- | | |- |
| | 101 || Suspend | | | 101 || Suspend |
Line 107: |
Line 149: |
| | 103 || GetState | | | 103 || GetState |
| |- | | |- |
− | | 104 || GetStatistics | + | | 104 || [3.0.0+] GetStatistics |
| + | |- |
| + | | 105 || [3.0.0+] GetPlayReportRequestEvent |
| |- | | |- |
− | | 105 || GetPlayReportRequestEvent | + | | 106 || [18.0.0+] GetLastNotifiedTime |
| |- | | |- |
− | | 111 || GetJid | + | | 107 || [18.0.0+] SetLastNotifiedTime |
| + | |- |
| + | | 111 || [[#GetJid]] |
| |- | | |- |
− | | 112 || CreateJid | + | | 112 || [[#CreateJid]] |
| |- | | |- |
− | | 113 || DestroyJid | + | | 113 || [[#DestroyJid]] |
| |- | | |- |
| | 114 || AttachJid | | | 114 || AttachJid |
Line 121: |
Line 167: |
| | 115 || DetachJid | | | 115 || DetachJid |
| |- | | |- |
− | | 201 || RequestChangeStateForceTimed | + | | 120 || [7.0.0+] [[#CreateNotificationReceiver]] |
| + | |- |
| + | | 141 || [19.0.0+] |
| + | |- |
| + | | 142 || [19.0.0+] |
| + | |- |
| + | | 143 || [19.0.0+] |
| + | |- |
| + | | 144 || [19.0.0+] |
| + | |- |
| + | | 145 || [19.0.0+] |
| + | |- |
| + | | 151 || [8.0.0+] GetStateWithHandover |
| + | |- |
| + | | 152 || [8.0.0+] GetStateChangeEventWithHandover |
| + | |- |
| + | | 153 || [8.0.0+] GetDropEventWithHandover |
| + | |- |
| + | | 154 || [12.0.0+] CreateTokenAsync |
| + | |- |
| + | | 155 || [12.0.0+] CreateTokenAsyncWithApplicationId |
| + | |- |
| + | | 156 || [18.0.0+] CreateTokenWithNameAsync |
| + | |- |
| + | | 161 || [10.0.0+] GetRequestChangeStateCancelEvent |
| + | |- |
| + | | 162 || [10.0.0+] RequestChangeStateForceTimedWithCancelEvent |
| + | |- |
| + | | 201 || [3.0.0+] RequestChangeStateForceTimed |
| + | |- |
| + | | 202 || [3.0.0+] RequestChangeStateForceAsync |
| + | |- |
| + | | 301 || [18.0.0+] GetPassword |
| + | |- |
| + | | 302 || [18.0.0+] GetAllImmigration |
| + | |- |
| + | | 303 || [18.0.0+] GetNotificationHistories |
| + | |- |
| + | | 304 || [18.0.0+] GetPersistentConnectionSummary |
| + | |- |
| + | | 305 || [18.0.0+] GetDigitalTwinSummary |
| + | |- |
| + | | 306 || [18.0.0+] GetDigitalTwinValue |
| + | |} |
| + | |
| + | [5.0.0+] CreateToken/DestroyToken now takes an additional 8-bytes of input and a PID. |
| + | |
| + | ListenAll, ReceiveRaw, CreateToken, DestroyToken, QueryIsTokenValid are stubbed. They return 0x7fc9a on [1.0.0] and 0x36dc9a on later versions. |
| + | |
| + | === ListenTo === |
| + | Takes an input u64 program id, no output. |
| + | |
| + | === GetReceiveEvent === |
| + | No input, returns an output Event handle with autoclear=true. |
| + | |
| + | === GetStateChangeEvent === |
| + | No input, returns an output Event handle with autoclear=true. |
| + | |
| + | === ListenUndelivered === |
| + | No input, same as calling [[#ListenTo]] with program id 0. |
| + | |
| + | === GetJid === |
| + | No input, returns the current Jabber Identifier[https://xmpp.org/extensions/xep-0029.html] in a type-10 buffer. |
| + | Locally it's stored in "npns_save:/persistent.bin" |
| + | |
| + | === CreateJid === |
| + | No input, no output. |
| + | Fetches a new Jid from the CDN. Invalidates the old one if existent. |
| + | |
| + | === DestroyJid === |
| + | No input, no output. |
| + | Invalidates and deletes the current Jid. |
| + | |
| + | === CreateNotificationReceiver === |
| + | Returns an [[#INotificationReceiver]]. |
| + | |
| + | == INotificationReceiver == |
| + | This is "nn::npns::INotificationReceiver". |
| + | |
| + | This was added with [7.0.0+]. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name || Notes |
| + | |- |
| + | | 1 || [[#ListenTo]] || Takes a total of 8-bytes of input, no output. |
| + | |- |
| + | | 2 || ListenToMyApplicationId || Takes a total of 8-bytes of input and a PID, no output. |
| |- | | |- |
− | | 202 || RequestChangeStateForceAsync | + | | 3 || Receive || Takes a total of 2-bytes of input and a type-0x6 output buffer. |
| + | |- |
| + | | 4 || GetReceiveEvent || No input, returns an output handle. |
| + | |- |
| + | | 5 || [18.0.0+] ListenToByName || |
| |} | | |} |
| + | |
| + | == ICreateTokenAsyncContext == |
| + | This is "nn::npns::ICreateTokenAsyncContext". |
| + | |
| + | This was added with [12.0.0+]. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 1 || GetFinishEvent |
| + | |- |
| + | | 2 || Cancel |
| + | |- |
| + | | 3 || GetResult |
| + | |- |
| + | | 10 || GetToken |
| + | |} |
| + | |
| + | == ISubscriptionUpdateNotifier == |
| + | This is "nn::npns::ISubscriptionUpdateNotifier". |
| + | |
| + | This was added with [19.0.0+]. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 1 || |
| + | |- |
| + | | 2 || |
| + | |} |
| + | |
| + | == IFuture == |
| + | This is "nn::npns::IFuture". |
| + | |
| + | This was added with [19.0.0+]. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 1 || |
| + | |- |
| + | | 2 || |
| + | |- |
| + | | 3 || |
| + | |- |
| + | | 10 || |
| + | |} |
| + | |
| + | = Notes = |
| + | [[Process_Manager_services|pm:bm]] GetBootMode is only used for passing <code>BootMode == Maintenance</code> to a func, which eventually writes that flag into object state. The func which uses GetBootMode is called from nnMain. |
| | | |
| [[Category:Services]] | | [[Category:Services]] |