This commit is contained in:
Nathan Iskandar 2021-06-15 15:54:53 -07:00 коммит произвёл GitHub
Родитель 43c95d3060
Коммит 676e5d0832
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
44 изменённых файлов: 2679 добавлений и 1012 удалений

10
.gitignore поставляемый
Просмотреть файл

@ -129,6 +129,8 @@ Binaries/
Debug/
Release/
ARM/
Built/
Bins/
# Allow files in our /Build folder
!/Build
@ -157,4 +159,10 @@ Tests/APIExplorer/XDK/Kits/DirectXTK/Src/Shaders/Compiled/*
Microsoft.Xbox.Services.*.sln.log
Microsoft.Xbox.Services.*.sln.out
**/apirunner-log.txt
**/apirunner-log.txt
# Android Studio generated files
**/.idea
**/*.iml
**/local.properties
**/.cxx

Просмотреть файл

@ -0,0 +1,6 @@
cmake_minimum_required(VERSION 3.6)
function(GET_XSAPI_ANDROID_BINARY_DIR PATH_TO_ROOT OUT_BINARY_DIR)
string(TOLOWER "${CMAKE_BUILD_TYPE}" PATH_FLAVOR)
set(${OUT_BINARY_DIR} "${PATH_TO_ROOT}/Built/Android/${ANDROID_ABI}/${PATH_FLAVOR}" PARENT_SCOPE)
endfunction()

Просмотреть файл

@ -0,0 +1,584 @@
LIBRARY xsapi
EXPORTS
HCAddCallRoutedHandler
HCAddWebSocketRoutedHandler
HCCleanup
HCCleanupAsync
HCGetHttpCallPerformFunction
HCGetLibVersion
HCGetWebSocketConnectResult
HCGetWebSocketFunctions
HCGetWebSocketSendMessageResult
HCHttpCallCloseHandle
HCHttpCallCreate
HCHttpCallDuplicateHandle
HCHttpCallGetContext
HCHttpCallGetId
HCHttpCallGetRequestUrl
HCHttpCallPerformAsync
HCHttpCallRequestGetHeader
HCHttpCallRequestGetHeaderAtIndex
HCHttpCallRequestGetNumHeaders
HCHttpCallRequestGetRequestBodyBytes
HCHttpCallRequestGetRequestBodyString
HCHttpCallRequestGetRetryAllowed
HCHttpCallRequestGetRetryCacheId
HCHttpCallRequestGetRetryDelay
HCHttpCallRequestGetTimeout
HCHttpCallRequestGetTimeoutWindow
HCHttpCallRequestGetUrl
HCHttpCallRequestSetHeader
HCHttpCallRequestSetRequestBodyBytes
HCHttpCallRequestSetRequestBodyString
HCHttpCallRequestSetRetryAllowed
HCHttpCallRequestSetRetryCacheId
HCHttpCallRequestSetRetryDelay
HCHttpCallRequestSetSSLValidation
HCHttpCallRequestSetTimeout
HCHttpCallRequestSetTimeoutWindow
HCHttpCallRequestSetUrl
HCHttpCallResponseAppendResponseBodyBytes
HCHttpCallResponseGetHeader
HCHttpCallResponseGetHeaderAtIndex
HCHttpCallResponseGetNetworkErrorCode
HCHttpCallResponseGetNumHeaders
HCHttpCallResponseGetPlatformNetworkErrorMessage
HCHttpCallResponseGetResponseBodyBytes
HCHttpCallResponseGetResponseBodyBytesSize
HCHttpCallResponseGetResponseString
HCHttpCallResponseGetStatusCode
HCHttpCallResponseSetHeader
HCHttpCallResponseSetHeaderWithLength
HCHttpCallResponseSetNetworkErrorCode
HCHttpCallResponseSetPlatformNetworkErrorMessage
HCHttpCallResponseSetResponseBodyBytes
HCHttpCallResponseSetStatusCode
HCHttpCallSetContext
HCHttpCallSetTracing
HCInitialize
HCMemGetFunctions
HCMemSetFunctions
HCMockAddMock
HCMockCallCreate
HCMockClearMocks
HCMockRemoveMock
HCMockResponseSetHeader
HCMockResponseSetNetworkErrorCode
HCMockResponseSetResponseBodyBytes
HCMockResponseSetStatusCode
HCMockSetMockMatchedCallback
HCRemoveCallRoutedHandler
HCRemoveWebSocketRoutedHandler
HCSetGlobalProxy
HCSetHttpCallPerformFunction
HCSettingsGetTraceLevel
HCSettingsSetTraceLevel
HCSetWebSocketFunctions
HCTraceImplMessage
HCTraceImplScopeId
HCTraceSetClientCallback
HCTraceSetPlatformCallbacks
HCTraceSetTraceToDebugger
HCWebSocketCloseHandle
HCWebSocketConnectAsync
HCWebSocketCreate
HCWebSocketDisconnect
HCWebSocketDuplicateHandle
HCWebSocketGetEventFunctions
HCWebSocketGetHeader
HCWebSocketGetHeaderAtIndex
HCWebSocketGetNumHeaders
HCWebSocketGetProxyUri
HCWebSocketSendBinaryMessageAsync
HCWebSocketSendMessageAsync
HCWebSocketSetHeader
HCWebSocketSetProxyDecryptsHttps
HCWebSocketSetProxyUri
XalAddUserWithUiAsync
XalAddUserWithUiResult
XalCleanupAsync
XalCleanupResult
XalCompareUsers
XalFindUserByLocalId
XalGetDeviceUser
XalGetDeviceUserIsPresent
XalGetMaxUsers
XalGetSandbox
XalGetSandboxSize
XalGetTitleId
XalInitialize
XalMemGetFunctions
XalMemSetFunctions
XalPlatformCryptoSetCallbacks
XalPlatformDateTimeSetCallbacks
XalPlatformRemoteConnectCancelPrompt
XalPlatformRemoteConnectSetEventHandlers
XalPlatformStorageClearComplete
XalPlatformStorageReadComplete
XalPlatformStorageSetEventHandlers
XalPlatformStorageWriteComplete
XalPlatformWebSetEventHandler
XalPlatformWebShowUrlComplete
XalSignOutUserAsync
XalSignOutUserAsyncIsPresent
XalSignOutUserResult
XalTryAddDefaultUserSilentlyAsync
XalTryAddDefaultUserSilentlyResult
XalTryAddUserByIdAsync
XalTryAddUserByIdResult
XalUserCheckPrivilege
XalUserCloseHandle
XalUserCloseSignoutDeferral
XalUserDuplicateHandle
XalUserGetAgeGroup
XalUserGetGamerPictureAsync
XalUserGetGamerPictureResult
XalUserGetGamerPictureResultSize
XalUserGetGamertag
XalUserGetGamertagSize
XalUserGetId
XalUserGetLocalId
XalUserGetSignoutDeferral
XalUserGetState
XalUserGetTokenAndSignatureSilentlyAsync
XalUserGetTokenAndSignatureSilentlyResult
XalUserGetTokenAndSignatureSilentlyResultSize
XalUserIsDevice
XalUserIsGuest
XalUserRegisterChangeEventHandler
XalUserResolveIssueWithUiAsync
XalUserResolveIssueWithUiResult
XalUserResolvePrivilegeWithUiIsPresent
XalUserResolveUserPrivilegeWithUiAsync
XalUserResolveUserPrivilegeWithUiResult
XalUserUnregisterChangeEventHandler
XAsyncBegin
XAsyncCancel
XAsyncComplete
XAsyncGetResult
XAsyncGetResultSize
XAsyncGetStatus
XAsyncRun
XAsyncSchedule
XblAchievementsAddAchievementProgressChangeHandler
XblAchievementsGetAchievementAsync
XblAchievementsGetAchievementResult
XblAchievementsGetAchievementsForTitleIdAsync
XblAchievementsGetAchievementsForTitleIdResult
XblAchievementsManagerAddLocalUser
XblAchievementsManagerDoWork
XblAchievementsManagerGetAchievement
XblAchievementsManagerGetAchievements
XblAchievementsManagerGetAchievementsByState
XblAchievementsManagerIsUserInitialized
XblAchievementsManagerRemoveLocalUser
XblAchievementsManagerResultCloseHandle
XblAchievementsManagerResultDuplicateHandle
XblAchievementsManagerResultGetAchievements
XblAchievementsManagerUpdateAchievement
XblAchievementsRemoveAchievementProgressChangeHandler
XblAchievementsResultCloseHandle
XblAchievementsResultDuplicateHandle
XblAchievementsResultGetAchievements
XblAchievementsResultGetNextAsync
XblAchievementsResultGetNextResult
XblAchievementsResultHasNext
XblAchievementsUpdateAchievementAsync
XblAchievementsUpdateAchievementForTitleIdAsync
XblAchievementUnlockAddNotificationHandler
XblAchievementUnlockRemoveNotificationHandler
XblAddServiceCallRoutedHandler
XblCleanupAsync
XblContextCloseHandle
XblContextCreateHandle
XblContextDuplicateHandle
XblContextGetUser
XblContextGetXboxUserId
XblContextSettingsGetHttpRetryDelay
XblContextSettingsGetHttpTimeoutWindow
XblContextSettingsGetLongHttpTimeout
XblContextSettingsGetUseCrossPlatformQosServers
XblContextSettingsGetWebsocketTimeoutWindow
XblContextSettingsSetHttpRetryDelay
XblContextSettingsSetHttpTimeoutWindow
XblContextSettingsSetLongHttpTimeout
XblContextSettingsSetUseCrossPlatformQosServers
XblContextSettingsSetWebsocketTimeoutWindow
XblDisableAssertsForXboxLiveThrottlingInDevSandboxes
XblEventsSetMaxFileSize
XblEventsSetStorageAllotment
XblEventsWriteInGameEvent
XblFormatSecureDeviceAddress
XblGameInviteAddNotificationHandler
XblGameInviteRemoveNotificationHandler
XblGetAsyncQueue
XblGetErrorCondition
XblGetScid
XblHttpCallCloseHandle
XblHttpCallCreate
XblHttpCallDuplicateHandle
XblHttpCallGetHeader
XblHttpCallGetHeaderAtIndex
XblHttpCallGetNetworkErrorCode
XblHttpCallGetNumHeaders
XblHttpCallGetPlatformNetworkErrorMessage
XblHttpCallGetRequestUrl
XblHttpCallGetResponseBodyBytes
XblHttpCallGetResponseBodyBytesSize
XblHttpCallGetResponseString
XblHttpCallGetStatusCode
XblHttpCallPerformAsync
XblHttpCallRequestSetHeader
XblHttpCallRequestSetLongHttpCall
XblHttpCallRequestSetRequestBodyBytes
XblHttpCallRequestSetRequestBodyString
XblHttpCallRequestSetRetryAllowed
XblHttpCallRequestSetRetryCacheId
XblHttpCallSetTracing
XblInitialize
XblLeaderboardGetLeaderboardAsync
XblLeaderboardGetLeaderboardResult
XblLeaderboardGetLeaderboardResultSize
XblLeaderboardResultGetNextAsync
XblLeaderboardResultGetNextResult
XblLeaderboardResultGetNextResultSize
XblLocalStorageClearComplete
XblLocalStorageReadComplete
XblLocalStorageSetHandlers
XblLocalStorageWriteComplete
XblMatchmakingCreateMatchTicketAsync
XblMatchmakingCreateMatchTicketResult
XblMatchmakingDeleteMatchTicketAsync
XblMatchmakingGetHopperStatisticsAsync
XblMatchmakingGetHopperStatisticsResult
XblMatchmakingGetHopperStatisticsResultSize
XblMatchmakingGetMatchTicketDetailsAsync
XblMatchmakingGetMatchTicketDetailsResult
XblMatchmakingGetMatchTicketDetailsResultSize
XblMemGetFunctions
XblMemSetFunctions
XblMultiplayerActivityAddInviteHandler
XblMultiplayerActivityDeleteActivityAsync
XblMultiplayerActivityFlushRecentPlayersAsync
XblMultiplayerActivityGetActivityAsync
XblMultiplayerActivityGetActivityResult
XblMultiplayerActivityGetActivityResultSize
XblMultiplayerActivityRemoveInviteHandler
XblMultiplayerActivitySendInvitesAsync
XblMultiplayerActivitySetActivityAsync
XblMultiplayerActivityUpdateRecentPlayers
XblMultiplayerAddConnectionIdChangedHandler
XblMultiplayerAddSessionChangedHandler
XblMultiplayerAddSubscriptionLostHandler
XblMultiplayerClearActivityAsync
XblMultiplayerCreateSearchHandleAsync
XblMultiplayerCreateSearchHandleResult
XblMultiplayerDeleteSearchHandleAsync
XblMultiplayerEventArgsFindMatchCompleted
XblMultiplayerEventArgsMember
XblMultiplayerEventArgsMembers
XblMultiplayerEventArgsMembersCount
XblMultiplayerEventArgsPerformQoSMeasurements
XblMultiplayerEventArgsPropertiesJson
XblMultiplayerEventArgsXuid
XblMultiplayerGetActivitiesForSocialGroupAsync
XblMultiplayerGetActivitiesForSocialGroupResult
XblMultiplayerGetActivitiesForSocialGroupResultCount
XblMultiplayerGetActivitiesForUsersAsync
XblMultiplayerGetActivitiesForUsersResult
XblMultiplayerGetActivitiesForUsersResultCount
XblMultiplayerGetActivitiesWithPropertiesForSocialGroupAsync
XblMultiplayerGetActivitiesWithPropertiesForSocialGroupResult
XblMultiplayerGetActivitiesWithPropertiesForSocialGroupResultSize
XblMultiplayerGetActivitiesWithPropertiesForUsersAsync
XblMultiplayerGetActivitiesWithPropertiesForUsersResult
XblMultiplayerGetActivitiesWithPropertiesForUsersResultSize
XblMultiplayerGetSearchHandlesAsync
XblMultiplayerGetSearchHandlesResult
XblMultiplayerGetSearchHandlesResultCount
XblMultiplayerGetSessionAsync
XblMultiplayerGetSessionByHandleAsync
XblMultiplayerGetSessionByHandleResult
XblMultiplayerGetSessionResult
XblMultiplayerManagerAutoFillMembersDuringMatchmaking
XblMultiplayerManagerCancelMatch
XblMultiplayerManagerDoWork
XblMultiplayerManagerEstimatedMatchWaitTime
XblMultiplayerManagerFindMatch
XblMultiplayerManagerGameSessionActive
XblMultiplayerManagerGameSessionConstants
XblMultiplayerManagerGameSessionCorrelationId
XblMultiplayerManagerGameSessionHost
XblMultiplayerManagerGameSessionIsHost
XblMultiplayerManagerGameSessionMembers
XblMultiplayerManagerGameSessionMembersCount
XblMultiplayerManagerGameSessionPropertiesJson
XblMultiplayerManagerGameSessionSessionReference
XblMultiplayerManagerGameSessionSetProperties
XblMultiplayerManagerGameSessionSetSynchronizedHost
XblMultiplayerManagerGameSessionSetSynchronizedProperties
XblMultiplayerManagerInitialize
XblMultiplayerManagerJoinability
XblMultiplayerManagerJoinGame
XblMultiplayerManagerJoinGameFromLobby
XblMultiplayerManagerJoinLobby
XblMultiplayerManagerLeaveGame
XblMultiplayerManagerLobbySessionAddLocalUser
XblMultiplayerManagerLobbySessionConstants
XblMultiplayerManagerLobbySessionCorrelationId
XblMultiplayerManagerLobbySessionDeleteLocalMemberProperties
XblMultiplayerManagerLobbySessionHost
XblMultiplayerManagerLobbySessionInviteFriends
XblMultiplayerManagerLobbySessionInviteUsers
XblMultiplayerManagerLobbySessionIsHost
XblMultiplayerManagerLobbySessionLocalMembers
XblMultiplayerManagerLobbySessionLocalMembersCount
XblMultiplayerManagerLobbySessionMembers
XblMultiplayerManagerLobbySessionMembersCount
XblMultiplayerManagerLobbySessionPropertiesJson
XblMultiplayerManagerLobbySessionRemoveLocalUser
XblMultiplayerManagerLobbySessionSessionReference
XblMultiplayerManagerLobbySessionSetLocalMemberConnectionAddress
XblMultiplayerManagerLobbySessionSetLocalMemberProperties
XblMultiplayerManagerLobbySessionSetProperties
XblMultiplayerManagerLobbySessionSetSynchronizedHost
XblMultiplayerManagerLobbySessionSetSynchronizedProperties
XblMultiplayerManagerMatchStatus
XblMultiplayerManagerMemberAreMembersOnSameDevice
XblMultiplayerManagerSetAutoFillMembersDuringMatchmaking
XblMultiplayerManagerSetJoinability
XblMultiplayerManagerSetQosMeasurements
XblMultiplayerQuerySessionsAsync
XblMultiplayerQuerySessionsResult
XblMultiplayerQuerySessionsResultCount
XblMultiplayerRemoveConnectionIdChangedHandler
XblMultiplayerRemoveSessionChangedHandler
XblMultiplayerRemoveSubscriptionLostHandler
XblMultiplayerSearchHandleCloseHandle
XblMultiplayerSearchHandleDuplicateHandle
XblMultiplayerSearchHandleGetCreationTime
XblMultiplayerSearchHandleGetCustomSessionPropertiesJson
XblMultiplayerSearchHandleGetId
XblMultiplayerSearchHandleGetJoinRestriction
XblMultiplayerSearchHandleGetMemberCounts
XblMultiplayerSearchHandleGetNumberAttributes
XblMultiplayerSearchHandleGetSessionClosed
XblMultiplayerSearchHandleGetSessionOwnerXuids
XblMultiplayerSearchHandleGetSessionReference
XblMultiplayerSearchHandleGetStringAttributes
XblMultiplayerSearchHandleGetTags
XblMultiplayerSearchHandleGetVisibility
XblMultiplayerSendInvitesAsync
XblMultiplayerSendInvitesResult
XblMultiplayerSessionAddMemberReservation
XblMultiplayerSessionCloseHandle
XblMultiplayerSessionCompare
XblMultiplayerSessionConstantsSetCapabilities
XblMultiplayerSessionConstantsSetCloudComputePackageJson
XblMultiplayerSessionConstantsSetMaxMembersInSession
XblMultiplayerSessionConstantsSetMeasurementServerAddressesJson
XblMultiplayerSessionConstantsSetMemberInitialization
XblMultiplayerSessionConstantsSetPeerToHostRequirements
XblMultiplayerSessionConstantsSetPeerToPeerRequirements
XblMultiplayerSessionConstantsSetQosConnectivityMetrics
XblMultiplayerSessionConstantsSetTimeouts
XblMultiplayerSessionConstantsSetVisibility
XblMultiplayerSessionCreateHandle
XblMultiplayerSessionCurrentUser
XblMultiplayerSessionCurrentUserDeleteCustomPropertyJson
XblMultiplayerSessionCurrentUserSetCustomPropertyJson
XblMultiplayerSessionCurrentUserSetEncounters
XblMultiplayerSessionCurrentUserSetGroups
XblMultiplayerSessionCurrentUserSetMembersInGroup
XblMultiplayerSessionCurrentUserSetQosMeasurements
XblMultiplayerSessionCurrentUserSetRoles
XblMultiplayerSessionCurrentUserSetSecureDeviceAddressBase64
XblMultiplayerSessionCurrentUserSetServerQosMeasurements
XblMultiplayerSessionCurrentUserSetStatus
XblMultiplayerSessionDeleteCustomPropertyJson
XblMultiplayerSessionDuplicateHandle
XblMultiplayerSessionEtag
XblMultiplayerSessionGetInfo
XblMultiplayerSessionGetInitializationInfo
XblMultiplayerSessionGetMember
XblMultiplayerSessionGetRoleByName
XblMultiplayerSessionHostCandidates
XblMultiplayerSessionJoin
XblMultiplayerSessionLeave
XblMultiplayerSessionMatchmakingServer
XblMultiplayerSessionMembers
XblMultiplayerSessionMembersAccepted
XblMultiplayerSessionPropertiesSetJoinRestriction
XblMultiplayerSessionPropertiesSetKeywords
XblMultiplayerSessionPropertiesSetReadRestriction
XblMultiplayerSessionPropertiesSetTurnCollection
XblMultiplayerSessionRawServersJson
XblMultiplayerSessionReferenceCreate
XblMultiplayerSessionReferenceIsValid
XblMultiplayerSessionReferenceParseFromUriPath
XblMultiplayerSessionReferenceToUriPath
XblMultiplayerSessionRoleTypes
XblMultiplayerSessionSessionConstants
XblMultiplayerSessionSessionProperties
XblMultiplayerSessionSessionReference
XblMultiplayerSessionSetAllocateCloudCompute
XblMultiplayerSessionSetClosed
XblMultiplayerSessionSetCustomPropertyJson
XblMultiplayerSessionSetHostDeviceToken
XblMultiplayerSessionSetInitializationSucceeded
XblMultiplayerSessionSetLocked
XblMultiplayerSessionSetMatchmakingResubmit
XblMultiplayerSessionSetMatchmakingServerConnectionPath
XblMultiplayerSessionSetMatchmakingTargetSessionConstantsJson
XblMultiplayerSessionSetMutableRoleSettings
XblMultiplayerSessionSetRawServersJson
XblMultiplayerSessionSetServerConnectionStringCandidates
XblMultiplayerSessionSetSessionChangeSubscription
XblMultiplayerSessionSubscribedChangeTypes
XblMultiplayerSessionTimeOfSession
XblMultiplayerSessionWriteStatus
XblMultiplayerSetActivityAsync
XblMultiplayerSetSubscriptionsEnabled
XblMultiplayerSetTransferHandleAsync
XblMultiplayerSetTransferHandleResult
XblMultiplayerSubscriptionsEnabled
XblMultiplayerWriteSessionAsync
XblMultiplayerWriteSessionByHandleAsync
XblMultiplayerWriteSessionByHandleResult
XblMultiplayerWriteSessionResult
XblPresenceAddDevicePresenceChangedHandler
XblPresenceAddTitlePresenceChangedHandler
XblPresenceGetPresenceAsync
XblPresenceGetPresenceForMultipleUsersAsync
XblPresenceGetPresenceForMultipleUsersResult
XblPresenceGetPresenceForMultipleUsersResultCount
XblPresenceGetPresenceForSocialGroupAsync
XblPresenceGetPresenceForSocialGroupResult
XblPresenceGetPresenceForSocialGroupResultCount
XblPresenceGetPresenceResult
XblPresenceRecordCloseHandle
XblPresenceRecordDuplicateHandle
XblPresenceRecordGetDeviceRecords
XblPresenceRecordGetUserState
XblPresenceRecordGetXuid
XblPresenceRemoveDevicePresenceChangedHandler
XblPresenceRemoveTitlePresenceChangedHandler
XblPresenceSetPresenceAsync
XblPresenceStopTrackingAdditionalTitles
XblPresenceStopTrackingUsers
XblPresenceTrackAdditionalTitles
XblPresenceTrackUsers
XblPrivacyBatchCheckPermissionAsync
XblPrivacyBatchCheckPermissionResult
XblPrivacyBatchCheckPermissionResultSize
XblPrivacyCheckPermissionAsync
XblPrivacyCheckPermissionForAnonymousUserAsync
XblPrivacyCheckPermissionForAnonymousUserResult
XblPrivacyCheckPermissionForAnonymousUserResultSize
XblPrivacyCheckPermissionResult
XblPrivacyCheckPermissionResultSize
XblPrivacyGetAvoidListAsync
XblPrivacyGetAvoidListResult
XblPrivacyGetAvoidListResultCount
XblPrivacyGetMuteListAsync
XblPrivacyGetMuteListResult
XblPrivacyGetMuteListResultCount
XblProfileGetUserProfileAsync
XblProfileGetUserProfileResult
XblProfileGetUserProfilesAsync
XblProfileGetUserProfilesForSocialGroupAsync
XblProfileGetUserProfilesForSocialGroupResult
XblProfileGetUserProfilesForSocialGroupResultCount
XblProfileGetUserProfilesResult
XblProfileGetUserProfilesResultCount
XblRealTimeActivityAddConnectionStateChangeHandler
XblRealTimeActivityAddResyncHandler
XblRealTimeActivityRemoveConnectionStateChangeHandler
XblRealTimeActivityRemoveResyncHandler
XblRemoveServiceCallRoutedHandler
XblSetOverrideConfiguration
XblSocialAddSocialRelationshipChangedHandler
XblSocialGetSocialRelationshipsAsync
XblSocialGetSocialRelationshipsResult
XblSocialManagerAddLocalUser
XblSocialManagerCreateSocialUserGroupFromFilters
XblSocialManagerCreateSocialUserGroupFromList
XblSocialManagerDestroySocialUserGroup
XblSocialManagerDoWork
XblSocialManagerGetLocalUserCount
XblSocialManagerGetLocalUsers
XblSocialManagerPresenceRecordIsUserPlayingTitle
XblSocialManagerRemoveLocalUser
XblSocialManagerSetRichPresencePollingStatus
XblSocialManagerUpdateSocialUserGroup
XblSocialManagerUserGroupGetFilters
XblSocialManagerUserGroupGetLocalUser
XblSocialManagerUserGroupGetType
XblSocialManagerUserGroupGetUsers
XblSocialManagerUserGroupGetUsersTrackedByGroup
XblSocialRelationshipResultCloseHandle
XblSocialRelationshipResultDuplicateHandle
XblSocialRelationshipResultGetNextAsync
XblSocialRelationshipResultGetNextResult
XblSocialRelationshipResultGetRelationships
XblSocialRelationshipResultGetTotalCount
XblSocialRelationshipResultHasNext
XblSocialRemoveSocialRelationshipChangedHandler
XblSocialSubmitBatchReputationFeedbackAsync
XblSocialSubmitReputationFeedbackAsync
XblStringVerifyStringAsync
XblStringVerifyStringResult
XblStringVerifyStringResultSize
XblStringVerifyStringsAsync
XblStringVerifyStringsResult
XblStringVerifyStringsResultSize
XblTitleManagedStatsDeleteStatsAsync
XblTitleManagedStatsUpdateStatsAsync
XblTitleManagedStatsWriteAsync
XblTitleStorageBlobMetadataResultCloseHandle
XblTitleStorageBlobMetadataResultDuplicateHandle
XblTitleStorageBlobMetadataResultGetItems
XblTitleStorageBlobMetadataResultGetNextAsync
XblTitleStorageBlobMetadataResultGetNextResult
XblTitleStorageBlobMetadataResultHasNext
XblTitleStorageDeleteBlobAsync
XblTitleStorageDownloadBlobAsync
XblTitleStorageDownloadBlobResult
XblTitleStorageGetBlobMetadataAsync
XblTitleStorageGetBlobMetadataResult
XblTitleStorageGetQuotaAsync
XblTitleStorageGetQuotaResult
XblTitleStorageUploadBlobAsync
XblTitleStorageUploadBlobResult
XblUserStatisticsAddStatisticChangedHandler
XblUserStatisticsGetMultipleUserStatisticsAsync
XblUserStatisticsGetMultipleUserStatisticsForMultipleServiceConfigurationsAsync
XblUserStatisticsGetMultipleUserStatisticsForMultipleServiceConfigurationsResult
XblUserStatisticsGetMultipleUserStatisticsForMultipleServiceConfigurationsResultSize
XblUserStatisticsGetMultipleUserStatisticsResult
XblUserStatisticsGetMultipleUserStatisticsResultSize
XblUserStatisticsGetSingleUserStatisticAsync
XblUserStatisticsGetSingleUserStatisticResult
XblUserStatisticsGetSingleUserStatisticResultSize
XblUserStatisticsGetSingleUserStatisticsAsync
XblUserStatisticsGetSingleUserStatisticsResult
XblUserStatisticsGetSingleUserStatisticsResultSize
XblUserStatisticsRemoveStatisticChangedHandler
XblUserStatisticsStopTrackingStatistics
XblUserStatisticsStopTrackingUsers
XblUserStatisticsTrackStatistics
XTaskQueueCloseHandle
XTaskQueueCreate
XTaskQueueCreateComposite
XTaskQueueDispatch
XTaskQueueDuplicateHandle
XTaskQueueGetCurrentProcessTaskQueue
XTaskQueueGetPort
XTaskQueueRegisterMonitor
XTaskQueueRegisterWaiter
XTaskQueueSetCurrentProcessTaskQueue
XTaskQueueSubmitCallback
XTaskQueueSubmitDelayedCallback
XTaskQueueTerminate
XTaskQueueUnregisterMonitor
XTaskQueueUnregisterWaiter

