/*
* Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package com.amazonaws.services.cognitosync;
import static java.util.concurrent.Executors.newFixedThreadPool;
import javax.annotation.Generated;
import com.amazonaws.services.cognitosync.model.*;
import com.amazonaws.client.AwsAsyncClientParams;
import com.amazonaws.annotation.ThreadSafe;
import com.amazonaws.ClientConfiguration;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import java.util.concurrent.ExecutorService;
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;
/**
* Client for accessing Amazon Cognito Sync asynchronously. Each asynchronous method will return a Java Future object
* representing the asynchronous operation; overloads which accept an {@code AsyncHandler} can be used to receive
* notification when an asynchronous operation completes.
*
* Amazon Cognito Sync
*
* Amazon Cognito Sync provides an AWS service and client library that enable cross-device syncing of
* application-related user data. High-level client libraries are available for both iOS and Android. You can use these
* libraries to persist data locally so that it's available even if the device is offline. Developer credentials don't
* need to be stored on the mobile device to access the service. You can use Amazon Cognito to obtain a normalized user
* ID and credentials. User data is persisted in a dataset that can store up to 1 MB of key-value pairs, and you can
* have up to 20 datasets per user identity.
*
*
* With Amazon Cognito Sync, the data stored for each identity is accessible only to credentials assigned to that
* identity. In order to use the Cognito Sync service, you need to make API calls using credentials retrieved with Amazon Cognito Identity
* service.
*
*
* If you want to use Cognito Sync in an Android or iOS application, you will probably want to make API calls via the
* AWS Mobile SDK. To learn more, see the Developer Guide for
* Android and the Developer
* Guide for iOS.
*
*/
@ThreadSafe
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class AmazonCognitoSyncAsyncClient extends AmazonCognitoSyncClient implements AmazonCognitoSyncAsync {
private static final int DEFAULT_THREAD_POOL_SIZE = 50;
private final java.util.concurrent.ExecutorService executorService;
/**
* Constructs a new asynchronous client to invoke service methods on Amazon Cognito Sync. A credentials provider
* chain will be used that searches for credentials in this order:
*
* - Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
* - Java System Properties - aws.accessKeyId and aws.secretKey
* - Credential profiles file at the default location (~/.aws/credentials) shared by all AWS SDKs and the AWS CLI
* - Instance profile credentials delivered through the Amazon EC2 metadata service
*
*
* Asynchronous methods are delegated to a fixed-size thread pool containing 50 threads (to match the default
* maximum number of concurrent connections to the service).
*
* @see com.amazonaws.auth.DefaultAWSCredentialsProviderChain
* @see java.util.concurrent.Executors#newFixedThreadPool(int)
* @deprecated use {@link AmazonCognitoSyncAsyncClientBuilder#defaultClient()}
*/
@Deprecated
public AmazonCognitoSyncAsyncClient() {
this(DefaultAWSCredentialsProviderChain.getInstance());
}
/**
* Constructs a new asynchronous client to invoke service methods on Amazon Cognito Sync. A credentials provider
* chain will be used that searches for credentials in this order:
*
* - Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
* - Java System Properties - aws.accessKeyId and aws.secretKey
* - Credential profiles file at the default location (~/.aws/credentials) shared by all AWS SDKs and the AWS CLI
* - Instance profile credentials delivered through the Amazon EC2 metadata service
*
*
* Asynchronous methods are delegated to a fixed-size thread pool containing a number of threads equal to the
* maximum number of concurrent connections configured via {@code ClientConfiguration.getMaxConnections()}.
*
* @param clientConfiguration
* The client configuration options controlling how this client connects to Amazon Cognito Sync (ex: proxy
* settings, retry counts, etc).
*
* @see com.amazonaws.auth.DefaultAWSCredentialsProviderChain
* @see java.util.concurrent.Executors#newFixedThreadPool(int)
* @deprecated use {@link AmazonCognitoSyncAsyncClientBuilder#withClientConfiguration(ClientConfiguration)}
*/
@Deprecated
public AmazonCognitoSyncAsyncClient(ClientConfiguration clientConfiguration) {
this(DefaultAWSCredentialsProviderChain.getInstance(), clientConfiguration, newFixedThreadPool(clientConfiguration.getMaxConnections()));
}
/**
* Constructs a new asynchronous client to invoke service methods on Amazon Cognito Sync using the specified AWS
* account credentials.
*
* Asynchronous methods are delegated to a fixed-size thread pool containing 50 threads (to match the default
* maximum number of concurrent connections to the service).
*
* @param awsCredentials
* The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.
* @see java.util.concurrent.Executors#newFixedThreadPool(int)
* @deprecated use {@link AmazonCognitoSyncAsyncClientBuilder#withCredentials(AWSCredentialsProvider)}
*/
@Deprecated
public AmazonCognitoSyncAsyncClient(AWSCredentials awsCredentials) {
this(awsCredentials, newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE));
}
/**
* Constructs a new asynchronous client to invoke service methods on Amazon Cognito Sync using the specified AWS
* account credentials and executor service. Default client settings will be used.
*
* @param awsCredentials
* The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.
* @param executorService
* The executor service by which all asynchronous requests will be executed.
* @deprecated use {@link AmazonCognitoSyncAsyncClientBuilder#withCredentials(AWSCredentialsProvider)} and
* {@link AmazonCognitoSyncAsyncClientBuilder#withExecutorFactory(com.amazonaws.client.builder.ExecutorFactory)}
*/
@Deprecated
public AmazonCognitoSyncAsyncClient(AWSCredentials awsCredentials, ExecutorService executorService) {
this(awsCredentials, configFactory.getConfig(), executorService);
}
/**
* Constructs a new asynchronous client to invoke service methods on Amazon Cognito Sync using the specified AWS
* account credentials, executor service, and client configuration options.
*
* @param awsCredentials
* The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.
* @param clientConfiguration
* Client configuration options (ex: max retry limit, proxy settings, etc).
* @param executorService
* The executor service by which all asynchronous requests will be executed.
* @deprecated use {@link AmazonCognitoSyncAsyncClientBuilder#withCredentials(AWSCredentialsProvider)} and
* {@link AmazonCognitoSyncAsyncClientBuilder#withClientConfiguration(ClientConfiguration)} and
* {@link AmazonCognitoSyncAsyncClientBuilder#withExecutorFactory(com.amazonaws.client.builder.ExecutorFactory)}
*/
@Deprecated
public AmazonCognitoSyncAsyncClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration, ExecutorService executorService) {
super(awsCredentials, clientConfiguration);
this.executorService = executorService;
}
/**
* Constructs a new asynchronous client to invoke service methods on Amazon Cognito Sync using the specified AWS
* account credentials provider. Default client settings will be used.
*
* Asynchronous methods are delegated to a fixed-size thread pool containing 50 threads (to match the default
* maximum number of concurrent connections to the service).
*
* @param awsCredentialsProvider
* The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
* @see java.util.concurrent.Executors#newFixedThreadPool(int)
* @deprecated use {@link AmazonCognitoSyncAsyncClientBuilder#withCredentials(AWSCredentialsProvider)}
*/
@Deprecated
public AmazonCognitoSyncAsyncClient(AWSCredentialsProvider awsCredentialsProvider) {
this(awsCredentialsProvider, newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE));
}
/**
* Constructs a new asynchronous client to invoke service methods on Amazon Cognito Sync using the provided AWS
* account credentials provider and client configuration options.
*
* Asynchronous methods are delegated to a fixed-size thread pool containing a number of threads equal to the
* maximum number of concurrent connections configured via {@code ClientConfiguration.getMaxConnections()}.
*
* @param awsCredentialsProvider
* The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
* @param clientConfiguration
* Client configuration options (ex: max retry limit, proxy settings, etc).
*
* @see com.amazonaws.auth.DefaultAWSCredentialsProviderChain
* @see java.util.concurrent.Executors#newFixedThreadPool(int)
* @deprecated use {@link AmazonCognitoSyncAsyncClientBuilder#withCredentials(AWSCredentialsProvider)} and
* {@link AmazonCognitoSyncAsyncClientBuilder#withClientConfiguration(ClientConfiguration)}
*/
@Deprecated
public AmazonCognitoSyncAsyncClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) {
this(awsCredentialsProvider, clientConfiguration, newFixedThreadPool(clientConfiguration.getMaxConnections()));
}
/**
* Constructs a new asynchronous client to invoke service methods on Amazon Cognito Sync using the specified AWS
* account credentials provider and executor service. Default client settings will be used.
*
* @param awsCredentialsProvider
* The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
* @param executorService
* The executor service by which all asynchronous requests will be executed.
* @deprecated use {@link AmazonCognitoSyncAsyncClientBuilder#withCredentials(AWSCredentialsProvider)} and
* {@link AmazonCognitoSyncAsyncClientBuilder#withExecutorFactory(com.amazonaws.client.builder.ExecutorFactory)}
*/
@Deprecated
public AmazonCognitoSyncAsyncClient(AWSCredentialsProvider awsCredentialsProvider, ExecutorService executorService) {
this(awsCredentialsProvider, configFactory.getConfig(), executorService);
}
/**
* Constructs a new asynchronous client to invoke service methods on Amazon Cognito Sync using the specified AWS
* account credentials provider, executor service, and client configuration options.
*
* @param awsCredentialsProvider
* The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
* @param clientConfiguration
* Client configuration options (ex: max retry limit, proxy settings, etc).
* @param executorService
* The executor service by which all asynchronous requests will be executed.
* @deprecated use {@link AmazonCognitoSyncAsyncClientBuilder#withCredentials(AWSCredentialsProvider)} and
* {@link AmazonCognitoSyncAsyncClientBuilder#withClientConfiguration(ClientConfiguration)} and
* {@link AmazonCognitoSyncAsyncClientBuilder#withExecutorFactory(com.amazonaws.client.builder.ExecutorFactory)}
*/
@Deprecated
public AmazonCognitoSyncAsyncClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, ExecutorService executorService) {
super(awsCredentialsProvider, clientConfiguration);
this.executorService = executorService;
}
public static AmazonCognitoSyncAsyncClientBuilder asyncBuilder() {
return AmazonCognitoSyncAsyncClientBuilder.standard();
}
/**
* Constructs a new asynchronous client to invoke service methods on Amazon Cognito Sync using the specified
* parameters.
*
* @param asyncClientParams
* Object providing client parameters.
*/
AmazonCognitoSyncAsyncClient(AwsAsyncClientParams asyncClientParams) {
this(asyncClientParams, false);
}
/**
* Constructs a new asynchronous client to invoke service methods on Amazon Cognito Sync using the specified
* parameters.
*
* @param asyncClientParams
* Object providing client parameters.
* @param endpointDiscoveryEnabled
* true will enable endpoint discovery if the service supports it.
*/
AmazonCognitoSyncAsyncClient(AwsAsyncClientParams asyncClientParams, boolean endpointDiscoveryEnabled) {
super(asyncClientParams, endpointDiscoveryEnabled);
this.executorService = asyncClientParams.getExecutor();
}
/**
* Returns the executor service used by this client to execute async requests.
*
* @return The executor service used by this client to execute async requests.
*/
public ExecutorService getExecutorService() {
return executorService;
}
@Override
public java.util.concurrent.Future bulkPublishAsync(BulkPublishRequest request) {
return bulkPublishAsync(request, null);
}
@Override
public java.util.concurrent.Future bulkPublishAsync(final BulkPublishRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final BulkPublishRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public BulkPublishResult call() throws Exception {
BulkPublishResult result = null;
try {
result = executeBulkPublish(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future deleteDatasetAsync(DeleteDatasetRequest request) {
return deleteDatasetAsync(request, null);
}
@Override
public java.util.concurrent.Future deleteDatasetAsync(final DeleteDatasetRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final DeleteDatasetRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public DeleteDatasetResult call() throws Exception {
DeleteDatasetResult result = null;
try {
result = executeDeleteDataset(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future describeDatasetAsync(DescribeDatasetRequest request) {
return describeDatasetAsync(request, null);
}
@Override
public java.util.concurrent.Future describeDatasetAsync(final DescribeDatasetRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final DescribeDatasetRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public DescribeDatasetResult call() throws Exception {
DescribeDatasetResult result = null;
try {
result = executeDescribeDataset(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future describeIdentityPoolUsageAsync(DescribeIdentityPoolUsageRequest request) {
return describeIdentityPoolUsageAsync(request, null);
}
@Override
public java.util.concurrent.Future describeIdentityPoolUsageAsync(final DescribeIdentityPoolUsageRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final DescribeIdentityPoolUsageRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public DescribeIdentityPoolUsageResult call() throws Exception {
DescribeIdentityPoolUsageResult result = null;
try {
result = executeDescribeIdentityPoolUsage(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future describeIdentityUsageAsync(DescribeIdentityUsageRequest request) {
return describeIdentityUsageAsync(request, null);
}
@Override
public java.util.concurrent.Future describeIdentityUsageAsync(final DescribeIdentityUsageRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final DescribeIdentityUsageRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public DescribeIdentityUsageResult call() throws Exception {
DescribeIdentityUsageResult result = null;
try {
result = executeDescribeIdentityUsage(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future getBulkPublishDetailsAsync(GetBulkPublishDetailsRequest request) {
return getBulkPublishDetailsAsync(request, null);
}
@Override
public java.util.concurrent.Future getBulkPublishDetailsAsync(final GetBulkPublishDetailsRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final GetBulkPublishDetailsRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public GetBulkPublishDetailsResult call() throws Exception {
GetBulkPublishDetailsResult result = null;
try {
result = executeGetBulkPublishDetails(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future getCognitoEventsAsync(GetCognitoEventsRequest request) {
return getCognitoEventsAsync(request, null);
}
@Override
public java.util.concurrent.Future getCognitoEventsAsync(final GetCognitoEventsRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final GetCognitoEventsRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public GetCognitoEventsResult call() throws Exception {
GetCognitoEventsResult result = null;
try {
result = executeGetCognitoEvents(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future getIdentityPoolConfigurationAsync(GetIdentityPoolConfigurationRequest request) {
return getIdentityPoolConfigurationAsync(request, null);
}
@Override
public java.util.concurrent.Future getIdentityPoolConfigurationAsync(final GetIdentityPoolConfigurationRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final GetIdentityPoolConfigurationRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public GetIdentityPoolConfigurationResult call() throws Exception {
GetIdentityPoolConfigurationResult result = null;
try {
result = executeGetIdentityPoolConfiguration(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future listDatasetsAsync(ListDatasetsRequest request) {
return listDatasetsAsync(request, null);
}
@Override
public java.util.concurrent.Future listDatasetsAsync(final ListDatasetsRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final ListDatasetsRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public ListDatasetsResult call() throws Exception {
ListDatasetsResult result = null;
try {
result = executeListDatasets(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future listIdentityPoolUsageAsync(ListIdentityPoolUsageRequest request) {
return listIdentityPoolUsageAsync(request, null);
}
@Override
public java.util.concurrent.Future listIdentityPoolUsageAsync(final ListIdentityPoolUsageRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final ListIdentityPoolUsageRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public ListIdentityPoolUsageResult call() throws Exception {
ListIdentityPoolUsageResult result = null;
try {
result = executeListIdentityPoolUsage(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future listRecordsAsync(ListRecordsRequest request) {
return listRecordsAsync(request, null);
}
@Override
public java.util.concurrent.Future listRecordsAsync(final ListRecordsRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final ListRecordsRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public ListRecordsResult call() throws Exception {
ListRecordsResult result = null;
try {
result = executeListRecords(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future registerDeviceAsync(RegisterDeviceRequest request) {
return registerDeviceAsync(request, null);
}
@Override
public java.util.concurrent.Future registerDeviceAsync(final RegisterDeviceRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final RegisterDeviceRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public RegisterDeviceResult call() throws Exception {
RegisterDeviceResult result = null;
try {
result = executeRegisterDevice(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future setCognitoEventsAsync(SetCognitoEventsRequest request) {
return setCognitoEventsAsync(request, null);
}
@Override
public java.util.concurrent.Future setCognitoEventsAsync(final SetCognitoEventsRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final SetCognitoEventsRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public SetCognitoEventsResult call() throws Exception {
SetCognitoEventsResult result = null;
try {
result = executeSetCognitoEvents(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future setIdentityPoolConfigurationAsync(SetIdentityPoolConfigurationRequest request) {
return setIdentityPoolConfigurationAsync(request, null);
}
@Override
public java.util.concurrent.Future setIdentityPoolConfigurationAsync(final SetIdentityPoolConfigurationRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final SetIdentityPoolConfigurationRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public SetIdentityPoolConfigurationResult call() throws Exception {
SetIdentityPoolConfigurationResult result = null;
try {
result = executeSetIdentityPoolConfiguration(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future subscribeToDatasetAsync(SubscribeToDatasetRequest request) {
return subscribeToDatasetAsync(request, null);
}
@Override
public java.util.concurrent.Future subscribeToDatasetAsync(final SubscribeToDatasetRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final SubscribeToDatasetRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public SubscribeToDatasetResult call() throws Exception {
SubscribeToDatasetResult result = null;
try {
result = executeSubscribeToDataset(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future unsubscribeFromDatasetAsync(UnsubscribeFromDatasetRequest request) {
return unsubscribeFromDatasetAsync(request, null);
}
@Override
public java.util.concurrent.Future unsubscribeFromDatasetAsync(final UnsubscribeFromDatasetRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final UnsubscribeFromDatasetRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public UnsubscribeFromDatasetResult call() throws Exception {
UnsubscribeFromDatasetResult result = null;
try {
result = executeUnsubscribeFromDataset(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
@Override
public java.util.concurrent.Future updateRecordsAsync(UpdateRecordsRequest request) {
return updateRecordsAsync(request, null);
}
@Override
public java.util.concurrent.Future updateRecordsAsync(final UpdateRecordsRequest request,
final com.amazonaws.handlers.AsyncHandler asyncHandler) {
final UpdateRecordsRequest finalRequest = beforeClientExecution(request);
return executorService.submit(new java.util.concurrent.Callable() {
@Override
public UpdateRecordsResult call() throws Exception {
UpdateRecordsResult result = null;
try {
result = executeUpdateRecords(finalRequest);
} catch (Exception ex) {
if (asyncHandler != null) {
asyncHandler.onError(ex);
}
throw ex;
}
if (asyncHandler != null) {
asyncHandler.onSuccess(finalRequest, result);
}
return result;
}
});
}
/**
* Shuts down the client, releasing all managed resources. This includes forcibly terminating all pending
* asynchronous service calls. Clients who wish to give pending asynchronous service calls time to complete should
* call {@code getExecutorService().shutdown()} followed by {@code getExecutorService().awaitTermination()} prior to
* calling this method.
*/
@Override
public void shutdown() {
super.shutdown();
executorService.shutdownNow();
}
}