# ApiProxy.ApiResultFuture
Date: 2012-02-24

## com.google.apphosting.api
Interface ApiProxy.ApiResultFuture<T>

All Superinterfaces:
  java.util.concurrent.Future<T>

Enclosing class:
  ApiProxy

    public static interface ApiProxy.ApiResultFuture<T>

extends java.util.concurrent.Future<T>

A subtype of `Future` that provides more detailed information about the timing and resource consumption of particular API calls.

Objects returned from `ApiProxy.makeAsyncCall(String,String,byte[],ApiConfig)` may implement this interface. However, callers should not currently assume that all RPCs will.

Method Summary
`long` `getCpuTimeInMegaCycles()` Returns the amount of CPU time consumed across any backend servers responsible for serving this API call.
`long` `getWallclockTimeInMillis()` Returns the amount of wallclock time, measured in milliseconds, that this API call took to complete, as measured from the client side.

Methods inherited from interface java.util.concurrent.Future
`cancel, get, get, isCancelled, isDone`

Method Detail

### getCpuTimeInMegaCycles

    long getCpuTimeInMegaCycles()

  Returns the amount of CPU time consumed across any backend servers responsible for serving this API call. This quantity is measured in millions of CPU cycles to avoid suming times across a hetergeneous machine set with varied CPU clock speeds.

  Throws:
    `java.lang.IllegalStateException` - If the RPC has not yet completed.

### getWallclockTimeInMillis

    long getWallclockTimeInMillis()

  Returns the amount of wallclock time, measured in milliseconds, that this API call took to complete, as measured from the client side.

  Throws:
    `java.lang.IllegalStateException` - If the RPC has not yet completed.