Clear the 0x10-byte transaction in its constructor, validate the start context before reporting the signed-out console, and make getResponse and getFriendsPlayerSessions return 0x80553508 while the transaction is unstarted. Extend the test with a prefilled transaction and an unchanged output sentinel, and split the debt entry into model layout and transaction behaviour.
Implement the 45 exports imported for PlayerSessionsApi::getFriendsPlayerSessions, the Friend and FriendJoinedPlayerSession models, the response body and its transaction.
Layouts and offsets come from the module bundled with PPSA23732 (J03341606). Offline the request and transaction fail as on a signed-out console; the model getters and the inline vector/iterator views use the real layout measured in that module.
Tests: guest_np_cpp_web_api_friends (new) plus the existing np_cpp_web_api suite.
The 34 Matches request/model setters now store the value and the is-set
flag at the offsets measured in the module bundled with
PPSA21564/PPSA23732 (builds J03093737/J03341606). The 10 vector setters
copy the vector handle and increment the body reference count at +0x30
instead of deep-copying the elements; that difference is a host choice and
is recorded in the debt.
The six ParameterTo* initializers now take their actual string and
IntrusivePtr request-body arguments. They allocate a host implementation
of the module layout, keep the string and body, and return 0x80553503 for a
null context or text, 0x80553502 for an unset context, 0x8055350f when
already initialized, 0x80553504 on allocation failure and 0x80553512 for
an empty request body. terminate releases the state and returns 0x80553510.
The 22 factories no longer return a fake signed-out result: they throw
NotImplemented_nid_no_patch and are recorded as unsupported. The six API
verbs keep SCE_NP_WEBAPI_ERROR_NOT_SIGNED_IN as offline request paths. The
three accessors read the measured fields. The test pins the measured
offsets, flags, reference counts and lifecycle/error codes instead of
asserting null-self success or NotImplemented throws.
Adds the exports imported by PPSA20397 and PPSA03530 that had no
provider: Matchmaking::V1, Matches::V1, SessionManager::V1,
UserProfile::V1, TitleCloudStorage::V1, InGameCatalog::V5 domain
surfaces and the Common template instantiations over their types.
IntrusivePtr, Vector, Iterator and Transaction members follow the
layouts already implemented for the earlier titles; API verbs,
factories and transaction entry points fail
SCE_NP_WEBAPI_ERROR_NOT_SIGNED_IN as a signed-out console does;
parameter bookkeeping succeeds without state; response accessors and
vector iteration throw since a failed request produces no response.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Declare and validate the initialize arguments, give the text and binary setters their parameter handling, list the eight setters in the test, stop pinning the unread response accessors to a throw, and extend the debt entry with the four TitleCloudStorage parameter classes.
Declare the string and body arguments of the four initialize exports and use InitializeParameterWithBody for SubmitTicket. Give setview the same text handling and cover it in the test. Drop the accessor throw assertions and record the namespace debt.
Add BasicProfileApi::getPublicProfile with its parameter and
Transaction<GetPublicProfileResponse>, which fail NOT_SIGNED_IN like
the plural request, plus the IntrusivePtr helpers for
GetPublicProfileResponse, PersonalDetail and Avatar, the bool
conversions of BasicProfile and BasicPresence pointers, and size of
the BasicProfile and BasicPresence vectors over host-created bodies.
Co-Authored-By: Claude Opus 5.5 <[email protected]>