nn::nex::MatchmakeExtensionClient::CreatePersistentGathering Member Function

Syntax

qBool CreatePersistentGathering(
     ProtocolCallContext * pContext,
     const PersistentGathering & persistentGathering,
     GatheringID * pGatheringId,
     const String & strMessage = _T("")
);

Parameters

Name Description
in pContext Call information.
in persistentGathering Persistent gathering to register.
out pGatheringId The persistent gathering ID that the server issues when registration succeeds.
in strMessage Message that the participant can uniquely register. The maximum string length is specified by MATCHMAKE_STRING_MAX_LENGTH.

Return Values



Value Description
true Call initialization succeeded.
false Failure.

Description

Registers a persistent gathering.

This function creates the specified persistent gathering, joins it, and makes the local system the owner. PERSISTENT_GATHERING_CREATION_MAX defines the maximum number of persistent gatherings that any one user can create. The local system automatically joins the created persistent gathering, so the number of persistent gatherings to which the local system is participating must be less than PERSISTENT_GATHERING_PARTICIPATION_MAX.

When an official persistent gathering is created, the owner's principal ID takes a special value (101), and the client that created the gathering can no longer update or delete the gathering. Update or delete the gathering from NMAS.

The persistent gathering continues to remain on the game server forever, unless the number of participants drops to 0 or the owner of the persistent gathering explicitly deletes it using the MatchMakingClient::UnregisterGathering function.

The following results may be returned as a result of asynchronous operation. Use the application to handle these results.

QERROR(RendezVous, PersistentGatheringCreationMax): The limit on registered persistent gatherings was exceeded.
QERROR(RendezVous, PersistentGatheringParticipationMax): The limit on persistent gathering participants has been exceeded.
Pass the following error to the Error/EULA applet. This error must be removed during debugging.
QERROR(Core, InvalidArgument): The string or buffer that was to be sent is too large.

You can choose to either handle the following error in the application or pass it to the error/EULA applet.

QERROR(RendezVous, GameServerMaintenance): This error occurs when the function is called between the GameServerMaintenance notification event and when game server maintenance takes place.

Revision History

2014/09/02
The owner's principal ID now takes a value of 101 when an official persistent gathering is created.
2014/04/08
Corrected QERROR(Core, InvalidArgment) to QERROR(Core, InvalidArgument) and QERROR(Core, GameServerMaintenance) to QERROR(RendezVous, GameServerMaintenance) in the description.
2013/11/28
Corrected the description so that QERROR(Core, InvalidArgment) is not handled by the application, but the error is passed to the error/EULA applet.
2013/05/31
Added a note indicating that QERROR(Core, GameServerMaintenance) is returned when the function is called between the GameServerMaintenance notification event and when game server maintenance takes place.
2013/01/11
Initial version.

CONFIDENTIAL