1 #ifndef GALAXY_I_MATCHMAKING_H
2 #define GALAXY_I_MATCHMAKING_H
Contains GalaxyID, which is the class that represents the ID of an entity used by Galaxy Peer.
Contains data structures and interfaces related to callback listeners.
Represents the ID of an entity used by Galaxy Peer.
Definition: GalaxyID.h:30
The class that is inherited by all specific callback listeners and provides a static method that retu...
Definition: IListenerRegistrar.h:117
Listener for the event of creating a lobby.
Definition: IMatchmaking.h:127
virtual void OnLobbyCreated(const GalaxyID &lobbyID, LobbyCreateResult result)=0
Notification for the event of creating a lobby.
Listener for the event of receiving an updated version of lobby data.
Definition: IMatchmaking.h:222
virtual void OnLobbyDataUpdated(const GalaxyID &lobbyID, const GalaxyID &memberID)=0
Notification for the event of receiving an updated version of lobby data.
Listener for the event of retrieving lobby data.
Definition: IMatchmaking.h:316
FailureReason
The reason of a failure in retrieving lobby data.
Definition: IMatchmaking.h:330
@ FAILURE_REASON_LOBBY_DOES_NOT_EXIST
Specified lobby does not exist.
Definition: IMatchmaking.h:332
@ FAILURE_REASON_UNDEFINED
Unspecified error.
Definition: IMatchmaking.h:331
@ FAILURE_REASON_CONNECTION_FAILURE
Unable to communicate with backend services.
Definition: IMatchmaking.h:333
virtual void OnLobbyDataRetrieveSuccess(const GalaxyID &lobbyID)=0
Notification for the event of success in retrieving lobby data.
virtual void OnLobbyDataRetrieveFailure(const GalaxyID &lobbyID, FailureReason failureReason)=0
Notification for the event of a failure in retrieving lobby data.
Listener for the event of updating lobby data.
Definition: IMatchmaking.h:248
virtual void OnLobbyDataUpdateFailure(const GalaxyID &lobbyID, FailureReason failureReason)=0
Notification for the failure in updating lobby data.
virtual void OnLobbyDataUpdateSuccess(const GalaxyID &lobbyID)=0
Notification for the event of success in updating lobby data.
FailureReason
The reason of a failure in updating lobby data.
Definition: IMatchmaking.h:262
@ FAILURE_REASON_LOBBY_DOES_NOT_EXIST
Specified lobby does not exist.
Definition: IMatchmaking.h:264
@ FAILURE_REASON_UNDEFINED
Unspecified error.
Definition: IMatchmaking.h:263
@ FAILURE_REASON_CONNECTION_FAILURE
Unable to communicate with backend services.
Definition: IMatchmaking.h:265
Listener for the event of entering a lobby.
Definition: IMatchmaking.h:157
virtual void OnLobbyEntered(const GalaxyID &lobbyID, LobbyEnterResult result)=0
Notification for the event of entering a lobby.
Listener for the event of leaving a lobby.
Definition: IMatchmaking.h:185
LobbyLeaveReason
The reason of leaving a lobby.
Definition: IMatchmaking.h:192
@ LOBBY_LEAVE_REASON_CONNECTION_LOST
The Peer has lost the connection.
Definition: IMatchmaking.h:196
@ LOBBY_LEAVE_REASON_UNDEFINED
Unspecified error.
Definition: IMatchmaking.h:193
@ LOBBY_LEAVE_REASON_USER_LEFT
The user has left the lobby as a result of calling IMatchmaking::LeaveLobby().
Definition: IMatchmaking.h:194
@ LOBBY_LEAVE_REASON_LOBBY_CLOSED
The lobby has been closed (e.g. the owner has left the lobby without host migration).
Definition: IMatchmaking.h:195
virtual void OnLobbyLeft(const GalaxyID &lobbyID, LobbyLeaveReason leaveReason)=0
Notification for the event of leaving lobby.
Listener for the event of receiving a list of lobbies.
Definition: IMatchmaking.h:106
virtual void OnLobbyList(uint32_t lobbyCount, LobbyListResult result)=0
Notification for the event of receiving a list of lobbies.
Listener for the event of updating lobby member data.
Definition: IMatchmaking.h:281
FailureReason
The reason of a failure in updating lobby data.
Definition: IMatchmaking.h:296
@ FAILURE_REASON_LOBBY_DOES_NOT_EXIST
Specified lobby does not exist.
Definition: IMatchmaking.h:298
@ FAILURE_REASON_UNDEFINED
Unspecified error.
Definition: IMatchmaking.h:297
@ FAILURE_REASON_CONNECTION_FAILURE
Unable to communicate with backend services.
Definition: IMatchmaking.h:299
virtual void OnLobbyMemberDataUpdateSuccess(const GalaxyID &lobbyID, const GalaxyID &memberID)=0
Notification for the event of success in updating lobby member data.
virtual void OnLobbyMemberDataUpdateFailure(const GalaxyID &lobbyID, const GalaxyID &memberID, FailureReason failureReason)=0
Notification for the failure in updating lobby member data.
Listener for the event of a change of the state of a lobby member.
Definition: IMatchmaking.h:359
virtual void OnLobbyMemberStateChanged(const GalaxyID &lobbyID, const GalaxyID &memberID, LobbyMemberStateChange memberStateChange)=0
Notification for the event of a change of the state of a lobby member.
Listener for the event of receiving a lobby message.
Definition: IMatchmaking.h:416
virtual void OnLobbyMessageReceived(const GalaxyID &lobbyID, const GalaxyID &senderID, uint32_t messageID, uint32_t messageLength)=0
Notification for the event of receiving a lobby message.
Listener for the event of changing the owner of a lobby.
Definition: IMatchmaking.h:395
virtual void OnLobbyOwnerChanged(const GalaxyID &lobbyID, const GalaxyID &newOwnerID)=0
Notification for the event of someone else becoming the owner of a lobby.
The interface for managing game lobbies.
Definition: IMatchmaking.h:446
virtual void AddRequestLobbyListStringFilter(const char *keyToMatch, const char *valueToMatch, LobbyComparisonType comparisonType)=0
Adds a string filter to be applied next time you call RequestLobbyList().
virtual void CreateLobby(LobbyType lobbyType, uint32_t maxMembers, bool joinable, LobbyTopologyType lobbyTopologyType, ILobbyCreatedListener *const lobbyCreatedListener=NULL, ILobbyEnteredListener *const lobbyEnteredListener=NULL)=0
Creates a lobby.
virtual void GetLobbyDataCopy(GalaxyID lobbyID, const char *key, char *buffer, uint32_t bufferLength)=0
Copies an entry from the properties of a specified lobby.
virtual void SetLobbyJoinable(GalaxyID lobbyID, bool joinable, ILobbyDataUpdateListener *const listener=NULL)=0
Sets if a specified lobby is joinable.
virtual void RequestLobbyData(GalaxyID lobbyID, ILobbyDataRetrieveListener *const listener=NULL)=0
Refreshes info about a specified lobby.
virtual uint32_t GetLobbyMessage(GalaxyID lobbyID, uint32_t messageID, GalaxyID &senderID, char *msg, uint32_t msgLength)=0
Receives a specified message from one of the members of a specified lobby.
virtual void RequestLobbyList(bool allowFullLobbies=false, ILobbyListListener *const listener=NULL)=0
Performs a request for a list of relevant lobbies.
virtual uint32_t GetNumLobbyMembers(GalaxyID lobbyID)=0
Returns the number of users in a specified lobby.
virtual void AddRequestLobbyListNumericalFilter(const char *keyToMatch, int32_t valueToMatch, LobbyComparisonType comparisonType)=0
Adds a numerical filter to be applied next time you call RequestLobbyList().
virtual void DeleteLobbyData(GalaxyID lobbyID, const char *key, ILobbyDataUpdateListener *const listener=NULL)=0
Clears a property of a specified lobby by its name.
virtual bool SendLobbyMessage(GalaxyID lobbyID, const void *data, uint32_t dataSize)=0
Sends a message to all lobby members, including the sender.
virtual void SetLobbyData(GalaxyID lobbyID, const char *key, const char *value, ILobbyDataUpdateListener *const listener=NULL)=0
Creates or updates an entry in the properties of a specified lobby.
virtual void SetLobbyMemberData(GalaxyID lobbyID, const char *key, const char *value, ILobbyMemberDataUpdateListener *const listener=NULL)=0
Creates or updates an entry in the user's properties (as a lobby member) in a specified lobby.
virtual LobbyType GetLobbyType(GalaxyID lobbyID)=0
Returns the type of a specified lobby.
virtual GalaxyID GetLobbyMemberByIndex(GalaxyID lobbyID, uint32_t index)=0
Returns the GalaxyID of a user in a specified lobby.
virtual uint32_t GetMaxNumLobbyMembers(GalaxyID lobbyID)=0
Returns the maximum number of users that can be in a specified lobby.
virtual void JoinLobby(GalaxyID lobbyID, ILobbyEnteredListener *const listener=NULL)=0
Joins a specified existing lobby.
virtual uint32_t GetLobbyDataCount(GalaxyID lobbyID)=0
Returns the number of entries in the properties of a specified lobby.
virtual bool GetLobbyDataByIndex(GalaxyID lobbyID, uint32_t index, char *key, uint32_t keyLength, char *value, uint32_t valueLength)=0
Returns a property of a specified lobby by index.
virtual bool IsLobbyJoinable(GalaxyID lobbyID)=0
Checks if a specified lobby is joinable.
virtual void LeaveLobby(GalaxyID lobbyID, ILobbyLeftListener *const listener=NULL)=0
Leaves a specified lobby.
virtual const char * GetLobbyData(GalaxyID lobbyID, const char *key)=0
Returns an entry from the properties of a specified lobby.
virtual void GetLobbyMemberDataCopy(GalaxyID lobbyID, GalaxyID memberID, const char *key, char *buffer, uint32_t bufferLength)=0
Copies an entry from the properties of a specified member of a specified lobby.
virtual void DeleteLobbyMemberData(GalaxyID lobbyID, const char *key, ILobbyMemberDataUpdateListener *const listener=NULL)=0
Clears a property of a specified lobby member by its name.
virtual GalaxyID GetLobbyOwner(GalaxyID lobbyID)=0
Returns the owner of a specified lobby.
virtual void SetLobbyType(GalaxyID lobbyID, LobbyType lobbyType, ILobbyDataUpdateListener *const listener=NULL)=0
Sets the type of a specified lobby.
virtual void SetMaxNumLobbyMembers(GalaxyID lobbyID, uint32_t maxNumLobbyMembers, ILobbyDataUpdateListener *const listener=NULL)=0
Sets the maximum number of users that can be in a specified lobby.
virtual bool GetLobbyMemberDataByIndex(GalaxyID lobbyID, GalaxyID memberID, uint32_t index, char *key, uint32_t keyLength, char *value, uint32_t valueLength)=0
Returns a property of a specified lobby member by index.
virtual const char * GetLobbyMemberData(GalaxyID lobbyID, GalaxyID memberID, const char *key)=0
Returns an entry from the properties of a specified member of a specified lobby.
virtual void AddRequestLobbyListResultCountFilter(uint32_t limit)=0
Sets the maximum number of lobbies to be returned next time you call RequestLobbyList().
virtual uint32_t GetLobbyMemberDataCount(GalaxyID lobbyID, GalaxyID memberID)=0
Returns the number of entries in the properties of a specified member of a specified lobby.
virtual GalaxyID GetLobbyByIndex(uint32_t index)=0
Returns GalaxyID of a retrieved lobby by index.
virtual void AddRequestLobbyListNearValueFilter(const char *keyToMatch, int32_t valueToBeCloseTo)=0
Adds a near value filter to be applied next time you call RequestLobbyList().
The class that is inherited by the self-registering versions of all specific callback listeners.
Definition: IListenerRegistrar.h:211
SelfRegisteringListener< ILobbyCreatedListener, GameServerListenerRegistrar > GameServerGlobalLobbyCreatedListener
Globally self-registering version of ILobbyCreatedListener for the Game Server.
Definition: IMatchmaking.h:151
SelfRegisteringListener< ILobbyLeftListener, GameServerListenerRegistrar > GameServerGlobalLobbyLeftListener
Globally self-registering version of ILobbyLeftListener for the GameServer.
Definition: IMatchmaking.h:216
SelfRegisteringListener< ILobbyMemberStateListener, GameServerListenerRegistrar > GameServerGlobalLobbyMemberStateListener
Globally self-registering version of ILobbyMemberStateListener for the Game Server.
Definition: IMatchmaking.h:380
SelfRegisteringListener< ILobbyMemberStateListener > GlobalLobbyMemberStateListener
Globally self-registering version of ILobbyMemberStateListener.
Definition: IMatchmaking.h:375
LobbyType
Lobby type.
Definition: IMatchmaking.h:25
SelfRegisteringListener< ILobbyOwnerChangeListener > GlobalLobbyOwnerChangeListener
Globally self-registering version of ILobbyOwnerChangeListener.
Definition: IMatchmaking.h:410
SelfRegisteringListener< ILobbyCreatedListener > GlobalLobbyCreatedListener
Globally self-registering version of ILobbyCreatedListener.
Definition: IMatchmaking.h:146
LobbyCreateResult
Lobby creating result.
Definition: IMatchmaking.h:74
SelfRegisteringListener< ILobbyMessageListener > GlobalLobbyMessageListener
Globally self-registering version of ILobbyMessageListener.
Definition: IMatchmaking.h:435
SelfRegisteringListener< ILobbyMessageListener, GameServerListenerRegistrar > GameServerGlobalLobbyMessageListener
Globally self-registering version of ILobbyMessageListener for the Game Server.
Definition: IMatchmaking.h:440
SelfRegisteringListener< ILobbyDataListener > GlobalLobbyDataListener
Globally self-registering version of ILobbyDataListener.
Definition: IMatchmaking.h:237
SelfRegisteringListener< ILobbyLeftListener > GlobalLobbyLeftListener
Globally self-registering version of ILobbyLeftListener.
Definition: IMatchmaking.h:211
LobbyMemberStateChange
Change of the state of a lobby member.
Definition: IMatchmaking.h:48
LobbyTopologyType
Lobby topology type.
Definition: IMatchmaking.h:36
LobbyEnterResult
Lobby entering result.
Definition: IMatchmaking.h:84
SelfRegisteringListener< ILobbyListListener > GlobalLobbyListListener
Globally self-registering version of ILobbyListListener.
Definition: IMatchmaking.h:121
SelfRegisteringListener< ILobbyDataListener, GameServerListenerRegistrar > GameServerGlobalLobbyDataListener
Globally self-registering version of ILobbyDataListener for the Game Server.
Definition: IMatchmaking.h:242
LobbyComparisonType
Comparison type.
Definition: IMatchmaking.h:61
LobbyListResult
Lobby listing result.
Definition: IMatchmaking.h:96
SelfRegisteringListener< ILobbyEnteredListener > GlobalLobbyEnteredListener
Globally self-registering version of ILobbyEnteredListener.
Definition: IMatchmaking.h:174
SelfRegisteringListener< ILobbyDataRetrieveListener > GlobalLobbyDataRetrieveListener
Globally self-registering version of ILobbyDataRetrieveListener.
Definition: IMatchmaking.h:348
SelfRegisteringListener< ILobbyEnteredListener, GameServerListenerRegistrar > GameServerGlobalLobbyEnteredListener
Globally self-registering version of ILobbyEnteredListener for the GameServer.
Definition: IMatchmaking.h:179
SelfRegisteringListener< ILobbyDataRetrieveListener, GameServerListenerRegistrar > GameServerGlobalLobbyDataRetrieveListener
Globally self-registering version of ILobbyDataRetrieveListener for the Game Server.
Definition: IMatchmaking.h:353
@ LOBBY_TYPE_FRIENDS_ONLY
Visible only to friends or invitees, but not in lobby list. Forbidden for the Game Server.
Definition: IMatchmaking.h:27
@ LOBBY_TYPE_INVISIBLE_TO_FRIENDS
Returned by search, but not visible to friends. Forbidden for the Game Server.
Definition: IMatchmaking.h:29
@ LOBBY_TYPE_PUBLIC
Visible for friends and in lobby list.
Definition: IMatchmaking.h:28
@ LOBBY_TYPE_PRIVATE
Only invited users are able to join the lobby.
Definition: IMatchmaking.h:26
@ LOBBY_CREATE_RESULT_CONNECTION_FAILURE
Unable to communicate with backend services.
Definition: IMatchmaking.h:77
@ LOBBY_CREATE_RESULT_ERROR
Unexpected error.
Definition: IMatchmaking.h:76
@ LOBBY_CREATE_RESULT_SUCCESS
Lobby was created.
Definition: IMatchmaking.h:75
@ LOBBY_MEMBER_STATE_CHANGED_DISCONNECTED
The user disconnected without leaving the lobby first.
Definition: IMatchmaking.h:51
@ LOBBY_MEMBER_STATE_CHANGED_KICKED
User was kicked from the lobby.
Definition: IMatchmaking.h:52
@ LOBBY_MEMBER_STATE_CHANGED_LEFT
The user left the lobby having announced it first.
Definition: IMatchmaking.h:50
@ LOBBY_MEMBER_STATE_CHANGED_BANNED
User was kicked and banned from the lobby.
Definition: IMatchmaking.h:53
@ LOBBY_MEMBER_STATE_CHANGED_ENTERED
The user joined the lobby.
Definition: IMatchmaking.h:49
@ LOBBY_TOPOLOGY_TYPE_FCM_OWNERSHIP_TRANSITION
All users are connected with each other. Disconnection of lobby owner results in choosing a new one....
Definition: IMatchmaking.h:41
@ LOBBY_TOPOLOGY_TYPE_STAR
All users are connected with lobby owner. Disconnection of lobby owner results in closing the lobby.
Definition: IMatchmaking.h:39
@ LOBBY_TOPOLOGY_TYPE_CONNECTIONLESS
All users are connected only with server. Disconnection of lobby owner results in choosing a new one....
Definition: IMatchmaking.h:40
@ DEPRECATED_LOBBY_TOPOLOGY_TYPE_FCM_HOST_MIGRATION
All users are connected with each other. Disconnection of lobby owner results in choosing a new one....
Definition: IMatchmaking.h:37
@ LOBBY_TOPOLOGY_TYPE_FCM
All users are connected with each other. Disconnection of lobby owner results in closing the lobby.
Definition: IMatchmaking.h:38
@ LOBBY_ENTER_RESULT_LOBBY_DOES_NOT_EXIST
Specified lobby does not exist.
Definition: IMatchmaking.h:86
@ LOBBY_ENTER_RESULT_CONNECTION_FAILURE
Unable to communicate with backend services.
Definition: IMatchmaking.h:89
@ LOBBY_ENTER_RESULT_SUCCESS
The user has entered the lobby.
Definition: IMatchmaking.h:85
@ LOBBY_ENTER_RESULT_LOBBY_IS_FULL
Specified lobby is full.
Definition: IMatchmaking.h:87
@ LOBBY_ENTER_RESULT_ERROR
Unexpected error.
Definition: IMatchmaking.h:88
@ LOBBY_COMPARISON_TYPE_LOWER
The lobby should have a property of a value that is lower than the one specified.
Definition: IMatchmaking.h:66
@ LOBBY_COMPARISON_TYPE_GREATER
The lobby should have a property of a value that is greater than the one specified.
Definition: IMatchmaking.h:64
@ LOBBY_COMPARISON_TYPE_EQUAL
The lobby should have a property of a value that is equal to the one specified.
Definition: IMatchmaking.h:62
@ LOBBY_COMPARISON_TYPE_GREATER_OR_EQUAL
The lobby should have a property of a value that is greater than or equal to the one specified.
Definition: IMatchmaking.h:65
@ LOBBY_COMPARISON_TYPE_LOWER_OR_EQUAL
The lobby should have a property of a value that is lower than or equal to the one specified.
Definition: IMatchmaking.h:67
@ LOBBY_COMPARISON_TYPE_NOT_EQUAL
The lobby should have a property of a value that is not equal to the one specified.
Definition: IMatchmaking.h:63
@ LOBBY_LIST_RESULT_CONNECTION_FAILURE
Unable to communicate with backend services.
Definition: IMatchmaking.h:99
@ LOBBY_LIST_RESULT_ERROR
Unexpected error.
Definition: IMatchmaking.h:98
@ LOBBY_LIST_RESULT_SUCCESS
The list of lobbies retrieved successfully.
Definition: IMatchmaking.h:97