# Package com.google.gwt.user.client.rpc

Classes used in client-side implementation of remote procedure calls. Most applications will be interested in AsyncCallback, InvocationException, RemoteService, and ServiceDefTarget. The other classes in this package are used primarily in implementing RPC proxies.

- Interface Summary
  Interface | Description
  --- | ---
  AsyncCallback<T> | The primary interface a caller must implement to receive a response from a remote procedure call.
  HasRpcToken | An interface implemented by client-side RPC proxy objects.
  IsSerializable | Marker interface indicating that a type is intended to be used with a `RemoteService`.
  RemoteService | Marker interface that RPC interfaces should extend.
  RpcToken | An interface for RPC token implementation objects included with each RPC call.
  RpcTokenExceptionHandler | Handles an exception produced while processing `RpcToken`.
  SerializationStreamFactory | An interface for creating `SerializationStreamReader`s and `SerializationStreamWriter`s.
  SerializationStreamReader | An interface for reading values from a stream.
  SerializationStreamWriter | An interface for writing values into a stream.
  ServiceDefTarget | An interface implemented by client-side RPC proxy objects.
  XsrfProtectedService | XSRF protected equivalent of `RemoteService`.
  XsrfProtectedServiceAsync | Async peer of `XsrfProtectedService`.
  XsrfTokenService | XSRF token generation RPC service.
  XsrfTokenServiceAsync | Async peer of `XsrfTokenService`.

- Class Summary
  Class | Description
  --- | ---
  CustomFieldSerializer<T> | An interface that may be implemented by class-based custom field serializers which will reduce the amount of server-side reflection during serialization, hence improving their serialization performance.
  RpcRequestBuilder | This class encapsulates the logic necessary to configure a RequestBuilder for use with an RPC proxy object.
  XsrfToken | XSRF token.

- Exception Summary
  Exception | Description
  --- | ---
  IncompatibleRemoteServiceException | Exception that will be passed to the `AsyncCallback.onFailure(Throwable)` method when an incompatibility is detected between a `RemoteService` client and its corresponding `RemoteService` server.
  InvocationException | Occurs when a service invocation did not complete cleanly.
  RpcTokenException | Exception that will be passed to the `RpcTokenExceptionHandler.onRpcTokenException(RpcTokenException)` method when RPC token processing resulted in an error.
  SerializableException | Deprecated. As of GWT 1.5, `Exception` implements `Serializable` and can be used in place of this class
  SerializationException | Base exception type for errors relating to the serialization stream.
  SerializedTypeViolationException | Exception that will be passed to the `AsyncCallback.onFailure(Throwable)` method when the value of an argument to a method in an RPC message is of the incorrect type.
  ServiceDefTarget.NoServiceEntryPointSpecifiedException | This exception is thrown when a service is invoked without `ServiceDefTarget.setServiceEntryPoint(String)` having been called.
  StatusCodeException | Indicates that an RPC response was returned with an invalid HTTP status code.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  GwtTransient | This annotation means the same thing as the `transient` keyword, but it is ignored by all serialization systems other than GWT's.
  RemoteServiceRelativePath | Associates a `RemoteService` with a relative path.
  RpcToken.RpcTokenImplementation | `RemoteService` interfaces specifying `RpcToken` implementation using this annotation will only have serializers for the specific class generated, as opposed to generating serializers for all `RpcToken` implementations.