// Copyright Epic Games, Inc. All Rights Reserved.
// This file is automatically generated. Changes to this file may be overwritten.
namespace Epic.OnlineServices.Sessions
{
public sealed partial class SessionDetails : Handle
{
public SessionDetails()
{
}
public SessionDetails(System.IntPtr innerHandle) : base(innerHandle)
{
}
///
/// The most recent version of the struct.
///
public const int SessiondetailsAttributeApiLatest = 1;
///
/// The most recent version of the API.
///
public const int SessiondetailsCopyinfoApiLatest = 1;
///
/// The most recent version of the API.
///
public const int SessiondetailsCopysessionattributebyindexApiLatest = 1;
///
/// The most recent version of the API.
///
public const int SessiondetailsCopysessionattributebykeyApiLatest = 1;
///
/// The most recent version of the API.
///
public const int SessiondetailsGetsessionattributecountApiLatest = 1;
///
/// The most recent version of the struct.
///
public const int SessiondetailsInfoApiLatest = 1;
///
/// The most recent version of the struct.
///
public const int SessiondetailsSettingsApiLatest = 3;
///
/// is used to immediately retrieve a copy of session information from a given source such as a active session or a search result.
/// If the call returns an result, the out parameter, OutSessionInfo, must be passed to to release the memory associated with it.
///
///
///
///
/// Structure containing the input parameters
/// Out parameter used to receive the structure.
///
/// if the information is available and passed out in OutSessionInfo
/// if you pass a null pointer for the out parameter
/// if the API version passed in is incorrect
///
public Result CopyInfo(ref SessionDetailsCopyInfoOptions options, out SessionDetailsInfo? outSessionInfo)
{
SessionDetailsCopyInfoOptionsInternal optionsInternal = new SessionDetailsCopyInfoOptionsInternal();
optionsInternal.Set(ref options);
var outSessionInfoAddress = System.IntPtr.Zero;
var funcResult = Bindings.EOS_SessionDetails_CopyInfo(InnerHandle, ref optionsInternal, ref outSessionInfoAddress);
Helper.Dispose(ref optionsInternal);
Helper.Get(outSessionInfoAddress, out outSessionInfo);
if (outSessionInfo != null)
{
Bindings.EOS_SessionDetails_Info_Release(outSessionInfoAddress);
}
return funcResult;
}
///
/// is used to immediately retrieve a copy of session attribution from a given source such as a active session or a search result.
/// If the call returns an result, the out parameter, OutSessionAttribute, must be passed to to release the memory associated with it.
///
///
///
///
/// Structure containing the input parameters
/// Out parameter used to receive the structure.
///
/// if the information is available and passed out in OutSessionAttribute
/// if you pass a null pointer for the out parameter
/// if the API version passed in is incorrect
///
public Result CopySessionAttributeByIndex(ref SessionDetailsCopySessionAttributeByIndexOptions options, out SessionDetailsAttribute? outSessionAttribute)
{
SessionDetailsCopySessionAttributeByIndexOptionsInternal optionsInternal = new SessionDetailsCopySessionAttributeByIndexOptionsInternal();
optionsInternal.Set(ref options);
var outSessionAttributeAddress = System.IntPtr.Zero;
var funcResult = Bindings.EOS_SessionDetails_CopySessionAttributeByIndex(InnerHandle, ref optionsInternal, ref outSessionAttributeAddress);
Helper.Dispose(ref optionsInternal);
Helper.Get(outSessionAttributeAddress, out outSessionAttribute);
if (outSessionAttribute != null)
{
Bindings.EOS_SessionDetails_Attribute_Release(outSessionAttributeAddress);
}
return funcResult;
}
///
/// is used to immediately retrieve a copy of session attribution from a given source such as a active session or a search result.
/// If the call returns an result, the out parameter, OutSessionAttribute, must be passed to to release the memory associated with it.
///
///
///
///
/// Structure containing the input parameters
/// Out parameter used to receive the structure.
///
/// if the information is available and passed out in OutSessionAttribute
/// if you pass a null pointer for the out parameter
/// if the API version passed in is incorrect
///
public Result CopySessionAttributeByKey(ref SessionDetailsCopySessionAttributeByKeyOptions options, out SessionDetailsAttribute? outSessionAttribute)
{
SessionDetailsCopySessionAttributeByKeyOptionsInternal optionsInternal = new SessionDetailsCopySessionAttributeByKeyOptionsInternal();
optionsInternal.Set(ref options);
var outSessionAttributeAddress = System.IntPtr.Zero;
var funcResult = Bindings.EOS_SessionDetails_CopySessionAttributeByKey(InnerHandle, ref optionsInternal, ref outSessionAttributeAddress);
Helper.Dispose(ref optionsInternal);
Helper.Get(outSessionAttributeAddress, out outSessionAttribute);
if (outSessionAttribute != null)
{
Bindings.EOS_SessionDetails_Attribute_Release(outSessionAttributeAddress);
}
return funcResult;
}
///
/// Get the number of attributes associated with this session
///
/// the Options associated with retrieving the attribute count
///
/// number of attributes on the session or 0 if there is an error
///
public uint GetSessionAttributeCount(ref SessionDetailsGetSessionAttributeCountOptions options)
{
SessionDetailsGetSessionAttributeCountOptionsInternal optionsInternal = new SessionDetailsGetSessionAttributeCountOptionsInternal();
optionsInternal.Set(ref options);
var funcResult = Bindings.EOS_SessionDetails_GetSessionAttributeCount(InnerHandle, ref optionsInternal);
Helper.Dispose(ref optionsInternal);
return funcResult;
}
///
/// Release the memory associated with a single session. This must be called on data retrieved from .
///
///
/// - The session handle to release
public void Release()
{
Bindings.EOS_SessionDetails_Release(InnerHandle);
}
}
}