in Networked Physics/Assets/OculusPlatform/Scripts/Message.cs [252:488]
internal static Message ParseMessageHandle(IntPtr messageHandle)
{
if (messageHandle.ToInt64() == 0)
{
return null;
}
Message message = null;
Message.MessageType message_type = (Message.MessageType)CAPI.ovr_Message_GetType(messageHandle);
switch(message_type) {
// OVR_MESSAGE_TYPE_START
case Message.MessageType.Achievements_GetAllDefinitions:
case Message.MessageType.Achievements_GetDefinitionsByName:
case Message.MessageType.Achievements_GetNextAchievementDefinitionArrayPage:
message = new MessageWithAchievementDefinitions(messageHandle);
break;
case Message.MessageType.Achievements_GetAllProgress:
case Message.MessageType.Achievements_GetNextAchievementProgressArrayPage:
case Message.MessageType.Achievements_GetProgressByName:
message = new MessageWithAchievementProgressList(messageHandle);
break;
case Message.MessageType.Achievements_AddCount:
case Message.MessageType.Achievements_AddFields:
case Message.MessageType.Achievements_Unlock:
message = new MessageWithAchievementUpdate(messageHandle);
break;
case Message.MessageType.Application_GetVersion:
message = new MessageWithApplicationVersion(messageHandle);
break;
case Message.MessageType.CloudStorage_LoadConflictMetadata:
message = new MessageWithCloudStorageConflictMetadata(messageHandle);
break;
case Message.MessageType.CloudStorage_Load:
case Message.MessageType.CloudStorage_LoadHandle:
message = new MessageWithCloudStorageData(messageHandle);
break;
case Message.MessageType.CloudStorage_LoadMetadata:
message = new MessageWithCloudStorageMetadataUnderLocal(messageHandle);
break;
case Message.MessageType.CloudStorage_GetNextCloudStorageMetadataArrayPage:
case Message.MessageType.CloudStorage_LoadBucketMetadata:
message = new MessageWithCloudStorageMetadataList(messageHandle);
break;
case Message.MessageType.CloudStorage_Delete:
case Message.MessageType.CloudStorage_ResolveKeepLocal:
case Message.MessageType.CloudStorage_ResolveKeepRemote:
case Message.MessageType.CloudStorage_Save:
message = new MessageWithCloudStorageUpdateResponse(messageHandle);
break;
case Message.MessageType.ApplicationLifecycle_RegisterSessionKey:
case Message.MessageType.Entitlement_GetIsViewerEntitled:
case Message.MessageType.IAP_ConsumePurchase:
case Message.MessageType.Matchmaking_Cancel:
case Message.MessageType.Matchmaking_Cancel2:
case Message.MessageType.Matchmaking_ReportResultInsecure:
case Message.MessageType.Matchmaking_StartMatch:
case Message.MessageType.Notification_MarkAsRead:
case Message.MessageType.Room_LaunchInvitableUserFlow:
case Message.MessageType.Room_UpdateOwner:
message = new Message(messageHandle);
break;
case Message.MessageType.Leaderboard_GetEntries:
case Message.MessageType.Leaderboard_GetEntriesAfterRank:
case Message.MessageType.Leaderboard_GetNextEntries:
case Message.MessageType.Leaderboard_GetPreviousEntries:
message = new MessageWithLeaderboardEntryList(messageHandle);
break;
case Message.MessageType.Leaderboard_WriteEntry:
message = new MessageWithLeaderboardDidUpdate(messageHandle);
break;
case Message.MessageType.Livestreaming_GetStatus:
message = new MessageWithLivestreamingStatus(messageHandle);
break;
case Message.MessageType.Matchmaking_GetAdminSnapshot:
message = new MessageWithMatchmakingAdminSnapshot(messageHandle);
break;
case Message.MessageType.Matchmaking_Browse:
case Message.MessageType.Matchmaking_Browse2:
message = new MessageWithMatchmakingBrowseResult(messageHandle);
break;
case Message.MessageType.Matchmaking_Enqueue:
case Message.MessageType.Matchmaking_Enqueue2:
case Message.MessageType.Matchmaking_EnqueueRoom:
case Message.MessageType.Matchmaking_EnqueueRoom2:
message = new MessageWithMatchmakingEnqueueResult(messageHandle);
break;
case Message.MessageType.Matchmaking_CreateAndEnqueueRoom:
case Message.MessageType.Matchmaking_CreateAndEnqueueRoom2:
message = new MessageWithMatchmakingEnqueueResultAndRoom(messageHandle);
break;
case Message.MessageType.Matchmaking_GetStats:
message = new MessageWithMatchmakingStatsUnderMatchmakingStats(messageHandle);
break;
case Message.MessageType.User_GetOrgScopedID:
message = new MessageWithOrgScopedID(messageHandle);
break;
case Message.MessageType.Party_GetCurrent:
message = new MessageWithPartyUnderCurrentParty(messageHandle);
break;
case Message.MessageType.ApplicationLifecycle_GetRegisteredPIDs:
message = new MessageWithPidList(messageHandle);
break;
case Message.MessageType.IAP_GetNextProductArrayPage:
case Message.MessageType.IAP_GetProductsBySKU:
message = new MessageWithProductList(messageHandle);
break;
case Message.MessageType.IAP_LaunchCheckoutFlow:
message = new MessageWithPurchase(messageHandle);
break;
case Message.MessageType.IAP_GetNextPurchaseArrayPage:
case Message.MessageType.IAP_GetViewerPurchases:
message = new MessageWithPurchaseList(messageHandle);
break;
case Message.MessageType.Room_Get:
message = new MessageWithRoom(messageHandle);
break;
case Message.MessageType.Room_GetCurrent:
case Message.MessageType.Room_GetCurrentForUser:
message = new MessageWithRoomUnderCurrentRoom(messageHandle);
break;
case Message.MessageType.Matchmaking_CreateRoom:
case Message.MessageType.Matchmaking_CreateRoom2:
case Message.MessageType.Matchmaking_JoinRoom:
case Message.MessageType.Notification_Room_RoomUpdate:
case Message.MessageType.Room_CreateAndJoinPrivate:
case Message.MessageType.Room_InviteUser:
case Message.MessageType.Room_Join:
case Message.MessageType.Room_KickUser:
case Message.MessageType.Room_Leave:
case Message.MessageType.Room_SetDescription:
case Message.MessageType.Room_UpdateDataStore:
case Message.MessageType.Room_UpdateMembershipLockStatus:
case Message.MessageType.Room_UpdatePrivateRoomJoinPolicy:
message = new MessageWithRoomUnderViewerRoom(messageHandle);
break;
case Message.MessageType.Room_GetModeratedRooms:
case Message.MessageType.Room_GetNextRoomArrayPage:
message = new MessageWithRoomList(messageHandle);
break;
case Message.MessageType.Notification_GetNextRoomInviteNotificationArrayPage:
case Message.MessageType.Notification_GetRoomInvites:
message = new MessageWithRoomInviteNotificationList(messageHandle);
break;
case Message.MessageType.ApplicationLifecycle_GetSessionKey:
case Message.MessageType.Notification_Room_InviteAccepted:
case Message.MessageType.User_GetAccessToken:
message = new MessageWithString(messageHandle);
break;
case Message.MessageType.Voip_SetSystemVoipSuppressed:
message = new MessageWithSystemVoipState(messageHandle);
break;
case Message.MessageType.User_Get:
case Message.MessageType.User_GetLoggedInUser:
message = new MessageWithUser(messageHandle);
break;
case Message.MessageType.Room_GetInvitableUsers:
case Message.MessageType.Room_GetInvitableUsers2:
case Message.MessageType.User_GetLoggedInUserFriends:
case Message.MessageType.User_GetNextUserArrayPage:
message = new MessageWithUserList(messageHandle);
break;
case Message.MessageType.User_GetUserProof:
message = new MessageWithUserProof(messageHandle);
break;
case Message.MessageType.Notification_Networking_ConnectionStateChange:
case Message.MessageType.Notification_Networking_PeerConnectRequest:
message = new MessageWithNetworkingPeer(messageHandle);
break;
case Message.MessageType.Notification_Networking_PingResult:
message = new MessageWithPingResult(messageHandle);
break;
case Message.MessageType.Notification_Matchmaking_MatchFound:
message = new MessageWithMatchmakingNotification(messageHandle);
break;
case Message.MessageType.Notification_Voip_ConnectRequest:
case Message.MessageType.Notification_Voip_StateChange:
message = new MessageWithNetworkingPeer(messageHandle);
break;
case Message.MessageType.Notification_Voip_SystemVoipState:
message = new MessageWithSystemVoipState(messageHandle);
break;
case Message.MessageType.Notification_HTTP_Transfer:
message = new MessageWithHttpTransferUpdate(messageHandle);
break;
default:
message = PlatformInternal.ParseMessageHandle(messageHandle, message_type);
if (message == null)
{
Debug.LogError(string.Format("Unrecognized message type {0}\n", message_type));
}
break;
// OVR_MESSAGE_TYPE_END
}
return message;
}