NPNS services: Difference between revisions
| No edit summary | No edit summary | ||
| (5 intermediate revisions by 2 users not shown) | |||
| Line 22: | Line 22: | ||
| |- | |- | ||
| | 7 || [[#GetStateChangeEvent]] | | 7 || [[#GetStateChangeEvent]] | ||
| |- | |||
| | 8 || [18.0.0+] ListenToByName | |||
| |- | |- | ||
| | 21 || CreateToken | | 21 || CreateToken | ||
| Line 74: | Line 76: | ||
| |- | |- | ||
| | 7 || [[#GetStateChangeEvent]] | | 7 || [[#GetStateChangeEvent]] | ||
| |- | |||
| | 8 || [18.0.0+] ListenToByName | |||
| |- | |- | ||
| | 11 || SubscribeTopic | | 11 || SubscribeTopic | ||
| Line 79: | 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 94: | Line 106: | ||
| |- | |- | ||
| | 27 || [13.0.0+] DestroyTokenAll | | 27 || [13.0.0+] DestroyTokenAll | ||
| |- | |||
| | 28 || [18.0.0+] CreateTokenWithName | |||
| |- | |||
| | 29 || [18.0.0+] DestroyTokenWithName | |||
| |- | |- | ||
| | 31 || UploadTokenToBaaS | | 31 || UploadTokenToBaaS | ||
| Line 101: | Line 117: | ||
| | 33 || [7.0.0+] CreateTokenForBaas | | 33 || [7.0.0+] CreateTokenForBaas | ||
| |- | |- | ||
| | 34 || [7.0.0 | | 34 || [7.0.0-19.0.1] SetBaasDeviceAccountIdList | ||
| |- | |- | ||
| | 35 || [17.0.0+] LinkNsaId | | 35 || [17.0.0+] LinkNsaId | ||
| |- | |- | ||
| | 36 || [17.0.0+] UnlinkNsaId | | 36 || [17.0.0+] UnlinkNsaId | ||
| |- | |||
| | 37 || [18.0.0+] RelinkNsaId | |||
| |- | |- | ||
| | 40 || [17.0.0+] GetNetworkServiceAccountIdTokenRequestEvent | | 40 || [17.0.0+] GetNetworkServiceAccountIdTokenRequestEvent | ||
| Line 117: | Line 135: | ||
| | 44 || [17.0.0+] SetUidList | | 44 || [17.0.0+] SetUidList | ||
| |- | |- | ||
| | 45 || [17.0.0+]  | | 45 || [20.0.0+] ([17.0.0-18.1.0] PutDigitalTwinKeyValue) | ||
| |- | |||
| | 51 || [18.0.0+] DeleteDigitalTwinKeyValue | |||
| |- | |||
| | 52 || [20.0.0+] | |||
| |- | |||
| | 53 || [20.0.0+] | |||
| |- | |||
| | 60 || [19.0.0+]  | |||
| |- | |||
| | 61 || [19.0.0+]  | |||
| |- | |||
| | 70 || [20.0.0+] | |||
| |- | |- | ||
| | 101 || Suspend | | 101 || Suspend | ||
| Line 128: | Line 158: | ||
| |- | |- | ||
| | 105 || [3.0.0+] GetPlayReportRequestEvent | | 105 || [3.0.0+] GetPlayReportRequestEvent | ||
| |- | |||
| | 106 || [18.0.0+] GetLastNotifiedTime | |||
| |- | |||
| | 107 || [18.0.0+] SetLastNotifiedTime | |||
| |- | |- | ||
| | 111 || [[#GetJid]] | | 111 || [[#GetJid]] | ||
| Line 140: | Line 174: | ||
| |- | |- | ||
| | 120 || [7.0.0+] [[#CreateNotificationReceiver]] | | 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+]  | |||
| |- | |||
| | 146 || [20.0.0+]  | |||
| |- | |||
| | 147 || [20.0.0+]  | |||
| |- | |- | ||
| | 151 || [8.0.0+] GetStateWithHandover | | 151 || [8.0.0+] GetStateWithHandover | ||
| Line 150: | Line 198: | ||
| |- | |- | ||
| | 155 || [12.0.0+] CreateTokenAsyncWithApplicationId | | 155 || [12.0.0+] CreateTokenAsyncWithApplicationId | ||
| |- | |||
| | 156 || [18.0.0+] CreateTokenWithNameAsync | |||
| |- | |- | ||
| | 161 || [10.0.0+] GetRequestChangeStateCancelEvent | | 161 || [10.0.0+] GetRequestChangeStateCancelEvent | ||
| Line 158: | Line 208: | ||
| |- | |- | ||
| | 202 || [3.0.0+] RequestChangeStateForceAsync | | 202 || [3.0.0+] RequestChangeStateForceAsync | ||
| |- | |||
| | 203 || [20.0.0+]  | |||
| |- | |||
| | 301 || [18.0.0-19.0.1] GetPassword | |||
| |- | |||
| | 302 || [18.0.0-19.0.1] GetAllImmigration | |||
| |- | |||
| | 303 || [18.0.0-19.0.1] GetNotificationHistories | |||
| |- | |||
| | 304 || [18.0.0-19.0.1] GetPersistentConnectionSummary | |||
| |- | |||
| | 305 || [18.0.0-19.0.1] GetDigitalTwinSummary | |||
| |- | |||
| | 306 || [18.0.0-19.0.1] GetDigitalTwinValue | |||
| |} | |} | ||
| ListenAll, ReceiveRaw, CreateToken, DestroyToken, QueryIsTokenValid are stubbed. They return 0x7fc9a on [1.0.0] and 0x36dc9a on later versions. | |||
| [5.0.0+] CreateToken/DestroyToken now takes an additional 8-bytes of input and a PID. | [5.0.0+] CreateToken/DestroyToken now takes an additional 8-bytes of input and a PID. | ||
| [20.0.0+] Cmd143 now takes a total of 0x10-bytes of input instead of 8-bytes.   | |||
| === ListenTo === | === ListenTo === | ||
| Line 207: | Line 273: | ||
| |- | |- | ||
| | 4 || GetReceiveEvent || No input, returns an output handle. | | 4 || GetReceiveEvent || No input, returns an output handle. | ||
| |- | |||
| | 5 || [18.0.0+] ListenToByName || | |||
| |} | |} | ||
| Line 225: | Line 293: | ||
| |- | |- | ||
| | 10 || GetToken | | 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 ||  | |||
| |} | |} | ||
Latest revision as of 19:33, 30 April 2025
This is used for Push Notifications.
It uses a version of the libstrophe[1] xmpp library with libxml2. Modifications were made to use the ssl service and support network proxy settings.
npns:u
This is "nn::npns::INpnsUser".
| Cmd | Name | 
|---|---|
| 1 | ListenAll | 
| 2 | #ListenTo | 
| 3 | Receive | 
| 4 | ReceiveRaw | 
| 5 | #GetReceiveEvent | 
| 7 | #GetStateChangeEvent | 
| 8 | [18.0.0+] ListenToByName | 
| 21 | CreateToken | 
| 23 | DestroyToken | 
| 25 | QueryIsTokenValid | 
| 26 | [5.0.0+] ListenToMyApplicationId | 
| 101 | Suspend | 
| 102 | Resume | 
| 103 | GetState | 
| 104 | [3.0.0+] GetStatistics | 
| 111 | GetJid | 
| 120 | [7.0.0+] #CreateNotificationReceiver | 
| 151 | [8.0.0+] GetStateWithHandover | 
| 152 | [8.0.0+] GetStateChangeEventWithHandover | 
| 153 | [8.0.0+] GetDropEventWithHandover | 
| 154 | [12.0.0+] CreateTokenAsync | 
[5.0.0+] CreateToken/DestroyToken now takes an additional 8-bytes of input and a PID.
npns:s
This is "nn::npns::INpnsSystem".
| Cmd | Name | 
|---|---|
| 1 | ListenAll | 
| 2 | #ListenTo | 
| 3 | Receive | 
| 4 | ReceiveRaw | 
| 5 | #GetReceiveEvent | 
| 6 | #ListenUndelivered | 
| 7 | #GetStateChangeEvent | 
| 8 | [18.0.0+] ListenToByName | 
| 11 | SubscribeTopic | 
| 12 | UnsubscribeTopic | 
| 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 | 
| 22 | CreateTokenWithApplicationId | 
| 23 | DestroyToken | 
| 24 | DestroyTokenWithApplicationId | 
| 25 | QueryIsTokenValid | 
| 26 | [5.0.0+] ListenToMyApplicationId | 
| 27 | [13.0.0+] DestroyTokenAll | 
| 28 | [18.0.0+] CreateTokenWithName | 
| 29 | [18.0.0+] DestroyTokenWithName | 
| 31 | UploadTokenToBaaS | 
| 32 | [2.0.0+] DestroyTokenForBaaS | 
| 33 | [7.0.0+] CreateTokenForBaas | 
| 34 | [7.0.0-19.0.1] SetBaasDeviceAccountIdList | 
| 35 | [17.0.0+] LinkNsaId | 
| 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 | [20.0.0+] ([17.0.0-18.1.0] PutDigitalTwinKeyValue) | 
| 51 | [18.0.0+] DeleteDigitalTwinKeyValue | 
| 52 | [20.0.0+] | 
| 53 | [20.0.0+] | 
| 60 | [19.0.0+] | 
| 61 | [19.0.0+] | 
| 70 | [20.0.0+] | 
| 101 | Suspend | 
| 102 | Resume | 
| 103 | GetState | 
| 104 | [3.0.0+] GetStatistics | 
| 105 | [3.0.0+] GetPlayReportRequestEvent | 
| 106 | [18.0.0+] GetLastNotifiedTime | 
| 107 | [18.0.0+] SetLastNotifiedTime | 
| 111 | #GetJid | 
| 112 | #CreateJid | 
| 113 | #DestroyJid | 
| 114 | AttachJid | 
| 115 | DetachJid | 
| 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+] | 
| 146 | [20.0.0+] | 
| 147 | [20.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 | 
| 203 | [20.0.0+] | 
| 301 | [18.0.0-19.0.1] GetPassword | 
| 302 | [18.0.0-19.0.1] GetAllImmigration | 
| 303 | [18.0.0-19.0.1] GetNotificationHistories | 
| 304 | [18.0.0-19.0.1] GetPersistentConnectionSummary | 
| 305 | [18.0.0-19.0.1] GetDigitalTwinSummary | 
| 306 | [18.0.0-19.0.1] GetDigitalTwinValue | 
ListenAll, ReceiveRaw, CreateToken, DestroyToken, QueryIsTokenValid are stubbed. They return 0x7fc9a on [1.0.0] and 0x36dc9a on later versions.
[5.0.0+] CreateToken/DestroyToken now takes an additional 8-bytes of input and a PID.
[20.0.0+] Cmd143 now takes a total of 0x10-bytes of input instead of 8-bytes.
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[2] 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+].
| 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. | 
| 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+].
| Cmd | Name | 
|---|---|
| 1 | GetFinishEvent | 
| 2 | Cancel | 
| 3 | GetResult | 
| 10 | GetToken | 
ISubscriptionUpdateNotifier
This is "nn::npns::ISubscriptionUpdateNotifier".
This was added with [19.0.0+].
| Cmd | Name | 
|---|---|
| 1 | |
| 2 | 
IFuture
This is "nn::npns::IFuture".
This was added with [19.0.0+].
| Cmd | Name | 
|---|---|
| 1 | |
| 2 | |
| 3 | |
| 10 | 
Notes
pm:bm GetBootMode is only used for passing BootMode == Maintenance to a func, which eventually writes that flag into object state. The func which uses GetBootMode is called from nnMain.