2
External/Xal/External/libHttpClient поставляемый

@ -1 +1 @@
Subproject commit 0f43237a35cd2335b5503ffaaf240a368c938f3d
Subproject commit d34b3b125f3cb23da81428aa350f66930bc99f8c

38
External/Xal/Source/Xal/Include/Xal/xal.h поставляемый
Просмотреть файл

@ -33,7 +33,7 @@ extern "C"
///
/// It is never an error to set a platform event handler that is not required.
/// </remarks>
HRESULT XalInitialize(
STDAPI XalInitialize(
_In_ XalInitArgs const* args,
_In_opt_ XTaskQueueHandle internalWorkQueue
) noexcept;
@ -48,7 +48,7 @@ HRESULT XalInitialize(
/// This functions should only be called when all user handles have been closed
/// and there are no outstanding asynchronous operations.
/// </remarks>
HRESULT XalCleanupAsync(
STDAPI XalCleanupAsync(
_In_ XAsyncBlock* async
) noexcept;
@ -57,7 +57,7 @@ HRESULT XalCleanupAsync(
/// </summary>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <returns>Result code for this API operation.</returns>
HRESULT XalCleanupResult(
STDAPI XalCleanupResult(
_In_ XAsyncBlock* async
) noexcept;
@ -67,7 +67,7 @@ HRESULT XalCleanupResult(
/// </summary>
/// <param name="maxUsers">The maximum number of concurrent users.</param>
/// <returns>Result code for this API operation. Possible values are S_OK, E_XAL_NOTINITIALIZED, or E_FAIL.</returns>
HRESULT XalGetMaxUsers(
STDAPI XalGetMaxUsers(
_Out_ uint32_t* maxUsers
) noexcept;
@ -77,7 +77,7 @@ HRESULT XalGetMaxUsers(
/// </summary>
/// <param name="titleId">The Xbox Live title ID.</param>
/// <returns>Result code for this API operation. Possible values are S_OK, E_XAL_NOTINITIALIZED, or E_FAIL.</returns>
HRESULT XalGetTitleId(
STDAPI XalGetTitleId(
_Out_ uint32_t* titleId
) noexcept;
@ -85,7 +85,7 @@ HRESULT XalGetTitleId(
/// Get the size of the buffer needed to store the Xbox Live sandbox string.
/// </summary>
/// <returns>The size of the sandbox string including the null terminator.</returns>
size_t XalGetSandboxSize() noexcept;
STDAPI_(size_t) XalGetSandboxSize() noexcept;
/// <summary>
/// Get the Xbox Live sandbox that Xal was initialized with. Must be called after
@ -97,7 +97,7 @@ size_t XalGetSandboxSize() noexcept;
/// <param name="sandboxUsed">The number of bytes used in the buffer including
/// the null terminator.</param>
/// <returns>Result code for this API operation. Possible values are S_OK, E_XAL_NOTINITIALIZED, or E_FAIL.</returns>
HRESULT XalGetSandbox(
STDAPI XalGetSandbox(
_In_ size_t sandboxSize,
_Out_writes_(sandboxSize) char* sandbox,
_Out_opt_ size_t* sandboxUsed
@ -114,7 +114,7 @@ HRESULT XalGetSandbox(
/// userIdentifier will be stored in the user and passed to all XalPlatform*
/// callbacks related to this user.
/// </remarks>
HRESULT XalTryAddDefaultUserSilentlyAsync(
STDAPI XalTryAddDefaultUserSilentlyAsync(
_In_ uint32_t userIdentifier,
_In_ XAsyncBlock* async
) noexcept;
@ -127,7 +127,7 @@ HRESULT XalTryAddDefaultUserSilentlyAsync(
/// <remarks>
/// If the operations failed, newUser will be NULL.
/// </remarks>
HRESULT XalTryAddDefaultUserSilentlyResult(
STDAPI XalTryAddDefaultUserSilentlyResult(
_In_ XAsyncBlock* async,
_Out_ XalUserHandle* newUser
) noexcept;
@ -146,7 +146,7 @@ HRESULT XalTryAddDefaultUserSilentlyResult(
/// userIdentifier will be stored in the user and passed to all XalPlatform*
/// callbacks related to this user.
/// </remarks>
HRESULT XalTryAddUserByIdAsync(
STDAPI XalTryAddUserByIdAsync(
_In_ uint32_t userIdentifier,
_In_ uint64_t xboxUserId,
_In_ XAsyncBlock* async
@ -161,7 +161,7 @@ HRESULT XalTryAddUserByIdAsync(
/// <remarks>
/// If the operations failed, newUser will be NULL.
/// </remarks>
HRESULT XalTryAddUserByIdResult(
STDAPI XalTryAddUserByIdResult(
_In_ XAsyncBlock* async,
_Out_ XalUserHandle* newUser
) noexcept;
@ -179,7 +179,7 @@ HRESULT XalTryAddUserByIdResult(
/// userIdentifier will be stored in the user and passed to all XalPlatform*
/// callbacks related to this user.
/// </remarks>
HRESULT XalAddUserWithUiAsync(
STDAPI XalAddUserWithUiAsync(
_In_ uint32_t userIdentifier,
_In_ XAsyncBlock* async
) noexcept;
@ -193,7 +193,7 @@ HRESULT XalAddUserWithUiAsync(
/// <remarks>
/// If the operations failed, newUser will be NULL.
/// </remarks>
HRESULT XalAddUserWithUiResult(
STDAPI XalAddUserWithUiResult(
_In_ XAsyncBlock* async,
_Out_ XalUserHandle* newUser
) noexcept;
@ -202,7 +202,7 @@ HRESULT XalAddUserWithUiResult(
/// Checks if the current platform supports retrieving a device user handle.
/// </summary>
/// <returns>True if device user present, false if not.</returns>
bool XalGetDeviceUserIsPresent() noexcept;
STDAPI_(bool) XalGetDeviceUserIsPresent() noexcept;
/// <summary>
/// Returns a user which represents the device itself.
@ -213,7 +213,7 @@ bool XalGetDeviceUserIsPresent() noexcept;
/// This user handle will have had XalUserDuplicateHandle called on it. Be sure
/// to call XalUserCloseHandle once it is no longer needed.
/// </remarks>
HRESULT XalGetDeviceUser(
STDAPI XalGetDeviceUser(
_Out_ XalUserHandle* deviceUser
) noexcept;
@ -221,7 +221,7 @@ HRESULT XalGetDeviceUser(
/// Checks if the user can be signed out on the current platform.
/// </summary>
/// <returns>True if user can be signed out, false if user can't.</returns>
bool XalSignOutUserAsyncIsPresent() noexcept;
STDAPI_(bool) XalSignOutUserAsyncIsPresent() noexcept;
/// <summary>
/// Signs out a user from the device.
@ -242,7 +242,7 @@ bool XalSignOutUserAsyncIsPresent() noexcept;
/// (see <see cref="XalPlatformWebShowUrlEventHandler"/>) this function will
/// invoke the hook.
/// </remarks>
HRESULT XalSignOutUserAsync(
STDAPI XalSignOutUserAsync(
_In_ XalUserHandle user,
_In_ XAsyncBlock* async
) noexcept;
@ -252,7 +252,7 @@ HRESULT XalSignOutUserAsync(
/// </summary>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <returns>Result code for this API operation.</returns>
HRESULT XalSignOutUserResult(
STDAPI XalSignOutUserResult(
_In_ XAsyncBlock* async
) noexcept;
@ -265,7 +265,7 @@ HRESULT XalSignOutUserResult(
/// <remarks>
/// If no user can be found matching the local id, E_XAL_USERNOTFOUND is returned.
/// </remarks>
HRESULT XalFindUserByLocalId(
STDAPI XalFindUserByLocalId(
_In_ XalUserLocalId localId,
_Out_ XalUserHandle* user
) noexcept;

Просмотреть файл

@ -116,7 +116,7 @@ typedef struct XalTelemetryTicket
/// <param name="persistence">The cll persistence for this event.</param>
/// <param name="sensitivity">The cll sensitivity for this event.</param>
/// <param name="sampleRate">The cll sampleRate for this event.</param>
HRESULT XalTelemetryWriteEvent(
STDAPI XalTelemetryWriteEvent(
_In_ XalUserHandle user,
_In_z_ char const* iKey,
_In_z_ char const* eventNameWithProvider,

Просмотреть файл

@ -20,7 +20,7 @@ extern "C"
/// Returns the size of the buffer needed to store the web account ID string.
/// </summary>
/// <param name="user">The user object.</param>
size_t XalUserGetWebAccountIdSize(
STDAPI_(size_t) XalUserGetWebAccountIdSize(
_In_ XalUserHandle user
) noexcept;
@ -34,7 +34,7 @@ size_t XalUserGetWebAccountIdSize(
/// </param>
/// <param name="webAccountIdUsed">The number of bytes used in the buffer
/// including the null terminator.</param>
HRESULT XalUserGetWebAccountId(
STDAPI XalUserGetWebAccountId(
_In_ XalUserHandle user,
_In_ size_t webAccountIdSize,
_Out_writes_(webAccountIdSize) char* webAccountId,
@ -97,7 +97,7 @@ typedef struct XalUserGetWebAccountTokenArgs
/// <param name="args">The requested token details.</param>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <see cref="XalUserGetWebAccountTokenArgs" />.
HRESULT XalUserGetWebAccountTokenSilentlyAsync(
STDAPI XalUserGetWebAccountTokenSilentlyAsync(
_In_ XalUserHandle user,
_In_ XalUserGetWebAccountTokenArgs const* args,
_In_ XAsyncBlock* async
@ -108,7 +108,7 @@ HRESULT XalUserGetWebAccountTokenSilentlyAsync(
/// </summary>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <param name="bufferSize">The size in bytes for the result buffer.</param>
HRESULT XalUserGetWebAccountTokenSilentlyResultSize(
STDAPI XalUserGetWebAccountTokenSilentlyResultSize(
_In_ XAsyncBlock* async,
_Out_ size_t* bufferSize
) noexcept;
@ -120,7 +120,7 @@ HRESULT XalUserGetWebAccountTokenSilentlyResultSize(
/// <param name="bufferSize">The size of the buffer for the result object.
/// </param>
/// <param name="result">The result token.</param>
HRESULT XalUserGetWebAccountTokenSilentlyResult(
STDAPI XalUserGetWebAccountTokenSilentlyResult(
_In_ XAsyncBlock* async,
_In_ size_t bufferSize,
_Out_writes_z_(bufferSize) char* result
@ -133,7 +133,7 @@ HRESULT XalUserGetWebAccountTokenSilentlyResult(
/// <param name="args">The requested token details.</param>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <see cref="XalUserGetWebAccountTokenArgs" />.
HRESULT XalUserGetWebAccountTokenWithUiAsync(
STDAPI XalUserGetWebAccountTokenWithUiAsync(
_In_ XalUserHandle user,
_In_ XalUserGetWebAccountTokenArgs const* args,
_In_ XAsyncBlock* async
@ -144,7 +144,7 @@ HRESULT XalUserGetWebAccountTokenWithUiAsync(
/// </summary>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <param name="bufferSize">The size in bytes for the result buffer.</param>
HRESULT XalUserGetWebAccountTokenWithUiResultSize(
STDAPI XalUserGetWebAccountTokenWithUiResultSize(
_In_ XAsyncBlock* async,
_Out_ size_t* bufferSize
) noexcept;
@ -156,7 +156,7 @@ HRESULT XalUserGetWebAccountTokenWithUiResultSize(
/// <param name="bufferSize">The size of the buffer for the result object.
/// </param>
/// <param name="result">The result token.</param>
HRESULT XalUserGetWebAccountTokenWithUiResult(
STDAPI XalUserGetWebAccountTokenWithUiResult(
_In_ XAsyncBlock* async,
_In_ size_t bufferSize,
_Out_writes_z_(bufferSize) char* result

Просмотреть файл

@ -38,7 +38,7 @@ extern "C"
/// <param name="memFreeFunc">A pointer to the custom freeing callback to use,
/// or a null pointer to restore the default.</param>
/// <returns>Result code for this API operation.</returns>
HRESULT XalMemSetFunctions(
STDAPI XalMemSetFunctions(
_In_opt_ XalMemAllocFunc* memAllocFunc,
_In_opt_ XalMemFreeFunc* memFreeFunc
) noexcept;
@ -54,7 +54,7 @@ HRESULT XalMemSetFunctions(
/// <param name="memFreeFunc">Set to the to the current memory free callback.
/// Returns the default routine if not previously set.</param>
/// <returns>Result code for this API operation.</returns>
HRESULT XalMemGetFunctions(
STDAPI XalMemGetFunctions(
_Out_ XalMemAllocFunc** memAllocFunc,
_Out_ XalMemFreeFunc** memFreeFunc
) noexcept;
@ -75,7 +75,7 @@ HRESULT XalMemGetFunctions(
/// <remarks>
/// Must be called before XalInitialize.
/// </remarks>
HRESULT XalPlatformWebSetEventHandler(
STDAPI XalPlatformWebSetEventHandler(
_In_opt_ XTaskQueueHandle queue,
_In_opt_ void* context,
_In_ XalPlatformWebShowUrlEventHandler2* handler
@ -94,7 +94,7 @@ HRESULT XalPlatformWebSetEventHandler(
/// cannot be completed.
/// <see cref="XalPlatformWebShowUrlEventHandler"/>
/// </remarks>
HRESULT XalPlatformWebShowUrlComplete(
STDAPI XalPlatformWebShowUrlComplete(
_In_ XalPlatformOperation operation,
_In_ XalPlatformOperationResult result,
_In_opt_z_ char const* url
@ -114,7 +114,7 @@ HRESULT XalPlatformWebShowUrlComplete(
/// <remarks>
/// Must be called before XalInitialize.
/// </remarks>
HRESULT XalPlatformStorageSetEventHandlers(
STDAPI XalPlatformStorageSetEventHandlers(
_In_opt_ XTaskQueueHandle queue,
_In_ XalPlatformStorageEventHandlers2* handlers
) noexcept;
@ -130,7 +130,7 @@ HRESULT XalPlatformStorageSetEventHandlers(
/// the write is completed or if an error occurs and the operation cannot be
/// completed <see cref="XalPlatformStorageWriteEventHandler"/>.
/// </remarks>
HRESULT XalPlatformStorageWriteComplete(
STDAPI XalPlatformStorageWriteComplete(
_In_ XalPlatformOperation operation,
_In_ XalPlatformOperationResult result
) noexcept;
@ -151,7 +151,7 @@ HRESULT XalPlatformStorageWriteComplete(
/// If the requested key cannot be found, the operation should be completed
/// with XalClientOperationResult_Success, data = nullptr and dataSize = 0.
/// </remarks>
HRESULT XalPlatformStorageReadComplete(
STDAPI XalPlatformStorageReadComplete(
_In_ XalPlatformOperation operation,
_In_ XalPlatformOperationResult result,
_In_ size_t dataSize,
@ -169,7 +169,7 @@ HRESULT XalPlatformStorageReadComplete(
/// the data is cleared or if an error occurs and the operation cannot be
/// completed <see cref="XalPlatformStorageClearEventHandler"/>.
/// </remarks>
HRESULT XalPlatformStorageClearComplete(
STDAPI XalPlatformStorageClearComplete(
_In_ XalPlatformOperation operation,
_In_ XalPlatformOperationResult result
) noexcept;
@ -188,7 +188,7 @@ HRESULT XalPlatformStorageClearComplete(
/// <remarks>
/// Must be called before XalInitialize.
/// </remarks>
HRESULT XalPlatformRemoteConnectSetEventHandlers(
STDAPI XalPlatformRemoteConnectSetEventHandlers(
_In_opt_ XTaskQueueHandle queue,
_In_ XalPlatformRemoteConnectEventHandlers2* handlers
) noexcept;
@ -205,7 +205,7 @@ HRESULT XalPlatformRemoteConnectSetEventHandlers(
/// E_ABORT. The XalPlatformRemoteConnectClosePromptEventHandler will be called
/// as normal.
/// </remarks>
HRESULT XalPlatformRemoteConnectCancelPrompt(
STDAPI XalPlatformRemoteConnectCancelPrompt(
_In_ XalPlatformOperation operation
) noexcept;
@ -221,7 +221,7 @@ HRESULT XalPlatformRemoteConnectCancelPrompt(
/// <remarks>
/// Must be called before XalInitialize.
/// </remarks>
HRESULT XalPlatformCryptoSetCallbacks(
STDAPI XalPlatformCryptoSetCallbacks(
_In_ XalPlatformCryptoCallbacks* callbacks
) noexcept;
@ -237,7 +237,7 @@ HRESULT XalPlatformCryptoSetCallbacks(
/// <remarks>
/// Must be called before XalInitialize.
/// </remarks>
HRESULT XalPlatformDateTimeSetCallbacks(
STDAPI XalPlatformDateTimeSetCallbacks(
_In_ XalPlatformDateTimeCallbacks* callbacks
) noexcept;

Просмотреть файл

@ -20,7 +20,7 @@ extern "C"
/// <param name="user">The user handle.</param>
/// <param name="duplicatedUser">The new user handle.</param>
/// <returns>Result code for this API operation. Possible values are S_OK, E_INVALIDARG, or E_FAIL.</returns>
HRESULT XalUserDuplicateHandle(
STDAPI XalUserDuplicateHandle(
_In_ XalUserHandle user,
_Out_ XalUserHandle* duplicatedUser
) noexcept;
@ -30,7 +30,7 @@ HRESULT XalUserDuplicateHandle(
/// </summary>
/// <param name="user">The user object</param>
/// <returns></returns>
void XalUserCloseHandle(
STDAPI_(void) XalUserCloseHandle(
_In_ XalUserHandle user
) noexcept;
@ -46,7 +46,7 @@ void XalUserCloseHandle(
/// <remarks>
/// User identity ordering is arbitrary, but sutiable for sorting.
/// </remarks>
int32_t XalCompareUsers(
STDAPI_(int32_t) XalCompareUsers(
_In_ XalUserHandle user1,
_In_ XalUserHandle user2
) noexcept;
@ -60,7 +60,7 @@ int32_t XalCompareUsers(
/// <param name="user">The user object.</param>
/// <param name="id">The Xbox Live User ID (XUID) of the user.</param>
/// <returns>Result code for this API operation. Possible values are S_OK, E_INVALIDARG, or E_FAIL.</returns>
HRESULT XalUserGetId( // TODO any valid error scenarios? local users, consent
STDAPI XalUserGetId( // TODO any valid error scenarios? local users, consent
_In_ XalUserHandle user,
_Out_ uint64_t* id
) noexcept;
@ -71,7 +71,7 @@ HRESULT XalUserGetId( // TODO any valid error scenarios? local users, consent
/// <param name="user">The user object.</param>
/// <param name="localId">The local id of the user.</param>
/// <returns>Result code for this API operation. Possible values are S_OK, E_INVALIDARG, or E_FAIL.</returns>
HRESULT XalUserGetLocalId(
STDAPI XalUserGetLocalId(
_In_ XalUserHandle user,
_Out_ XalUserLocalId* localId
) noexcept;
@ -81,7 +81,7 @@ HRESULT XalUserGetLocalId(
/// </summary>
/// <param name="user">The user object.</param>
/// <returns></returns>
bool XalUserIsDevice(
STDAPI_(bool) XalUserIsDevice(
_In_ XalUserHandle user
) noexcept;
@ -90,7 +90,7 @@ bool XalUserIsDevice(
/// </summary>
/// <param name="user">The user object.</param>
/// <returns></returns>
bool XalUserIsGuest(
STDAPI_(bool) XalUserIsGuest(
_In_ XalUserHandle user
) noexcept;
@ -101,7 +101,7 @@ bool XalUserIsGuest(
/// <param name="state">The sign-in state of the user</param>
/// <see cref="XalUserState" />.
/// <returns>Result code for this API operation.</returns>
HRESULT XalUserGetState(
STDAPI XalUserGetState(
_In_ XalUserHandle user,
_Out_ XalUserState* state
) noexcept;
@ -118,7 +118,7 @@ HRESULT XalUserGetState(
/// XalGamertagComponent_Classic instead. XalGamertagComponent_Suffix will be
/// empty if the modern components are unavailable.
/// </remark>
size_t XalUserGetGamertagSize(
STDAPI_(size_t) XalUserGetGamertagSize(
_In_ XalUserHandle user,
_In_ XalGamertagComponent component
) noexcept;
@ -140,7 +140,7 @@ size_t XalUserGetGamertagSize(
/// XalGamertagComponent_Classic instead. XalGamertagComponent_Suffix will be
/// empty if the modern components are unavailable.
/// </remark>
HRESULT XalUserGetGamertag(
STDAPI XalUserGetGamertag(
_In_ XalUserHandle user,
_In_ XalGamertagComponent component,
_In_ size_t gamertagSize,
@ -155,7 +155,7 @@ HRESULT XalUserGetGamertag(
/// <param name="pictureSize">The size wanted.</param>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <returns>Result code for this API operation. Possible values are S_OK or E_FAIL.</returns>
HRESULT XalUserGetGamerPictureAsync(
STDAPI XalUserGetGamerPictureAsync(
_In_ XalUserHandle user,
_In_ XalGamerPictureSize pictureSize,
_In_ XAsyncBlock* async
@ -167,7 +167,7 @@ HRESULT XalUserGetGamerPictureAsync(
/// <param name="async">The AsyncBlock for this operation.</param>
/// <param name="bufferSize">The size in bytes for the result buffer.</param>
/// <returns>Result code for this API operation.</returns>
HRESULT XalUserGetGamerPictureResultSize(
STDAPI XalUserGetGamerPictureResultSize(
_In_ XAsyncBlock* async,
_Out_ size_t* bufferSize
) noexcept;
@ -179,7 +179,7 @@ HRESULT XalUserGetGamerPictureResultSize(
/// <param name="bufferSize">The size of the gamer picture buffer.</param>
/// <param name="buffer">The gamer picture png data.</param>
/// <returns>Result code for this API operation.</returns>
HRESULT XalUserGetGamerPictureResult(
STDAPI XalUserGetGamerPictureResult(
_In_ XAsyncBlock* async,
_In_ size_t bufferSize,
_Out_writes_(bufferSize) void* buffer
@ -191,7 +191,7 @@ HRESULT XalUserGetGamerPictureResult(
/// <param name="user">The user object.</param>
/// <param name="ageGroup">The age group.</param>
/// <returns>Result code for this API operation. Possible values are S_OK, E_INVALIDARG, or E_FAIL.</returns>
HRESULT XalUserGetAgeGroup(
STDAPI XalUserGetAgeGroup(
_In_ XalUserHandle user,
_Out_ XalAgeGroup* ageGroup
) noexcept;
@ -207,7 +207,7 @@ HRESULT XalUserGetAgeGroup(
/// denied a privilege. If the user has the privilege it will always be
/// XAL_PRIVILEGE_CHECK_DENY_REASON_NONE.</param>
/// <returns>Result code for this API operation. Possible values are S_OK, E_XAL_NOTINITIALIZED, or E_FAIL.</returns>
HRESULT XalUserCheckPrivilege(
STDAPI XalUserCheckPrivilege(
_In_ XalUserHandle user,
_In_ XalPrivilege privilege,
_Out_ bool* hasPrivilege,
@ -218,7 +218,7 @@ HRESULT XalUserCheckPrivilege(
/// Checks if the current platform supports resolving missing privileges.
/// </summary>
/// <returns></returns>
bool XalUserResolvePrivilegeWithUiIsPresent() noexcept;
STDAPI_(bool) XalUserResolvePrivilegeWithUiIsPresent() noexcept;
/// <summary>
/// Shows ui explaining why the user is missing the given privilege and
@ -228,7 +228,7 @@ bool XalUserResolvePrivilegeWithUiIsPresent() noexcept;
/// <param name="privilege">The privilege to check.</param>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <returns>Result code for this API operation.</returns>
HRESULT XalUserResolveUserPrivilegeWithUiAsync(
STDAPI XalUserResolveUserPrivilegeWithUiAsync(
_In_ XalUserHandle user,
_In_ XalPrivilege privilege,
_In_ XAsyncBlock* async
@ -239,7 +239,7 @@ HRESULT XalUserResolveUserPrivilegeWithUiAsync(
/// </summary>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <returns>Result code for this API operation.</returns>
HRESULT XalUserResolveUserPrivilegeWithUiResult(
STDAPI XalUserResolveUserPrivilegeWithUiResult(
_In_ XAsyncBlock* async
) noexcept;
@ -254,7 +254,7 @@ HRESULT XalUserResolveUserPrivilegeWithUiResult(
/// <param name="async">The AsyncBlock for this operation.</param>
/// <see cref="XalUserGetTokenAndSignatureArgs" />.
/// <returns>Result code for this API operation.</returns>
HRESULT XalUserGetTokenAndSignatureSilentlyAsync(
STDAPI XalUserGetTokenAndSignatureSilentlyAsync(
_In_ XalUserHandle user,
_In_ XalUserGetTokenAndSignatureArgs const* args,
_In_ XAsyncBlock* async
@ -266,7 +266,7 @@ HRESULT XalUserGetTokenAndSignatureSilentlyAsync(
/// <param name="async">The AsyncBlock for this operation.</param>
/// <param name="bufferSize">The size in bytes for the result buffer.</param>
/// <returns>Result code for this API operation.</returns>
HRESULT XalUserGetTokenAndSignatureSilentlyResultSize(
STDAPI XalUserGetTokenAndSignatureSilentlyResultSize(
_In_ XAsyncBlock* async,
_Out_ size_t* bufferSize
) noexcept;
@ -283,7 +283,7 @@ HRESULT XalUserGetTokenAndSignatureSilentlyResultSize(
/// <remarks>
/// result is a pointer within buffer and does not need to be freed separately.
/// </remarks>
HRESULT XalUserGetTokenAndSignatureSilentlyResult(
STDAPI XalUserGetTokenAndSignatureSilentlyResult(
_In_ XAsyncBlock* async,
_In_ size_t bufferSize,
_Out_writes_bytes_to_(bufferSize, *bufferUsed) void* buffer,
@ -303,7 +303,7 @@ HRESULT XalUserGetTokenAndSignatureSilentlyResult(
/// This function should only be called after a call to
/// XalUserGetTokenAndSignatureSilentlyAsync fails with E_XAL_UIREQUIRED.
/// </remarks>
HRESULT XalUserResolveIssueWithUiAsync(
STDAPI XalUserResolveIssueWithUiAsync(
_In_ XalUserHandle user,
_In_opt_z_ char const* url,
_In_ XAsyncBlock* async
@ -314,7 +314,7 @@ HRESULT XalUserResolveIssueWithUiAsync(
/// </summary>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <returns>Result code for this API operation.</returns>
HRESULT XalUserResolveIssueWithUiResult(
STDAPI XalUserResolveIssueWithUiResult(
_In_ XAsyncBlock* async
) noexcept;
@ -329,7 +329,7 @@ HRESULT XalUserResolveIssueWithUiResult(
/// <param name="handler">The event handler, <see cref="XalUserChangeEventHandler"/>.</param>
/// <param name="token">The token for unregistering this callback</param>
/// <returns>Result code for this API operation. Possible values are S_OK, E_XAL_NOTINITIALIZED, or E_FAIL.</returns>
HRESULT XalUserRegisterChangeEventHandler(
STDAPI XalUserRegisterChangeEventHandler(
_In_opt_ XTaskQueueHandle queue,
_In_opt_ void* context,
_In_ XalUserChangeEventHandler* handler,
@ -342,7 +342,7 @@ HRESULT XalUserRegisterChangeEventHandler(
/// <param name="token">The token returned from
/// XalUserRegisterChangeEventHandler.</param>
/// <returns></returns>
void XalUserUnregisterChangeEventHandler(
STDAPI_(void) XalUserUnregisterChangeEventHandler(
_In_ XalRegistrationToken token
) noexcept;
@ -358,7 +358,7 @@ void XalUserUnregisterChangeEventHandler(
///
/// May fail with E_XAL_DEFERRALNOTAVAILABLE.
/// </remarks>
HRESULT XalUserGetSignoutDeferral(
STDAPI XalUserGetSignoutDeferral(
_Out_ XalSignoutDeferralHandle* deferral
) noexcept;
@ -367,7 +367,7 @@ HRESULT XalUserGetSignoutDeferral(
/// </summary>
/// <param name="deferral">The deferral handle.</param>
/// <returns></returns>
void XalUserCloseSignoutDeferral(
STDAPI_(void) XalUserCloseSignoutDeferral(
_In_ XalSignoutDeferralHandle deferral
) noexcept;

Просмотреть файл

@ -13,7 +13,7 @@ extern "C"
//------------------------------------------------------------------------------
// Uwp user functions
//------------------------------------------------------------------------------
HRESULT XalUserGetPlatformWebAccount(
STDAPI XalUserGetPlatformWebAccount(
_In_ XalUserHandle user,
_Out_ Windows::Security::Credentials::WebAccount^* webAccount
) noexcept;
@ -24,7 +24,7 @@ HRESULT XalUserGetPlatformWebAccount(
/// <param name="user">The system user.</param>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <returns>Result code for this API operation.</returns>
HRESULT XalAddUwpSystemUserSilentAsync(
STDAPI XalAddUwpSystemUserSilentAsync(
_In_ Windows::System::User^ user,
_In_ XAsyncBlock* async
) noexcept;

Просмотреть файл

@ -20,6 +20,6 @@ extern "C"
/// YYYYMMDD Date string describing the date the build was created
/// rrr QFE number (000 indicates base release)
/// </summary>
#define XAL_VERSION "2021.04.20210518.001"
#define XAL_VERSION "2021.06.20210518.000"
}

Просмотреть файл

@ -8,7 +8,7 @@ extern "C"
/// </summary>
/// <param name="user">The user handle.</param>
/// <param name="systemUser">The associated system user.</param>
HRESULT XalUserToXboxSystemUser(
STDAPI XalUserToXboxSystemUser(
_In_ XalUserHandle user,
_Out_ Windows::Xbox::System::IUser^* systemUser
) noexcept;
@ -18,7 +18,7 @@ HRESULT XalUserToXboxSystemUser(
/// </summary>
/// <param name="systemUser">The system user.</param>
/// <param name="user">The new user handle.</param>
HRESULT XalAddXboxSystemUser(
STDAPI XalAddXboxSystemUser(
_In_ Windows::Xbox::System::IUser^ systemUser,
_Out_ XalUserHandle* user
) noexcept;

Просмотреть файл

@ -16,7 +16,7 @@
* ==--==
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
**/
#include "pplx\threadpool.h"
#include "pplx/threadpool.h"
#if defined(__ANDROID__)
#include <android/log.h>
#include <jni.h>

Просмотреть файл

@ -44,6 +44,7 @@
#include <atomic>
#include <jni.h>
#include "pplx/pplx.h"
#include "asio/io_service.hpp"
#endif
namespace crossplat {

Просмотреть файл

@ -157,7 +157,7 @@ STDAPI XblAchievementsManagerRemoveLocalUser(
/// <summary>
/// Checks whether a specific user has had its initial state synced.
/// </summary>
/// <param name="user">Xbox Live User to check.</param>
/// <param name="xboxUserId">Xbox Live User to check.</param>
/// <returns>HRESULT return code for this API operation. If the user is not
/// initialized, this function will return E_FAIL.</returns>
STDAPI XblAchievementsManagerIsUserInitialized(
@ -260,7 +260,7 @@ STDAPI XblAchievementsManagerGetAchievementsByState(
/// </summary>
/// <param name="xboxUserId">The Xbox User ID of the player.</param>
/// <param name="achievementId">The UTF-8 encoded achievement ID as defined by Dev Center.</param>
/// <param name="percentComplete">The completion percentage of the achievement to indicate progress.
/// <param name="currentProgess">The completion percentage of the achievement to indicate progress.
/// Valid values are from 1 to 100. Set to 100 to unlock the achievement.
/// Progress will be set by the server to the highest value sent</param>
/// <returns>HRESULT return code for this API operation.</returns>

Просмотреть файл

@ -12,9 +12,11 @@ extern "C"
{
/// <summary>
/// Different platforms on which a title can be activated.
/// Enumerates the platforms on which a title can be activated.
/// </summary>
enum class XblMultiplayerActivityPlatform : uint32_t
/// <memof><see cref="XblMultiplayerActivityInfo"/></memof>
/// <argof><see cref="XblMultiplayerActivitySetActivityAsync"/></argof>
enum class XblMultiplayerActivityPlatform : uint32_t
{
/// <summary>
/// Unknown device.
@ -27,17 +29,17 @@ enum class XblMultiplayerActivityPlatform : uint32_t
XboxOne = 1,
/// <summary>
/// WindowsOneCore (UWP & GameCore on PC).
/// Windows OneCore (Universal Windows Platform [UWP] and {% term projname %} on PC).
/// </summary>
WindowsOneCore = 2,
/// <summary>
/// Win32 based device.
/// Win32-based device.
/// </summary>
Win32 = 3,
/// <summary>
/// Scarlett device.
/// {% term scarlett %} device.
/// </summary>
Scarlett = 4,
@ -68,34 +70,46 @@ enum class XblMultiplayerActivityPlatform : uint32_t
};
/// <summary>
/// Setting which dictates who can join a player's current activity.
/// Enumerates who can join a player's current activity.
/// </summary>
/// <memof><see cref="XblMultiplayerActivityInfo"/></memof>
/// <argof><see cref="XblMultiplayerActivitySetActivityAsync"/></argof>
/// <remarks>
/// To see how this enumeration is used, see "Setting an activity" in
/// the <see href="live-mpa-client-how-to.md#activities">Activities</see> section
/// of <see href="live-mpa-client-how-to.md">Example code for Multiplayer Activity</see>.
/// </remarks>
enum class XblMultiplayerActivityJoinRestriction : uint32_t
{
/// <summary>
/// Public.
/// Everyone.
/// </summary>
Public = 0,
/// <summary>
/// InviteOnly.
/// Only invited players.
/// </summary>
InviteOnly = 1,
/// <summary>
/// Followed.
/// Only followed players.
/// </summary>
Followed = 2
};
/// <summary>
/// Different types of recent players encounters.
/// Enumerates types of recent player encounters.
/// </summary>
/// <memof><see cref="XblMultiplayerActivityRecentPlayerUpdate"/></memof>
/// <remarks>
/// To see how this enumeration is used, see "Setting an activity" in
/// the <see href="live-mpa-client-how-to.md#activities">Activities</see> section
/// of <see href="live-mpa-client-how-to.md">Example code for Multiplayer Activity</see>.
/// </remarks>
enum class XblMultiplayerActivityEncounterType : uint32_t
{
/// <summary>
/// Default.
/// This has no inherent meaning - it is up to the title to interpret this value appropriately.
/// No inherent meaning. The title interprets this value as appropriate.
/// </summary>
Default = 0,
@ -111,60 +125,73 @@ enum class XblMultiplayerActivityEncounterType : uint32_t
};
/// <summary>
/// Information about a User's activity playing a certain title.
/// Information about a player's activity while playing a title.
/// </summary>
/// <argof><see cref="XblMultiplayerActivityGetActivityResult"/></argof>
/// <argof><see cref="XblMultiplayerActivitySetActivityAsync"/></argof>
/// <remarks>
/// To see how this enumeration is used, see "Setting an activity" and "Getting activities" in
/// the <see href="live-mpa-client-how-to.md#activities">Activities</see> section
/// of <see href="live-mpa-client-how-to.md">Example code for Multiplayer Activity</see>.
/// </remarks>
typedef struct XblMultiplayerActivityInfo
{
/// <summary>
/// Xbox User ID the activity info belongs to.
/// The Xbox user ID to which the activity info belongs.
/// </summary>
uint64_t xuid;
/// <summary>
/// The connection string is passed to the connecting client in order to join a game.
/// Typically contains information like the server IP address.
/// When querying activities, this field will only be populated if the activity is public
/// or if the user is following the caller.
/// The connection string passed to the connecting client to join a game;
/// typically contains information such as the server IP address.
/// When querying activities, this field is populated only if the activity is public
/// or the player is following the caller.
/// </summary>
_Field_z_ const char* connectionString;
/// <summary>
/// Setting which dictates who can join the player's current activity.
/// Specifies who can join the player's current activity.
/// </summary>
XblMultiplayerActivityJoinRestriction joinRestriction;
/// <summary>
/// The maximum number of players who can join the players current activity.
/// A value of 0 indicates that maxPlayers is not set.
/// The maximum number of players who can join the player's current activity.
/// A value of 0 indicates that no players can join.
/// </summary>
size_t maxPlayers;
/// <summary>
/// The number of players already playing with the user in a multiplayer activity.
/// A value of 0 indicates that currentPlayers is not set.
/// The number of players already playing with the player in a multiplayer activity.
/// A value of 0 indicates that no other players are currently playing.
/// </summary>
size_t currentPlayers;
/// <summary>
/// A unique identifier to group all users playing as part of the same activity.
/// Set by title when the activity is created.
/// The title sets this identifier when it creates the activity.
/// </summary>
_Field_z_ const char* groupId;
/// <summary>
/// The platform on which that activity is happening.
/// When setting an activity, the platform will be automatically inferred (this field will be ignored).
/// The platform on which the activity is happening.
/// When setting an activity, the platform is automatically inferred; this field is ignored.
/// </summary>
XblMultiplayerActivityPlatform platform;
} XblMultiplayerActivityInfo;
/// <summary>
/// Struct describing a recent player encounter.
/// Describes a recent player encounter.
/// </summary>
/// <argof><see cref="XblMultiplayerActivityUpdateRecentPlayers"/></argof>
/// <remarks>
/// To see how this enumeration is used, see "Updating recent players" in
/// the <see href="live-mpa-client-how-to.md#recent-players">Recent players</see> section
/// of <see href="live-mpa-client-how-to.md">Example code for Multiplayer Activity</see>.
/// </remarks>
typedef struct XblMultiplayerActivityRecentPlayerUpdate
{
/// <summary>
/// Xuid of the encountered user.
/// Xbox user ID of the encountered user.
/// </summary>
uint64_t xuid;
@ -175,17 +202,17 @@ typedef struct XblMultiplayerActivityRecentPlayerUpdate
} XblMultiplayerActivityRecentPlayerUpdate;
/// <summary>
/// Appends to a user's list of recent players.
/// If an encountered user is already in the list, it updates the existing recent player entry.
/// Appends to a player's list of recent players.
/// If an encountered user is already in the list, it updates the existing recent-player entry.
/// </summary>
/// <param name="xblContext">Xbox live context for the local user.</param>
/// <param name="updates">List of XblMultiplayerActivityRecentPlayerUpdates to append to the recent players list.</param>
/// <param name="updatesCount">Size of the updates array.</param>
/// <param name="xblContext">{% term xbox-live %} context for the local user.</param>
/// <param name="updates">List of <see cref="XblMultiplayerActivityRecentPlayerUpdate"/> objects to append to the recent players list.</param>
/// <param name="updatesCount">Size of the `updates` array.</param>
/// <returns>HRESULT return code for this API operation.</returns>
/// <remarks>
/// This call only affects the caller's recent players list (unidirectional).
/// Recent player updates will be batched and uploaded by XSAPI using the background queue provided during XblInitialize.
/// To force an immediate flush, call XblMultiplayerActivityFlushRecentPlayersAsync.
/// This call is unidirectional; it only affects the caller's recent-players list. <br/><br/>
/// Recent-player updates are batched and uploaded by XSAPI by using the background queue provided during `XblInitialize`. <br/><br/>
/// To force an immediate flush, call <see cref="XblMultiplayerActivityFlushRecentPlayersAsync"/>.
/// </remarks>
STDAPI XblMultiplayerActivityUpdateRecentPlayers(
_In_ XblContextHandle xblContext,
@ -194,16 +221,19 @@ STDAPI XblMultiplayerActivityUpdateRecentPlayers(
) XBL_NOEXCEPT;
/// <summary>
/// Immediately writes any pending recent players updates to XboxLive service.
/// Note that calling this API is optional; updates will automatically be uploaded periodically on a background task queue.
/// Immediately writes any pending recent-players updates to {% term xbox-live %}.
/// </summary>
/// <param name="xblContext">Xbox live context for the local user.</param>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <param name="xblContext">{% term xbox-live %} context for the local user.</param>
/// <param name="async">The `XAsyncBlock` for this operation.</param>
/// <returns>HRESULT return code for this API operation.</returns>
/// <remarks>
/// When this API is used, the upload will happen on the task queue supplied in this call.
/// The result of the asynchronous operation can be obtained by calling <see cref="XAsyncGetStatus"/>
/// inside the AsyncBlock callback or after the AsyncBlock is complete.
/// Calling this API is optional; updates are periodically uploaded from a background task queue. <br/><br/>
/// When this API is used, the upload happens on the task queue supplied in this call. <br/><br/>
/// To get the result of the asynchronous operation, call <see cref="XAsyncGetStatus"/>
/// inside the `XAsyncBlock` callback or after `XAsyncBlock` is complete. <br/><br/>
/// To see how this enumeration is used, see the
/// <see href="live-mpa-client-how-to.md#recent-players">Recent players</see> section
/// of <see href="live-mpa-client-how-to.md">Example code for Multiplayer Activity</see>.
/// </remarks>
STDAPI XblMultiplayerActivityFlushRecentPlayersAsync(
_In_ XblContextHandle xblContext,
@ -213,14 +243,26 @@ STDAPI XblMultiplayerActivityFlushRecentPlayersAsync(
/// <summary>
/// Sets or updates the multiplayer activity for a local user.
/// </summary>
/// <param name="xblContext">Xbox live context for the local user.</param>
/// <param name="activityInfo">Struct describing the activity.
/// The "maxPlayers" and "currentPlayers" fields are optional and will be ignored if they are set to 0.
/// The value of the "platform" field will be ignored and XSAPI will automatically set the activity as
/// being on the correct local platform.</param>
/// <param name="allowCrossPlatformJoin">True if the activity should be joinable on other platforms supported by the title.</param>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <param name="xblContext">{% term xbox-live %} context for the local user.</param>
/// <param name="activityInfo">Information about the activity.
/// The `maxPlayers` and `currentPlayers` fields are optional; they are ignored if set to 0.
/// The value of the `platform` field is ignored; XSAPI automatically sets the activity
/// on the appropriate local platform.</param>
/// <param name="allowCrossPlatformJoin">
/// True if the activity should be joinable on other platforms supported by the title.
/// </param>
/// <param name="async">The `XAsyncBlock` for this operation.</param>
/// <returns>HRESULT return code for this API operation.</returns>
/// <remarks>
/// When a title starts or joins a multiplayer experience, it should create an
/// activity. Doing this lets both the shell and other players in your title
/// see the player's activity. Your title can let other players join the game
/// in progress. If a player wants to join an activity for your title and it is not
/// running, it is activated and the connection string is passed to it. <br/><br/>
/// To see how this function is used, see "Setting an activity" in
/// the <see href="live-mpa-client-how-to.md#activities">Activities</see> section
/// of <see href="live-mpa-client-how-to.md">Example code for Multiplayer Activity</see>.
/// </remarks>
STDAPI XblMultiplayerActivitySetActivityAsync(
_In_ XblContextHandle xblContext,
_In_ const XblMultiplayerActivityInfo* activityInfo,
@ -231,15 +273,20 @@ STDAPI XblMultiplayerActivitySetActivityAsync(
/// <summary>
/// Get the multiplayer activity for a set of users. You can query at most 30 users with each call.
/// </summary>
/// <param name="xblContext">Xbox live context for the local user.</param>
/// <param name="xuids">List of Xbox User IDs for whom to get multiplayer activity.</param>
/// <param name="xuidsCount">Size of the xuids array.</param>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <param name="xblContext">{% term xbox-live %} context for the local user.</param>
/// <param name="xuids">List of Xbox user IDs for whom to get multiplayer activity.</param>
/// <param name="xuidsCount">Size of the `xuids` array.</param>
/// <param name="async">The `XAsyncBlock` for this operation.</param>
/// <returns>HRESULT return code for this API operation.</returns>
/// <remarks>
/// To get the result, call <see cref="XblMultiplayerActivityGetActivityResultSize"/> and
/// <see cref="XblMultiplayerActivityGetActivityResult"/> inside the XAsyncBlock callback or
/// after the async operation is complete.
/// <see cref="XblMultiplayerActivityGetActivityResult"/> inside the `XAsyncBlock` callback or
/// after the async operation is complete. <br/><br/>
/// To see how this function is used, see "Getting activities" in
/// the <see href="live-mpa-client-how-to.md#activities">Activities</see> section
/// of <see href="live-mpa-client-how-to.md">Example code for Multiplayer Activity</see>. <br/><br/>
/// For more information about multiplayer activities, see
/// <see href="live-mpa-activities.md">Activities</see>.
/// </remarks>
STDAPI XblMultiplayerActivityGetActivityAsync(
_In_ XblContextHandle xblContext,
@ -251,9 +298,18 @@ STDAPI XblMultiplayerActivityGetActivityAsync(
/// <summary>
/// Gets the buffer size needed to store the results of a get activity call.
/// </summary>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <param name="async">The `XAsyncBlock` for this operation.</param>
/// <param name="resultSizeInBytes">The size in bytes for the result buffer.</param>
/// <returns>HRESULT return code for this API operation.</returns>
/// <remarks>
/// To see how this function is used, see "Getting activities" in
/// the <see href="live-mpa-client-how-to.md#activities">Activities</see> section
/// of <see href="live-mpa-client-how-to.md">Example code for Multiplayer Activity</see>. <br/><br/>
/// For more information about multiplayer activities, see
/// <see href="live-mpa-activities.md">Activities</see>.
/// </remarks>
/// <seealso cref="XblMultiplayerActivityGetActivityAsync"/>
/// <seealso cref="XblMultiplayerActivityGetActivityResult"/>
STDAPI XblMultiplayerActivityGetActivityResultSize(
_In_ XAsyncBlock* async,
_Out_ size_t* resultSizeInBytes
@ -262,15 +318,25 @@ STDAPI XblMultiplayerActivityGetActivityResultSize(
/// <summary>
/// Gets the results for a successful get activity call.
/// </summary>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <param name="async">The `XAsyncBlock` for this operation.</param>
/// <param name="bufferSize">The size of the result buffer.
/// Use <see cref="XblMultiplayerActivityGetActivityResultSize"/> to get the required buffer size.</param>
/// <param name="buffer">A caller allocated byte buffer to write result into.</param>
/// <param name="ptrToBufferResults">Strongly typed array ofXblMultiplayerActivityInfo that points into buffer.
/// Do not free this as its lifecycle is tied to buffer.</param>
/// <param name="resultCount">The number of entries in the ptrToBufferResults array.</param>
/// <param name="bufferUsed">The number of bytes in the provided buffer that were used.</param>
/// <param name="buffer">A caller-allocated byte buffer that receives the result.</param>
/// <param name="ptrToBufferResults">Strongly typed array of <see cref="XblMultiplayerActivityInfo"/> that
/// points into `buffer`. Do not free this array. Its lifecycle is tied to `buffer`.
/// </param>
/// <param name="resultCount">The number of entries in the `ptrToBufferResults` array.</param>
/// <param name="bufferUsed">The number of bytes in `buffer` that were used.</param>
/// <returns>HRESULT return code for this API operation.</returns>
/// <remarks>
/// To get the size of the buffer that you need to store the results, call the
/// <see cref="XblMultiplayerActivityGetActivityResultSize"/> function. <br/><br/>
/// To see how this function is used, see "Getting activities" in
/// the <see href="live-mpa-client-how-to.md#activities">Activities</see> section
/// of <see href="live-mpa-client-how-to.md">Example code for Multiplayer Activity</see>. <br/><br/>
/// For more information about multiplayer activities, see
/// <see href="live-mpa-activities.md">Activities</see>.
/// </remarks>
STDAPI XblMultiplayerActivityGetActivityResult(
_In_ XAsyncBlock* async,
_In_ size_t bufferSize,
@ -281,16 +347,21 @@ STDAPI XblMultiplayerActivityGetActivityResult(
) XBL_NOEXCEPT;
/// <summary>
/// Clear the multiplayer activity for the local user.
/// Clears the multiplayer activity for the local user.
/// </summary>
/// <param name="xblContext">Xbox live context for the local user.</param>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <param name="xblContext">{% term xbox-live %} context for the local user.</param>
/// <param name="async">The `XAsyncBlock` for this operation.</param>
/// <returns>HRESULT return code for this API operation.</returns>
/// <remarks>
/// Titles should delete the activity for a user as soon as they leave the multiplayer activity.
/// A user's activity will be automatically cleared by a presence check if the title fails to delete it manually.
/// The result of the asynchronous operation can be obtained by calling <see cref="XAsyncGetStatus"/>
/// inside the AsyncBlock callback or after the AsyncBlock is complete.
/// Titles should delete the activity for a user as soon as they leave the multiplayer activity. <br/><br/>
/// If the title does not delete a user's activity, it is automatically cleared by a presence check. <br/><br/>
/// To get the result of the asynchronous operation, call <see cref="XAsyncGetStatus"/>
/// inside the `XAsyncBlock` callback or after `XAsyncBlock` is complete. <br/><br/>
/// To see how this function is used, see "Deleting an activity" in
/// the <see href="live-mpa-client-how-to.md#activities">Activities</see> section
/// of <see href="live-mpa-client-how-to.md">Example code for Multiplayer Activity</see>. <br/><br/>
/// For more information about multiplayer activities, see
/// <see href="live-mpa-activities.md">Activities</see>.
/// </remarks>
STDAPI XblMultiplayerActivityDeleteActivityAsync(
_In_ XblContextHandle xblContext,
@ -298,21 +369,26 @@ STDAPI XblMultiplayerActivityDeleteActivityAsync(
) XBL_NOEXCEPT;
/// <summary>
/// Sends invites to specified Xuids to join the callers current activity.
/// Sends invites to Xbox user IDs to join the caller's current activity.
/// </summary>
/// <param name="xblContext">Xbox live context for the local user.</param>
/// <param name="xuids">List of Xbox User IDs to invite.</param>
/// <param name="xuidsCount">Size of the xuids array.</param>
/// <param name="allowCrossPlatformJoin">If the title is configured for cross platform invites,
/// setting this to true will send an invitation to all platform endpoints the title supports.
/// If set to false, the invite will only be sent to the platform of the sender.
/// If cross platform invites are not configured, the invite will always be sent to just the sender's platform.</param>
/// <param name="connectionString">(Optional) Connection string that the peer will use to join the game.</param>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <param name="xblContext">{% term xbox-live %} context for the local user.</param>
/// <param name="xuids">List of Xbox user IDs to invite.</param>
/// <param name="xuidsCount">Size of the `xuids` array.</param>
/// <param name="allowCrossPlatformJoin">If the title is configured for cross-platform invites,
/// setting this parameter to true sends an invite to all platform endpoints that the title supports.
/// If set to false, the invite is sent to the sender's platform platform only.
/// If cross-platform invites are not configured, the invite is always sent to the sender's platform only.</param>
/// <param name="connectionString">(Optional) Connection string that the peer uses to join the game.</param>
/// <param name="async">The `XAsyncBlock` for this operation.</param>
/// <returns>HRESULT return code for this API operation.</returns>
/// <remarks>
/// The result of the asynchronous operation can be obtained by calling <see cref="XAsyncGetStatus"/>
/// inside the AsyncBlock callback or after the AsyncBlock is complete.
/// To get the result of the asynchronous operation, call <see cref="XAsyncGetStatus"/>
/// inside the `XAsyncBlock` callback or after `XAsyncBlock` is complete. <br/><br/>
/// To see how this function is used, see "Sending invites" in
/// the <see href="live-mpa-client-how-to.md#invites">Invites</see> section
/// of <see href="live-mpa-client-how-to.md">Example code for Multiplayer Activity</see>. <br/><br/>
/// For more information about multiplayer activities, see
/// <see href="live-mpa-activities.md">Activities</see>.
/// </remarks>
STDAPI XblMultiplayerActivitySendInvitesAsync(
_In_ XblContextHandle xblContext,
@ -325,8 +401,13 @@ STDAPI XblMultiplayerActivitySendInvitesAsync(
#if HC_PLATFORM == HC_PLATFORM_WIN32 || HC_PLATFORM_IS_EXTERNAL
/// <summary>
/// Contains information about received game multiplayer activity invites.
/// Describes multiplayer activity invites.
/// </summary>
/// <argof><see cref="XblMultiplayerActivityInviteHandler"/></argof>
/// <remarks>
/// For more information about multiplayer activities, see
/// <see href="live-mpa-activities.md">Activities</see>.
/// </remarks>
typedef struct XblMultiplayerActivityInviteData
{
/// <summary>
@ -340,7 +421,7 @@ typedef struct XblMultiplayerActivityInviteData
uint64_t senderXuid;
/// <summary>
/// Sender Image URL.
/// URL of the sender's gamerpic.
/// </summary>
_Field_z_ const char* senderImageUrl;
@ -350,20 +431,20 @@ typedef struct XblMultiplayerActivityInviteData
char senderGamertag[XBL_GAMERTAG_CHAR_SIZE];
/// <summary>
/// The UTF-8 encoded modern gamertag for the player.
/// The UTF-8 encoded modern gamertag of the player.
/// Not guaranteed to be unique.
/// </summary>
char senderModernGamertag[XBL_MODERN_GAMERTAG_CHAR_SIZE];
/// <summary>
/// The UTF-8 encoded suffix appended to modern gamertag to ensure uniqueness.
/// May be empty in some cases.
/// The UTF-8 encoded suffix appended to the modern gamertag to ensure uniqueness.
/// Can be empty in some cases.
/// </summary>
char senderModernGamertagSuffix[XBL_MODERN_GAMERTAG_SUFFIX_CHAR_SIZE];
/// <summary>
/// The UTF-8 encoded unique modern gamertag and suffix.
/// Format will be "modernGamertag#suffix".
/// Format is "modernGamertag#suffix".
/// Guaranteed to be no more than 16 rendered characters.
/// </summary>
char senderUniqueModernGamertag[XBL_UNIQUE_MODERN_GAMERTAG_CHAR_SIZE];
@ -374,13 +455,13 @@ typedef struct XblMultiplayerActivityInviteData
_Field_z_ const char* titleName;
/// <summary>
/// Url to the title image used in the invite.
/// URL of the title image used in the invite.
/// </summary>
_Field_z_ const char* titleImageUrl;
/// <summary>
/// The connection string is passed to the connecting client in order to join a game.
/// Typically contains information like the server IP address.
/// Connection string to pass to the connecting client so that it can join a game.
/// Typically contains information such as the server IP address.
/// </summary>
_Field_z_ const char* connectionString;
@ -396,7 +477,11 @@ typedef struct XblMultiplayerActivityInviteData
/// <param name="data">Data needed by the invitee to respond to a game invite.</param>
/// <param name="context">Client context provided when the handler was added.</param>
/// <returns></returns>
/// <remarks>The lifetime of the XblMultiplayerActivityInviteData object is limited to the callback.</remarks>
/// <remarks>
/// The lifetime of the <see cref="XblMultiplayerActivityInviteData"/> object is limited to the callback. <br/><br/>
/// For more information about multiplayer activities, see
/// <see href="live-mpa-activities.md">Activities</see>.
/// </remarks>
typedef void CALLBACK XblMultiplayerActivityInviteHandler(
_In_ const XblMultiplayerActivityInviteData* data,
_In_opt_ void* context
@ -405,10 +490,16 @@ typedef void CALLBACK XblMultiplayerActivityInviteHandler(
/// <summary>
/// Registers an event handler for multiplayer activity invites.
/// </summary>
/// <param name="xblContextHandle">Xbox live context for the local user.</param>
/// <param name="xblContextHandle">{% term xbox-live %} context for the local user.</param>
/// <param name="handler">The callback function that receives notifications.</param>
/// <param name="context">Caller context to be passed the handler.</param>
/// <returns>An XblFunctionContext object that can be used to unregister the event handler.</returns>
/// <param name="context">Caller context to be passed to the handler.</param>
/// <returns>An `XblFunctionContext` object that can be used to unregister the event handler.</returns>
/// <remarks>
/// To unregister an event handler for multiplayer activity invites, call the
/// <see cref="XblMultiplayerActivityRemoveInviteHandler"/> function. <br/><br/>
/// For more information about multiplayer activities, see
/// <see href="live-mpa-activities.md">Activities</see>.
/// </remarks>
STDAPI_(XblFunctionContext) XblMultiplayerActivityAddInviteHandler(
_In_ XblContextHandle xblContextHandle,
_In_ XblMultiplayerActivityInviteHandler* handler,
@ -418,9 +509,15 @@ STDAPI_(XblFunctionContext) XblMultiplayerActivityAddInviteHandler(
/// <summary>
/// Unregisters an event handler for multiplayer activity invites.
/// </summary>
/// <param name="xblContextHandle">Xbox live context for the local user.</param>
/// <param name="token">The XblFunctionContext object that was returned when the event handler was registered.</param>
/// <param name="xblContextHandle">{% term xbox-live %} context for the local user.</param>
/// <param name="token">The `XblFunctionContext` object that was returned when the event handler was registered.</param>
/// <returns></returns>
/// <remarks>
/// To register an event handler for multiplayer activity invites, call the
/// <see cref="XblMultiplayerActivityAddInviteHandler"/> function. <br/><br/>
/// For more information about multiplayer activities, see
/// <see href="live-mpa-activities.md">Activities</see>.
/// </remarks>
STDAPI XblMultiplayerActivityRemoveInviteHandler(
_In_ XblContextHandle xblContextHandle,
_In_ XblFunctionContext token

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -34,7 +34,6 @@ STDAPI XblNotificationSubscribeToNotificationsAsync(
) XBL_NOEXCEPT;
#endif
#if HC_PLATFORM == HC_PLATFORM_IOS || HC_PLATFORM == HC_PLATFORM_ANDROID || HC_PLATFORM == HC_PLATFORM_UWP
/// <summary>
/// Unsubscribes the title from push notifications.
/// </summary>
@ -45,6 +44,4 @@ STDAPI XblNotificationUnsubscribeFromNotificationsAsync(
_In_ XblContextHandle xboxLiveContext,
_In_ XAsyncBlock* asyncBlock
) XBL_NOEXCEPT;
#endif
}

Просмотреть файл

@ -680,7 +680,7 @@ STDAPI_XBL_DEPRECATED XblPresenceSubscribeToTitlePresenceChange(
/// <summary>
/// Unsubscribes a previously created title presence change subscription.
/// DEPRECATED. This API will be removed in a future release. Individual RTA subscription will be managed automatically by XSAPI as
/// titles are untracked with <see cref="XblPresenceStopTrackingTitles"/>.
/// titles are untracked with <see cref="XblPresenceStopTrackingAdditionalTitles"/>.
/// </summary>
/// <param name="xblContextHandle">Xbox live context for the local user.</param>
/// <param name="subscriptionHandle">Handle for the subscription created with <see cref="XblPresenceSubscribeToTitlePresenceChange"/>.
@ -812,7 +812,7 @@ STDAPI XblPresenceStopTrackingUsers(
/// <param name="xblContextHandle">Xbox live context for the local user.</param>
/// <param name="titleIds">Array of title IDs to append to the existing list of tracked titles. Note that
/// the current title will be tracked by default.</param>
/// <param name="titlesIdsCount">Length of the titleIds array.</param>
/// <param name="titleIdsCount">Length of the titleIds array.</param>
/// <returns>HRESULT return code for this API operation.</returns>
/// <remarks>
/// Updates will be delivered via XblPresenceTitlePresenceChangedHandlers.
@ -830,7 +830,7 @@ STDAPI XblPresenceTrackAdditionalTitles(
/// </summary>
/// <param name="xblContextHandle">Xbox live context for the local user.</param>
/// <param name="titleIds">Array of title IDs to remove from the list of tracked titles.</param>
/// <param name="titlesIdsCount">Length of the titleIds array.</param>
/// <param name="titleIdsCount">Length of the titleIds array.</param>
/// <returns>HRESULT return code for this API operation.</returns>
STDAPI XblPresenceStopTrackingAdditionalTitles(
_In_ XblContextHandle xblContextHandle,

Просмотреть файл

@ -422,7 +422,7 @@ STDAPI_(void) XblSocialRelationshipResultCloseHandle(
/// <summary>
/// Subscribes to the social service for people changed events.
/// DEPRECATED. Calling this API is no longer required and it will be removed in a future release. RTA subscription will be managed
/// automatically by XSAPI as <see cref="XblSocialRelationshipChangedHandler"/> are added and removed.
/// automatically by XSAPI as `XblSocialRelationshipChangedHandler` are added and removed.
/// </summary>
/// <param name="xboxLiveContext">An xbox live context handle created with XblContextCreateHandle.</param>
/// <param name="xboxUserId">The Xbox User ID of the player requesting the subscription.</param>
@ -440,7 +440,7 @@ STDAPI_XBL_DEPRECATED XblSocialSubscribeToSocialRelationshipChange(
/// <summary>
/// Un-subscribes a previously created social relationship change subscription.
/// DEPRECATED. Calling this API is no longer required and it will be removed in a future release. RTA subscription will be managed
/// automatically by XSAPI as <see cref="XblSocialRelationshipChangedHandler"/> are added and removed.
/// automatically by XSAPI as `XblSocialRelationshipChangedHandler` are added and removed.
/// </summary>
/// <param name="xboxLiveContext">An xbox live context handle created with XblContextCreateHandle.</param>
/// <param name="subscriptionHandle">The subscription handle to unsubscribe.</param>
@ -470,13 +470,16 @@ typedef void
);
/// <summary>
/// Registers an event handler for social relationship change notifications.
/// Registers an event handler for notifications of social relationship changes caused by the registering user.
/// </summary>
/// <param name="xboxLiveContext">An xbox live context handle created with XblContextCreateHandle.</param>
/// <param name="handler">The callback function that receives notifications.</param>
/// <param name="handlerContext">Client context pointer to be passed back to the handler.</param>
/// <returns>A XblFunctionContext used to remove the handler.</returns>
/// <remarks>
/// This handler triggers only if the user changes the relationship with another user.
/// This handler does not trigger if another user changes the relationship with the user.
///
/// Call <see cref="XblSocialRemoveSocialRelationshipChangedHandler"/> to un-register event handler.
/// </remarks>
STDAPI_(XblFunctionContext) XblSocialAddSocialRelationshipChangedHandler(

Просмотреть файл

@ -11,6 +11,8 @@
#pragma warning(disable: 4062)
#endif
#include <XAsync.h>
extern "C"
{

Просмотреть файл

@ -191,7 +191,7 @@ pplx::task<xbox_live_result<void>> notification_service::unsubscribe_from_notifi
return asyncWrapper->Task(hr);
}
#elif (HC_PLATFORM == HC_PLATFORM_WIN32 || HC_PLATFORM_IS_EXTERNAL) && !XSAPI_UNIT_TESTS
#elif HC_PLATFORM == HC_PLATFORM_WIN32 && !XSAPI_UNIT_TESTS
pplx::task<xbox_live_result<void>> notification_service::unsubscribe_from_notifications()
{
auto xblContext = m_xblContext;

Просмотреть файл

@ -12,7 +12,7 @@
NAMESPACE_MICROSOFT_XBOX_SERVICES_NOTIFICATION_CPP_BEGIN
class xbox_live_context;
#if HC_PLATFORM == HC_PLATFORM_WIN32 || HC_PLATFORM_IS_EXTERNAL
#if HC_PLATFORM == HC_PLATFORM_WIN32
class invite_notification_event_args
{
public:
@ -79,7 +79,7 @@ public:
inline ~notification_service();
inline pplx::task<xbox_live_result<void>> subscribe_to_notifications(
#if (HC_PLATFORM == HC_PLATFORM_WIN32 || HC_PLATFORM_IS_EXTERNAL) && !XSAPI_UNIT_TESTS
#if HC_PLATFORM == HC_PLATFORM_WIN32 && !XSAPI_UNIT_TESTS
_In_ const std::function<void(achievement_unlocked_notification_event_args&)>& achievementUnlockHandler,
_In_ const std::function<void(invite_notification_event_args&)>& multiplayerInviteHandler
#elif (HC_PLATFORM == HC_PLATFORM_IOS || HC_PLATFORM == HC_PLATFORM_ANDROID)
@ -89,7 +89,7 @@ public:
inline pplx::task<xbox_live_result<void>> unsubscribe_from_notifications();
#if (HC_PLATFORM == HC_PLATFORM_WIN32 || HC_PLATFORM_IS_EXTERNAL) && !XSAPI_UNIT_TESTS
#if HC_PLATFORM == HC_PLATFORM_WIN32 && !XSAPI_UNIT_TESTS
inline std::function<void(invite_notification_event_args&)>& game_invite_handler();
inline std::function<void(achievement_unlocked_notification_event_args&)>& achievement_unlock_handler();
@ -98,7 +98,7 @@ public:
private:
XblContextHandle m_xblContext;
#if (HC_PLATFORM == HC_PLATFORM_WIN32 || HC_PLATFORM_IS_EXTERNAL) && !XSAPI_UNIT_TESTS
#if HC_PLATFORM == HC_PLATFORM_WIN32 && !XSAPI_UNIT_TESTS
XblFunctionContext m_gameinviteFunctionContext;
XblFunctionContext m_achievementUnlockFunctionContext;

Просмотреть файл

@ -297,8 +297,8 @@ Result<MultiplayerActivityInviteData> MultiplayerActivityInviteData::Deserialize
AchievementUnlockEvent::AchievementUnlockEvent(AchievementUnlockEvent&& event) noexcept :
m_achievementId(std::move(event.m_achievementId)),
m_achievementDescription(std::move(event.m_achievementDescription)),
m_achievementName(std::move(event.m_achievementName)),
m_achievementDescription(std::move(event.m_achievementDescription)),
m_achievementIconUri(std::move(event.m_achievementIconUri)),
m_deepLink(event.m_deepLink)
{
@ -317,8 +317,8 @@ AchievementUnlockEvent::AchievementUnlockEvent(AchievementUnlockEvent&& event) n
AchievementUnlockEvent::AchievementUnlockEvent(const AchievementUnlockEvent& event) :
m_achievementId(event.m_achievementId),
m_achievementDescription(event.m_achievementDescription),
m_achievementName(event.m_achievementName),
m_achievementDescription(event.m_achievementDescription),
m_achievementIconUri(event.m_achievementIconUri),
m_deepLink(event.m_deepLink)
{

Просмотреть файл

@ -593,7 +593,7 @@ public:
void set_length(int length) { m_length = length; }
private:
static const utility::string_t c_allowed_chars;
static const utility::char_t* c_allowed_chars;
std::mt19937 m_random;
int m_length;
};

Просмотреть файл

@ -1120,11 +1120,11 @@ utility::seconds timespan::xml_duration_to_seconds(const utility::string_t &time
return utility::seconds(numSecs);
}
const utility::string_t nonce_generator::c_allowed_chars(_XPLATSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"));
const utility::char_t * nonce_generator::c_allowed_chars = _XPLATSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
utility::string_t nonce_generator::generate()
{
std::uniform_int_distribution<> distr(0, static_cast<int>(c_allowed_chars.length() - 1));
std::uniform_int_distribution<> distr(0, static_cast<int>(ustrlen(c_allowed_chars) - 1));
utility::string_t result;
result.reserve(length());
std::generate_n(std::back_inserter(result), length(), [&]() { return c_allowed_chars[distr(m_random)]; } );

Просмотреть файл

@ -57,6 +57,7 @@ typedef std::wstringstream stringstream_t;
#define ucout std::wcout
#define ucin std::wcin
#define ucerr std::wcerr
#define ustrlen wcslen
#else
//
// On POSIX platforms, all strings are narrow
@ -74,6 +75,7 @@ typedef std::stringstream stringstream_t;
#define ucout std::cout
#define ucin std::cin
#define ucerr std::cerr
#define ustrlen strlen
#endif // endif _UTF16_STRINGS
#ifndef _TURN_OFF_PLATFORM_STRING

Просмотреть файл

@ -2,8 +2,11 @@
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
#pragma once
#include "internal_mem.h"
#if XSAPI_ANDROID_STUDIO
#include "trace.h"
#endif
#define DEFAULT_LOGGER xbox::services::logger::get_logger()

Просмотреть файл

@ -1,4 +1,6 @@
#include "android_utils.h"
#include <assert.h>
#include "Logger/log.h"
NAMESPACE_MICROSOFT_XBOX_SERVICES_CPP_BEGIN
JString::JString(JNIEnv* env, jstring string) noexcept :

Просмотреть файл

@ -2,6 +2,10 @@
#include <jni.h>
#if XSAPI_ANDROID_STUDIO
#include "types.h"
#endif
NAMESPACE_MICROSOFT_XBOX_SERVICES_CPP_BEGIN
/// <summary>

Просмотреть файл

@ -4,7 +4,7 @@
#include <android/log.h>
#include "jni_utils.h"
#include "http_call_legacy.h"
#include "a\java_interop.h"
#include "a/java_interop.h"
#define LOGD(...) ((void)__android_log_print(ANDROID_LOG_DEBUG, "HttpCall", __VA_ARGS__))
#define LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR, "HttpCall", __VA_ARGS__))

Просмотреть файл

@ -2,6 +2,10 @@
#include <pthread.h>
#if XSAPI_ANDROID_STUDIO
#include "types.h"
#endif
NAMESPACE_MICROSOFT_XBOX_SERVICES_CPP_BEGIN
/// <summary>

Просмотреть файл

@ -9,4 +9,4 @@
//*********************************************************
#pragma once
#define XBOX_SERVICES_API_VERSION_STRING "2021.04.20210526.2"
#define XBOX_SERVICES_API_VERSION_STRING "2021.06.20210527.0"

Просмотреть файл

@ -1,9 +1,15 @@
// Copyright (c) Microsoft Corporation
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
#pragma once
#include "xsapi-c/xbox_live_global_c.h"
#pragma once
#include <list>
#include <map>
#include <set>
#include <sstream>
#include <queue>
#include <unordered_map>
#include <unordered_set>
NAMESPACE_MICROSOFT_XBOX_SERVICES_CPP_BEGIN

Просмотреть файл

@ -0,0 +1,158 @@
cmake_minimum_required (VERSION 3.6)
project("Microsoft.Xbox.Services.Android")
get_filename_component(PATH_TO_XSAPI_ROOT "../../.." ABSOLUTE)
set(PATH_TO_XAL_ROOT "${PATH_TO_XSAPI_ROOT}/External/xal")
set(PATH_TO_XAL "${PATH_TO_XAL_ROOT}/Source/Xal")
set(CMAKE_STATIC_LIBRARY_PREFIX "")
#######################################
### Set up source and include files ###
#######################################
include("../GetCommonXSAPISourceFiles.cmake")
get_common_xsapi_source_files(
Public_Source_Files
Public_Source_Files_C
Common_Source_Files
System_Source_Files
Shared_Logger_Source_Files
Shared_Source_Files
Achievements_Source_Files
Achievements_Manager_Source_Files
Leaderboard_Source_Files
Privacy_Source_Files
Presence_Source_Files
TitleStorage_Source_Files
Social_Source_Files
Social_Manager_Source_Files
Stats_Source_Files
Matchmaking_Source_Files
Multiplayer_Source_Files
Multiplayer_Manager_Source_Files
StringVerify_Source_Files
MultiplayerActivity_Source_Files
RealTimeActivityManager_Source_Files
"${PATH_TO_XSAPI_ROOT}"
)
set(SOURCE_FILES
"${Public_Source_Files}"
"${Common_Source_Files}"
"${Public_Source_Files_C}"
"${System_Source_Files}"
"${Shared_Logger_Source_Files}"
"${Shared_Source_Files}"
"${Achievements_Source_Files}"
"${Achievements_Manager_Source_Files}"
"${Leaderboard_Source_Files}"
"${Privacy_Source_Files}"
"${Presence_Source_Files}"
"${TitleStorage_Source_Files}"
"${Social_Source_Files}"
"${Social_Manager_Source_Files}"
"${Stats_Source_Files}"
"${Matchmaking_Source_Files}"
"${Multiplayer_Source_Files}"
"${Multiplayer_Manager_Source_Files}"
"${StringVerify_Source_Files}"
"${MultiplayerActivity_Source_Files}"
"${RealTimeActivityManager_Source_Files}"
)
include("../GetAndroidXSAPISourceFiles.cmake")
get_android_xsapi_source_files(
Common_Android_Source_Files
System_Android_Source_Files
Shared_Android_Source_Files
TCUI_Android_Source_Files
Notification_Android_Source_Files
Events_Android_Source_Files
"${PATH_TO_XSAPI_ROOT}"
)
set(ANDROID_SOURCE_FILES
"${Common_Android_Source_Files}"
"${System_Android_Source_Files}"
"${Shared_Android_Source_Files}"
"${TCUI_Android_Source_Files}"
"${Notification_Android_Source_Files}"
"${Events_Android_Source_Files}"
)
set(COMMON_INCLUDE_DIRS
"${PATH_TO_XSAPI_ROOT}/Include"
"${PATH_TO_XSAPI_ROOT}/Include/xsapi-c"
"${PATH_TO_XSAPI_ROOT}/Include/xsapi-cpp"
"${PATH_TO_XSAPI_ROOT}/Include/xsapi-cpp/impl"
"${PATH_TO_XSAPI_ROOT}/Include/cpprestinclude"
"${PATH_TO_XSAPI_ROOT}/Source/Services"
"${PATH_TO_XSAPI_ROOT}/Source/Services/Achievements"
"${PATH_TO_XSAPI_ROOT}/Source/Services/Common"
"${PATH_TO_XSAPI_ROOT}/Source/Services/Common/Unix"
"${PATH_TO_XSAPI_ROOT}/Source/Services/Events"
"${PATH_TO_XSAPI_ROOT}/Source/Services/Leaderboard"
"${PATH_TO_XSAPI_ROOT}/Source/Services/Matchmaking"
"${PATH_TO_XSAPI_ROOT}/Source/Services/Multiplayer"
"${PATH_TO_XSAPI_ROOT}/Source/Services/Multiplayer/Manager"
"${PATH_TO_XSAPI_ROOT}/Source/Services/MultiplayerActivity"
"${PATH_TO_XSAPI_ROOT}/Source/Services/Notification"
"${PATH_TO_XSAPI_ROOT}/Source/Services/RealTimeActivityManager"
"${PATH_TO_XSAPI_ROOT}/Source/Services/Presence"
"${PATH_TO_XSAPI_ROOT}/Source/Services/Privacy"
"${PATH_TO_XSAPI_ROOT}/Source/Services/Social"
"${PATH_TO_XSAPI_ROOT}/Source/Services/Social/Manager"
"${PATH_TO_XSAPI_ROOT}/Source/Services/Stats"
"${PATH_TO_XSAPI_ROOT}/Source/Services/StringVerify"
"${PATH_TO_XSAPI_ROOT}/Source/System"
"${PATH_TO_XSAPI_ROOT}/Source/Services/TitleStorage"
"${PATH_TO_XSAPI_ROOT}/Source/Services/TCUI"
"${PATH_TO_XSAPI_ROOT}/Source/Shared"
"${PATH_TO_XSAPI_ROOT}/Source/Shared/u"
"${PATH_TO_XAL}/Include"
"${PATH_TO_XSAPI_ROOT}/External/rapidjson/include"
"${PATH_TO_XAL_ROOT}/External/libHttpClient/Include"
"${PATH_TO_XAL_ROOT}/External/libHttpClient/Include/httpClient"
"${PATH_TO_XAL_ROOT}/External/libHttpClient/External/asio/asio/include"
"${PATH_TO_XAL_ROOT}/External/libHttpClient/External/asio/asio/include/asio"
"${PATH_TO_XAL_ROOT}/External/libHttpClient/External/asio/asio/include/asio/detail"
"${PATH_TO_XAL_ROOT}/External/libHttpClient/External/asio/asio/include/asio/impl"
"${PATH_TO_XAL_ROOT}/External/libHttpClient/External/websocketpp/websocketpp"
"${PATH_TO_XAL_ROOT}/External/libHttpClient/External/websocketpp/websocketpp/config"
"${PATH_TO_XAL_ROOT}/External/libHttpClient/External/websocketpp/websocketpp/transport"
"${PATH_TO_XAL_ROOT}/External/CompactCoreCLL"
)
#########################
### Set up static lib ###
#########################
add_library(
"${PROJECT_NAME}"
STATIC
"${SOURCE_FILES}"
"${ANDROID_SOURCE_FILES}"
)
target_include_directories(
"${PROJECT_NAME}"
PRIVATE
"${COMMON_INCLUDE_DIRS}"
)
#########################
### Set up flags ###
#########################
include("GetXSAPIFlags.cmake")
get_xsapi_android_flags(FLAGS FLAGS_DEBUG FLAGS_RELEASE)
include("${PATH_TO_XAL_ROOT}/External/libHttpClient/Utilities/CMake/Android/TargetSetFlags.cmake")
target_set_flags(
"${PROJECT_NAME}"
"${FLAGS}"
"${FLAGS_DEBUG}"
"${FLAGS_RELEASE}"
)

Просмотреть файл

@ -0,0 +1,29 @@
cmake_minimum_required(VERSION 3.6)
# This function will set common, debug, and release config compiler flags
# into the three OUT_XXX variables, respectively. These are intended to then
# be passed to `target_set_flags`, from `TargetSetFlags.cmake`.
function(GET_XSAPI_ANDROID_FLAGS OUT_FLAGS OUT_FLAGS_DEBUG OUT_FLAGS_RELEASE)
set(FLAGS
"-DASIO_STANDALONE=1"
"-DXSAPI_ANDROID_STUDIO=1"
"-std=c++14"
"-Wno-unknown-pragmas"
"-Wno-pragma-once-outside-header"
"-DHC_PLATFORM_MSBUILD_GUESS=HC_PLATFORM_ANDROID"
)
set("${OUT_FLAGS}" "${FLAGS}" PARENT_SCOPE)
set("${OUT_FLAGS_DEBUG}"
"-O0"
"-DHC_TRACE_BUILD_LEVEL=5"
PARENT_SCOPE
)
set("${OUT_FLAGS_RELEASE}"
"-Os"
"-DHC_TRACE_BUILD_LEVEL=3"
PARENT_SCOPE
)
endfunction()

Просмотреть файл

@ -54,105 +54,71 @@ endif()
add_definitions(-D_NO_ASYNCRTIMP -D_NO_PPLXIMP -D_NO_XSAPIIMP -DXSAPI_BUILD)
if( ANDROID)
set_source_files_properties(../../Source/Services/Common/Unix/pch.cpp PROPERTIES COMPILE_FLAGS "/Ycpch.h")
get_filename_component(PATH_TO_XSAPI_ROOT "../../" ABSOLUTE)
if(ANDROID)
set_source_files_properties(${PATH_TO_XSAPI_ROOT}/Source/Services/Common/Unix/pch.cpp PROPERTIES COMPILE_FLAGS "/Ycpch.h")
else()
set_source_files_properties(../../Source/Services/Common/cpp/pch.cpp PROPERTIES COMPILE_FLAGS "/Ycpch.h")
set_source_files_properties(${PATH_TO_XSAPI_ROOT}/Source/Services/Common/cpp/pch.cpp PROPERTIES COMPILE_FLAGS "/Ycpch.h")
endif()
if (NOT ${CMAKE_GENERATOR} MATCHES "Visual Studio .*")
set_property(SOURCE ../../Source/Services/Common/cpp/pch.cpp APPEND PROPERTY OBJECT_OUTPUTS "${CMAKE_CURRENT_BINARY_DIR}/pch.pch")
set_property(SOURCE ${PATH_TO_XSAPI_ROOT}/Source/Services/Common/cpp/pch.cpp APPEND PROPERTY OBJECT_OUTPUTS "${CMAKE_CURRENT_BINARY_DIR}/pch.pch")
set_property(SOURCE ${SOURCES} APPEND PROPERTY OBJECT_DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pch.pch")
endif()
include_directories(
$(ProjectDir)
$(ProjectDir)../../Source/Services
$(ProjectDir)../../Source/Services/Common
$(ProjectDir)../../Source/Services/Social
$(ProjectDir)../../Source/Services/Multiplayer
$(ProjectDir)../../Source/Services/Presence
$(ProjectDir)../../Source/Services/Notification
$(ProjectDir)../../Source/Services/TCUI
$(ProjectDir)../../Source/Services/Social/Manager
$(ProjectDir)../../Source/Services/RealTimeActivity
$(ProjectDir)../../Source/Shared
$(ProjectDir)../../include
$(ProjectDir)../../External/cpprestsdk/Release/include
$(ProjectDir)../../Source/System
$(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Services
$(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Services/Common
$(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Services/Social
$(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Services/Multiplayer
$(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Services/Presence
$(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Services/Notification
$(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Services/TCUI
$(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Services/Social/Manager
$(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Services/RealTimeActivity
$(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/Shared
$(ProjectDir)${PATH_TO_XSAPI_ROOT}/Include
$(ProjectDir)${PATH_TO_XSAPI_ROOT}/External/cpprestsdk/Release/Include
$(ProjectDir)${PATH_TO_XSAPI_ROOT}/Source/System
)
set(CMAKE_SUPPRESS_REGENERATION true)
set(Public_Source_Files
../../include/xsapi-cpp/achievements.h
../../include/xsapi-cpp/leaderboard.h
../../include/xsapi-cpp/matchmaking.h
../../include/xsapi-cpp/multiplayer.h
../../include/xsapi-cpp/privacy.h
../../include/xsapi-cpp/profile.h
../../include/xsapi-cpp/services.h
../../include/xsapi-cpp/social.h
../../include/xsapi-cpp/system.h
../../include/xsapi-cpp/types.h
../../include/xsapi-cpp/user_statistics.h
../../include/xsapi-cpp/xbox_live_context.h
../../include/xsapi-cpp/xbox_service_call_routed_event_args.h
../../include/xsapi-cpp/errors.h
../../include/xsapi-cpp/http_call.h
../../include/xsapi-cpp/http_call_request_message.h
../../include/xsapi-cpp/mem.h
../../include/xsapi-cpp/social_manager.h
../../include/xsapi-cpp/service_call_logging_config.h
../../include/xsapi-cpp/multiplayer_manager.h
../../include/xsapi-cpp/presence.h
../../include/xsapi-cpp/real_time_activity.h
../../include/xsapi-cpp/title_storage.h
../../include/xsapi-cpp/xbox_live_app_config.h
../../include/xsapi-cpp/xbox_live_context_settings.h
../../include/xsapi-cpp/string_verify.h
include("GetCommonXSAPISourceFiles.cmake")
get_common_xsapi_source_files(
Public_Source_Files
Public_Source_Files_C
Common_Source_Files
System_Source_Files
Shared_Logger_Source_Files
Shared_Source_Files
Achievements_Source_Files
Achievements_Manager_Source_Files
Leaderboard_Source_Files
Privacy_Source_Files
Presence_Source_Files
TitleStorage_Source_Files
Social_Source_Files
Social_Manager_Source_Files
Stats_Source_Files
Matchmaking_Source_Files
Multiplayer_Source_Files
Multiplayer_Manager_Source_Files
StringVerify_Source_Files
MultiplayerActivity_Source_Files
RealTimeActivityManager_Source_Files
${PATH_TO_XSAPI_ROOT}
)
set(Public_Source_Files_C
../../include/xsapi-c/achievements_c.h
../../include/xsapi-c/achievements_manager_c.h
../../include/xsapi-c/errors_c.h
../../include/xsapi-c/presence_c.h
../../include/xsapi-c/profile_c.h
../../include/xsapi-c/services_c.h
../../include/xsapi-c/social_c.h
../../include/xsapi-c/social_manager_c.h
../../include/xsapi-c/string_verify_c.h
../../include/xsapi-c/pal.h
../../include/xsapi-c/xbox_live_context_c.h
../../include/xsapi-c/xbox_live_context_settings_c.h
../../include/xsapi-c/xbox_live_global_c.h
../../include/xsapi-c/matchmaking_c.h
../../include/xsapi-c/multiplayer_c.h
../../include/xsapi-c/multiplayer_activity_c.h
../../include/xsapi-c/multiplayer_manager_c.h
../../include/xsapi-c/notification_c.h
../../include/xsapi-c/privacy_c.h
../../include/xsapi-c/title_managed_statistics_c.h
../../include/xsapi-c/user_statistics_c.h
../../include/xsapi-c/leaderboard_c.h
../../include/xsapi-c/events_c.h
../../include/xsapi-c/real_time_activity_c.h
../../include/xsapi-c/types_c.h
../../include/xsapi-c/http_call_c.h
../../include/xsapi-c/title_storage_c.h
../../include/xsapi-c/game_invite_c.h
../../include/xsapi-c/platform_c.h
)
message(STATUS "Test")
if( UNITTEST )
message(STATUS "Test public")
list(APPEND
Public_Source_Files
../../include/xsapi-cpp/title_callable_ui.h
../../include/xsapi-cpp/events.h
${PATH_TO_XSAPI_ROOT}/include/xsapi-cpp/title_callable_ui.h
${PATH_TO_XSAPI_ROOT}/include/xsapi-cpp/events.h
)
else()
if( XDK )
@ -161,169 +127,61 @@ else()
message(STATUS "Windows public")
list(APPEND
Public_Source_Files
../../include/xsapi-cpp/events.h
${PATH_TO_XSAPI_ROOT}/include/xsapi-cpp/events.h
)
if( PCWIN32 OR ANDROID OR UWP )
list(APPEND
Public_Source_Files
../../include/xsapi-cpp/notification_service.h
${PATH_TO_XSAPI_ROOT}/include/xsapi-cpp/notification_service.h
)
elseif( UWP OR ANDROID )
message(STATUS "UWP public")
list(APPEND
Public_Source_Files
../../include/xsapi-cpp/title_callable_ui.h
${PATH_TO_XSAPI_ROOT}/include/xsapi-cpp/title_callable_ui.h
)
endif()
endif()
endif()
set(Common_Source_Files
../../Source/Services/Common/pch_common.h
../../Source/Services/Common/xbox_live_context.cpp
../../Source/Services/Common/xbox_live_context_internal.h
../../Source/Services/Common/xbox_live_context_settings_internal.h
../../Source/Services/Common/xbox_live_context_settings.cpp
../../Source/Services/Common/xbox_live_context_api.cpp
../../Source/Services/Common/xbox_live_global_api.cpp
)
if( ANDROID )
if(NOT ANDROID )
list(APPEND
Common_Source_Files
../../Source/Services/Common/Unix/pch.cpp
../../Source/Services/Common/Unix/pch.h
)
else()
list(APPEND
Common_Source_Files
../../Source/Services/Common/cpp/pch.cpp
../../Source/Services/Common/cpp/pch.h
${PATH_TO_XSAPI_ROOT}/Source/Services/Common/cpp/pch.cpp
${PATH_TO_XSAPI_ROOT}/Source/Services/Common/cpp/pch.h
)
endif()
set(System_Source_Files
../../Source/System/client_operation.h
../../Source/System/local_storage.h
../../Source/System/local_storage.cpp
)
if( UNITTEST OR PCWIN32 OR ANDROID )
if( UNITTEST OR PCWIN32)
list(APPEND
System_Source_Files
../../Source/System/platform_api.cpp
${PATH_TO_XSAPI_ROOT}/Source/System/platform_api.cpp
)
endif()
if( UNITTEST OR PCWIN32 )
list(APPEND
System_Source_Files
../../Source/System/Win32/local_storage_win32.cpp
${PATH_TO_XSAPI_ROOT}/Source/System/Win32/local_storage_win32.cpp
)
endif()
if ( ANDROID )
list(APPEND
System_Source_Files
../../Source/System/a/java_interop.cpp
../../Source/System/a/java_interop.h
../../Source/System/Android/local_storage_android.cpp
)
endif()
set(Shared_Logger_Source_Files
../../Source/Shared/Logger/log.cpp
../../Source/Shared/Logger/log.h
../../Source/Shared/Logger/log_entry.cpp
../../Source/Shared/Logger/log_output.cpp
../../Source/Shared/Logger/log_hc_output.cpp
../../Source/Shared/Logger/log_hc_output.h
)
set(Shared_Source_Files
../../Source/Shared/xsapi_utils.cpp
../../Source/Shared/xsapi_json_utils.cpp
../../Source/Shared/fault_injection.h
../../Source/Shared/fault_injection.cpp
../../Source/Shared/service_call_routed_handler.h
../../Source/Shared/service_call_routed_handler.cpp
../../Source/Shared/errors_legacy.h
../../Source/Shared/errors.cpp
../../Source/Shared/http_call_request_message.cpp
../../Source/Shared/build_version.h
../../Source/Shared/utils_locales.cpp
../../Source/Shared/web_socket.cpp
../../Source/Shared/xbox_live_app_config_internal.h
../../Source/Shared/xbox_live_app_config.cpp
../../Source/Shared/Shared_macros.h
../../Source/Shared/xsapi_utils.h
../../Source/Shared/xsapi_json_utils.h
../../Source/Shared/perf_tester.h
../../Source/Shared/web_socket.h
../../Source/Shared/http_headers.h
../../Source/Shared/http_call_request_message_internal.h
../../Source/Shared/internal_mem.h
../../Source/Shared/internal_mem.cpp
../../Source/Shared/async_helpers.h
../../Source/Shared/async_helpers.cpp
../../Source/Shared/internal_errors.h
../../Source/Shared/ref_counter.h
../../Source/Shared/ref_counter.cpp
../../Source/Shared/http_call_api.cpp
../../Source/Shared/http_call_wrapper_internal.h
../../Source/Shared/http_call_wrapper_internal.cpp
../../Source/Shared/global_state.h
../../Source/Shared/global_state.cpp
../../Source/Shared/user.h
../../Source/Shared/string_array.h
../../Source/Shared/user.cpp
../../Source/Shared/enum_traits.h
../../Source/Shared/http_utils.h
../../Source/Shared/http_utils.cpp
../../Source/Shared/internal_types.h
../../Source/Shared/public_utils_legacy.h
../../Source/Shared/public_utils_legacy.cpp
)
if( UWP OR PCWIN32 OR GDK OR UNITTEST )
list(APPEND
Shared_Source_Files
../../Source/Shared/WinRT/local_config_winrt.cpp
${PATH_TO_XSAPI_ROOT}/Source/Shared/WinRT/local_config_winrt.cpp
)
endif()
if( UWP )
list(APPEND
Shared_Source_Files
../../Source/Shared/local_config.h
../../Source/Shared/local_config.cpp
${PATH_TO_XSAPI_ROOT}/Source/Shared/local_config.h
${PATH_TO_XSAPI_ROOT}/Source/Shared/local_config.cpp
)
endif()
if ( ANDROID )
list(APPEND
Shared_Source_Files
../../Source/Shared/a/android_utils.h
../../Source/Shared/a/android_utils.cpp
../../Source/Shared/u/xbl_guid.h
../../Source/Shared/a/guid.cpp
../../Source/Shared/a/http_call_jni.cpp
../../Source/Shared/a/http_call_jni.h
../../Source/Shared/a/http_call_static_glue.h
../../Source/Shared/a/http_call_static_glue.cpp
../../Source/Shared/a/interop_jni.h
../../Source/Shared/a/interop_jni.cpp
../../Source/Shared/a/jni_utils.h
../../Source/Shared/a/rwlock_guard.h
../../Source/Shared/a/rwlock_guard.cpp
../../Source/Shared/a/utils_a.h
../../Source/Shared/a/utils_a.cpp
../../Source/Shared/a/xbox_live_app_config_jni.cpp
../../Source/Shared/a/xbox_live_app_config_static_glue.h
../../Source/Shared/http_call_legacy.h
../../Source/Shared/http_call_legacy.cpp
)
endif()
set(TCUI_Source_Files
)
@ -331,260 +189,75 @@ set(TCUI_Source_Files
if ( UWP )
list(APPEND
TCUI_Source_Files
../../Source/Services/TCUI/UWP/title_callable_ui_uwp.cpp
)
endif()
if ( ANDROID )
list(APPEND
TCUI_Source_Files
../../Source/Services/TCUI/Android/title_callable_static_glue.h
../../Source/Services/TCUI/Android/title_callable_ui_static_glue.cpp
../../Source/Services/TCUI/Android/title_callable_ui_android.cpp
${PATH_TO_XSAPI_ROOT}/Source/Services/TCUI/UWP/title_callable_ui_uwp.cpp
)
endif()
set(Notification_Source_Files
)
if ( (NOT XDK) AND (NOT UNITTEST) )
if ( (NOT XDK) AND (NOT UNITTEST) AND (NOT ANDROID) )
list(APPEND
Notification_Source_Files
../../Source/Services/Notification/notification_internal.h
../../Source/Services/Notification/notification_service.cpp
../../Source/Services/Notification/notification_api.cpp
${PATH_TO_XSAPI_ROOT}/Source/Services/Notification/notification_internal.h
${PATH_TO_XSAPI_ROOT}/Source/Services/Notification/notification_service.cpp
${PATH_TO_XSAPI_ROOT}/Source/Services/Notification/notification_api.cpp
)
endif()
if ( UWP )
list(APPEND
Notification_Source_Files
../../Source/Services/Notification/UWP/notification_service_uwp.cpp
${PATH_TO_XSAPI_ROOT}/Source/Services/Notification/UWP/notification_service_uwp.cpp
)
endif()
if ( PCWIN32 )
list(APPEND
Notification_Source_Files
../../Source/Services/Notification/RTA/notification_service_rta.cpp
../../Source/Services/Notification/RTA/notification_subscription.h
../../Source/Services/Notification/RTA/notification_subscription.cpp
${PATH_TO_XSAPI_ROOT}/Source/Services/Notification/RTA/notification_service_rta.cpp
${PATH_TO_XSAPI_ROOT}/Source/Services/Notification/RTA/notification_subscription.h
${PATH_TO_XSAPI_ROOT}/Source/Services/Notification/RTA/notification_subscription.cpp
)
endif()
if ( ANDROID )
list(APPEND
Notification_Source_Files
../../Source/Services/Notification/Mobile/notification_service_mobile.cpp
)
endif()
set(Achievements_Source_Files
../../Source/Services/Achievements/achievement_service_internal.cpp
../../Source/Services/Achievements/achievements_internal.h
../../Source/Services/Achievements/achievements_result.cpp
../../Source/Services/Achievements/achievements_api.cpp
../../Source/Services/Achievements/achievements_subscription.cpp
)
set(Achievements_Manager_Source_Files
../../Source/Services/Achievements/Manager/achievements_manager_internal.h
../../Source/Services/Achievements/Manager/achievements_manager_internal.cpp
../../Source/Services/Achievements/Manager/achievements_manager_api.cpp
)
if( (NOT UNITTEST) AND (NOT XDK) )
if( (NOT UNITTEST) AND (NOT XDK) AND (NOT ANDROID))
set(Events_Source_Files
../../Source/Services/Events/events_service.h
../../Source/Services/Events/events_service_api.cpp
${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service.h
${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service_api.cpp
)
endif()
if ( GDK )
list(APPEND
Events_Source_Files
../../Source/Services/Events/events_service_gdk.h
../../Source/Services/Events/events_service_gdk.cpp
../../Source/Services/Events/events_service_etw.h
../../Source/Services/Events/events_service_etw.cpp
${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service_gdk.h
${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service_gdk.cpp
${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service_etw.h
${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service_etw.cpp
)
elseif ( UWP )
# UWP and GDK still using ETW based events service
list(APPEND
Events_Source_Files
../../Source/Services/Events/events_service_etw.h
../../Source/Services/Events/events_service_etw.cpp
${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service_etw.h
${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service_etw.cpp
)
elseif ( PCWIN32 OR ANDROID )
elseif ( PCWIN32)
list(APPEND
Events_Source_Files
../../Source/Services/Events/event.cpp
../../Source/Services/Events/event_queue.cpp
../../Source/Services/Events/event_upload_payload.cpp
../../Source/Services/Events/events_service_xsapi.h
../../Source/Services/Events/events_service_xsapi.cpp
${PATH_TO_XSAPI_ROOT}/Source/Services/Events/event.cpp
${PATH_TO_XSAPI_ROOT}/Source/Services/Events/event_queue.cpp
${PATH_TO_XSAPI_ROOT}/Source/Services/Events/event_upload_payload.cpp
${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service_xsapi.h
${PATH_TO_XSAPI_ROOT}/Source/Services/Events/events_service_xsapi.cpp
${PATH_TO_XSAPI_ROOT}/Source/Services/Events/Windows/events_service_windows.cpp
)
endif()
if( PCWIN32 )
list(APPEND
Events_Source_Files
../../Source/Services/Events/Windows/events_service_windows.cpp
)
endif()
if( ANDROID )
list(APPEND
Events_Source_Files
../../Source/Services/Events/Android/events_service_android.cpp
)
endif()
set(Leaderboard_Source_Files
../../Source/Services/Leaderboard/Leaderboard_column.cpp
../../Source/Services/Leaderboard/Leaderboard_internal.h
../../Source/Services/Leaderboard/Leaderboard_result.cpp
../../Source/Services/Leaderboard/Leaderboard_row.cpp
../../Source/Services/Leaderboard/Leaderboard_service.cpp
)
set(Privacy_Source_Files
../../Source/Services/Privacy/privacy_service_internal.h
../../Source/Services/Privacy/Privacy_service.cpp
../../Source/Services/Privacy/privacy_api.cpp
../../Source/Services/Privacy/permission_check_result.cpp
)
set(Presence_Source_Files
../../Source/Services/Presence/device_presence_change_subscription.cpp
../../Source/Services/Presence/presence_internal.h
../../Source/Services/Presence/presence_device_record.cpp
../../Source/Services/Presence/presence_record.cpp
../../Source/Services/Presence/presence_service.cpp
../../Source/Services/Presence/presence_title_request.cpp
../../Source/Services/Presence/presence_user_batch_request.cpp
../../Source/Services/Presence/title_presence_change_subscription.cpp
../../Source/Services/Presence/presence_api.cpp
)
set(Titlestorage_Source_Files
../../Source/Services/TitleStorage/title_storage_internal.h
../../Source/Services/TitleStorage/title_storage_api.cpp
../../Source/Services/TitleStorage/title_storage_blob_metadata_result.cpp
../../Source/Services/TitleStorage/title_storage_service.cpp
)
set(Social_Source_Files
../../Source/Services/Social/reputation_feedback_request.cpp
../../Source/Services/Social/reputation_service.cpp
../../Source/Services/Social/social_relationship_result.cpp
../../Source/Services/Social/social_relationship_change_subscription.cpp
../../Source/Services/Social/social_service.cpp
../../Source/Services/Social/social_api.cpp
../../Source/Services/Social/social_internal.h
../../Source/Services/Social/profile_internal.h
../../Source/Services/Social/profile_service.cpp
../../Source/Services/Social/profile_api.cpp
)
set(Social_Manager_Source_Files
../../Source/Services/Social/Manager/peoplehub_service.h
../../Source/Services/Social/Manager/peoplehub_service.cpp
../../Source/Services/Social/Manager/social_graph.h
../../Source/Services/Social/Manager/social_graph.cpp
../../Source/Services/Social/Manager/social_manager.cpp
../../Source/Services/Social/Manager/social_manager_api.cpp
../../Source/Services/Social/Manager/social_manager_internal.h
../../Source/Services/Social/Manager/social_manager_user_group.h
../../Source/Services/Social/Manager/social_manager_user_group.cpp
)
set(Stats_Source_Files
../../Source/Services/Stats/requested_statistics.cpp
../../Source/Services/Stats/service_configuration_statistic.cpp
../../Source/Services/Stats/statistic.cpp
../../Source/Services/Stats/user_statistics_result.cpp
../../Source/Services/Stats/user_statistics_service.cpp
../../Source/Services/Stats/user_statistics_api.cpp
../../Source/Services/Stats/statistic_change_subscription.cpp
../../Source/Services/Stats/user_statistics_internal.h
../../Source/Services/Stats/title_managed_statistics_internal.h
../../Source/Services/Stats/title_managed_statistics_service.cpp
../../Source/Services/Stats/title_managed_statistics_api.cpp
)
set(Matchmaking_Source_Files
../../Source/Services/Matchmaking/hopper_statistics_response.cpp
../../Source/Services/Matchmaking/matchmaking_service.cpp
../../Source/Services/Matchmaking/match_ticket_details_response.cpp
../../Source/Services/Matchmaking/matchmaking_internal.h
)
set (Multiplayer_Source_Files
../../Source/Services/Multiplayer/multiplayer_activity_handle_post_request.cpp
../../Source/Services/Multiplayer/multiplayer_activity_query_post_request.cpp
../../Source/Services/Multiplayer/multiplayer_invite_handle_post_request.cpp
../../Source/Services/Multiplayer/multiplayer_service.cpp
../../Source/Services/Multiplayer/multiplayer_search_handle_details.cpp
../../Source/Services/Multiplayer/multiplayer_search_handle_request.cpp
../../Source/Services/Multiplayer/multiplayer_query_search_handle_request.cpp
../../Source/Services/Multiplayer/multiplayer_session.cpp
../../Source/Services/Multiplayer/multiplayer_session_member.cpp
../../Source/Services/Multiplayer/multiplayer_session_reference.cpp
../../Source/Services/Multiplayer/multiplayer_service.cpp
../../Source/Services/Multiplayer/multiplayer_transfer_handle_post_request.cpp
../../Source/Services/Multiplayer/multiplayer_subscription.cpp
../../Source/Services/Multiplayer/multiplayer_internal.h
../../Source/Services/Multiplayer/multiplayer_serializers.cpp
../../Source/Services/Multiplayer/multiplayer_api.cpp
)
set (Multiplayer_Manager_Source_Files
../../Source/Services/Multiplayer/Manager/multiplayer_match_client.cpp
../../Source/Services/Multiplayer/Manager/multiplayer_session_writer.cpp
../../Source/Services/Multiplayer/Manager/multiplayer_client_manager.cpp
../../Source/Services/Multiplayer/Manager/multiplayer_client_pending_reader.cpp
../../Source/Services/Multiplayer/Manager/multiplayer_client_pending_request.cpp
../../Source/Services/Multiplayer/Manager/multiplayer_game_client.cpp
../../Source/Services/Multiplayer/Manager/multiplayer_member.cpp
../../Source/Services/Multiplayer/Manager/multiplayer_game_session.cpp
../../Source/Services/Multiplayer/Manager/multiplayer_lobby_client.cpp
../../Source/Services/Multiplayer/Manager/multiplayer_local_user_manager.cpp
../../Source/Services/Multiplayer/Manager/multiplayer_lobby_session.cpp
../../Source/Services/Multiplayer/Manager/multiplayer_local_user.cpp
../../Source/Services/Multiplayer/Manager/multiplayer_manager.cpp
../../Source/Services/Multiplayer/Manager/multiplayer_manager_utils.cpp
../../Source/Services/Multiplayer/Manager/multiplayer_manager_internal.h
../../Source/Services/Multiplayer/Manager/multiplayer_event_queue.cpp
../../Source/Services/Multiplayer/Manager/multiplayer_event_args.cpp
../../Source/Services/Multiplayer/Manager/multiplayer_manager_api.cpp
)
set(StringVerify_Source_Files
../../Source/Services/StringVerify/string_service.cpp
../../Source/Services/StringVerify/string_service_internal.h
../../Source/Services/StringVerify/verify_string_result.cpp
)
set(MultiplayerActivity_Source_Files
../../Source/Services/MultiplayerActivity/multiplayer_activity_api.cpp
../../Source/Services/MultiplayerActivity/multiplayer_activity_internal.h
../../Source/Services/MultiplayerActivity/multiplayer_activity_service.cpp
../../Source/Services/MultiplayerActivity/multiplayer_activity_info.cpp
)
set(RealTimeActivityManager_Source_Files
../../Source/Services/RealTimeActivityManager/real_time_activity_manager.h
../../Source/Services/RealTimeActivityManager/real_time_activity_manager.cpp
../../Source/Services/RealTimeActivityManager/real_time_activity_connection.h
../../Source/Services/RealTimeActivityManager/real_time_activity_connection.cpp
../../Source/Services/RealTimeActivityManager/real_time_activity_subscription.h
../../Source/Services/RealTimeActivityManager/real_time_activity_api.cpp
)
set(Ship_Source_Files
../../Source/Services/Common/cpp/pch.cpp
${PATH_TO_XSAPI_ROOT}/Source/Services/Common/cpp/pch.cpp
build.cpp
)
@ -654,113 +327,146 @@ else()
${Privacy_Source_Files}
${Stats_Source_Files}
${Leaderboard_Source_Files}
${Titlestorage_Source_Files}
${TitleStorage_Source_Files}
${MultiplayerActivity_Source_Files}
${RealTimeActivityManager_Source_Files}
)
if( NOT GDK )
list(APPEND
SOURCE_FILES
${Notification_Source_Files}
${TCUI_Source_Files}
${Leaderboard_Source_Files}
${Matchmaking_Source_Files}
)
endif()
if( NOT XDK )
list(APPEND
SOURCE_FILES
${Events_Source_Files}
)
endif()
if (NOT ANDROID)
if( NOT GDK )
list(APPEND
SOURCE_FILES
${Notification_Source_Files}
${TCUI_Source_Files}
${Leaderboard_Source_Files}
${Matchmaking_Source_Files}
)
endif()
if( NOT WINRT )
message(STATUS "Adding flat C source")
if( NOT XDK )
list(APPEND
SOURCE_FILES
${Events_Source_Files}
)
endif()
if( NOT WINRT )
message(STATUS "Adding flat C source")
list(APPEND
SOURCE_FILES
${Public_Source_Files_C}
${Multiplayer_Source_Files_C}
${Multiplayer_Manager_Source_Files_C}
)
endif()
else()
# if Android
include("GetAndroidXSAPISourceFiles.cmake")
get_android_xsapi_source_files(
Common_Android_Source_Files
System_Android_Source_Files
Shared_Android_Source_Files
TCUI_Android_Source_Files
Notification_Android_Source_Files
Events_Android_Source_Files
${PATH_TO_XSAPI_ROOT}
)
source_group("C++ Source\\System" FILES ${System_Android_Source_Files})
source_group("C++ Source\\Shared" FILES ${Shared_Android_Source_Files})
source_group("C++ Source\\Services\\TCUI" FILES ${TCUI_Android_Source_Files})
source_group("C++ Source\\Services\\Notification" FILES ${Notification_Android_Source_Files})
source_group("C++ Source\\Services\\Common" FILES ${Common_Android_Source_Files})
source_group("C++ Source\\Services\\Events" FILES ${Events_Android_Source_Files})
list(APPEND
SOURCE_FILES
${Public_Source_Files_C}
${Multiplayer_Source_Files_C}
${Multiplayer_Manager_Source_Files_C}
${System_Android_Source_Files}
${Shared_Android_Source_Files}
${TCUI_Android_Source_Files}
${Notification_Android_Source_Files}
${Common_Android_Source_Files}
${Events_Android_Source_Files}
)
endif()
endif() # SHIP
set(UnitTests_Source_Files_Mocks
../../Tests/UnitTests/Mocks/mock_web_socket.h
../../Tests/UnitTests/Mocks/mock_web_socket.cpp
../../Tests/UnitTests/Mocks/mock_user.cpp
../../Tests/UnitTests/Mocks/xal_mocks.cpp
../../Tests/UnitTests/Mocks/http_mock.h
../../Tests/UnitTests/Mocks/http_mock.cpp
../../Tests/UnitTests/Mocks/mock_rta_service.h
../../Tests/UnitTests/Mocks/mock_rta_service.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Mocks/mock_web_socket.h
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Mocks/mock_web_socket.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Mocks/mock_user.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Mocks/xal_mocks.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Mocks/http_mock.h
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Mocks/http_mock.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Mocks/mock_rta_service.h
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Mocks/mock_rta_service.cpp
)
set(UnitTests_Source_Files_Support
../../Tests/UnitTests/Support/iso8601.cpp
../../Tests/UnitTests/Support/DefineTestMacros.h
../../Tests/UnitTests/Support/iso8601.h
../../Tests/UnitTests/Support/UnitTestIncludes.h
../../Tests/UnitTests/Support/event.h
../../Tests/UnitTests/Support/event.cpp
../../Tests/UnitTests/Support/unit_test_helpers.h
../../Tests/UnitTests/Support/unit_test_helpers.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/iso8601.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/DefineTestMacros.h
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/iso8601.h
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/UnitTestIncludes.h
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/event.h
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/event.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/unit_test_helpers.h
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/unit_test_helpers.cpp
)
if ( TAEF )
list(APPEND
UnitTests_Source_Files_Support
../../Tests/UnitTests/Support/TAEF/UnitTestBase.h
../../Tests/UnitTests/Support/TAEF/UnitTestIncludes_TAEF.h
../../Tests/UnitTests/Support/TAEF/UnitTestBase.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/TAEF/UnitTestBase.h
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/TAEF/UnitTestIncludes_TAEF.h
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/TAEF/UnitTestBase.cpp
)
endif()
if ( TE )
list(APPEND
UnitTests_Source_Files_Support
../../Tests/UnitTests/Support/TE/unittesthelpers_te.cpp
../../Tests/UnitTests/Support/TE/unittesthelpers_te.h
../../Tests/UnitTests/Support/TE/unittestincludes_te.h
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/TE/unittesthelpers_te.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/TE/unittesthelpers_te.h
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Support/TE/unittestincludes_te.h
)
endif()
set(UnitTests_Source_Files_Tests
../../Tests/UnitTests/Tests/Services/AchievementsTests.cpp
../../Tests/UnitTests/Tests/Services/AchievementsManagerTests.cpp
../../Tests/UnitTests/Tests/Services/ErrorTests.cpp
../../Tests/UnitTests/Tests/Services/LeaderboardTests.cpp
../../Tests/UnitTests/Tests/Services/MatchmakingTests.cpp
../../Tests/UnitTests/Tests/Services/MultiplayerManagerTests.cpp
../../Tests/UnitTests/Tests/Services/MultiplayerTests.cpp
../../Tests/UnitTests/Tests/Services/PeoplehubTests.cpp
../../Tests/UnitTests/Tests/Services/PresenceTests.cpp
../../Tests/UnitTests/Tests/Services/PrivacyTests.cpp
../../Tests/UnitTests/Tests/Services/ProfileTests.cpp
../../Tests/UnitTests/Tests/Services/RealTimeActivityManagerTests.cpp
../../Tests/UnitTests/Tests/Services/ReputationTests.cpp
../../Tests/UnitTests/Tests/Services/SocialManagerTests.cpp
../../Tests/UnitTests/Tests/Services/SocialTests.cpp
../../Tests/UnitTests/Tests/Services/StatsTests.cpp
../../Tests/UnitTests/Tests/Services/TitleManagedStatsTests.cpp
../../Tests/UnitTests/Tests/Services/StringVerifyTests.cpp
../../Tests/UnitTests/Tests/Services/TitleStorageTests.cpp
../../Tests/UnitTests/Tests/Services/MultiplayerActivityTests.cpp
../../Tests/UnitTests/Tests/Shared/HttpCallTests.cpp
../../Tests/UnitTests/Tests/Shared/HttpCallSettingsTests.cpp
../../Tests/UnitTests/Tests/Shared/LogTests.cpp
../../Tests/UnitTests/Tests/Shared/XboxLiveContextTests.cpp
../../Tests/UnitTests/Tests/Shared/XboxLiveCallbackTests.cpp
../../Tests/UnitTests/Tests/Shared/GlobalTests.cpp
../../Tests/UnitTests/Tests/Shared/PlatformTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/AchievementsTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/AchievementsManagerTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/ErrorTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/LeaderboardTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/MatchmakingTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/MultiplayerManagerTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/MultiplayerTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/PeoplehubTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/PresenceTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/PrivacyTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/ProfileTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/RealTimeActivityManagerTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/ReputationTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/SocialManagerTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/SocialTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/StatsTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/TitleManagedStatsTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/StringVerifyTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/TitleStorageTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/MultiplayerActivityTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Shared/HttpCallTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Shared/HttpCallSettingsTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Shared/LogTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Shared/XboxLiveContextTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Shared/XboxLiveCallbackTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Shared/GlobalTests.cpp
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Shared/PlatformTests.cpp
)
set(TestJson_Files
../../Tests/UnitTests/Tests/Services/TestResponses/Multiplayer.json
../../Tests/UnitTests/Tests/Services/TestResponses/Matchmaking.json
../../Tests/UnitTests/Tests/Services/TestResponses/MultiplayerManager.json
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/TestResponses/Multiplayer.json
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/TestResponses/Matchmaking.json
${PATH_TO_XSAPI_ROOT}/Tests/UnitTests/Tests/Services/TestResponses/MultiplayerManager.json
)
set_property(SOURCE ${TestJson_Files} PROPERTY VS_DEPLOYMENT_CONTENT 1)

Просмотреть файл

@ -0,0 +1,79 @@
cmake_minimum_required(VERSION 3.6)
function(GET_ANDROID_XSAPI_SOURCE_FILES
OUT_COMMON_SOURCE_FILES
OUT_SYSTEM_SOURCE_FILES
OUT_SHARED_SOURCE_FILES
OUT_TCUI_SOURCE_FILES
OUT_NOTIFICATION_SOURCE_FILES
OUT_EVENTS_SOURCE_FILES
PATH_TO_ROOT
)
set(${OUT_COMMON_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/Common/Unix/pch.cpp"
"${PATH_TO_ROOT}/Source/Services/Common/Unix/pch.h"
PARENT_SCOPE
)
set(${OUT_SYSTEM_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/System/a/java_interop.cpp"
"${PATH_TO_ROOT}/Source/System/a/java_interop.h"
"${PATH_TO_ROOT}/Source/System/Android/local_storage_android.cpp"
"${PATH_TO_ROOT}/Source/System/platform_api.cpp"
PARENT_SCOPE
)
set(${OUT_SHARED_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Shared/a/android_utils.h"
"${PATH_TO_ROOT}/Source/Shared/a/android_utils.cpp"
"${PATH_TO_ROOT}/Source/Shared/u/xbl_guid.h"
"${PATH_TO_ROOT}/Source/Shared/a/guid.cpp"
"${PATH_TO_ROOT}/Source/Shared/a/http_call_jni.cpp"
"${PATH_TO_ROOT}/Source/Shared/a/http_call_jni.h"
"${PATH_TO_ROOT}/Source/Shared/a/http_call_static_glue.h"
"${PATH_TO_ROOT}/Source/Shared/a/http_call_static_glue.cpp"
"${PATH_TO_ROOT}/Source/Shared/a/interop_jni.h"
"${PATH_TO_ROOT}/Source/Shared/a/interop_jni.cpp"
"${PATH_TO_ROOT}/Source/Shared/a/jni_utils.h"
"${PATH_TO_ROOT}/Source/Shared/a/rwlock_guard.h"
"${PATH_TO_ROOT}/Source/Shared/a/rwlock_guard.cpp"
"${PATH_TO_ROOT}/Source/Shared/a/utils_a.h"
"${PATH_TO_ROOT}/Source/Shared/a/utils_a.cpp"
"${PATH_TO_ROOT}/Source/Shared/a/xbox_live_app_config_jni.cpp"
"${PATH_TO_ROOT}/Source/Shared/a/xbox_live_app_config_static_glue.h"
"${PATH_TO_ROOT}/Source/Shared/http_call_legacy.h"
"${PATH_TO_ROOT}/Source/Shared/http_call_legacy.cpp"
PARENT_SCOPE
)
set(${OUT_TCUI_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/TCUI/Android/title_callable_static_glue.h"
"${PATH_TO_ROOT}/Source/Services/TCUI/Android/title_callable_ui_static_glue.cpp"
"${PATH_TO_ROOT}/Source/Services/TCUI/Android/title_callable_ui_android.cpp"
PARENT_SCOPE
)
set(${OUT_NOTIFICATION_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/Notification/Mobile/notification_service_mobile.cpp"
"${PATH_TO_ROOT}/Source/Services/Notification/notification_internal.h"
"${PATH_TO_ROOT}/Source/Services/Notification/notification_service.cpp"
"${PATH_TO_ROOT}/Source/Services/Notification/notification_api.cpp"
PARENT_SCOPE
)
set(${OUT_EVENTS_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/Events/event.cpp"
"${PATH_TO_ROOT}/Source/Services/Events/event_queue.cpp"
"${PATH_TO_ROOT}/Source/Services/Events/events_service.h"
"${PATH_TO_ROOT}/Source/Services/Events/events_service_api.cpp"
"${PATH_TO_ROOT}/Source/Services/Events/event_upload_payload.cpp"
"${PATH_TO_ROOT}/Source/Services/Events/events_service_xsapi.h"
"${PATH_TO_ROOT}/Source/Services/Events/events_service_xsapi.cpp"
"${PATH_TO_ROOT}/Source/Services/Events/Android/events_service_android.cpp"
PARENT_SCOPE
)
endfunction()

Просмотреть файл

@ -0,0 +1,335 @@
cmake_minimum_required(VERSION 3.6)
function(GET_COMMON_XSAPI_SOURCE_FILES
OUT_PUBLIC_SOURCE_FILES
OUT_PUBLIC_C_SOURCE_FILES
OUT_COMMON_SOURCE_FILES
OUT_SYSTEM_SOURCE_FILES
OUT_LOGGER_SOURCE_FILES
OUT_SHARED_SOURCE_FILES
OUT_ACHIEVEMENTS_SOURCE_FILES
OUT_ACHIEVEMENTS_MANAGER_SOURCE_FILES
OUT_LEADERBOARD_SOURCE_FILES
OUT_PRIVACY_SOURCE_FILES
OUT_PRESENCE_SOURCE_FILES
OUT_TITLESTORAGE_SOURCE_FILES
OUT_SOCIAL_SOURCE_FILES
OUT_SOCIAL_MANAGER_SOURCE_FILES
OUT_STATS_SOURCE_FILES
OUT_MATCMAKING_SOURCE_FILES
OUT_MULTIPLAYER_SOURCE_FILES
OUT_MULTIPLAYER_MANAGER_SOURCE_FILES
OUT_STRINGVERIFY_SOURCE_FILES
OUT_MULTIPLAYERACTIVITY_SOURCE_FILES
OUT_REALTIMEACTIVITY_MANAGER_SOURCE_FILES
PATH_TO_ROOT
)
set(${OUT_PUBLIC_SOURCE_FILES}
"${PATH_TO_ROOT}/Include/xsapi-cpp/achievements.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/leaderboard.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/matchmaking.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/multiplayer.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/privacy.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/profile.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/services.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/social.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/system.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/types.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/user_statistics.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/xbox_live_context.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/xbox_service_call_routed_event_args.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/errors.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/http_call.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/http_call_request_message.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/mem.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/social_manager.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/service_call_logging_config.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/multiplayer_manager.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/presence.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/real_time_activity.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/title_storage.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/xbox_live_app_config.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/xbox_live_context_settings.h"
"${PATH_TO_ROOT}/Include/xsapi-cpp/string_verify.h"
PARENT_SCOPE
)
set(${OUT_PUBLIC_C_SOURCE_FILES}
"${PATH_TO_ROOT}/Include/xsapi-c/achievements_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/achievements_manager_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/errors_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/presence_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/profile_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/services_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/social_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/social_manager_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/string_verify_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/pal.h"
"${PATH_TO_ROOT}/Include/xsapi-c/xbox_live_context_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/xbox_live_context_settings_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/xbox_live_global_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/matchmaking_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/multiplayer_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/multiplayer_activity_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/multiplayer_manager_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/notification_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/privacy_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/title_managed_statistics_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/user_statistics_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/leaderboard_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/events_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/real_time_activity_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/types_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/http_call_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/title_storage_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/game_invite_c.h"
"${PATH_TO_ROOT}/Include/xsapi-c/platform_c.h"
PARENT_SCOPE
)
set(${OUT_COMMON_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/Common/pch_common.h"
"${PATH_TO_ROOT}/Source/Services/Common/xbox_live_context.cpp"
"${PATH_TO_ROOT}/Source/Services/Common/xbox_live_context_internal.h"
"${PATH_TO_ROOT}/Source/Services/Common/xbox_live_context_settings_internal.h"
"${PATH_TO_ROOT}/Source/Services/Common/xbox_live_context_settings.cpp"
"${PATH_TO_ROOT}/Source/Services/Common/xbox_live_context_api.cpp"
"${PATH_TO_ROOT}/Source/Services/Common/xbox_live_global_api.cpp"
PARENT_SCOPE
)
set(${OUT_SYSTEM_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/System/client_operation.h"
"${PATH_TO_ROOT}/Source/System/local_storage.h"
"${PATH_TO_ROOT}/Source/System/local_storage.cpp"
PARENT_SCOPE
)
set(${OUT_LOGGER_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Shared/Logger/log.cpp"
"${PATH_TO_ROOT}/Source/Shared/Logger/log.h"
"${PATH_TO_ROOT}/Source/Shared/Logger/log_entry.cpp"
"${PATH_TO_ROOT}/Source/Shared/Logger/log_output.cpp"
"${PATH_TO_ROOT}/Source/Shared/Logger/log_hc_output.cpp"
"${PATH_TO_ROOT}/Source/Shared/Logger/log_hc_output.h"
PARENT_SCOPE
)
set(${OUT_SHARED_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Shared/xsapi_utils.cpp"
"${PATH_TO_ROOT}/Source/Shared/xsapi_json_utils.cpp"
"${PATH_TO_ROOT}/Source/Shared/fault_injection.h"
"${PATH_TO_ROOT}/Source/Shared/fault_injection.cpp"
"${PATH_TO_ROOT}/Source/Shared/service_call_routed_handler.h"
"${PATH_TO_ROOT}/Source/Shared/service_call_routed_handler.cpp"
"${PATH_TO_ROOT}/Source/Shared/errors_legacy.h"
"${PATH_TO_ROOT}/Source/Shared/errors.cpp"
"${PATH_TO_ROOT}/Source/Shared/http_call_request_message.cpp"
"${PATH_TO_ROOT}/Source/Shared/build_version.h"
"${PATH_TO_ROOT}/Source/Shared/utils_locales.cpp"
"${PATH_TO_ROOT}/Source/Shared/web_socket.cpp"
"${PATH_TO_ROOT}/Source/Shared/xbox_live_app_config_internal.h"
"${PATH_TO_ROOT}/Source/Shared/xbox_live_app_config.cpp"
"${PATH_TO_ROOT}/Source/Shared/Shared_macros.h"
"${PATH_TO_ROOT}/Source/Shared/xsapi_utils.h"
"${PATH_TO_ROOT}/Source/Shared/xsapi_json_utils.h"
"${PATH_TO_ROOT}/Source/Shared/perf_tester.h"
"${PATH_TO_ROOT}/Source/Shared/web_socket.h"
"${PATH_TO_ROOT}/Source/Shared/http_headers.h"
"${PATH_TO_ROOT}/Source/Shared/http_call_request_message_internal.h"
"${PATH_TO_ROOT}/Source/Shared/internal_mem.h"
"${PATH_TO_ROOT}/Source/Shared/internal_mem.cpp"
"${PATH_TO_ROOT}/Source/Shared/async_helpers.h"
"${PATH_TO_ROOT}/Source/Shared/async_helpers.cpp"
"${PATH_TO_ROOT}/Source/Shared/internal_errors.h"
"${PATH_TO_ROOT}/Source/Shared/ref_counter.h"
"${PATH_TO_ROOT}/Source/Shared/ref_counter.cpp"
"${PATH_TO_ROOT}/Source/Shared/http_call_api.cpp"
"${PATH_TO_ROOT}/Source/Shared/http_call_wrapper_internal.h"
"${PATH_TO_ROOT}/Source/Shared/http_call_wrapper_internal.cpp"
"${PATH_TO_ROOT}/Source/Shared/global_state.h"
"${PATH_TO_ROOT}/Source/Shared/global_state.cpp"
"${PATH_TO_ROOT}/Source/Shared/user.h"
"${PATH_TO_ROOT}/Source/Shared/string_array.h"
"${PATH_TO_ROOT}/Source/Shared/user.cpp"
"${PATH_TO_ROOT}/Source/Shared/enum_traits.h"
"${PATH_TO_ROOT}/Source/Shared/http_utils.h"
"${PATH_TO_ROOT}/Source/Shared/http_utils.cpp"
"${PATH_TO_ROOT}/Source/Shared/internal_types.h"
"${PATH_TO_ROOT}/Source/Shared/public_utils_legacy.h"
"${PATH_TO_ROOT}/Source/Shared/public_utils_legacy.cpp"
PARENT_SCOPE
)
set(${OUT_ACHIEVEMENTS_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/Achievements/achievement_service_internal.cpp"
"${PATH_TO_ROOT}/Source/Services/Achievements/achievements_internal.h"
"${PATH_TO_ROOT}/Source/Services/Achievements/achievements_result.cpp"
"${PATH_TO_ROOT}/Source/Services/Achievements/achievements_api.cpp"
"${PATH_TO_ROOT}/Source/Services/Achievements/achievements_subscription.cpp"
PARENT_SCOPE
)
set(${OUT_ACHIEVEMENTS_MANAGER_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/Achievements/Manager/achievements_manager_internal.h"
"${PATH_TO_ROOT}/Source/Services/Achievements/Manager/achievements_manager_internal.cpp"
"${PATH_TO_ROOT}/Source/Services/Achievements/Manager/achievements_manager_api.cpp"
PARENT_SCOPE
)
set(${OUT_LEADERBOARD_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/Leaderboard/Leaderboard_column.cpp"
"${PATH_TO_ROOT}/Source/Services/Leaderboard/Leaderboard_internal.h"
"${PATH_TO_ROOT}/Source/Services/Leaderboard/Leaderboard_result.cpp"
"${PATH_TO_ROOT}/Source/Services/Leaderboard/Leaderboard_row.cpp"
"${PATH_TO_ROOT}/Source/Services/Leaderboard/Leaderboard_service.cpp"
PARENT_SCOPE
)
set(${OUT_PRIVACY_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/Privacy/privacy_service_internal.h"
"${PATH_TO_ROOT}/Source/Services/Privacy/Privacy_service.cpp"
"${PATH_TO_ROOT}/Source/Services/Privacy/privacy_api.cpp"
"${PATH_TO_ROOT}/Source/Services/Privacy/permission_check_result.cpp"
PARENT_SCOPE
)
set(${OUT_PRESENCE_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/Presence/device_presence_change_subscription.cpp"
"${PATH_TO_ROOT}/Source/Services/Presence/presence_internal.h"
"${PATH_TO_ROOT}/Source/Services/Presence/presence_device_record.cpp"
"${PATH_TO_ROOT}/Source/Services/Presence/presence_record.cpp"
"${PATH_TO_ROOT}/Source/Services/Presence/presence_service.cpp"
"${PATH_TO_ROOT}/Source/Services/Presence/presence_title_request.cpp"
"${PATH_TO_ROOT}/Source/Services/Presence/presence_user_batch_request.cpp"
"${PATH_TO_ROOT}/Source/Services/Presence/title_presence_change_subscription.cpp"
"${PATH_TO_ROOT}/Source/Services/Presence/presence_api.cpp"
PARENT_SCOPE
)
set(${OUT_TITLESTORAGE_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/TitleStorage/title_storage_internal.h"
"${PATH_TO_ROOT}/Source/Services/TitleStorage/title_storage_api.cpp"
"${PATH_TO_ROOT}/Source/Services/TitleStorage/title_storage_blob_metadata_result.cpp"
"${PATH_TO_ROOT}/Source/Services/TitleStorage/title_storage_service.cpp"
PARENT_SCOPE
)
set(${OUT_SOCIAL_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/Social/reputation_feedback_request.cpp"
"${PATH_TO_ROOT}/Source/Services/Social/reputation_service.cpp"
"${PATH_TO_ROOT}/Source/Services/Social/social_relationship_result.cpp"
"${PATH_TO_ROOT}/Source/Services/Social/social_relationship_change_subscription.cpp"
"${PATH_TO_ROOT}/Source/Services/Social/social_service.cpp"
"${PATH_TO_ROOT}/Source/Services/Social/social_api.cpp"
"${PATH_TO_ROOT}/Source/Services/Social/social_internal.h"
"${PATH_TO_ROOT}/Source/Services/Social/profile_internal.h"
"${PATH_TO_ROOT}/Source/Services/Social/profile_service.cpp"
"${PATH_TO_ROOT}/Source/Services/Social/profile_api.cpp"
PARENT_SCOPE
)
set(${OUT_SOCIAL_MANAGER_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/Social/Manager/peoplehub_service.h"
"${PATH_TO_ROOT}/Source/Services/Social/Manager/peoplehub_service.cpp"
"${PATH_TO_ROOT}/Source/Services/Social/Manager/social_graph.h"
"${PATH_TO_ROOT}/Source/Services/Social/Manager/social_graph.cpp"
"${PATH_TO_ROOT}/Source/Services/Social/Manager/social_manager.cpp"
"${PATH_TO_ROOT}/Source/Services/Social/Manager/social_manager_api.cpp"
"${PATH_TO_ROOT}/Source/Services/Social/Manager/social_manager_internal.h"
"${PATH_TO_ROOT}/Source/Services/Social/Manager/social_manager_user_group.h"
"${PATH_TO_ROOT}/Source/Services/Social/Manager/social_manager_user_group.cpp"
PARENT_SCOPE
)
set(${OUT_STATS_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/Stats/requested_statistics.cpp"
"${PATH_TO_ROOT}/Source/Services/Stats/service_configuration_statistic.cpp"
"${PATH_TO_ROOT}/Source/Services/Stats/statistic.cpp"
"${PATH_TO_ROOT}/Source/Services/Stats/user_statistics_result.cpp"
"${PATH_TO_ROOT}/Source/Services/Stats/user_statistics_service.cpp"
"${PATH_TO_ROOT}/Source/Services/Stats/user_statistics_api.cpp"
"${PATH_TO_ROOT}/Source/Services/Stats/statistic_change_subscription.cpp"
"${PATH_TO_ROOT}/Source/Services/Stats/user_statistics_internal.h"
"${PATH_TO_ROOT}/Source/Services/Stats/title_managed_statistics_internal.h"
"${PATH_TO_ROOT}/Source/Services/Stats/title_managed_statistics_service.cpp"
"${PATH_TO_ROOT}/Source/Services/Stats/title_managed_statistics_api.cpp"
PARENT_SCOPE
)
set(${OUT_MATCMAKING_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/Matchmaking/hopper_statistics_response.cpp"
"${PATH_TO_ROOT}/Source/Services/Matchmaking/matchmaking_service.cpp"
"${PATH_TO_ROOT}/Source/Services/Matchmaking/match_ticket_details_response.cpp"
"${PATH_TO_ROOT}/Source/Services/Matchmaking/matchmaking_internal.h"
PARENT_SCOPE
)
set(${OUT_MULTIPLAYER_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_activity_handle_post_request.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_activity_query_post_request.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_invite_handle_post_request.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_service.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_search_handle_details.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_search_handle_request.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_query_search_handle_request.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_session.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_session_member.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_session_reference.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_service.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_transfer_handle_post_request.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_subscription.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_internal.h"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_serializers.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/multiplayer_api.cpp"
PARENT_SCOPE
)
set(${OUT_MULTIPLAYER_MANAGER_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_match_client.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_session_writer.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_client_manager.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_client_pending_reader.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_client_pending_request.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_game_client.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_member.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_game_session.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_lobby_client.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_local_user_manager.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_lobby_session.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_local_user.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_manager.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_manager_utils.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_manager_internal.h"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_event_queue.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_event_args.cpp"
"${PATH_TO_ROOT}/Source/Services/Multiplayer/Manager/multiplayer_manager_api.cpp"
PARENT_SCOPE
)
set(${OUT_STRINGVERIFY_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/StringVerify/string_service.cpp"
"${PATH_TO_ROOT}/Source/Services/StringVerify/string_service_internal.h"
"${PATH_TO_ROOT}/Source/Services/StringVerify/verify_string_result.cpp"
PARENT_SCOPE
)
set(${OUT_MULTIPLAYERACTIVITY_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/MultiplayerActivity/multiplayer_activity_api.cpp"
"${PATH_TO_ROOT}/Source/Services/MultiplayerActivity/multiplayer_activity_internal.h"
"${PATH_TO_ROOT}/Source/Services/MultiplayerActivity/multiplayer_activity_service.cpp"
"${PATH_TO_ROOT}/Source/Services/MultiplayerActivity/multiplayer_activity_info.cpp"
PARENT_SCOPE
)
set(${OUT_REALTIMEACTIVITY_MANAGER_SOURCE_FILES}
"${PATH_TO_ROOT}/Source/Services/RealTimeActivityManager/real_time_activity_manager.h"
"${PATH_TO_ROOT}/Source/Services/RealTimeActivityManager/real_time_activity_manager.cpp"
"${PATH_TO_ROOT}/Source/Services/RealTimeActivityManager/real_time_activity_connection.h"
"${PATH_TO_ROOT}/Source/Services/RealTimeActivityManager/real_time_activity_connection.cpp"
"${PATH_TO_ROOT}/Source/Services/RealTimeActivityManager/real_time_activity_subscription.h"
"${PATH_TO_ROOT}/Source/Services/RealTimeActivityManager/real_time_activity_api.cpp"
PARENT_SCOPE
)
endfunction()

Просмотреть файл

@ -0,0 +1,231 @@
# Expected format for each line is "filename, quality" where filename is the name Noggin generates for the API.
# In most cases, filename is the same as the API name. Method names are the exception and look like this: classname_methodname.md.
# Example of a class method:
# IDxcPdbUtils_GetArg.md, good
# Example of an enum:
# xsystemdevicetype.md, good
#
# If the --override-file option is not specified, Noggin looks for this file in C:\Users\<username>\Documents\Headers
#
# multiplayer_c
xblmultiplayerarbitrationserver.md, good, task 31827719
xblmultiplayergetactivitiesforsocialgroupasync.md, good, task 33100385
xblmultiplayergetactivitiesforsocialgroupresult.md, good, task 33100385
xblmultiplayergetactivitiesforsocialgroupresultcount.md, good, task 33100385
xblmultiplayergetactivitiesforusersasync.md, good, task 33100385
xblmultiplayergetactivitiesforusersresult.md, good, task 33100385
xblmultiplayergetactivitiesforusersresultcount.md, good, task 33100385
xblmultiplayergetactivitieswithpropertiesforsocialgroupasync.md, good, task 33100385
xblmultiplayergetactivitieswithpropertiesforsocialgroupresult.md, good, task 33100385
xblmultiplayergetactivitieswithpropertiesforsocialgroupresultsize.md, good, task 33100385
xblmultiplayergetactivitieswithpropertiesforusersasync.md, good, task 33100385
xblmultiplayergetactivitieswithpropertiesforusersresult.md, good, task 33100385
xblmultiplayergetactivitieswithpropertiesforusersresultsize.md, good, task 33100385
xblmultiplayerinitializationstage.md, good, task 33100385
xblmultiplayermeasurementfailure.md, good, task 33100385
xblmultiplayermetrics.md, good, task 33100385
xblmultiplayersessionrestriction.md, good, task 33100385
xblmultiplayersessionstatus.md, good, task 33100385
xblmultiplayertournamentteam.md, good, task 31827719
xblnetworkaddresstranslationsetting.md, good, task 33100385
xbltournamentarbitrationstate.md, good, task 31827719
xbltournamentarbitrationstatus.md, good, task 31827719
xbltournamentgameresult.md, good, task 31827719
xbltournamentgameresultsource.md, good, task 31827719
xbltournamentgameresultwithrank.md, good, task 31827719
xbltournamentregistrationreason.md, good, task 31827719
xbltournamentregistrationstate.md, good, task 31827719
xbltournamentreference.md, good, task 31827719
xbltournamentteamresult.md, good, task 31827719
multiplayer_c\enums\xblmultiplayermeasurementfailure.md, good, 5/7 doc review
multiplayer_c\enums\xblmultiplayermetrics.md, good, 5/7 doc review
multiplayer_c\enums\xblmultiplayersessionchangetypes.md, good, 5/7 doc review
multiplayer_c\enums\xblmultiplayersessionvisibility.md, good, 5/7 doc review
multiplayer_c\enums\xblnetworkaddresstranslationsetting.md, good, 5/7 doc review
multiplayer_c\enums\xbltournamentarbitrationstate.md, good, 5/7 doc review
multiplayer_c\enums\xbltournamentarbitrationstatus.md, good, 5/7 doc review
multiplayer_c\enums\xbltournamentgameresult.md, good, 5/7 doc review
multiplayer_c\enums\xbltournamentgameresultsource.md, good, 5/7 doc review
multiplayer_c\enums\xbltournamentregistrationreason.md, good, 5/7 doc review
multiplayer_c\enums\xbltournamentregistrationstate.md, good, 5/7 doc review
multiplayer_c\enums\xblwritesessionstatus.md, good, 5/7 doc review
multiplayer_c\functions\xblmultiplayersessionreferencecreate.md, good, task 33320134
multiplayer_c\functions\xblmultiplayersessionreferenceisvalid.md, good, task 33320134
multiplayer_c\functions\xblmultiplayersessionreferenceparsefromuripath.md, good, task 33320134
multiplayer_c\functions\xblmultiplayersessionreferencetouripath.md, good, task 33320134
multiplayer_c\structs\xblmultiplayermatchmakingserver.md, good, task 33320134
multiplayer_c\structs\xblmultiplayersessionconstants.md, good, task 33320134
multiplayer_c\structs\xblmultiplayertournamentsserver.md, good, task 33320134
#
# multiplayer_activity_c
xblmultiplayeractivityaddinvitehandler.md, good
xblmultiplayeractivityencountertype.md, good
xblmultiplayeractivityflushrecentplayersasync.md, good
xblmultiplayeractivitygetactivityasync.md, good
xblmultiplayeractivitygetactivityresultsize.md, good
xblmultiplayeractivityinfo.md, good
xblmultiplayeractivityinvitedata.md, good
xblmultiplayeractivityinvitehandler.md, good
xblmultiplayeractivityjoinrestriction.md, good
xblmultiplayeractivityplatform.md, good
xblmultiplayeractivityrecentplayerupdate.md, good
xblmultiplayeractivityremoveinvitehandler.md, good
xblmultiplayeractivityupdaterecentplayers.md, good
multiplayer_activity_c\enums\xblmultiplayeractivityencountertype.md, good, 5/7 doc review
multiplayer_activity_c\enums\xblmultiplayeractivityjoinrestriction.md, good, 5/7 doc review
multiplayer_activity_c\enums\xblmultiplayeractivityplatform.md, good, 5/7 doc review
#
# multiplayer_manager_c
multiplayer_manager_c\enums\xblmultiplayerjoinability.md, good, 5/7 doc review
multiplayer_manager_c\enums\xblmultiplayermatchstatus.md, good, 5/7 doc review
multiplayer_manager_c\enums\xblmultiplayersessiontype.md, good, 5/7 doc review
#
# achievements_c
achievements_c\enums\xblachievementmediaassettype.md, good, 5/7 doc review
achievements_c\enums\xblachievementorderby.md, good, 5/7 doc review
achievements_c\enums\xblachievementparticipationtype.md, good, 5/7 doc review
achievements_c\enums\xblachievementprogressstate.md, good, 5/7 doc review
achievements_c\enums\xblachievementraritycategory.md, good, 5/7 doc review
achievements_c\enums\xblachievementrewardtype.md, good, 5/7 doc review
achievements_c\enums\xblachievementtype.md, good, 5/7 doc review
#
# achievements_manager_c
achievements_manager_c\enums\xblachievementsmanagereventtype.md, good, 5/7 doc review
#
# http_call_c
http_call_c\enums\xblhttpcallresponsebodytype.md, good, 5/7 doc review
#
# leaderboard_c
leaderboard_c\enums\xblleaderboardsortorder.md, good, 5/7 doc review
leaderboard_c\enums\xblsocialgrouptype.md, good, 5/7 doc review
#
# matchmaking_c
matchmaking_c\enums\xblpreservesessionmode.md, good, 5/7 doc review
#
# platform_c
platform_c\enums\xblclientoperationresult.md, good, 5/7 doc review
platform_c\enums\xbllocalstoragewritemode.md, good, 5/7 doc review
#
# presence_c
presence_c\enums\xblpresencebroadcastprovider.md, good, 5/7 doc review
presence_c\enums\xblpresencedetaillevel.md, good, 5/7 doc review
presence_c\enums\xblpresencedevicetype.md, good, 5/7 doc review
presence_c\enums\xblpresencemediaidtype.md, good, 5/7 doc review
presence_c\enums\xblpresencetitlestate.md, good, 5/7 doc review
presence_c\enums\xblpresencetitleviewstate.md, good, 5/7 doc review
presence_c\enums\xblpresenceuserstate.md, good, 5/7 doc review
xblachievementsresulthandle.md,good, TOCDesigner 5/17/2021
xblachievementsmanagerresulthandle.md,good, TOCDesigner 5/17/2021
xblhttpcallhandle.md,good, TOCDesigner 5/17/2021
xblmultiplayersearchhandle.md,good, TOCDesigner 5/17/2021
xblmultiplayersessionhandle.md,good, TOCDesigner 5/17/2021
xblmultiplayereventargshandle.md,good, TOCDesigner 5/17/2021
xblclientoperationhandle.md,good, TOCDesigner 5/17/2021
xblpresencerecordhandle.md,good, TOCDesigner 5/17/2021
xblsocialrelationshipresulthandle.md,good, TOCDesigner 5/17/2021
xblsocialmanagerusergrouphandle.md,good, TOCDesigner 5/17/2021
xbltitlestorageblobmetadataresulthandle.md,good, TOCDesigner 5/17/2021
xblcontexthandle.md,good, TOCDesigner 5/17/2021
xblpermission.md,good, TOCDesigner 5/18/2021
xblpermissiondenyreason.md,good, TOCDesigner 5/18/2021
xblprivacysetting.md,good, TOCDesigner 5/18/2021
xblprivilege.md,good, TOCDesigner 5/18/2021
xblreputationfeedbacktype.md,good, TOCDesigner 5/18/2021
xblsocialnotificationtype.md,good, TOCDesigner 5/18/2021
xblsocialrelationshipfilter.md,good, TOCDesigner 5/18/2021
xblpresencefilter.md,good, TOCDesigner 5/18/2021
xblrelationshipfilter.md,good, TOCDesigner 5/18/2021
xblsocialmanagereventtype.md,good, TOCDesigner 5/18/2021
xblsocialmanagerextradetaillevel.md,good, TOCDesigner 5/18/2021
xblsocialusergrouptype.md,good, TOCDesigner 5/18/2021
xblverifystringresultcode.md,good, TOCDesigner 5/18/2021
xbltitlemanagedstattype.md,good, TOCDesigner 5/18/2021
xblapitype.md,good, TOCDesigner 5/18/2021
xblpermissioncheckresult.md,good, TOCDesigner 5/18/2021
xblpermissiondenyreasondetails.md,good, TOCDesigner 5/18/2021
xblachievement.md,good, TOCDesigner 5/18/2021
xblachievementmediaasset.md,good, TOCDesigner 5/18/2021
xblachievementprogression.md,good, TOCDesigner 5/18/2021
xblachievementrequirement.md,good, TOCDesigner 5/18/2021
xblachievementreward.md,good, TOCDesigner 5/18/2021
xblachievementtimewindow.md,good, TOCDesigner 5/18/2021
xblachievementtitleassociation.md,good, TOCDesigner 5/18/2021
xblleaderboardcolumn.md,good, TOCDesigner 5/18/2021
xblleaderboardquery.md,good, TOCDesigner 5/18/2021
xblleaderboardresult.md,good, TOCDesigner 5/18/2021
xblleaderboardrow.md,good, TOCDesigner 5/18/2021
xbluserprofile.md,good, TOCDesigner 5/18/2021
xblreputationfeedbackitem.md,good, TOCDesigner 5/18/2021
xblsocialrelationship.md,good, TOCDesigner 5/18/2021
xblpreferredcolor.md,good, TOCDesigner 5/18/2021
xblsocialmanagerevent.md,good, TOCDesigner 5/18/2021
xblsocialmanagerpresencerecord.md,good, TOCDesigner 5/18/2021
xblsocialmanagerpresencetitlerecord.md,good, TOCDesigner 5/18/2021
xblsocialmanageruser.md,good, TOCDesigner 5/18/2021
xbltitlehistory.md,good, TOCDesigner 5/18/2021
xblverifystringresult.md,good, TOCDesigner 5/18/2021
xbltitlemanagedstatistic.md,good, TOCDesigner 5/18/2021
xblrequestedstatistics.md,good, TOCDesigner 5/18/2021
xblserviceconfigurationstatistic.md,good, TOCDesigner 5/18/2021
xblstatistic.md,good, TOCDesigner 5/18/2021
xblstatisticchangeeventargs.md,good, TOCDesigner 5/18/2021
xbluserstatisticsresult.md,good, TOCDesigner 5/18/2021
xblachievementunlockevent.md,good, TOCDesigner 5/19/2021
xblachievementprogresschangeentry.md,good, TOCDesigner 5/19/2021
xblachievementprogresschangeeventargs.md,good, TOCDesigner 5/19/2021
xblachievementsmanagersortorder.md,good, TOCDesigner 5/19/2021
xblachievementsmanagerevent.md,good, TOCDesigner 5/19/2021
xblerrorcondition.md,good, TOCDesigner 5/19/2021
xblleaderboardstattype.md,good, TOCDesigner 5/19/2021
xblleaderboardquerytype.md,good, TOCDesigner 5/19/2021
xblticketstatus.md,good, TOCDesigner 5/19/2021
xblcreatematchticketresponse.md,good, TOCDesigner 5/19/2021
xblhopperstatisticsresponse.md,good, TOCDesigner 5/19/2021
xblmatchticketdetailsresponse.md,good, TOCDesigner 5/19/2021
xblmatchmakingstatus.md,good, TOCDesigner 5/19/2021
xblmultiplayersessionmemberstatus.md,good, TOCDesigner 5/19/2021
xblmultiplayersessionrestriction.md,good, TOCDesigner 5/19/2021
xblmultiplayersessionwritemode.md,good, TOCDesigner 5/19/2021
xblmutablerolesettings.md,good, TOCDesigner 5/19/2021
xbldevicetoken.md,good, TOCDesigner 5/19/2021
xblformattedsecuredeviceaddress.md,good, TOCDesigner 5/19/2021
xblmultiplayeractivitydetails.md,good, TOCDesigner 5/19/2021
xblmultiplayerinvitehandle.md,good, TOCDesigner 5/19/2021
xblmultiplayermemberinitialization.md,good, TOCDesigner 5/19/2021
xblmultiplayerpeertohostrequirements.md,good, TOCDesigner 5/19/2021
xblmultiplayerpeertopeerrequirements.md,good, TOCDesigner 5/19/2021
xblmultiplayerrole.md,good, TOCDesigner 5/19/2021
xblmultiplayerroletype.md,good, TOCDesigner 5/19/2021
xblmultiplayersessioncapabilities.md,good, TOCDesigner 5/19/2021
xblmultiplayersessionchangeeventargs.md,good, TOCDesigner 5/19/2021
xblmultiplayersessionhandleid.md,good, TOCDesigner 5/19/2021
xblmultiplayersessioninitargs.md,good, TOCDesigner 5/19/2021
xblmultiplayersessionmember.md,good, TOCDesigner 5/19/2021
xblmultiplayersessionmemberrole.md,good, TOCDesigner 5/19/2021
xblmultiplayersessionnumberattribute.md,good, TOCDesigner 5/19/2021
xblmultiplayersessionquery.md,good, TOCDesigner 5/19/2021
xblmultiplayersessionqueryresult.md,good, TOCDesigner 5/19/2021
xblmultiplayersessionreference.md,good, TOCDesigner 5/19/2021
xblmultiplayersessionreferenceuri.md,good, TOCDesigner 5/19/2021
xblmultiplayersessionstringattribute.md,good, TOCDesigner 5/19/2021
xblmultiplayersessiontag.md,good, TOCDesigner 5/19/2021
xblmultiplayertournamentteam.md,good, TOCDesigner 5/19/2021
xblmultiplayereventtype.md,good, TOCDesigner 5/19/2021
xblmultiplayerconnectionaddressdevicetokenpair.md,good, TOCDesigner 5/19/2021
xblmultiplayermanagermember.md,good, TOCDesigner 5/19/2021
xblmultiplayerperformqosmeasurementsargs.md,good, TOCDesigner 5/19/2021
xblpresencebroadcastrecord.md,good, TOCDesigner 5/19/2021
xblpresencedevicerecord.md,good, TOCDesigner 5/19/2021
xblpresencequeryfilters.md,good, TOCDesigner 5/19/2021
xblpresencerichpresenceids.md,good, TOCDesigner 5/19/2021
xblpresencetitlerecord.md,good, TOCDesigner 5/19/2021
xblanonymoususertype.md,good, TOCDesigner 5/19/2021
xblrealtimeactivityconnectionstate.md,good, TOCDesigner 5/19/2021
xblrealtimeactivitysubscriptionstate.md,good, TOCDesigner 5/19/2021
xblrealtimeactivitysubscriptionhandle.md,good, TOCDesigner 5/19/2021
xbltitlestorageblobtype.md,good, TOCDesigner 5/19/2021
xbltitlestorageetagmatchcondition.md,good, TOCDesigner 5/19/2021
xbltitlestoragetype.md,good, TOCDesigner 5/19/2021
xbltitlestorageblobmetadata.md,good, TOCDesigner 5/19/2021
xblguid.md,good, TOCDesigner 5/19/2021

Просмотреть файл

@ -0,0 +1,84 @@
$destRootPath = $args[0]
function Get-BuildId
{
param([Parameter(Mandatory)] [string]$url)
if ($url -is [uri])
{
$url = $url.ToString()
}
if ($url.IndexOf('?') -ge 0)
{
$query = ($url -split '\?')[1]
$query = $query.Split('#')[0]
foreach ($q in ($query -split '&'))
{
$kv = $($q + '=') -split '='
$varName = [uri]::UnescapeDataString($kv[0]).Trim()
$varValue = [uri]::UnescapeDataString($kv[1])
if ($varName -eq "buildId")
{
return $varValue
}
}
}
}
function Get-Tools
{
param([Parameter(Mandatory)] [string]$destRootPath,
[Parameter(Mandatory)] [string]$Trace_Analyzer_BuildUrl,
[Parameter(Mandatory)] [string]$Xbox_Tools_Packaging_BuildUrl,
[Parameter(Mandatory)] [string]$XBL_DevTools_Rolling_BuildUrl
)
$traceAnalyzerBuildId = Get-BuildId $Trace_Analyzer_BuildUrl
$xboxToolsPackagingBuildId = Get-BuildId $Xbox_Tools_Packaging_BuildUrl
$xblDevToolsRollingBuildId = Get-BuildId $XBL_DevTools_Rolling_BuildUrl
$destPath = Join-Path -Path $destRootPath -ChildPath "\toolsArtifacts"
Write-Host ""
Write-Host "`$traceAnalyzerBuildId: $traceAnalyzerBuildId"
Write-Host "`$xboxToolsPackagingBuildId: $xboxToolsPackagingBuildId"
Write-Host "`$xblDevToolsRollingBuildId: $xblDevToolsRollingBuildId"
Write-Host "`$destPath: $destPath"
if (Test-Path $destPath)
{
Remove-Item -LiteralPath $destPath -Force -Recurse
}
mkdir $destPath
# az login if needed
az config set extension.use_dynamic_install=yes_without_prompt
$account = az account show
if( !$account )
{
[Console]::ResetColor()
az login
}
az pipelines runs artifact download --run-id $traceAnalyzerBuildId --path $destPath --artifact-name Trace_Analyzer_PipelineArtifacts_Release
az pipelines runs artifact download --run-id $xboxToolsPackagingBuildId --path $destPath --artifact-name Xbox_Tools_Packaging_PipelineArtifacts_Release
az pipelines runs artifact download --run-id $xblDevToolsRollingBuildId --path $destPath --artifact-name XBL_DevTools_Rolling_PipelineArtifacts_Release
}
if( $destRootPath )
{
Get-Tools $destRootPath
}
else
{
Write-Warning "toolsVpackUpdate.ps1 `"OSPath`""
Write-Warning ""
Write-Warning "Example:"
Write-Warning ".\toolsVpackUpdate.ps1 d:\os"
}

Просмотреть файл

@ -0,0 +1,112 @@
$destOSPath = $args[0]
function Get-BuildId
{
param([Parameter(Mandatory)] [string]$url)
if ($url -is [uri])
{
$url = $url.ToString()
}
if ($url.IndexOf('?') -ge 0)
{
$query = ($url -split '\?')[1]
$query = $query.Split('#')[0]
foreach ($q in ($query -split '&'))
{
$kv = $($q + '=') -split '='
$varName = [uri]::UnescapeDataString($kv[0]).Trim()
$varValue = [uri]::UnescapeDataString($kv[1])
if ($varName -eq "buildId")
{
return $varValue
}
}
}
}
function Get-Tools
{
param([Parameter(Mandatory)] [string]$destOSPath,
[Parameter(Mandatory)] [string]$Trace_Analyzer_BuildUrl,
[Parameter(Mandatory)] [string]$Xbox_Tools_Packaging_BuildUrl,
[Parameter(Mandatory)] [string]$XBL_DevTools_Rolling_BuildUrl
)
$traceAnalyzerBuildId = Get-BuildId $Trace_Analyzer_BuildUrl
$xboxToolsPackagingBuildId = Get-BuildId $Xbox_Tools_Packaging_BuildUrl
$xblDevToolsRollingBuildId = Get-BuildId $XBL_DevTools_Rolling_BuildUrl
$destPathTemp = Join-Path -Path $destOSPath -ChildPath "\obj\tools-vpack-temp"
$destPath = Join-Path -Path $destOSPath -ChildPath "\src\xbox\devex\vs\extensionSdks\xsapi\tools"
Write-Host ""
Write-Host "`$traceAnalyzerBuildId: $traceAnalyzerBuildId"
Write-Host "`$xboxToolsPackagingBuildId: $xboxToolsPackagingBuildId"
Write-Host "`$xblDevToolsRollingBuildId: $xblDevToolsRollingBuildId"
Write-Host "`$destOSPath: $destOSPath"
Write-Host "`$destPathTemp: $destPathTemp"
Write-Host "`$destPath: $destPath"
if (Test-Path $destPathTemp)
{
Remove-Item -LiteralPath $destPathTemp -Force -Recurse
}
mkdir $destPathTemp
# az login if needed
az config set extension.use_dynamic_install=yes_without_prompt
$account = az account show
if( !$account )
{
[Console]::ResetColor()
az login
}
az pipelines runs artifact download --run-id $traceAnalyzerBuildId --path $destPathTemp --artifact-name Trace_Analyzer_PipelineArtifacts_VPack_Release
az pipelines runs artifact download --run-id $xboxToolsPackagingBuildId --path $destPathTemp --artifact-name Xbox_Tools_Packaging_PipelineArtifacts_VPack_Release
az pipelines runs artifact download --run-id $xblDevToolsRollingBuildId --path $destPathTemp --artifact-name XBL_DevTools_Rolling_PipelineArtifacts_VPack_Release
$srcPathTraceAnalyzerMan = Join-Path -Path $destPathTemp -ChildPath "\TraceAnalyzer.man"
$srcPathXboxToolsPackagingMan = Join-Path -Path $destPathTemp -ChildPath "\XboxLiveTools.man"
$srcPathXblDevToolsRollingMan = Join-Path -Path $destPathTemp -ChildPath "\XboxLiveDeveloperTools.Release.man"
$srcPathXblConfig = Join-Path -Path $destPathTemp -ChildPath "\XblConfig.exe"
$srcPathXblPCSandbox = Join-Path -Path $destPathTemp -ChildPath "\XblPCSandbox.exe"
$srcPathXblDevAccount = Join-Path -Path $destPathTemp -ChildPath "\XblDevAccount.exe"
$srcPathXblTestAccountGui = Join-Path -Path $destPathTemp -ChildPath "\XblTestAccountGui.exe"
$srcPathXblPlayerDataReset = Join-Path -Path $destPathTemp -ChildPath "\XblPlayerDataReset.exe"
$srcPathXboxLiveTraceAnalyzer = Join-Path -Path $destPathTemp -ChildPath "\XboxLiveTraceAnalyzer.exe"
$destPathVPack = Join-Path -Path $destPath -ChildPath "\vpack"
$destPathTools = Join-Path -Path $destPath -ChildPath "\xdkbuild"
Copy-Item $srcPathTraceAnalyzerMan -Destination $destPathVPack
Copy-Item $srcPathXboxToolsPackagingMan -Destination $destPathVPack
Copy-Item $srcPathXblDevToolsRollingMan -Destination $destPathVPack
Copy-Item $srcPathXblConfig -Destination $destPathTools
Copy-Item $srcPathXblPCSandbox -Destination $destPathTools
Copy-Item $srcPathXblDevAccount -Destination $destPathTools
Copy-Item $srcPathXblTestAccountGui -Destination $destPathTools
Copy-Item $srcPathXblPlayerDataReset -Destination $destPathTools
Copy-Item $srcPathXboxLiveTraceAnalyzer -Destination $destPathTools
}
if( $destOSPath )
{
Get-Tools $destOSPath
}
else
{
Write-Warning "toolsVpackUpdate.ps1 `"OSPath`""
Write-Warning ""
Write-Warning "Example:"
Write-Warning ".\toolsVpackUpdate.ps1 d:\os"
}

Просмотреть файл

@ -0,0 +1,106 @@
$xmlResultFile = $args[0]
[xml]$xmlContent = Get-Content -Path $xmlResultFile
Write-Host "Parsing: $xmlResultFile"
# Relevant sections in the .trx
$results = $xmlContent.TestRun.Results
$aggregate = $xmlContent.TestRun.ResultSummary
$definitions = $xmlContent.TestRun.TestDefinitions
# Get full run info
$aggregateId = (Get-Date).ticks
$aggregateDuration = New-TimeSpan
$aggregateTestsRan = [int]$aggregate.Counters.executed
$aggregateTimestamp = $aggregate.RunInfos.RunInfo.timestamp
$aggregateTestsFailed = $aggregateTestsRan - $aggregate.Counters.passed
$recordId = $aggregateId + 1
[System.Collections.ArrayList]$aggregateRecord = @()
[System.Collections.ArrayList]$records = @()
$replaceList = @("\t", "\r", "\n")
# Set up test entries and add TestName and ClassName (TestArea)
$definitions.UnitTest | ForEach-Object {
$testId = $_.id
$testName = $_.name
$testArea = ($_.TestMethod.className -split "\.")[-1]
$jsonItem = "{}" | ConvertFrom-Json
$jsonItem | Add-Member -Name "id" -Value $testId -MemberType NoteProperty
$jsonItem | Add-Member -Name "filename" -Value $testArea -MemberType NoteProperty
$jsonItem | Add-Member -Name "testname" -Value $testName -MemberType NoteProperty
$jsonItem | Add-Member -Name "testsuite" -Value "UnitTests" -MemberType NoteProperty
[void]$records.Add($jsonItem)
}
# Add Timestamp, Duration, and Outcome to each entry and Error Logs for failed tests
$results.UnitTestResult | ForEach-Object {
$log = $_.Output.ErrorInfo.Message + $_.Output.ErrorInfo.StackTrace
$testId = $_.testId
$outcome = $_.outcome
$duration = $_.duration
$startTime = $_.startTime
$passed = $False
# Possible outcomes that aren't failures (this list is flexible and can change based on team sentiment)
if ($outcome -eq "passed" -or `
$outcome -eq "passedButRunAborted" -or `
$outcome -eq "notExecuted" -or `
$outcome -eq "completed")
{
$passed = $True
}
# Find corresponding test entry and add remaining fields (and alter the id to a unique id instead of the test's guid)
$record = $records.Where({ $_.id -eq $testId })
$record | Add-Member -Name "id" -Value ($recordId++) -MemberType NoteProperty -Force
$record | Add-Member -Name "passed" -Value $passed -MemberType NoteProperty
$record | Add-Member -Name "outcome" -Value $outcome -MemberType NoteProperty
$record | Add-Member -Name "duration" -Value $duration -MemberType NoteProperty
$record | Add-Member -Name "timestamp" -Value $startTime -MemberType NoteProperty
$record | Add-Member -Name "aggregateid" -Value $aggregateId -MemberType NoteProperty
if (-not $passed)
{
# Double escape special whitespace characters to avoid json issues when uploading
foreach ($key in $replaceList)
{
$log = $log -replace $key, $key
}
$record | Add-Member -Name "log" -Value $log -MemberType NoteProperty
}
$aggregateDuration += [timespan]$duration
}
$count = $records.count
Write-Host "Processed $count tests"
# Create the aggregate entry
$jsonItem = "{}" | ConvertFrom-Json
$jsonItem | Add-Member -Name "id" -Value $aggregateId -MemberType NoteProperty
$jsonItem | Add-Member -Name "duration" -Value $aggregateDuration -MemberType NoteProperty
$jsonItem | Add-Member -Name "testsran" -Value $aggregateTestsRan -MemberType NoteProperty
$jsonItem | Add-Member -Name "timestamp" -Value $aggregateTimestamp -MemberType NoteProperty
$jsonItem | Add-Member -Name "testsuite" -Value "UnitTests" -MemberType NoteProperty
$jsonItem | Add-Member -Name "testsfailed" -Value $aggregateTestsFailed -MemberType NoteProperty
[void]$aggregateRecord.Add($jsonItem)
# Create result files used for data ingestion
$outputDirectory = (Get-Item $xmlResultFile).directory.fullname
$outputFile = Join-Path -Path $outputDirectory -ChildPath "UnitTestResults.json"
$outputJson = "{}" | ConvertFrom-Json
$outputJson | Add-Member -Name "records" -Value $records -MemberType NoteProperty
$outputJson | ConvertTo-Json | Set-Content $outputFile
$outputFile = Join-Path -Path $outputDirectory -ChildPath "UnitTestAggregateResult.json"
$outputJson = "{}" | ConvertFrom-Json
$outputJson | Add-Member -Name "records" -Value $aggregateRecord -MemberType NoteProperty
$outputJson | ConvertTo-Json | Set-Content $outputFile

Просмотреть файл

@ -7,7 +7,7 @@
</PropertyGroup>
<!--Reuse libHttpClient platform detection logic-->
<Import Project="$(XsapiRoot)External\xal\External\libHttpClient\platform_select.props" />
<Import Condition="'$(HCPlatform)' == ''" Project="$(XsapiRoot)External\xal\External\libHttpClient\platform_select.props" />
<PropertyGroup>
<XsapiPlatform>$(HCPlatform)</XsapiPlatform>
</PropertyGroup>
@ -93,10 +93,10 @@
<ItemGroup Condition="'$(XsapiAddProjectReference)' == 'true' AND '$(XsapiImpl)' != 'true' AND '$(ConfigurationType)'!='StaticLibrary'">
<ProjectReference Include="$(XsapiRoot)Build\$(XsapiProjectName)\$(XsapiProjectName).vcxproj">
<Project Condition="'$(XsapiPlatform)' == 'UWP'">{8F96710E-5169-4917-8874-7DE248F4D243}</Project>
<Project Condition="'$(XsapiPlatform)' == 'Win32' AND '$(XsapiToolset)' == '142'">{4F107DE4-98B1-42B7-8767-0B5102C88E4F}</Project>
<Project Condition="'$(XsapiPlatform)' == 'Win32' AND '$(XsapiToolset)' == '142'">{4F107DE4-98B1-42B7-8767-0B5102C88E4F}</Project>
<Project Condition="'$(XsapiPlatform)' == 'Win32' AND '$(XsapiToolset)' == '141'">{4F107DE4-98B1-42B7-8767-0B5102C88E4F}</Project>
<Project Condition="'$(XsapiPlatform)' == 'Win32' AND '$(XsapiToolset)' == '140'">{AB77D282-496D-413F-9A51-F78DF740A82A}</Project>
<Project Condition="'$(XsapiPlatform)' == 'XDK'">{8A112040-CDA1-4490-B518-62DFCC451FA7}</Project>
<Project Condition="'$(XsapiPlatform)' == 'XDK'">{8A112040-CDA1-4490-B518-62DFCC451FA7}</Project>
<Project Condition="'$(XsapiPlatform)' == 'GDK'">{60139f62-bf37-4f11-bd93-5fbf4e92100c}</Project>
<Project Condition="'$(XsapiPlatform)' == 'Android'">{5fa18992-3e85-4090-b21e-6ef7fb613a44}</Project>
<Project Condition="'$(XsapiPlatform)' == 'DesktopBridge' AND '$(XsapiToolset)' == '141'">{B0D02E4C-DB36-416C-8F1E-8666B3FAF876}</Project>