NPNS services: Difference between revisions
npns: ListenAll: stub notice |
No edit summary |
||
(23 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
This is used for Push Notifications. | 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 = | ||
Line 8: | Line 11: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 1 || | | 1 || ListenAll | ||
|- | |- | ||
| 2 || ListenTo | | 2 || [[#ListenTo]] | ||
|- | |- | ||
| 3 || Receive | | 3 || Receive | ||
Line 16: | Line 19: | ||
| 4 || ReceiveRaw | | 4 || ReceiveRaw | ||
|- | |- | ||
| 5 || GetReceiveEvent | | 5 || [[#GetReceiveEvent]] | ||
|- | |||
| 7 || [[#GetStateChangeEvent]] | |||
|- | |- | ||
| | | 8 || [18.0.0+] ListenToByName | ||
|- | |- | ||
| 21 || CreateToken | | 21 || CreateToken | ||
Line 45: | Line 50: | ||
|- | |- | ||
| 153 || [8.0.0+] GetDropEventWithHandover | | 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. | [5.0.0+] CreateToken/DestroyToken now takes an additional 8-bytes of input and a PID. | ||
= npns:s = | = npns:s = | ||
Line 82: | Line 65: | ||
| 1 || ListenAll | | 1 || ListenAll | ||
|- | |- | ||
| 2 || ListenTo | | 2 || [[#ListenTo]] | ||
|- | |- | ||
| 3 || Receive | | 3 || Receive | ||
Line 88: | Line 71: | ||
| 4 || ReceiveRaw | | 4 || ReceiveRaw | ||
|- | |- | ||
| 5 || GetReceiveEvent | | 5 || [[#GetReceiveEvent]] | ||
|- | |||
| 6 || [[#ListenUndelivered]] | |||
|- | |- | ||
| | | 7 || [[#GetStateChangeEvent]] | ||
|- | |- | ||
| | | 8 || [18.0.0+] ListenToByName | ||
|- | |- | ||
| 11 || SubscribeTopic | | 11 || SubscribeTopic | ||
Line 98: | 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 111: | Line 104: | ||
|- | |- | ||
| 26 || [5.0.0+] ListenToMyApplicationId | | 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 | | 33 || [7.0.0+] CreateTokenForBaas | ||
|- | |- | ||
| 34 || [7.0.0+] | | 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 | | 101 || Suspend | ||
Line 130: | Line 159: | ||
| 105 || [3.0.0+] GetPlayReportRequestEvent | | 105 || [3.0.0+] GetPlayReportRequestEvent | ||
|- | |- | ||
| 111 || GetJid | | 106 || [18.0.0+] GetLastNotifiedTime | ||
|- | |||
| 107 || [18.0.0+] SetLastNotifiedTime | |||
|- | |||
| 111 || [[#GetJid]] | |||
|- | |- | ||
| 112 || CreateJid | | 112 || [[#CreateJid]] | ||
|- | |- | ||
| 113 || DestroyJid | | 113 || [[#DestroyJid]] | ||
|- | |- | ||
| 114 || AttachJid | | 114 || AttachJid | ||
Line 141: | 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 147: | Line 194: | ||
|- | |- | ||
| 153 || [8.0.0+] GetDropEventWithHandover | | 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 | | 161 || [10.0.0+] GetRequestChangeStateCancelEvent | ||
Line 155: | 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 === | |||
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. | |||
|- | |||
| 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]] |