internal void Set(ActiveSessionInfoInternal?other)
 {
     if (other != null)
     {
         SessionName    = other.Value.SessionName;
         LocalUserId    = other.Value.LocalUserId;
         State          = other.Value.State;
         SessionDetails = other.Value.SessionDetails;
     }
 }
 public void Set(ActiveSessionInfo other)
 {
     if (other != null)
     {
         m_ApiVersion   = ActiveSession.ActivesessionCopyinfoApiLatest;
         SessionName    = other.SessionName;
         LocalUserId    = other.LocalUserId;
         State          = other.State;
         SessionDetails = other.SessionDetails;
     }
 }
 public void Set(SessionDetailsInfo other)
 {
     if (other != null)
     {
         m_ApiVersion             = SessionDetails.SessiondetailsInfoApiLatest;
         SessionId                = other.SessionId;
         HostAddress              = other.HostAddress;
         NumOpenPublicConnections = other.NumOpenPublicConnections;
         Settings = other.Settings;
     }
 }
        /// <summary>
        /// <see cref="CopyInfo" /> 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 <see cref="Result.Success" /> result, the out parameter, OutSessionInfo, must be passed to <see cref="Release" /> to release the memory associated with it.
        /// <seealso cref="SessionDetailsInfo" />
        /// <seealso cref="SessionDetailsCopyInfoOptions" />
        /// <seealso cref="Release" />
        /// </summary>
        /// <param name="options">Structure containing the input parameters</param>
        /// <param name="outSessionInfo">Out parameter used to receive the <see cref="SessionDetailsInfo" /> structure.</param>
        /// <returns>
        /// <see cref="Result.Success" /> if the information is available and passed out in OutSessionInfo
        /// <see cref="Result.InvalidParameters" /> if you pass a null pointer for the out parameter
        /// <see cref="Result.IncompatibleVersion" /> if the API version passed in is incorrect
        /// </returns>
        public Result CopyInfo(SessionDetailsCopyInfoOptions options, out SessionDetailsInfo outSessionInfo)
        {
            System.IntPtr optionsAddress = new System.IntPtr();
            Helper.TryMarshalSet <SessionDetailsCopyInfoOptionsInternal, SessionDetailsCopyInfoOptions>(ref optionsAddress, options);

            var outSessionInfoAddress = System.IntPtr.Zero;

            var funcResult = EOS_SessionDetails_CopyInfo(InnerHandle, optionsAddress, ref outSessionInfoAddress);

            Helper.TryMarshalDispose(ref optionsAddress);

            if (Helper.TryMarshalGet <SessionDetailsInfoInternal, SessionDetailsInfo>(outSessionInfoAddress, out outSessionInfo))
            {
                EOS_SessionDetails_Info_Release(outSessionInfoAddress);
            }

            return(funcResult);
        }