Package software.amazon.awssdk.crt
Class CrtResource
java.lang.Object
software.amazon.awssdk.crt.CrtResource
- All Implemented Interfaces:
AutoCloseable
- Direct Known Subclasses:
AwsSigningConfig,ClientBootstrap,ClientConnection,ClientConnectionContinuation,CredentialsProvider,EccKeyPair,EventLoopGroup,HostResolver,Http2StreamManager,HttpClientConnection,HttpClientConnectionManager,HttpStreamBase,Message,Mqtt5Client,MqttClient,MqttClientConnection,MqttConnectionConfig,MqttRequestResponseClient,Pkcs11Lib,S3Client,S3MetaRequest,ServerBootstrap,ServerConnection,ServerConnectionContinuation,ServerListener,SocketOptions,StreamingOperation,TlsConnectionOptions,TlsContext,TlsContextOptions,TlsContextPkcs11Options
This wraps a native pointer and/or one or more references to an AWS Common Runtime resource. It also ensures
that the first time a resource is referenced, the CRT will be loaded and bound.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclassDebug/diagnostic data about a CrtResource object -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddRef()Increments the reference count to this resource.voidaddReferenceTo(CrtResource resource) Marks a resource as referenced by this resource.voidclose()static voidApplies a generic diagnostic-gathering functor to all CRTResource objectsstatic voidApplies a resource description consuming functor to all CRTResource objectsvoiddecRef()Decrements the reference count to this resource.longreturns the native handle associated with this CRTResource.Gets a debug/diagnostic string describing this resource and its reference statebooleanisNull()Checks if this resource's native handle is NULL.static voidDebug method to log all of the currently un-closed CRTResource objects.static voidlogNativeResources(Log.LogLevel logLevel) voidremoveReferenceTo(CrtResource resource) Removes a reference from this resource to another.voidsetDescription(String description) Sets a custom logging description for this resourcestatic voidDebug/test method to wait for the CRTResource count to drop to zero.
-
Constructor Details
-
CrtResource
public CrtResource()Default constructor
-
-
Method Details
-
addReferenceTo
Marks a resource as referenced by this resource.- Parameters:
resource- The resource to add a reference to
-
removeReferenceTo
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:
closein interfaceAutoCloseable
-
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
Sets a custom logging description for this resource- Parameters:
description- custom resource description
-
getResourceLogDescription
Gets a debug/diagnostic string describing this resource and its reference state- Returns:
- resource diagnostic string
-
collectNativeResources
Applies a resource description consuming functor to all CRTResource objects- Parameters:
fn- function to apply to each resource description
-
collectNativeResource
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
-
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.
-