com.amazonaws.services.sns.AmazonSNSAsyncClient Maven / Gradle / Ivy
Show all versions of aws-sdk-android Show documentation
/*
* Copyright 2010-2015 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.sns;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.handlers.AsyncHandler;
import com.amazonaws.ClientConfiguration;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;
import com.amazonaws.services.sns.model.*;
/**
* Asynchronous client for accessing AmazonSNS.
* All asynchronous calls made using this client are non-blocking. Callers could either
* process the result and handle the exceptions in the worker thread by providing a callback handler
* when making the call, or use the returned Future object to check the result of the call in the calling thread.
* Amazon Simple Notification Service
* Amazon Simple Notification Service (Amazon SNS) is a web service that
* enables you to build distributed web-enabled applications.
* Applications can use Amazon SNS to easily push real-time notification
* messages to interested subscribers over multiple delivery protocols.
* For more information about this product see
* http://aws.amazon.com/sns . For detailed information about Amazon SNS features and their associated API calls, see the Amazon SNS Developer Guide
* .
*
*
* We also provide SDKs that enable you to access Amazon SNS from your
* preferred programming language. The SDKs contain functionality that
* automatically takes care of tasks such as: cryptographically signing
* your service requests, retrying requests, and handling error
* responses. For a list of available SDKs, go to
* Tools for Amazon Web Services
* .
*
*/
public class AmazonSNSAsyncClient extends AmazonSNSClient
implements AmazonSNSAsync {
/**
* Executor service for executing asynchronous requests.
*/
private ExecutorService executorService;
private static final int DEFAULT_THREAD_POOL_SIZE = 50;
/**
* Constructs a new asynchronous client to invoke service methods on
* AmazonSNS. 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
* - Instance profile credentials delivered through the Amazon EC2 metadata service
*
*
*
* All service calls made using this new client object are blocking, and will not
* return until the service call completes.
*
* @see DefaultAWSCredentialsProviderChain
*/
public AmazonSNSAsyncClient() {
this(new DefaultAWSCredentialsProviderChain());
}
/**
* Constructs a new asynchronous client to invoke service methods on
* AmazonSNS. 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
* - Instance profile credentials delivered through the Amazon EC2 metadata service
*
*
*
* All service calls made using this new client object are blocking, and will not
* return until the service call completes.
*
* @param clientConfiguration The client configuration options controlling how this
* client connects to AmazonSNS
* (ex: proxy settings, retry counts, etc.).
*
* @see DefaultAWSCredentialsProviderChain
*/
public AmazonSNSAsyncClient(ClientConfiguration clientConfiguration) {
this(new DefaultAWSCredentialsProviderChain(), clientConfiguration, Executors.newFixedThreadPool(clientConfiguration.getMaxConnections()));
}
/**
* Constructs a new asynchronous client to invoke service methods on
* AmazonSNS using the specified AWS account credentials.
* Default client settings will be used, and a fixed size thread pool will be
* created for executing the asynchronous tasks.
*
*
* All calls made using this new client object are non-blocking, and will immediately
* return a Java Future object that the caller can later check to see if the service
* call has actually completed.
*
* @param awsCredentials The AWS credentials (access key ID and secret key) to use
* when authenticating with AWS services.
*/
public AmazonSNSAsyncClient(AWSCredentials awsCredentials) {
this(awsCredentials, Executors.newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE));
}
/**
* Constructs a new asynchronous client to invoke service methods on
* AmazonSNS using the specified AWS account credentials
* and executor service. Default client settings will be used.
*
*
* All calls made using this new client object are non-blocking, and will immediately
* return a Java Future object that the caller can later check to see if the service
* call has actually completed.
*
* @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.
*/
public AmazonSNSAsyncClient(AWSCredentials awsCredentials, ExecutorService executorService) {
super(awsCredentials);
this.executorService = executorService;
}
/**
* Constructs a new asynchronous client to invoke service methods on
* AmazonSNS using the specified AWS account credentials,
* executor service, and client configuration options.
*
*
* All calls made using this new client object are non-blocking, and will immediately
* return a Java Future object that the caller can later check to see if the service
* call has actually completed.
*
* @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.
*/
public AmazonSNSAsyncClient(AWSCredentials awsCredentials,
ClientConfiguration clientConfiguration, ExecutorService executorService) {
super(awsCredentials, clientConfiguration);
this.executorService = executorService;
}
/**
* Constructs a new asynchronous client to invoke service methods on
* AmazonSNS using the specified AWS account credentials provider.
* Default client settings will be used, and a fixed size thread pool will be
* created for executing the asynchronous tasks.
*
*
* All calls made using this new client object are non-blocking, and will immediately
* return a Java Future object that the caller can later check to see if the service
* call has actually completed.
*
* @param awsCredentialsProvider
* The AWS credentials provider which will provide credentials
* to authenticate requests with AWS services.
*/
public AmazonSNSAsyncClient(AWSCredentialsProvider awsCredentialsProvider) {
this(awsCredentialsProvider, Executors.newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE));
}
/**
* Constructs a new asynchronous client to invoke service methods on
* AmazonSNS using the specified AWS account credentials provider
* and executor service. Default client settings will be used.
*
*
* All calls made using this new client object are non-blocking, and will immediately
* return a Java Future object that the caller can later check to see if the service
* call has actually completed.
*
* @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.
*/
public AmazonSNSAsyncClient(AWSCredentialsProvider awsCredentialsProvider, ExecutorService executorService) {
this(awsCredentialsProvider, new ClientConfiguration(), executorService);
}
/**
* Constructs a new asynchronous client to invoke service methods on
* AmazonSNS using the specified AWS account credentials
* provider and client configuration options.
*
*
* All calls made using this new client object are non-blocking, and will immediately
* return a Java Future object that the caller can later check to see if the service
* call has actually completed.
*
* @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).
*/
public AmazonSNSAsyncClient(AWSCredentialsProvider awsCredentialsProvider,
ClientConfiguration clientConfiguration) {
this(awsCredentialsProvider, clientConfiguration, Executors.newFixedThreadPool(clientConfiguration.getMaxConnections()));
}
/**
* Constructs a new asynchronous client to invoke service methods on
* AmazonSNS using the specified AWS account credentials
* provider, executor service, and client configuration options.
*
*
* All calls made using this new client object are non-blocking, and will immediately
* return a Java Future object that the caller can later check to see if the service
* call has actually completed.
*
* @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.
*/
public AmazonSNSAsyncClient(AWSCredentialsProvider awsCredentialsProvider,
ClientConfiguration clientConfiguration, ExecutorService executorService) {
super(awsCredentialsProvider, clientConfiguration);
this.executorService = executorService;
}
/**
* Returns the executor service used by this async client to execute
* requests.
*
* @return The executor service used by this async client to execute
* requests.
*/
public ExecutorService getExecutorService() {
return executorService;
}
/**
* 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 getExecutorService().shutdown() followed by
* getExecutorService().awaitTermination() prior to calling this method.
*/
@Override
public void shutdown() {
super.shutdown();
executorService.shutdownNow();
}
/**
*
* Verifies an endpoint owner's intent to receive messages by validating
* the token sent to the endpoint by an earlier Subscribe
* action. If the token is valid, the action creates a new subscription
* and returns its Amazon Resource Name (ARN). This call requires an AWS
* signature only when the AuthenticateOnUnsubscribe
flag is
* set to "true".
*
*
* @param confirmSubscriptionRequest Container for the necessary
* parameters to execute the ConfirmSubscription operation on AmazonSNS.
*
* @return A Java Future object containing the response from the
* ConfirmSubscription service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future confirmSubscriptionAsync(final ConfirmSubscriptionRequest confirmSubscriptionRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public ConfirmSubscriptionResult call() throws Exception {
return confirmSubscription(confirmSubscriptionRequest);
}
});
}
/**
*
* Verifies an endpoint owner's intent to receive messages by validating
* the token sent to the endpoint by an earlier Subscribe
* action. If the token is valid, the action creates a new subscription
* and returns its Amazon Resource Name (ARN). This call requires an AWS
* signature only when the AuthenticateOnUnsubscribe
flag is
* set to "true".
*
*
* @param confirmSubscriptionRequest Container for the necessary
* parameters to execute the ConfirmSubscription operation on AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* ConfirmSubscription service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future confirmSubscriptionAsync(
final ConfirmSubscriptionRequest confirmSubscriptionRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public ConfirmSubscriptionResult call() throws Exception {
ConfirmSubscriptionResult result;
try {
result = confirmSubscription(confirmSubscriptionRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(confirmSubscriptionRequest, result);
return result;
}
});
}
/**
*
* Creates a platform application object for one of the supported push
* notification services, such as APNS and GCM, to which devices and
* mobile apps may register. You must specify PlatformPrincipal and
* PlatformCredential attributes when using the
* CreatePlatformApplication
action. The PlatformPrincipal
* is received from the notification service. For APNS/APNS_SANDBOX,
* PlatformPrincipal is "SSL certificate". For GCM, PlatformPrincipal is
* not applicable. For ADM, PlatformPrincipal is "client id". The
* PlatformCredential is also received from the notification service. For
* APNS/APNS_SANDBOX, PlatformCredential is "private key". For GCM,
* PlatformCredential is "API key". For ADM, PlatformCredential is
* "client secret". The PlatformApplicationArn that is returned when
* using CreatePlatformApplication
is then used as an
* attribute for the CreatePlatformEndpoint
action. For more
* information, see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* @param createPlatformApplicationRequest Container for the necessary
* parameters to execute the CreatePlatformApplication operation on
* AmazonSNS.
*
* @return A Java Future object containing the response from the
* CreatePlatformApplication service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future createPlatformApplicationAsync(final CreatePlatformApplicationRequest createPlatformApplicationRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public CreatePlatformApplicationResult call() throws Exception {
return createPlatformApplication(createPlatformApplicationRequest);
}
});
}
/**
*
* Creates a platform application object for one of the supported push
* notification services, such as APNS and GCM, to which devices and
* mobile apps may register. You must specify PlatformPrincipal and
* PlatformCredential attributes when using the
* CreatePlatformApplication
action. The PlatformPrincipal
* is received from the notification service. For APNS/APNS_SANDBOX,
* PlatformPrincipal is "SSL certificate". For GCM, PlatformPrincipal is
* not applicable. For ADM, PlatformPrincipal is "client id". The
* PlatformCredential is also received from the notification service. For
* APNS/APNS_SANDBOX, PlatformCredential is "private key". For GCM,
* PlatformCredential is "API key". For ADM, PlatformCredential is
* "client secret". The PlatformApplicationArn that is returned when
* using CreatePlatformApplication
is then used as an
* attribute for the CreatePlatformEndpoint
action. For more
* information, see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* @param createPlatformApplicationRequest Container for the necessary
* parameters to execute the CreatePlatformApplication operation on
* AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* CreatePlatformApplication service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future createPlatformApplicationAsync(
final CreatePlatformApplicationRequest createPlatformApplicationRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public CreatePlatformApplicationResult call() throws Exception {
CreatePlatformApplicationResult result;
try {
result = createPlatformApplication(createPlatformApplicationRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(createPlatformApplicationRequest, result);
return result;
}
});
}
/**
*
* Returns all of the properties of a topic. Topic properties returned
* might differ based on the authorization of the user.
*
*
* @param getTopicAttributesRequest Container for the necessary
* parameters to execute the GetTopicAttributes operation on AmazonSNS.
*
* @return A Java Future object containing the response from the
* GetTopicAttributes service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future getTopicAttributesAsync(final GetTopicAttributesRequest getTopicAttributesRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public GetTopicAttributesResult call() throws Exception {
return getTopicAttributes(getTopicAttributesRequest);
}
});
}
/**
*
* Returns all of the properties of a topic. Topic properties returned
* might differ based on the authorization of the user.
*
*
* @param getTopicAttributesRequest Container for the necessary
* parameters to execute the GetTopicAttributes operation on AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* GetTopicAttributes service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future getTopicAttributesAsync(
final GetTopicAttributesRequest getTopicAttributesRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public GetTopicAttributesResult call() throws Exception {
GetTopicAttributesResult result;
try {
result = getTopicAttributes(getTopicAttributesRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(getTopicAttributesRequest, result);
return result;
}
});
}
/**
*
* Prepares to subscribe an endpoint by sending the endpoint a
* confirmation message. To actually create a subscription, the endpoint
* owner must call the ConfirmSubscription
action with the
* token from the confirmation message. Confirmation tokens are valid for
* three days.
*
*
* @param subscribeRequest Container for the necessary parameters to
* execute the Subscribe operation on AmazonSNS.
*
* @return A Java Future object containing the response from the
* Subscribe service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future subscribeAsync(final SubscribeRequest subscribeRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public SubscribeResult call() throws Exception {
return subscribe(subscribeRequest);
}
});
}
/**
*
* Prepares to subscribe an endpoint by sending the endpoint a
* confirmation message. To actually create a subscription, the endpoint
* owner must call the ConfirmSubscription
action with the
* token from the confirmation message. Confirmation tokens are valid for
* three days.
*
*
* @param subscribeRequest Container for the necessary parameters to
* execute the Subscribe operation on AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* Subscribe service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future subscribeAsync(
final SubscribeRequest subscribeRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public SubscribeResult call() throws Exception {
SubscribeResult result;
try {
result = subscribe(subscribeRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(subscribeRequest, result);
return result;
}
});
}
/**
*
* Deletes the endpoint from Amazon SNS. This action is idempotent. For
* more information, see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* @param deleteEndpointRequest Container for the necessary parameters to
* execute the DeleteEndpoint operation on AmazonSNS.
*
* @return A Java Future object containing the response from the
* DeleteEndpoint service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future deleteEndpointAsync(final DeleteEndpointRequest deleteEndpointRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
deleteEndpoint(deleteEndpointRequest);
return null;
}
});
}
/**
*
* Deletes the endpoint from Amazon SNS. This action is idempotent. For
* more information, see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* @param deleteEndpointRequest Container for the necessary parameters to
* execute the DeleteEndpoint operation on AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* DeleteEndpoint service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future deleteEndpointAsync(
final DeleteEndpointRequest deleteEndpointRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
try {
deleteEndpoint(deleteEndpointRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(deleteEndpointRequest, null);
return null;
}
});
}
/**
*
* Allows a topic owner to set an attribute of the topic to a new value.
*
*
* @param setTopicAttributesRequest Container for the necessary
* parameters to execute the SetTopicAttributes operation on AmazonSNS.
*
* @return A Java Future object containing the response from the
* SetTopicAttributes service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future setTopicAttributesAsync(final SetTopicAttributesRequest setTopicAttributesRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
setTopicAttributes(setTopicAttributesRequest);
return null;
}
});
}
/**
*
* Allows a topic owner to set an attribute of the topic to a new value.
*
*
* @param setTopicAttributesRequest Container for the necessary
* parameters to execute the SetTopicAttributes operation on AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* SetTopicAttributes service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future setTopicAttributesAsync(
final SetTopicAttributesRequest setTopicAttributesRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
try {
setTopicAttributes(setTopicAttributesRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(setTopicAttributesRequest, null);
return null;
}
});
}
/**
*
* Removes a statement from a topic's access control policy.
*
*
* @param removePermissionRequest Container for the necessary parameters
* to execute the RemovePermission operation on AmazonSNS.
*
* @return A Java Future object containing the response from the
* RemovePermission service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future removePermissionAsync(final RemovePermissionRequest removePermissionRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
removePermission(removePermissionRequest);
return null;
}
});
}
/**
*
* Removes a statement from a topic's access control policy.
*
*
* @param removePermissionRequest Container for the necessary parameters
* to execute the RemovePermission operation on AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* RemovePermission service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future removePermissionAsync(
final RemovePermissionRequest removePermissionRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
try {
removePermission(removePermissionRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(removePermissionRequest, null);
return null;
}
});
}
/**
*
* Retrieves the endpoint attributes for a device on one of the
* supported push notification services, such as GCM and APNS. For more
* information, see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* @param getEndpointAttributesRequest Container for the necessary
* parameters to execute the GetEndpointAttributes operation on
* AmazonSNS.
*
* @return A Java Future object containing the response from the
* GetEndpointAttributes service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future getEndpointAttributesAsync(final GetEndpointAttributesRequest getEndpointAttributesRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public GetEndpointAttributesResult call() throws Exception {
return getEndpointAttributes(getEndpointAttributesRequest);
}
});
}
/**
*
* Retrieves the endpoint attributes for a device on one of the
* supported push notification services, such as GCM and APNS. For more
* information, see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* @param getEndpointAttributesRequest Container for the necessary
* parameters to execute the GetEndpointAttributes operation on
* AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* GetEndpointAttributes service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future getEndpointAttributesAsync(
final GetEndpointAttributesRequest getEndpointAttributesRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public GetEndpointAttributesResult call() throws Exception {
GetEndpointAttributesResult result;
try {
result = getEndpointAttributes(getEndpointAttributesRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(getEndpointAttributesRequest, result);
return result;
}
});
}
/**
*
* Returns a list of the requester's subscriptions. Each call returns a
* limited list of subscriptions, up to 100. If there are more
* subscriptions, a NextToken
is also returned. Use the
* NextToken
parameter in a new
* ListSubscriptions
call to get further results.
*
*
* @param listSubscriptionsRequest Container for the necessary parameters
* to execute the ListSubscriptions operation on AmazonSNS.
*
* @return A Java Future object containing the response from the
* ListSubscriptions service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future listSubscriptionsAsync(final ListSubscriptionsRequest listSubscriptionsRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public ListSubscriptionsResult call() throws Exception {
return listSubscriptions(listSubscriptionsRequest);
}
});
}
/**
*
* Returns a list of the requester's subscriptions. Each call returns a
* limited list of subscriptions, up to 100. If there are more
* subscriptions, a NextToken
is also returned. Use the
* NextToken
parameter in a new
* ListSubscriptions
call to get further results.
*
*
* @param listSubscriptionsRequest Container for the necessary parameters
* to execute the ListSubscriptions operation on AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* ListSubscriptions service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future listSubscriptionsAsync(
final ListSubscriptionsRequest listSubscriptionsRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public ListSubscriptionsResult call() throws Exception {
ListSubscriptionsResult result;
try {
result = listSubscriptions(listSubscriptionsRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(listSubscriptionsRequest, result);
return result;
}
});
}
/**
*
* Creates an endpoint for a device and mobile app on one of the
* supported push notification services, such as GCM and APNS.
* CreatePlatformEndpoint
requires the
* PlatformApplicationArn that is returned from
* CreatePlatformApplication
. The EndpointArn that is
* returned when using CreatePlatformEndpoint
can then be
* used by the Publish
action to send a message to a mobile
* app or by the Subscribe
action for subscription to a
* topic. The CreatePlatformEndpoint
action is idempotent,
* so if the requester already owns an endpoint with the same device
* token and attributes, that endpoint's ARN is returned without creating
* a new endpoint. For more information, see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* When using CreatePlatformEndpoint
with Baidu, two
* attributes must be provided: ChannelId and UserId. The token field
* must also contain the ChannelId. For more information, see
* Creating an Amazon SNS Endpoint for Baidu
* .
*
*
* @param createPlatformEndpointRequest Container for the necessary
* parameters to execute the CreatePlatformEndpoint operation on
* AmazonSNS.
*
* @return A Java Future object containing the response from the
* CreatePlatformEndpoint service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future createPlatformEndpointAsync(final CreatePlatformEndpointRequest createPlatformEndpointRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public CreatePlatformEndpointResult call() throws Exception {
return createPlatformEndpoint(createPlatformEndpointRequest);
}
});
}
/**
*
* Creates an endpoint for a device and mobile app on one of the
* supported push notification services, such as GCM and APNS.
* CreatePlatformEndpoint
requires the
* PlatformApplicationArn that is returned from
* CreatePlatformApplication
. The EndpointArn that is
* returned when using CreatePlatformEndpoint
can then be
* used by the Publish
action to send a message to a mobile
* app or by the Subscribe
action for subscription to a
* topic. The CreatePlatformEndpoint
action is idempotent,
* so if the requester already owns an endpoint with the same device
* token and attributes, that endpoint's ARN is returned without creating
* a new endpoint. For more information, see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* When using CreatePlatformEndpoint
with Baidu, two
* attributes must be provided: ChannelId and UserId. The token field
* must also contain the ChannelId. For more information, see
* Creating an Amazon SNS Endpoint for Baidu
* .
*
*
* @param createPlatformEndpointRequest Container for the necessary
* parameters to execute the CreatePlatformEndpoint operation on
* AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* CreatePlatformEndpoint service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future createPlatformEndpointAsync(
final CreatePlatformEndpointRequest createPlatformEndpointRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public CreatePlatformEndpointResult call() throws Exception {
CreatePlatformEndpointResult result;
try {
result = createPlatformEndpoint(createPlatformEndpointRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(createPlatformEndpointRequest, result);
return result;
}
});
}
/**
*
* Allows a subscription owner to set an attribute of the topic to a new
* value.
*
*
* @param setSubscriptionAttributesRequest Container for the necessary
* parameters to execute the SetSubscriptionAttributes operation on
* AmazonSNS.
*
* @return A Java Future object containing the response from the
* SetSubscriptionAttributes service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future setSubscriptionAttributesAsync(final SetSubscriptionAttributesRequest setSubscriptionAttributesRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
setSubscriptionAttributes(setSubscriptionAttributesRequest);
return null;
}
});
}
/**
*
* Allows a subscription owner to set an attribute of the topic to a new
* value.
*
*
* @param setSubscriptionAttributesRequest Container for the necessary
* parameters to execute the SetSubscriptionAttributes operation on
* AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* SetSubscriptionAttributes service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future setSubscriptionAttributesAsync(
final SetSubscriptionAttributesRequest setSubscriptionAttributesRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
try {
setSubscriptionAttributes(setSubscriptionAttributesRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(setSubscriptionAttributesRequest, null);
return null;
}
});
}
/**
*
* Creates a topic to which notifications can be published. Users can
* create at most 3000 topics. For more information, see
* http://aws.amazon.com/sns
* . This action is idempotent, so if the requester already owns a topic
* with the specified name, that topic's ARN is returned without creating
* a new topic.
*
*
* @param createTopicRequest Container for the necessary parameters to
* execute the CreateTopic operation on AmazonSNS.
*
* @return A Java Future object containing the response from the
* CreateTopic service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future createTopicAsync(final CreateTopicRequest createTopicRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public CreateTopicResult call() throws Exception {
return createTopic(createTopicRequest);
}
});
}
/**
*
* Creates a topic to which notifications can be published. Users can
* create at most 3000 topics. For more information, see
* http://aws.amazon.com/sns
* . This action is idempotent, so if the requester already owns a topic
* with the specified name, that topic's ARN is returned without creating
* a new topic.
*
*
* @param createTopicRequest Container for the necessary parameters to
* execute the CreateTopic operation on AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* CreateTopic service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future createTopicAsync(
final CreateTopicRequest createTopicRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public CreateTopicResult call() throws Exception {
CreateTopicResult result;
try {
result = createTopic(createTopicRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(createTopicRequest, result);
return result;
}
});
}
/**
*
* Returns all of the properties of a subscription.
*
*
* @param getSubscriptionAttributesRequest Container for the necessary
* parameters to execute the GetSubscriptionAttributes operation on
* AmazonSNS.
*
* @return A Java Future object containing the response from the
* GetSubscriptionAttributes service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future getSubscriptionAttributesAsync(final GetSubscriptionAttributesRequest getSubscriptionAttributesRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public GetSubscriptionAttributesResult call() throws Exception {
return getSubscriptionAttributes(getSubscriptionAttributesRequest);
}
});
}
/**
*
* Returns all of the properties of a subscription.
*
*
* @param getSubscriptionAttributesRequest Container for the necessary
* parameters to execute the GetSubscriptionAttributes operation on
* AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* GetSubscriptionAttributes service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future getSubscriptionAttributesAsync(
final GetSubscriptionAttributesRequest getSubscriptionAttributesRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public GetSubscriptionAttributesResult call() throws Exception {
GetSubscriptionAttributesResult result;
try {
result = getSubscriptionAttributes(getSubscriptionAttributesRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(getSubscriptionAttributesRequest, result);
return result;
}
});
}
/**
*
* Returns a list of the requester's topics. Each call returns a limited
* list of topics, up to 100. If there are more topics, a
* NextToken
is also returned. Use the
* NextToken
parameter in a new ListTopics
call
* to get further results.
*
*
* @param listTopicsRequest Container for the necessary parameters to
* execute the ListTopics operation on AmazonSNS.
*
* @return A Java Future object containing the response from the
* ListTopics service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future listTopicsAsync(final ListTopicsRequest listTopicsRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public ListTopicsResult call() throws Exception {
return listTopics(listTopicsRequest);
}
});
}
/**
*
* Returns a list of the requester's topics. Each call returns a limited
* list of topics, up to 100. If there are more topics, a
* NextToken
is also returned. Use the
* NextToken
parameter in a new ListTopics
call
* to get further results.
*
*
* @param listTopicsRequest Container for the necessary parameters to
* execute the ListTopics operation on AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* ListTopics service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future listTopicsAsync(
final ListTopicsRequest listTopicsRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public ListTopicsResult call() throws Exception {
ListTopicsResult result;
try {
result = listTopics(listTopicsRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(listTopicsRequest, result);
return result;
}
});
}
/**
*
* Deletes a platform application object for one of the supported push
* notification services, such as APNS and GCM. For more information, see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* @param deletePlatformApplicationRequest Container for the necessary
* parameters to execute the DeletePlatformApplication operation on
* AmazonSNS.
*
* @return A Java Future object containing the response from the
* DeletePlatformApplication service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future deletePlatformApplicationAsync(final DeletePlatformApplicationRequest deletePlatformApplicationRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
deletePlatformApplication(deletePlatformApplicationRequest);
return null;
}
});
}
/**
*
* Deletes a platform application object for one of the supported push
* notification services, such as APNS and GCM. For more information, see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* @param deletePlatformApplicationRequest Container for the necessary
* parameters to execute the DeletePlatformApplication operation on
* AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* DeletePlatformApplication service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future deletePlatformApplicationAsync(
final DeletePlatformApplicationRequest deletePlatformApplicationRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
try {
deletePlatformApplication(deletePlatformApplicationRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(deletePlatformApplicationRequest, null);
return null;
}
});
}
/**
*
* Lists the platform application objects for the supported push
* notification services, such as APNS and GCM. The results for
* ListPlatformApplications
are paginated and return a
* limited list of applications, up to 100. If additional records are
* available after the first page results, then a NextToken string will
* be returned. To receive the next page, you call
* ListPlatformApplications
using the NextToken string
* received from the previous call. When there are no more records to
* return, NextToken will be null. For more information, see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* @param listPlatformApplicationsRequest Container for the necessary
* parameters to execute the ListPlatformApplications operation on
* AmazonSNS.
*
* @return A Java Future object containing the response from the
* ListPlatformApplications service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future listPlatformApplicationsAsync(final ListPlatformApplicationsRequest listPlatformApplicationsRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public ListPlatformApplicationsResult call() throws Exception {
return listPlatformApplications(listPlatformApplicationsRequest);
}
});
}
/**
*
* Lists the platform application objects for the supported push
* notification services, such as APNS and GCM. The results for
* ListPlatformApplications
are paginated and return a
* limited list of applications, up to 100. If additional records are
* available after the first page results, then a NextToken string will
* be returned. To receive the next page, you call
* ListPlatformApplications
using the NextToken string
* received from the previous call. When there are no more records to
* return, NextToken will be null. For more information, see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* @param listPlatformApplicationsRequest Container for the necessary
* parameters to execute the ListPlatformApplications operation on
* AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* ListPlatformApplications service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future listPlatformApplicationsAsync(
final ListPlatformApplicationsRequest listPlatformApplicationsRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public ListPlatformApplicationsResult call() throws Exception {
ListPlatformApplicationsResult result;
try {
result = listPlatformApplications(listPlatformApplicationsRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(listPlatformApplicationsRequest, result);
return result;
}
});
}
/**
*
* Sets the attributes for an endpoint for a device on one of the
* supported push notification services, such as GCM and APNS. For more
* information, see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* @param setEndpointAttributesRequest Container for the necessary
* parameters to execute the SetEndpointAttributes operation on
* AmazonSNS.
*
* @return A Java Future object containing the response from the
* SetEndpointAttributes service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future setEndpointAttributesAsync(final SetEndpointAttributesRequest setEndpointAttributesRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
setEndpointAttributes(setEndpointAttributesRequest);
return null;
}
});
}
/**
*
* Sets the attributes for an endpoint for a device on one of the
* supported push notification services, such as GCM and APNS. For more
* information, see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* @param setEndpointAttributesRequest Container for the necessary
* parameters to execute the SetEndpointAttributes operation on
* AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* SetEndpointAttributes service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future setEndpointAttributesAsync(
final SetEndpointAttributesRequest setEndpointAttributesRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
try {
setEndpointAttributes(setEndpointAttributesRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(setEndpointAttributesRequest, null);
return null;
}
});
}
/**
*
* Deletes a subscription. If the subscription requires authentication
* for deletion, only the owner of the subscription or the topic's owner
* can unsubscribe, and an AWS signature is required. If the
* Unsubscribe
call does not require authentication and the
* requester is not the subscription owner, a final cancellation message
* is delivered to the endpoint, so that the endpoint owner can easily
* resubscribe to the topic if the Unsubscribe
request was
* unintended.
*
*
* @param unsubscribeRequest Container for the necessary parameters to
* execute the Unsubscribe operation on AmazonSNS.
*
* @return A Java Future object containing the response from the
* Unsubscribe service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future unsubscribeAsync(final UnsubscribeRequest unsubscribeRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
unsubscribe(unsubscribeRequest);
return null;
}
});
}
/**
*
* Deletes a subscription. If the subscription requires authentication
* for deletion, only the owner of the subscription or the topic's owner
* can unsubscribe, and an AWS signature is required. If the
* Unsubscribe
call does not require authentication and the
* requester is not the subscription owner, a final cancellation message
* is delivered to the endpoint, so that the endpoint owner can easily
* resubscribe to the topic if the Unsubscribe
request was
* unintended.
*
*
* @param unsubscribeRequest Container for the necessary parameters to
* execute the Unsubscribe operation on AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* Unsubscribe service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future unsubscribeAsync(
final UnsubscribeRequest unsubscribeRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
try {
unsubscribe(unsubscribeRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(unsubscribeRequest, null);
return null;
}
});
}
/**
*
* Deletes a topic and all its subscriptions. Deleting a topic might
* prevent some messages previously sent to the topic from being
* delivered to subscribers. This action is idempotent, so deleting a
* topic that does not exist does not result in an error.
*
*
* @param deleteTopicRequest Container for the necessary parameters to
* execute the DeleteTopic operation on AmazonSNS.
*
* @return A Java Future object containing the response from the
* DeleteTopic service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future deleteTopicAsync(final DeleteTopicRequest deleteTopicRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
deleteTopic(deleteTopicRequest);
return null;
}
});
}
/**
*
* Deletes a topic and all its subscriptions. Deleting a topic might
* prevent some messages previously sent to the topic from being
* delivered to subscribers. This action is idempotent, so deleting a
* topic that does not exist does not result in an error.
*
*
* @param deleteTopicRequest Container for the necessary parameters to
* execute the DeleteTopic operation on AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* DeleteTopic service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future deleteTopicAsync(
final DeleteTopicRequest deleteTopicRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
try {
deleteTopic(deleteTopicRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(deleteTopicRequest, null);
return null;
}
});
}
/**
*
* Retrieves the attributes of the platform application object for the
* supported push notification services, such as APNS and GCM. For more
* information, see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* @param getPlatformApplicationAttributesRequest Container for the
* necessary parameters to execute the GetPlatformApplicationAttributes
* operation on AmazonSNS.
*
* @return A Java Future object containing the response from the
* GetPlatformApplicationAttributes service method, as returned by
* AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future getPlatformApplicationAttributesAsync(final GetPlatformApplicationAttributesRequest getPlatformApplicationAttributesRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public GetPlatformApplicationAttributesResult call() throws Exception {
return getPlatformApplicationAttributes(getPlatformApplicationAttributesRequest);
}
});
}
/**
*
* Retrieves the attributes of the platform application object for the
* supported push notification services, such as APNS and GCM. For more
* information, see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* @param getPlatformApplicationAttributesRequest Container for the
* necessary parameters to execute the GetPlatformApplicationAttributes
* operation on AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* GetPlatformApplicationAttributes service method, as returned by
* AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future getPlatformApplicationAttributesAsync(
final GetPlatformApplicationAttributesRequest getPlatformApplicationAttributesRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public GetPlatformApplicationAttributesResult call() throws Exception {
GetPlatformApplicationAttributesResult result;
try {
result = getPlatformApplicationAttributes(getPlatformApplicationAttributesRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(getPlatformApplicationAttributesRequest, result);
return result;
}
});
}
/**
*
* Sets the attributes of the platform application object for the
* supported push notification services, such as APNS and GCM. For more
* information, see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* @param setPlatformApplicationAttributesRequest Container for the
* necessary parameters to execute the SetPlatformApplicationAttributes
* operation on AmazonSNS.
*
* @return A Java Future object containing the response from the
* SetPlatformApplicationAttributes service method, as returned by
* AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future setPlatformApplicationAttributesAsync(final SetPlatformApplicationAttributesRequest setPlatformApplicationAttributesRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
setPlatformApplicationAttributes(setPlatformApplicationAttributesRequest);
return null;
}
});
}
/**
*
* Sets the attributes of the platform application object for the
* supported push notification services, such as APNS and GCM. For more
* information, see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* @param setPlatformApplicationAttributesRequest Container for the
* necessary parameters to execute the SetPlatformApplicationAttributes
* operation on AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* SetPlatformApplicationAttributes service method, as returned by
* AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future setPlatformApplicationAttributesAsync(
final SetPlatformApplicationAttributesRequest setPlatformApplicationAttributesRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
try {
setPlatformApplicationAttributes(setPlatformApplicationAttributesRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(setPlatformApplicationAttributesRequest, null);
return null;
}
});
}
/**
*
* Adds a statement to a topic's access control policy, granting access
* for the specified AWS accounts to the specified actions.
*
*
* @param addPermissionRequest Container for the necessary parameters to
* execute the AddPermission operation on AmazonSNS.
*
* @return A Java Future object containing the response from the
* AddPermission service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future addPermissionAsync(final AddPermissionRequest addPermissionRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
addPermission(addPermissionRequest);
return null;
}
});
}
/**
*
* Adds a statement to a topic's access control policy, granting access
* for the specified AWS accounts to the specified actions.
*
*
* @param addPermissionRequest Container for the necessary parameters to
* execute the AddPermission operation on AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* AddPermission service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future addPermissionAsync(
final AddPermissionRequest addPermissionRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public Void call() throws Exception {
try {
addPermission(addPermissionRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(addPermissionRequest, null);
return null;
}
});
}
/**
*
* Lists the endpoints and endpoint attributes for devices in a
* supported push notification service, such as GCM and APNS. The results
* for ListEndpointsByPlatformApplication
are paginated and
* return a limited list of endpoints, up to 100. If additional records
* are available after the first page results, then a NextToken string
* will be returned. To receive the next page, you call
* ListEndpointsByPlatformApplication
again using the
* NextToken string received from the previous call. When there are no
* more records to return, NextToken will be null. For more information,
* see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* @param listEndpointsByPlatformApplicationRequest Container for the
* necessary parameters to execute the ListEndpointsByPlatformApplication
* operation on AmazonSNS.
*
* @return A Java Future object containing the response from the
* ListEndpointsByPlatformApplication service method, as returned by
* AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future listEndpointsByPlatformApplicationAsync(final ListEndpointsByPlatformApplicationRequest listEndpointsByPlatformApplicationRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public ListEndpointsByPlatformApplicationResult call() throws Exception {
return listEndpointsByPlatformApplication(listEndpointsByPlatformApplicationRequest);
}
});
}
/**
*
* Lists the endpoints and endpoint attributes for devices in a
* supported push notification service, such as GCM and APNS. The results
* for ListEndpointsByPlatformApplication
are paginated and
* return a limited list of endpoints, up to 100. If additional records
* are available after the first page results, then a NextToken string
* will be returned. To receive the next page, you call
* ListEndpointsByPlatformApplication
again using the
* NextToken string received from the previous call. When there are no
* more records to return, NextToken will be null. For more information,
* see
* Using Amazon SNS Mobile Push Notifications
* .
*
*
* @param listEndpointsByPlatformApplicationRequest Container for the
* necessary parameters to execute the ListEndpointsByPlatformApplication
* operation on AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* ListEndpointsByPlatformApplication service method, as returned by
* AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future listEndpointsByPlatformApplicationAsync(
final ListEndpointsByPlatformApplicationRequest listEndpointsByPlatformApplicationRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public ListEndpointsByPlatformApplicationResult call() throws Exception {
ListEndpointsByPlatformApplicationResult result;
try {
result = listEndpointsByPlatformApplication(listEndpointsByPlatformApplicationRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(listEndpointsByPlatformApplicationRequest, result);
return result;
}
});
}
/**
*
* Returns a list of the subscriptions to a specific topic. Each call
* returns a limited list of subscriptions, up to 100. If there are more
* subscriptions, a NextToken
is also returned. Use the
* NextToken
parameter in a new
* ListSubscriptionsByTopic
call to get further results.
*
*
* @param listSubscriptionsByTopicRequest Container for the necessary
* parameters to execute the ListSubscriptionsByTopic operation on
* AmazonSNS.
*
* @return A Java Future object containing the response from the
* ListSubscriptionsByTopic service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future listSubscriptionsByTopicAsync(final ListSubscriptionsByTopicRequest listSubscriptionsByTopicRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public ListSubscriptionsByTopicResult call() throws Exception {
return listSubscriptionsByTopic(listSubscriptionsByTopicRequest);
}
});
}
/**
*
* Returns a list of the subscriptions to a specific topic. Each call
* returns a limited list of subscriptions, up to 100. If there are more
* subscriptions, a NextToken
is also returned. Use the
* NextToken
parameter in a new
* ListSubscriptionsByTopic
call to get further results.
*
*
* @param listSubscriptionsByTopicRequest Container for the necessary
* parameters to execute the ListSubscriptionsByTopic operation on
* AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the
* ListSubscriptionsByTopic service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future listSubscriptionsByTopicAsync(
final ListSubscriptionsByTopicRequest listSubscriptionsByTopicRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public ListSubscriptionsByTopicResult call() throws Exception {
ListSubscriptionsByTopicResult result;
try {
result = listSubscriptionsByTopic(listSubscriptionsByTopicRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(listSubscriptionsByTopicRequest, result);
return result;
}
});
}
/**
*
* Sends a message to all of a topic's subscribed endpoints. When a
* messageId
is returned, the message has been saved and
* Amazon SNS will attempt to deliver it to the topic's subscribers
* shortly. The format of the outgoing message to each subscribed
* endpoint depends on the notification protocol selected.
*
*
* To use the Publish
action for sending a message to a
* mobile endpoint, such as an app on a Kindle device or mobile phone,
* you must specify the EndpointArn. The EndpointArn is returned when
* making a call with the CreatePlatformEndpoint
action. The
* second example below shows a request and response for publishing to a
* mobile endpoint.
*
*
* @param publishRequest Container for the necessary parameters to
* execute the Publish operation on AmazonSNS.
*
* @return A Java Future object containing the response from the Publish
* service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future publishAsync(final PublishRequest publishRequest)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public PublishResult call() throws Exception {
return publish(publishRequest);
}
});
}
/**
*
* Sends a message to all of a topic's subscribed endpoints. When a
* messageId
is returned, the message has been saved and
* Amazon SNS will attempt to deliver it to the topic's subscribers
* shortly. The format of the outgoing message to each subscribed
* endpoint depends on the notification protocol selected.
*
*
* To use the Publish
action for sending a message to a
* mobile endpoint, such as an app on a Kindle device or mobile phone,
* you must specify the EndpointArn. The EndpointArn is returned when
* making a call with the CreatePlatformEndpoint
action. The
* second example below shows a request and response for publishing to a
* mobile endpoint.
*
*
* @param publishRequest Container for the necessary parameters to
* execute the Publish operation on AmazonSNS.
* @param asyncHandler Asynchronous callback handler for events in the
* life-cycle of the request. Users could provide the implementation of
* the four callback methods in this interface to process the operation
* result or handle the exception.
*
* @return A Java Future object containing the response from the Publish
* service method, as returned by AmazonSNS.
*
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while
* attempting to make the request or handle the response. For example
* if a network connection is not available.
* @throws AmazonServiceException
* If an error response is returned by AmazonSNS indicating
* either a problem with the data in the request, or a server side issue.
*/
public Future publishAsync(
final PublishRequest publishRequest,
final AsyncHandler asyncHandler)
throws AmazonServiceException, AmazonClientException {
return executorService.submit(new Callable() {
public PublishResult call() throws Exception {
PublishResult result;
try {
result = publish(publishRequest);
} catch (Exception ex) {
asyncHandler.onError(ex);
throw ex;
}
asyncHandler.onSuccess(publishRequest, result);
return result;
}
});
}
}