예제 #1
0
        /// <summary>
        /// Tries to retrieve user-data from <see cref="ENetPeer"/> of given type.
        /// </summary>
        /// <typeparam name="TData">The data type.</typeparam>
        /// <param name="peer">The peer that holds the user-data.</param>
        /// <param name="data">The result user-data.</param>
        /// <returns>Returns true if the user-data found; otherwise false.</returns>
        /// <remarks>
        /// If the data type differs from what was supplied to <see cref="SetUserData{TData}(ENetPeer, TData)"/> then return value becomes false.
        /// </remarks>
        public static bool TryGetUserData <TData>(this ENetPeer peer, out TData data)
        {
            var native = peer.GetNativePointer();

            return(TryGetUserData(native->Data, out data));
        }
예제 #2
0
        /// <summary>
        /// An extension method for clearing the user-data.
        /// </summary>
        /// <param name="peer">The peer that holds the user-data.</param>
        public static void UnsetUserData(this ENetPeer peer)
        {
            var native = peer.GetNativePointer();

            UnsetUserData(ref native->Data);
        }
예제 #3
0
        /// <summary>
        /// Sets or overwrites the user-data of the given packet.
        /// </summary>
        /// <typeparam name="TData">The user-data type.</typeparam>
        /// <param name="peer">The peer to store user-data into it's <see cref="ENetPeer.UserData"/> field.</param>
        /// <param name="data">The user-data.</param>
        public static void SetUserData <TData>(this ENetPeer peer, TData data)
        {
            var native = peer.GetNativePointer();

            SetUserData(ref native->Data, data);
        }