com.google.appengine.api.datastore

## Interface AsyncDatastoreService

- All Superinterfaces:
    BaseDatastoreService
  All Known Implementing Classes:
    AdminDatastoreService

      public interface AsyncDatastoreService
      extends BaseDatastoreService

  An asynchronous version of `DatastoreService`. All methods return immediately and provide `Futures` as their return values.

  The key difference between implementations of `AsyncDatastoreService` and implementations of `DatastoreService` is that async implementations do not perform implicit transaction management. The reason is that implicit transaction management requires automatic commits of some transactions, and without some sort of callback mechanism there is no way to determine that a put/get/delete that has been implicitly enrolled in a transaction is complete and therefore ready to be committed. See `ImplicitTransactionManagementPolicy` for more information.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.concurrent.Future<KeyRange>` | `allocateIds(Key parent, java.lang.String kind, long num)` See `DatastoreService.allocateIds(Key, String, long)`.
    `java.util.concurrent.Future<KeyRange>` | `allocateIds(java.lang.String kind, long num)` See `DatastoreService.allocateIds(String, long)`.
    `java.util.concurrent.Future<Transaction>` | `beginTransaction()` See `DatastoreService.beginTransaction()`.
    `java.util.concurrent.Future<Transaction>` | `beginTransaction(TransactionOptions options)` See `DatastoreService.beginTransaction(TransactionOptions)`.
    `java.util.concurrent.Future<java.lang.Void>` | `delete(java.lang.Iterable<Key> keys)` See `DatastoreService.delete(Iterable)`.
    `java.util.concurrent.Future<java.lang.Void>` | `delete(Key... keys)` See `DatastoreService.delete(Key...)`.
    `java.util.concurrent.Future<java.lang.Void>` | `delete(Transaction txn, java.lang.Iterable<Key> keys)` See `DatastoreService.delete(Transaction, Iterable)`.
    `java.util.concurrent.Future<java.lang.Void>` | `delete(Transaction txn, Key... keys)` See `DatastoreService.delete(Transaction, Iterable)`.
    `java.util.concurrent.Future<java.util.Map<Key,Entity>>` | `get(java.lang.Iterable<Key> keys)` See `DatastoreService.get(Iterable)`.
    `java.util.concurrent.Future<Entity>` | `get(Key key)` See `DatastoreService.get(Key)`.
    `java.util.concurrent.Future<java.util.Map<Key,Entity>>` | `get(Transaction txn, java.lang.Iterable<Key> keys)` See `DatastoreService.get(Transaction, Iterable)`.
    `java.util.concurrent.Future<Entity>` | `get(Transaction txn, Key key)` See `DatastoreService.get(Transaction, Key)`.
    `java.util.concurrent.Future<DatastoreAttributes>` | `getDatastoreAttributes()` See `DatastoreService.getDatastoreAttributes()`.
    `java.util.concurrent.Future<java.util.Map<Index,Index.IndexState>>` | `getIndexes()` See `DatastoreService.getIndexes()`.
    `java.util.concurrent.Future<Key>` | `put(Entity entity)` See `DatastoreService.put(Entity)`.
    `java.util.concurrent.Future<java.util.List<Key>>` | `put(java.lang.Iterable<Entity> entities)` See `DatastoreService.put(Iterable)`.
    `java.util.concurrent.Future<Key>` | `put(Transaction txn, Entity entity)` See `DatastoreService.put(Transaction, Entity)`.
    `java.util.concurrent.Future<java.util.List<Key>>` | `put(Transaction txn, java.lang.Iterable<Entity> entities)` See `DatastoreService.put(Transaction, Iterable)`.

    - ### Methods inherited from interface com.google.appengine.api.datastore.BaseDatastoreService

      `getActiveTransactions, getCurrentTransaction, getCurrentTransaction, prepare, prepare`

- - ### Method Detail

    - #### get

          java.util.concurrent.Future<Entity> get(Key key)

      See `DatastoreService.get(Key)`.

    - #### get

          java.util.concurrent.Future<Entity> get(Transaction txn,
                                                  Key key)

      See `DatastoreService.get(Transaction, Key)`.

    - #### get

          java.util.concurrent.Future<java.util.Map<Key,Entity>> get(java.lang.Iterable<Key> keys)

      See `DatastoreService.get(Iterable)`.

    - #### get

          java.util.concurrent.Future<java.util.Map<Key,Entity>> get(Transaction txn,
                                                                     java.lang.Iterable<Key> keys)

      See `DatastoreService.get(Transaction, Iterable)`.

    - #### put

          java.util.concurrent.Future<Key> put(Entity entity)

      See `DatastoreService.put(Entity)`.

    - #### put

          java.util.concurrent.Future<Key> put(Transaction txn,
                                               Entity entity)

      See `DatastoreService.put(Transaction, Entity)`.

    - #### put

          java.util.concurrent.Future<java.util.List<Key>> put(java.lang.Iterable<Entity> entities)

      See `DatastoreService.put(Iterable)`.

    - #### put

          java.util.concurrent.Future<java.util.List<Key>> put(Transaction txn,
                                                               java.lang.Iterable<Entity> entities)

      See `DatastoreService.put(Transaction, Iterable)`.

    - #### delete

          java.util.concurrent.Future<java.lang.Void> delete(Key... keys)

      See `DatastoreService.delete(Key...)`.

    - #### delete

          java.util.concurrent.Future<java.lang.Void> delete(Transaction txn,
                                                             Key... keys)

      See `DatastoreService.delete(Transaction, Iterable)`.

    - #### delete

          java.util.concurrent.Future<java.lang.Void> delete(java.lang.Iterable<Key> keys)

      See `DatastoreService.delete(Iterable)`.

    - #### delete

          java.util.concurrent.Future<java.lang.Void> delete(Transaction txn,
                                                             java.lang.Iterable<Key> keys)

      See `DatastoreService.delete(Transaction, Iterable)`.

    - #### beginTransaction

          java.util.concurrent.Future<Transaction> beginTransaction()

      See `DatastoreService.beginTransaction()`.

    - #### beginTransaction

          java.util.concurrent.Future<Transaction> beginTransaction(TransactionOptions options)

      See `DatastoreService.beginTransaction(TransactionOptions)`.

    - #### allocateIds

          java.util.concurrent.Future<KeyRange> allocateIds(java.lang.String kind,
                                                            long num)

      See `DatastoreService.allocateIds(String, long)`.

    - #### allocateIds

          java.util.concurrent.Future<KeyRange> allocateIds(Key parent,
                                                            java.lang.String kind,
                                                            long num)

      See `DatastoreService.allocateIds(Key, String, long)`.

    - #### getDatastoreAttributes

          java.util.concurrent.Future<DatastoreAttributes> getDatastoreAttributes()

      See `DatastoreService.getDatastoreAttributes()`.

    - #### getIndexes

          java.util.concurrent.Future<java.util.Map<Index,Index.IndexState>> getIndexes()

      See `DatastoreService.getIndexes()`.