Difference between revisions of "NPNS services"

From Nintendo Switch Brew
Jump to navigation Jump to search
(→‎npns:s: version for DestroyTokenForBaaS)
(→‎npns: Events and minor cleanup)
Line 16: Line 16:
 
| 4 || ReceiveRaw
 
| 4 || ReceiveRaw
 
|-
 
|-
| 5 || GetReceiveEvent
+
| 5 || [[#GetReceiveEvent]]
 
|-
 
|-
| 7 || GetStateChangeEvent
+
| 7 || [[#GetStateChangeEvent]]
 
|-
 
|-
 
| 21 || CreateToken
 
| 21 || CreateToken
Line 64: Line 64:
 
| 4 || ReceiveRaw
 
| 4 || ReceiveRaw
 
|-
 
|-
| 5 || GetReceiveEvent
+
| 5 || [[#GetReceiveEvent]]
 
|-
 
|-
 
| 6 || [[#ListenUndelivered]]
 
| 6 || [[#ListenUndelivered]]
 
|-
 
|-
| 7 || GetStateChangeEvent
+
| 7 || [[#GetStateChangeEvent]]
 
|-
 
|-
 
| 11 || SubscribeTopic
 
| 11 || SubscribeTopic
Line 138: Line 138:
  
 
=== ListenTo ===
 
=== ListenTo ===
Takes an input u64 program id.
+
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 ===
 
=== ListenUndelivered ===
Same as calling [[#ListenTo]] with program id 0.
+
No input, same as calling [[#ListenTo]] with program id 0.
  
 
=== GetJid ===
 
=== GetJid ===
Returns the current Jabber Identifier[https://xmpp.org/extensions/xep-0029.html].
+
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"
 
Locally it's stored in "npns_save:/persistent.bin"
  
 
=== CreateJid ===
 
=== CreateJid ===
 +
No input, no output.
 
Fetches a new Jid from the CDN. Invalidates the old one if existent.
 
Fetches a new Jid from the CDN. Invalidates the old one if existent.
  
 
=== DestroyJid ===
 
=== DestroyJid ===
Invalidates and deletes the local Jid.
+
No input, no output.
 +
Invalidates and deletes the current Jid.
  
 
=== CreateNotificationReceiver ===
 
=== CreateNotificationReceiver ===

Revision as of 12:04, 23 July 2020

This is used for Push Notifications.

npns:u

This is "nn::npns::INpnsUser".

Cmd Name
1 ListenAll
2 #ListenTo
3 Receive
4 ReceiveRaw
5 #GetReceiveEvent
7 #GetStateChangeEvent
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

[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
11 SubscribeTopic
12 UnsubscribeTopic
13 QueryIsTopicExist
21 CreateToken
22 CreateTokenWithApplicationId
23 DestroyToken
24 DestroyTokenWithApplicationId
25 QueryIsTokenValid
26 [5.0.0+] ListenToMyApplicationId
31 UploadTokenToBaaS
32 [2.0.0+] DestroyTokenForBaaS
33 [7.0.0+] CreateTokenForBaas
34 [7.0.0+] SetBaasDeviceAccountIdList
101 Suspend
102 Resume
103 GetState
104 [3.0.0+] GetStatistics
105 [3.0.0+] GetPlayReportRequestEvent
111 #GetJid
112 #CreateJid
113 #DestroyJid
114 AttachJid
115 DetachJid
120 [7.0.0+] #CreateNotificationReceiver
151 [8.0.0+] GetStateWithHandover
152 [8.0.0+] GetStateChangeEventWithHandover
153 [8.0.0+] GetDropEventWithHandover
161 [10.0.0+] GetRequestChangeStateCancelEvent
162 [10.0.0+] RequestChangeStateForceTimedWithCancelEvent
201 [3.0.0+] RequestChangeStateForceTimed
202 [3.0.0+] RequestChangeStateForceAsync

[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[1] 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.