• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 package software.amazon.awssdk.crt.s3;
6 
7 import software.amazon.awssdk.crt.auth.credentials.Credentials;
8 
9 /**
10  * The Java object for Native code to invoke.
11  */
12 public class S3ExpressCredentialsProvider {
13 
14     private S3ExpressCredentialsProviderHandler handler;
15 
S3ExpressCredentialsProvider(S3ExpressCredentialsProviderHandler handler)16     public S3ExpressCredentialsProvider(S3ExpressCredentialsProviderHandler handler) {
17         this.handler = handler;
18     }
19 
getS3ExpressCredentials(S3ExpressCredentialsProperties properties, Credentials origCredentials, long nativeHandler)20     public void getS3ExpressCredentials(S3ExpressCredentialsProperties properties, Credentials origCredentials, long nativeHandler) {
21         handler.getS3ExpressCredentials(properties, origCredentials).whenComplete((result, ex) -> {
22             if(ex != null) {
23                 s3expressCredentialsProviderGetCredentialsCompleted(nativeHandler, null);
24             } else {
25                 s3expressCredentialsProviderGetCredentialsCompleted(nativeHandler, result);
26             }
27         });
28     }
29 
destroyProvider()30     public void destroyProvider() throws Exception {
31         /* Block until handler finishes shutdown. It doesn't matter to wait for shutdown */
32         this.handler.destroyProvider().get();
33     }
34 
35     /*******************************************************************************
36      * native methods
37      ******************************************************************************/
s3expressCredentialsProviderGetCredentialsCompleted(long nativeHandler, Credentials credentials)38     private static native void s3expressCredentialsProviderGetCredentialsCompleted(long nativeHandler, Credentials credentials);
39 }
40