/// <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)); }
/// <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); }
/// <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); }