Class CrtResource

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      class  CrtResource.ResourceInstance
      Debug/diagnostic data about a CrtResource object
    • Constructor Summary

      Constructors 
      Constructor Description
      CrtResource()
      Default constructor
    • Constructor Detail

      • CrtResource

        public CrtResource()
        Default constructor
    • Method Detail

      • addReferenceTo

        public void addReferenceTo​(CrtResource resource)
        Marks a resource as referenced by this resource.
        Parameters:
        resource - The resource to add a reference to
      • removeReferenceTo

        public void removeReferenceTo​(CrtResource resource)
        Removes a reference from this resource to another.
        Parameters:
        resource - The resource to remove a reference to
      • getNativeHandle

        public long getNativeHandle()
        returns the native handle associated with this CRTResource.
        Returns:
        native address
      • addRef

        public void addRef()
        Increments the reference count to this resource.
      • isNull

        public boolean isNull()
        Checks if this resource's native handle is NULL. For always-null resources this is always true. For all other resources it means it has already been cleaned up or was not properly constructed.
        Returns:
        true if no native resource is bound, false otherwise
      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
      • decRef

        public void decRef()
        Decrements the reference count to this resource. If zero is reached, begins (and possibly completes) the resource's cleanup process.
      • setDescription

        public void setDescription​(java.lang.String description)
        Sets a custom logging description for this resource
        Parameters:
        description - custom resource description
      • getResourceLogDescription

        public java.lang.String getResourceLogDescription()
        Gets a debug/diagnostic string describing this resource and its reference state
        Returns:
        resource diagnostic string
      • collectNativeResources

        public static void collectNativeResources​(java.util.function.Consumer<java.lang.String> fn)
        Applies a resource description consuming functor to all CRTResource objects
        Parameters:
        fn - function to apply to each resource description
      • collectNativeResource

        public static void collectNativeResource​(java.util.function.Consumer<CrtResource.ResourceInstance> fn)
        Applies a generic diagnostic-gathering functor to all CRTResource objects
        Parameters:
        fn - function to apply to each outstanding Crt resource
      • logNativeResources

        public static void logNativeResources()
        Debug method to log all of the currently un-closed CRTResource objects.
      • logNativeResources

        public static void logNativeResources​(Log.LogLevel logLevel)
      • waitForNoResources

        public static void waitForNoResources()
        Debug/test method to wait for the CRTResource count to drop to zero. Times out with an exception after a period of waiting.