You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

376 lines
16 KiB

// Copyright Epic Games, Inc. All Rights Reserved.
// This file is automatically generated. Changes to this file may be overwritten.
namespace Epic.OnlineServices.Auth
{
public sealed partial class AuthInterface : Handle
{
public AuthInterface()
{
}
public AuthInterface(System.IntPtr innerHandle) : base(innerHandle)
{
}
/// <summary>
/// The most recent version of the <see cref="AccountFeatureRestrictedInfo" /> struct.
/// </summary>
public const int AccountfeaturerestrictedinfoApiLatest = 1;
/// <summary>
/// The most recent version of the <see cref="AddNotifyLoginStatusChanged" /> API.
/// </summary>
public const int AddnotifyloginstatuschangedApiLatest = 1;
/// <summary>
/// The most recent version of the <see cref="CopyUserAuthToken" /> API.
/// </summary>
public const int CopyuserauthtokenApiLatest = 1;
/// <summary>
/// The most recent version of the <see cref="Credentials" /> struct.
/// </summary>
public const int CredentialsApiLatest = 3;
/// <summary>
/// The most recent version of the <see cref="DeletePersistentAuth" /> API.
/// </summary>
public const int DeletepersistentauthApiLatest = 2;
/// <summary>
/// The most recent version of the <see cref="LinkAccount" /> API.
/// </summary>
public const int LinkaccountApiLatest = 1;
/// <summary>
/// The most recent version of the <see cref="Login" /> API.
/// </summary>
public const int LoginApiLatest = 2;
/// <summary>
/// The most recent version of the <see cref="Logout" /> API.
/// </summary>
public const int LogoutApiLatest = 1;
/// <summary>
/// The most recent version of the <see cref="PinGrantInfo" /> struct.
/// </summary>
public const int PingrantinfoApiLatest = 2;
/// <summary>
/// The most recent version of the <see cref="Token" /> struct.
/// </summary>
public const int TokenApiLatest = 2;
/// <summary>
/// The most recent version of the <see cref="VerifyUserAuth" /> API.
/// </summary>
public const int VerifyuserauthApiLatest = 1;
/// <summary>
/// Register to receive login status updates.
/// @note must call RemoveNotifyLoginStatusChanged to remove the notification
/// </summary>
/// <param name="options">structure containing the api version of AddNotifyLoginStatusChanged to use</param>
/// <param name="clientData">arbitrary data that is passed back to you in the callback</param>
/// <param name="notification">a callback that is fired when the login status for a user changes</param>
/// <returns>
/// handle representing the registered callback
/// </returns>
public ulong AddNotifyLoginStatusChanged(AddNotifyLoginStatusChangedOptions options, object clientData, OnLoginStatusChangedCallback notification)
{
var optionsAddress = System.IntPtr.Zero;
Helper.TryMarshalSet<AddNotifyLoginStatusChangedOptionsInternal, AddNotifyLoginStatusChangedOptions>(ref optionsAddress, options);
var clientDataAddress = System.IntPtr.Zero;
var notificationInternal = new OnLoginStatusChangedCallbackInternal(OnLoginStatusChangedCallbackInternalImplementation);
Helper.AddCallback(ref clientDataAddress, clientData, notification, notificationInternal);
var funcResult = Bindings.EOS_Auth_AddNotifyLoginStatusChanged(InnerHandle, optionsAddress, clientDataAddress, notificationInternal);
Helper.TryMarshalDispose(ref optionsAddress);
Helper.TryAssignNotificationIdToCallback(clientDataAddress, funcResult);
return funcResult;
}
/// <summary>
/// Fetches a user auth token for an Epic Online Services Account ID.
/// <seealso cref="Release" />
/// </summary>
/// <param name="options">Structure containing the api version of CopyUserAuthToken to use</param>
/// <param name="localUserId">The Epic Online Services Account ID of the user being queried</param>
/// <param name="outUserAuthToken">The auth token for the given user, if it exists and is valid; use <see cref="Release" /> when finished</param>
/// <returns>
/// <see cref="Result.Success" /> if the information is available and passed out in OutUserAuthToken
/// <see cref="Result.InvalidParameters" /> if you pass a null pointer for the out parameter
/// <see cref="Result.NotFound" /> if the auth token is not found or expired.
/// </returns>
public Result CopyUserAuthToken(CopyUserAuthTokenOptions options, EpicAccountId localUserId, out Token outUserAuthToken)
{
var optionsAddress = System.IntPtr.Zero;
Helper.TryMarshalSet<CopyUserAuthTokenOptionsInternal, CopyUserAuthTokenOptions>(ref optionsAddress, options);
var localUserIdInnerHandle = System.IntPtr.Zero;
Helper.TryMarshalSet(ref localUserIdInnerHandle, localUserId);
var outUserAuthTokenAddress = System.IntPtr.Zero;
var funcResult = Bindings.EOS_Auth_CopyUserAuthToken(InnerHandle, optionsAddress, localUserIdInnerHandle, ref outUserAuthTokenAddress);
Helper.TryMarshalDispose(ref optionsAddress);
if (Helper.TryMarshalGet<TokenInternal, Token>(outUserAuthTokenAddress, out outUserAuthToken))
{
Bindings.EOS_Auth_Token_Release(outUserAuthTokenAddress);
}
return funcResult;
}
/// <summary>
/// Deletes a previously received and locally stored persistent auth access token for the currently logged in user of the local device.
///
/// On Desktop and Mobile platforms, the access token is deleted from the keychain of the local user and a backend request is made to revoke the token on the authentication server.
/// On Console platforms, even though the caller is responsible for storing and deleting the access token on the local device,
/// this function should still be called with the access token before its deletion to make the best effort in attempting to also revoke it on the authentication server.
/// If the function would fail on Console, the caller should still proceed as normal to delete the access token locally as intended.
/// </summary>
/// <param name="options">structure containing operation input parameters</param>
/// <param name="clientData">arbitrary data that is passed back to you in the CompletionDelegate</param>
/// <param name="completionDelegate">a callback that is fired when the deletion operation completes, either successfully or in error</param>
public void DeletePersistentAuth(DeletePersistentAuthOptions options, object clientData, OnDeletePersistentAuthCallback completionDelegate)
{
var optionsAddress = System.IntPtr.Zero;
Helper.TryMarshalSet<DeletePersistentAuthOptionsInternal, DeletePersistentAuthOptions>(ref optionsAddress, options);
var clientDataAddress = System.IntPtr.Zero;
var completionDelegateInternal = new OnDeletePersistentAuthCallbackInternal(OnDeletePersistentAuthCallbackInternalImplementation);
Helper.AddCallback(ref clientDataAddress, clientData, completionDelegate, completionDelegateInternal);
Bindings.EOS_Auth_DeletePersistentAuth(InnerHandle, optionsAddress, clientDataAddress, completionDelegateInternal);
Helper.TryMarshalDispose(ref optionsAddress);
}
/// <summary>
/// Fetch an Epic Online Services Account ID that is logged in.
/// </summary>
/// <param name="index">An index into the list of logged in accounts. If the index is out of bounds, the returned Epic Online Services Account ID will be invalid.</param>
/// <returns>
/// The Epic Online Services Account ID associated with the index passed
/// </returns>
public EpicAccountId GetLoggedInAccountByIndex(int index)
{
var funcResult = Bindings.EOS_Auth_GetLoggedInAccountByIndex(InnerHandle, index);
EpicAccountId funcResultReturn;
Helper.TryMarshalGet(funcResult, out funcResultReturn);
return funcResultReturn;
}
/// <summary>
/// Fetch the number of accounts that are logged in.
/// </summary>
/// <returns>
/// the number of accounts logged in.
/// </returns>
public int GetLoggedInAccountsCount()
{
var funcResult = Bindings.EOS_Auth_GetLoggedInAccountsCount(InnerHandle);
return funcResult;
}
/// <summary>
/// Fetches the login status for an Epic Online Services Account ID.
/// </summary>
/// <param name="localUserId">The Epic Online Services Account ID of the user being queried</param>
/// <returns>
/// The enum value of a user's login status
/// </returns>
public LoginStatus GetLoginStatus(EpicAccountId localUserId)
{
var localUserIdInnerHandle = System.IntPtr.Zero;
Helper.TryMarshalSet(ref localUserIdInnerHandle, localUserId);
var funcResult = Bindings.EOS_Auth_GetLoginStatus(InnerHandle, localUserIdInnerHandle);
return funcResult;
}
/// <summary>
/// Link external account by continuing previous login attempt with a continuance token.
///
/// On Desktop and Mobile platforms, the user will be presented the Epic Account Portal to resolve their identity.
///
/// On Console, the user will login to their Epic Account using an external device, e.g. a mobile device or a desktop PC,
/// by browsing to the presented authentication URL and entering the device code presented by the game on the console.
///
/// On success, the user will be logged in at the completion of this action.
/// This will commit this external account to the Epic Account and cannot be undone in the SDK.
/// </summary>
/// <param name="options">structure containing the account credentials to use during the link account operation</param>
/// <param name="clientData">arbitrary data that is passed back to you in the CompletionDelegate</param>
/// <param name="completionDelegate">a callback that is fired when the link account operation completes, either successfully or in error</param>
public void LinkAccount(LinkAccountOptions options, object clientData, OnLinkAccountCallback completionDelegate)
{
var optionsAddress = System.IntPtr.Zero;
Helper.TryMarshalSet<LinkAccountOptionsInternal, LinkAccountOptions>(ref optionsAddress, options);
var clientDataAddress = System.IntPtr.Zero;
var completionDelegateInternal = new OnLinkAccountCallbackInternal(OnLinkAccountCallbackInternalImplementation);
Helper.AddCallback(ref clientDataAddress, clientData, completionDelegate, completionDelegateInternal);
Bindings.EOS_Auth_LinkAccount(InnerHandle, optionsAddress, clientDataAddress, completionDelegateInternal);
Helper.TryMarshalDispose(ref optionsAddress);
}
/// <summary>
/// Login/Authenticate with user credentials.
/// </summary>
/// <param name="options">structure containing the account credentials to use during the login operation</param>
/// <param name="clientData">arbitrary data that is passed back to you in the CompletionDelegate</param>
/// <param name="completionDelegate">a callback that is fired when the login operation completes, either successfully or in error</param>
public void Login(LoginOptions options, object clientData, OnLoginCallback completionDelegate)
{
var optionsAddress = System.IntPtr.Zero;
Helper.TryMarshalSet<LoginOptionsInternal, LoginOptions>(ref optionsAddress, options);
var clientDataAddress = System.IntPtr.Zero;
var completionDelegateInternal = new OnLoginCallbackInternal(OnLoginCallbackInternalImplementation);
Helper.AddCallback(ref clientDataAddress, clientData, completionDelegate, completionDelegateInternal);
Bindings.EOS_Auth_Login(InnerHandle, optionsAddress, clientDataAddress, completionDelegateInternal);
Helper.TryMarshalDispose(ref optionsAddress);
}
/// <summary>
/// Signs the player out of the online service.
/// </summary>
/// <param name="options">structure containing information about which account to log out.</param>
/// <param name="clientData">arbitrary data that is passed back to you in the CompletionDelegate</param>
/// <param name="completionDelegate">a callback that is fired when the logout operation completes, either successfully or in error</param>
public void Logout(LogoutOptions options, object clientData, OnLogoutCallback completionDelegate)
{
var optionsAddress = System.IntPtr.Zero;
Helper.TryMarshalSet<LogoutOptionsInternal, LogoutOptions>(ref optionsAddress, options);
var clientDataAddress = System.IntPtr.Zero;
var completionDelegateInternal = new OnLogoutCallbackInternal(OnLogoutCallbackInternalImplementation);
Helper.AddCallback(ref clientDataAddress, clientData, completionDelegate, completionDelegateInternal);
Bindings.EOS_Auth_Logout(InnerHandle, optionsAddress, clientDataAddress, completionDelegateInternal);
Helper.TryMarshalDispose(ref optionsAddress);
}
/// <summary>
/// Unregister from receiving login status updates.
/// </summary>
/// <param name="inId">handle representing the registered callback</param>
public void RemoveNotifyLoginStatusChanged(ulong inId)
{
Helper.TryRemoveCallbackByNotificationId(inId);
Bindings.EOS_Auth_RemoveNotifyLoginStatusChanged(InnerHandle, inId);
}
/// <summary>
/// Contact the backend service to verify validity of an existing user auth token.
/// This function is intended for server-side use only.
/// </summary>
/// <param name="options">structure containing information about the auth token being verified</param>
/// <param name="clientData">arbitrary data that is passed back to you in the CompletionDelegate</param>
/// <param name="completionDelegate">a callback that is fired when the logout operation completes, either successfully or in error</param>
public void VerifyUserAuth(VerifyUserAuthOptions options, object clientData, OnVerifyUserAuthCallback completionDelegate)
{
var optionsAddress = System.IntPtr.Zero;
Helper.TryMarshalSet<VerifyUserAuthOptionsInternal, VerifyUserAuthOptions>(ref optionsAddress, options);
var clientDataAddress = System.IntPtr.Zero;
var completionDelegateInternal = new OnVerifyUserAuthCallbackInternal(OnVerifyUserAuthCallbackInternalImplementation);
Helper.AddCallback(ref clientDataAddress, clientData, completionDelegate, completionDelegateInternal);
Bindings.EOS_Auth_VerifyUserAuth(InnerHandle, optionsAddress, clientDataAddress, completionDelegateInternal);
Helper.TryMarshalDispose(ref optionsAddress);
}
[MonoPInvokeCallback(typeof(OnDeletePersistentAuthCallbackInternal))]
internal static void OnDeletePersistentAuthCallbackInternalImplementation(System.IntPtr data)
{
OnDeletePersistentAuthCallback callback;
DeletePersistentAuthCallbackInfo callbackInfo;
if (Helper.TryGetAndRemoveCallback<OnDeletePersistentAuthCallback, DeletePersistentAuthCallbackInfoInternal, DeletePersistentAuthCallbackInfo>(data, out callback, out callbackInfo))
{
callback(callbackInfo);
}
}
[MonoPInvokeCallback(typeof(OnLinkAccountCallbackInternal))]
internal static void OnLinkAccountCallbackInternalImplementation(System.IntPtr data)
{
OnLinkAccountCallback callback;
LinkAccountCallbackInfo callbackInfo;
if (Helper.TryGetAndRemoveCallback<OnLinkAccountCallback, LinkAccountCallbackInfoInternal, LinkAccountCallbackInfo>(data, out callback, out callbackInfo))
{
callback(callbackInfo);
}
}
[MonoPInvokeCallback(typeof(OnLoginCallbackInternal))]
internal static void OnLoginCallbackInternalImplementation(System.IntPtr data)
{
OnLoginCallback callback;
LoginCallbackInfo callbackInfo;
if (Helper.TryGetAndRemoveCallback<OnLoginCallback, LoginCallbackInfoInternal, LoginCallbackInfo>(data, out callback, out callbackInfo))
{
callback(callbackInfo);
}
}
[MonoPInvokeCallback(typeof(OnLoginStatusChangedCallbackInternal))]
internal static void OnLoginStatusChangedCallbackInternalImplementation(System.IntPtr data)
{
OnLoginStatusChangedCallback callback;
LoginStatusChangedCallbackInfo callbackInfo;
if (Helper.TryGetAndRemoveCallback<OnLoginStatusChangedCallback, LoginStatusChangedCallbackInfoInternal, LoginStatusChangedCallbackInfo>(data, out callback, out callbackInfo))
{
callback(callbackInfo);
}
}
[MonoPInvokeCallback(typeof(OnLogoutCallbackInternal))]
internal static void OnLogoutCallbackInternalImplementation(System.IntPtr data)
{
OnLogoutCallback callback;
LogoutCallbackInfo callbackInfo;
if (Helper.TryGetAndRemoveCallback<OnLogoutCallback, LogoutCallbackInfoInternal, LogoutCallbackInfo>(data, out callback, out callbackInfo))
{
callback(callbackInfo);
}
}
[MonoPInvokeCallback(typeof(OnVerifyUserAuthCallbackInternal))]
internal static void OnVerifyUserAuthCallbackInternalImplementation(System.IntPtr data)
{
OnVerifyUserAuthCallback callback;
VerifyUserAuthCallbackInfo callbackInfo;
if (Helper.TryGetAndRemoveCallback<OnVerifyUserAuthCallback, VerifyUserAuthCallbackInfoInternal, VerifyUserAuthCallbackInfo>(data, out callback, out callbackInfo))
{
callback(callbackInfo);
}
}
}
}