Package com.exonum.binding.proxy
Class ProxyDestructor
- java.lang.Object
-
- com.exonum.binding.proxy.ProxyDestructor
-
- All Implemented Interfaces:
CleanAction<Class<?>>
public final class ProxyDestructor extends Object implements CleanAction<Class<?>>
ProxyDestructor is a clean action that destroys a native proxy and closes its native handle.Native proxies do not implement any interface (e.g.,
CloseableNativeProxy
) and use this class so that there is no public #close method available in the interface of the proxy, making the risk of misuse smaller.All method parameters are non-null by default.
This class is not thread-safe.
-
-
Constructor Summary
Constructors Constructor Description ProxyDestructor(NativeHandle nativeHandle, Class<?> proxyClass, LongConsumer destructorFunction)
Creates a new destructor of a native proxy.
-
Method Summary
Modifier and Type Method Description void
clean()
Closes the native handle, so that it can no longer be accessed, and performs a clean action, passing the native handle value.static ProxyDestructor
newRegistered(Cleaner cleaner, NativeHandle nativeHandle, Class<?> proxyClass, LongConsumer destructorFunction)
Creates a new destructor of a native proxy, registered in the given cleaner.Optional<Class<?>>
resourceType()
Returns the description of the type of resource this action corresponds to.String
toString()
-
-
-
Constructor Detail
-
ProxyDestructor
public ProxyDestructor(NativeHandle nativeHandle, Class<?> proxyClass, LongConsumer destructorFunction)
Creates a new destructor of a native proxy.- Parameters:
nativeHandle
- a handle to the native objectproxyClass
- a class of the proxydestructorFunction
- a clean function to perform
-
-
Method Detail
-
newRegistered
@CanIgnoreReturnValue public static ProxyDestructor newRegistered(Cleaner cleaner, NativeHandle nativeHandle, Class<?> proxyClass, LongConsumer destructorFunction)
Creates a new destructor of a native proxy, registered in the given cleaner.- Parameters:
cleaner
- a cleaner to register the destructor innativeHandle
- a handle to the native objectproxyClass
- a class of proxydestructorFunction
- a clean function to perform
-
clean
public void clean()
Closes the native handle, so that it can no longer be accessed, and performs a clean action, passing the native handle value.If native handle is not valid, does nothing.
This method is idempotent.
- Specified by:
clean
in interfaceCleanAction<Class<?>>
-
resourceType
public Optional<Class<?>> resourceType()
Description copied from interface:CleanAction
Returns the description of the type of resource this action corresponds to.- Specified by:
resourceType
in interfaceCleanAction<Class<?>>
-
-