Adds a stub for GWT.runAsync, so that people can add
potential cut points to a code base that is primarily
used with GWT's trunk.

Review by: scottb


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@3664 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/core/client/GWT.java b/user/src/com/google/gwt/core/client/GWT.java
index 4811501..dacb1f0 100644
--- a/user/src/com/google/gwt/core/client/GWT.java
+++ b/user/src/com/google/gwt/core/client/GWT.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2007 Google Inc.
+ * Copyright 2008 Google Inc.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  * use this file except in compliance with the License. You may obtain a copy of
@@ -190,6 +190,15 @@
   }
 
   /**
+   * Run the supplied callback. The system is allowed to delay before running
+   * the callback while additional code is downloaded, but that feature is not
+   * yet implemented. Currently, the callback runs immediately.
+   */
+  public static void runAsync(RunAsyncCallback callback) {
+    callback.onSuccess();
+  }
+
+  /**
    * Sets a custom uncaught exception handler. See
    * {@link #getUncaughtExceptionHandler()} for details.
    * 
diff --git a/user/src/com/google/gwt/core/client/RunAsyncCallback.java b/user/src/com/google/gwt/core/client/RunAsyncCallback.java
new file mode 100644
index 0000000..4c76817
--- /dev/null
+++ b/user/src/com/google/gwt/core/client/RunAsyncCallback.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2008 Google Inc.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License 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.google.gwt.core.client;
+
+/**
+ * A callback meant to be used by
+ * {@link com.google.gwt.core.client.GWT#runAsync(RunAsyncCallback) }.
+ */
+public interface RunAsyncCallback {
+  /**
+   * Called when, for some reason, the necessary code cannot be loaded. For
+   * example, the user might no longer be on the network.
+   */
+  void onFailure(Throwable caught);
+
+  /**
+   * Called once the necessary code for it has been loaded.
+   */
+  void onSuccess();
+}