/// <summary> /// Releases a weak reference to the counter /// </summary> public void ReleaseWeakReference(ESPMode mode) { Native_FReferenceControllerOps.ReleaseWeakReference(ReferenceController, mode); }
/// <summary> /// Adds a weak reference to the counter /// </summary> public void AddWeakReference(ESPMode mode) { Native_FReferenceControllerOps.AddWeakReference(ReferenceController, mode); }
/// <summary> /// Adds a shared reference to the counter ONLY if there is already at least one reference /// </summary> /// <param name="mode"></param> public void ConditionallyAddSharedReference(ESPMode mode) { Native_FReferenceControllerOps.ConditionallyAddSharedReference(ReferenceController, mode); }
/// <summary> /// Returns true if this is the only shared reference to this object. Note that there may be /// outstanding weak references left. /// IMPORTANT: Not necessarily fast! Should only be used for debugging purposes! /// </summary> /// <returns></returns> public bool IsUnique(ESPMode mode) { // Copy of FSharedReferencer<>::IsUnique return(GetSharedReferenceCount(mode) == 1); }
public IntPtr ReferenceController;// Could be called either SharedReferenceCount or ReferenceController (the actual pointer) /// <summary> /// Returns the number of shared references to this object (including this reference.) /// IMPORTANT: Not necessarily fast! Should only be used for debugging purposes! /// </summary> /// <returns></returns> public int GetSharedReferenceCount(ESPMode mode) { return(Native_FReferenceControllerOps.GetSharedReferenceCount(ReferenceController, mode)); }
public string ToString(ESPMode mode) { return("SharedPtr {" + Object + ", " + ReferenceController + ":" + GetSharedReferenceCount(mode) + "}"); }